From 12c44d2d721b0321d4a9caeb28c98dc11c6d74a8 Mon Sep 17 00:00:00 2001 From: Anders Broman Date: Sun, 28 Aug 2005 14:56:03 +0000 Subject: Add dissection of ITU M.3100 GNM (GENERIC NETWORK INFORMATION MODEL). svn path=/trunk/; revision=15592 --- asn1/gnm/GNM.asn | 717 +++++++++++++++++++++++++++++++++++++++++ asn1/gnm/Makefile.nmake | 42 +++ asn1/gnm/gnm.cnf | 29 ++ asn1/gnm/packet-gnm-template.c | 331 +++++++++++++++++++ asn1/gnm/packet-gnm-template.h | 34 ++ 5 files changed, 1153 insertions(+) create mode 100644 asn1/gnm/GNM.asn create mode 100644 asn1/gnm/Makefile.nmake create mode 100644 asn1/gnm/gnm.cnf create mode 100644 asn1/gnm/packet-gnm-template.c create mode 100644 asn1/gnm/packet-gnm-template.h (limited to 'asn1/gnm') diff --git a/asn1/gnm/GNM.asn b/asn1/gnm/GNM.asn new file mode 100644 index 0000000000..f4cf05a067 --- /dev/null +++ b/asn1/gnm/GNM.asn @@ -0,0 +1,717 @@ +-- Module ASN1DefinedTypesModule (M.3100:04/2005) +-- 8 ASN.1 modules +-- +-- 8.1 ASN1DefinedTypesModule +ASN1DefinedTypesModule {itu-t recommendation m gnm(3100) informationModel(0) + asn1Modules(2) asn1DefinedTypesModule(0)} DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +-- EXPORTS everything +IMPORTS + -- Note: RDNSequence, formerly imported + -- from X.501 InformationFramework, is imported from X.711 CMIP. + RDNSequence, ObjectInstance, ObjectClass, Attribute + FROM CMIP-1 {joint-iso-itu-t ms(9) cmip(1) modules(0) protocol(3)} +-- MappingList, SignalRate +-- FROM M3100ASN1TypeModule2 {itu-t recommendation m gnm(3100) +-- informationModel(0) asn1Modules(2) asn1Module2(1)} +-- ProbableCause, AdministrativeState, AvailabilityStatus, AttributeList, +-- AdditionalInformation +-- FROM Attribute-ASN1Module {joint-iso-itu-t ms(9) smi(3) part2(2) +-- asn1Module(2) 1}; +; +-- Local imports +-- Module Attribute-ASN1Module (X.721:02/1992) +-- Attribute-ASN1Module {joint-iso-itu-t ms(9) smi(3) part2(2) asn1Module(2) 1} + +ProbableCause ::= CHOICE {globalValue OBJECT IDENTIFIER, + localValue INTEGER +} + +AdministrativeState ::= ENUMERATED {locked(0), unlocked(1), shuttingDown(2)} + +AvailabilityStatus ::= + SET OF + INTEGER {inTest(0), failed(1), powerOff(2), offLine(3), offDuty(4), + dependency(5), degraded(6), notInstalled(7), logFull(8)} + +-- logFull is defined in CCITT Rec X.735 | ISO/IEC 10164-6. + +AttributeList ::= SET OF Attribute + +AdditionalInformation ::= SET OF ManagementExtension + +ControlStatus ::= + SET OF + INTEGER {subjectToTest(0), partOfServicesLocked(1), reservedForTest(2), + suspended(3)} + +ManagementExtension ::= SEQUENCE { + identifier OBJECT IDENTIFIER, + significance [1] BOOLEAN DEFAULT FALSE, + information [2] ANY +} +-- MappingList, SignalRate +-- FROM M3100ASN1TypeModule2 {itu-t recommendation m gnm(3100) +-- informationModel(0) asn1Modules(2) asn1Module2(1)} + +MappingList ::= SEQUENCE OF PayloadLevel + +PayloadLevel ::= CharacteristicInformation + +Packages ::= SET OF OBJECT IDENTIFIER + +SignalRate ::= CHOICE { + objectClass [0] OBJECT IDENTIFIER, + characteristicInformation [1] CharacteristicInformation +} +-- X.745 +SupportedTOClasses ::= SET OF OBJECT IDENTIFIER + +-- END Local imports +m3100InformationModel OBJECT IDENTIFIER ::= + {itu-t recommendation m gnm(3100) informationModel(0)} + +m3100standardSpecificExtension OBJECT IDENTIFIER ::= + {m3100InformationModel standardSpecificExtension(0)} + +m3100ObjectClass OBJECT IDENTIFIER ::= + {m3100InformationModel managedObjectClass(3)} + +m3100Package OBJECT IDENTIFIER ::= {m3100InformationModel package(4)} + +m3100Parameter OBJECT IDENTIFIER ::= {m3100InformationModel parameter(5)} + +m3100Attribute OBJECT IDENTIFIER ::= {m3100InformationModel attribute(7)} + +m3100NameBinding OBJECT IDENTIFIER ::= {m3100InformationModel nameBinding(6)} + +m3100Action OBJECT IDENTIFIER ::= {m3100InformationModel action(9)} + +m3100Notification OBJECT IDENTIFIER ::= + {m3100InformationModel notification(10)} + +-- Reserved arcs below m3100InformationModel are (8) for attribute groups +characteristicInfo OBJECT IDENTIFIER ::= + {m3100standardSpecificExtension 0} + +opticalSTM1SPICI CharacteristicInformation ::= {characteristicInfo 1} + +-- opticalSPITTP* object instances with stmLevel attribute = 1 +opticalSTM4SPICI CharacteristicInformation ::= + {characteristicInfo 2} + +-- opticalSPITTP* object instances with stmLevel attribute = 4 +opticalSTM16SPICI CharacteristicInformation ::= + {characteristicInfo 3} + +-- opticalSPITTP* object instances with stmLevel attribute = 16 +electricalSTM1SPICI CharacteristicInformation ::= + {characteristicInfo 4} + +-- electricalSPITTP* object instances with stmLevel attribute = 1 +rsSTM1SPICI CharacteristicInformation ::= + {characteristicInfo 5} + +-- rsCTP* object instances with stmLevel attribute = 1 +rsSTM4SPICI CharacteristicInformation ::= + {characteristicInfo 6} + +-- rsCTP* object instances with stmLevel attribute = 4 +rsSTM16SPICI CharacteristicInformation ::= + {characteristicInfo 7} + +-- rsCTP* object instances with stmLevel attribute = 16 +msSTM1SPICI CharacteristicInformation ::= + {characteristicInfo 8} + +-- msCTP* object instances with stmLevel attribute = 1 +msSTM4SPICI CharacteristicInformation ::= + {characteristicInfo 9} + +-- msCTP* object instances with stmLevel attribute = 4 +msSTM16SPICI CharacteristicInformation ::= + {characteristicInfo 10} + +-- msCTP* object instances with stmLevel attribute = 16 +au3TU3VC3CI CharacteristicInformation ::= + {characteristicInfo 11} + +au4VC4CI CharacteristicInformation ::= {characteristicInfo 12} + +tu11VC11CI CharacteristicInformation ::= {characteristicInfo 13} + +tu12VC12CI CharacteristicInformation ::= {characteristicInfo 14} + +tu2VC2CI CharacteristicInformation ::= {characteristicInfo 15} + +tu12VC11CI CharacteristicInformation ::= {characteristicInfo 16} + +vpCI CharacteristicInformation ::= {characteristicInfo 17} + +vcCI CharacteristicInformation ::= {characteristicInfo 18} + +e0CI CharacteristicInformation ::= {characteristicInfo 19} + +e1CI CharacteristicInformation ::= {characteristicInfo 20} + +e2CI CharacteristicInformation ::= {characteristicInfo 21} + +e3CI CharacteristicInformation ::= {characteristicInfo 22} + +e4CI CharacteristicInformation ::= {characteristicInfo 23} + +e5-565M CharacteristicInformation ::= {characteristicInfo 24} + +sts3c-and-VC4-1c CharacteristicInformation ::= {characteristicInfo 25} + +sts12c-and-VC4-4c CharacteristicInformation ::= {characteristicInfo 26} + +sts48c-and-VC4-16c CharacteristicInformation ::= {characteristicInfo 27} + +sts192c-and-VC4-64c CharacteristicInformation ::= {characteristicInfo 28} + +section-OC1-STS1-and-RS-STM0 CharacteristicInformation ::= + {characteristicInfo 29} + +section-OC192-STS192-and-RS-STM64 CharacteristicInformation ::= + {characteristicInfo 30} + +line-OC1-STS1-and-MS-STM0 CharacteristicInformation ::= + {characteristicInfo 31} + +line-OC192-STS192-and-MS-STM64 CharacteristicInformation ::= + {characteristicInfo 32} + +fc-12-133M CharacteristicInformation ::= {characteristicInfo 33} + +-- Fiber Channel protocol +fc-25-266M CharacteristicInformation ::= + {characteristicInfo 34} + +-- Fiber Channel protocol +fc-50-531M CharacteristicInformation ::= + {characteristicInfo 35} + +-- Fiber Channel protocol +fc-100-1063M CharacteristicInformation ::= + {characteristicInfo 36} + +-- Fiber Channel protocol +fddi CharacteristicInformation ::= + {characteristicInfo 37} + +fast-Ethernet CharacteristicInformation ::= {characteristicInfo 38} + +gigabit-Ethernet CharacteristicInformation ::= {characteristicInfo 39} + +isdn-BRI CharacteristicInformation ::= {characteristicInfo 40} + +-- ISDN Basic Rate Interface PTP layer rate +dsr-OC192-and-STM64 CharacteristicInformation ::= + {characteristicInfo 41} + +dsr-OC768-and-STM256 CharacteristicInformation ::= {characteristicInfo 42} + +section-OC24-STS24-and-RS-STM8 CharacteristicInformation ::= + {characteristicInfo 43} + +line-OC24-STS24-and-MS-STM8 CharacteristicInformation ::= + {characteristicInfo 44} + +section-OC768-STS768-and-RS-STM256 CharacteristicInformation ::= + {characteristicInfo 45} + +line-OC768-STS768-and-MS-STM256 CharacteristicInformation ::= + {characteristicInfo 46} + +tenGigabit-Ethernet CharacteristicInformation ::= {characteristicInfo 47} + +-- The following value assignments are for the Probable Cause when Integer Choice is used within the +-- TMN application context. These values shall always be assigned by this Recommendation in the context +-- of TMN. + + +AcceptableCircuitPackTypeList ::= SET OF PrintableString + +AddedTps ::= SEQUENCE { + gtp ObjectInstance, + tpsAdded SEQUENCE OF ObjectInstance +} + +AddLeg ::= SEQUENCE { + mpCrossConnection ObjectInstance, + legs SET OF ToTermSpecifier +} + +AddTpsToGtpInformation ::= + SEQUENCE OF + SEQUENCE {tpsAdded SEQUENCE OF TerminationPointInformation, + gtp ObjectInstance OPTIONAL} + +AddTpsToGtpResult ::= + SEQUENCE OF CHOICE {failed [0] Failed, + addedTps [1] AddedTps} + +-- the n-th element in the "SEQUENCE OF" is related to the n-th element in the "SEQUENCE OF" of the +-- "AddTpsToGtpInformation" type. +AddTpsToTpPoolInformation ::= + SEQUENCE OF + SEQUENCE {tps SET OF TerminationPointInformation, + toTpPool ObjectInstance OPTIONAL} + +AddTpsToTpPoolResult ::= + SEQUENCE OF + CHOICE {failed [0] Failed, + tpsAddedToTpPool [1] TpsAddedToTpPool} + +-- the n-th element in the "SEQUENCE OF" is related to the n-th element in the "SEQUENCE OF" of the +-- "AddTPsToTpPoolInformation" type. +AlarmEffectOnServiceParameter ::= BOOLEAN -- TRUE implies service is affected + +AlarmSeverityAssignment ::= SEQUENCE { + problem ProbableCause, + severityAssignedServiceAffecting [0] AlarmSeverityCode OPTIONAL, + severityAssignedNonServiceAffecting [1] AlarmSeverityCode OPTIONAL, + severityAssignedServiceIndependent [2] AlarmSeverityCode OPTIONAL +} + +AlarmSeverityAssignmentList ::= SET OF AlarmSeverityAssignment + +AlarmSeverityCode ::= ENUMERATED { + non-alarmed(0), minor(1), major(2), critical(3), warning(4)} + +AlarmStatus ::= ENUMERATED { + cleared(0), activeReportable-Indeterminate(1), activeReportable-Warning(2), + activeReportable-Minor(3), activeReportable-Major(4), + activeReportable-Critical(5), activePending(6)} + +Boolean ::= BOOLEAN + +Bundle ::= SEQUENCE { + characteristicInfoType CharacteristicInformation, + bundlingFactor INTEGER +} + +ChannelNumber ::= INTEGER + +CharacteristicInformation ::= OBJECT IDENTIFIER + +CircuitDirectionality ::= ENUMERATED {onewayOut(0), onewayIn(1), twoway(2)} + +CircuitPackAvailabilityStatus ::= + AvailabilityStatus(WITH COMPONENT (notInstalled)) + +CircuitPackType ::= PrintableString + +Connected ::= CHOICE { + pointToPoint [0] PointToPoint, + pointToMultipoint [1] PointToMultipoint +} + +ConnectInformation ::= + SEQUENCE OF + SEQUENCE {itemType + CHOICE {unidirectional [0] ConnectionType, + bidirectional [1] ConnectionTypeBi, + addleg [2] AddLeg}, + administrativeState AdministrativeState OPTIONAL, + namedCrossConnection [3] NamedCrossConnection OPTIONAL, + ..., + userLabel [4] UserLabel OPTIONAL, + redline [5] Boolean OPTIONAL, + additionalInfo [6] AdditionalInformation OPTIONAL + } + +ConnectorType ::= INTEGER + +-- currently defined values for ConnectorType are +fcConnectorType ConnectorType ::= + 1 -- Fibre Connector + +lcConnectorType ConnectorType ::= 2 -- Lucent connector + +scConnectorType ConnectorType ::= 3 -- Subscriber Connector + +ConnectivityPointer ::= CHOICE { + none NULL, + single ObjectInstance, + concatenated SEQUENCE OF ObjectInstance +} + +ConnectResult ::= SEQUENCE OF CHOICE {failed Failed, + connected Connected} + +-- the n-th element in the "SEQUENCE OF" is related to the n-th element in the "SEQUENCE OF" of the +-- "ConnectInformation" type. +ConnectionType ::= CHOICE { + explicitPToP [0] ExplicitPtoP, + ptoTpPool [1] PtoTPPool, + explicitPtoMP [2] ExplicitPtoMP, + ptoMPools [3] PtoMPools +} + +ConnectionTypeBi ::= CHOICE { + explicitPToP [0] ExplicitPtoP, + ptoTpPool [1] PtoTPPool +} + +Count ::= INTEGER + +CreateError ::= INTEGER + +CrossConnectionName ::= GraphicString + +CrossConnectionObjectPointer ::= CHOICE { + notConnected [0] ObjectInstance, -- Fabric object + connected [1] ObjectInstance, -- Cross-connection object + multipleConnections MultipleConnections +} + +CTPUpstreamPointer ::= + ConnectivityPointer + (WITH COMPONENTS { + ..., + + -- the other two choices are present + concatenated ABSENT + }) + +CTPDownstreamPointer ::= + DownstreamConnectivityPointer + (WITH COMPONENTS { + ..., + concatenated ABSENT, + broadcastConcatenated ABSENT + + -- other choices are present + }) + +CurrentProblem ::= SEQUENCE { + problem [0] ProbableCause, + alarmStatus [1] AlarmStatus +} + +CurrentProblemList ::= SET OF CurrentProblem + +Directionality ::= ENUMERATED {unidirectional(0), bidirectional(1)} + +DisconnectInformation ::= SEQUENCE OF ObjectInstance -- tps + +DisconnectResult ::= + SEQUENCE OF CHOICE {failed Failed, + disconnected ObjectInstance} -- tp + +-- the n-th element in the "SEQUENCE OF" is related to the n-th element in the "SEQUENCE OF" of the +-- "DisconnectInformation" type. +DownstreamConnectivityPointer ::= CHOICE { + none NULL, + single ObjectInstance, + concatenated SEQUENCE OF ObjectInstance, + broadcast SET OF ObjectInstance, + broadcastConcatenated [1] SET OF SEQUENCE OF ObjectInstance +} + +ExplicitPtoMP ::= SEQUENCE {fromTp ExplicitTP, + toTPs SET OF ExplicitTP +} + +ExplicitPtoP ::= SEQUENCE {fromTp ExplicitTP, + toTp ExplicitTP +} + +ExplicitTP ::= CHOICE { + oneTPorGTP ObjectInstance, + listofTPs SEQUENCE OF ObjectInstance +} + +ExternalTime ::= GeneralizedTime + +EquipmentHolderAddress ::= SEQUENCE OF PrintableString + +EquipmentHolderType ::= GraphicString + +Failed ::= CHOICE { + logicalProblem LogicalProblem, + resourceProblem ResourceProblem +} + +GeneralError ::= + SEQUENCE OF + SEQUENCE {cause GeneralErrorCause, + details GraphicString OPTIONAL, + relatedObjects [0] SET OF ObjectInstance OPTIONAL, + attributeList [1] AttributeList OPTIONAL} + +GeneralErrorCause ::= CHOICE { + globalValue OBJECT IDENTIFIER, + localValue INTEGER +} + +-- objectInIncompatibleState GeneralErrorCause ::= localValue:1 + +-- noValidRelatedObject GeneralErrorCause ::= localValue:2 + +-- involvedInOffering GeneralErrorCause ::= localValue:3 + +-- serviceNotSupported GeneralErrorCause ::= localValue:4 + +-- provisioningOrderConflict GeneralErrorCause ::= localValue:5 + +-- equipmentFailure GeneralErrorCause ::= localValue:6 + +-- maxNumberExceeded GeneralErrorCause ::= localValue:7 + +-- containedObjects GeneralErrorCause ::= localValue:8 + +-- ObjectInIncompatibleState is used to specify that the object is in a state +-- that does not allow the operation. Details of the state should be +-- provided. +-- NoValidRelatedObject is used to specify related objects that do not +-- exist in the MIB. +-- InvolvedInOffering is used to identify object(s) that are already +-- involved in a conflicting service offering. +-- ServiceNotSupported is used to indicate that the operation is +-- attempting to initiate a service that is not supported by the +-- equipment. +-- ProvisioningOrderConflict is used to identify that a service is +-- being provisioned in an order that is not supported by the equipment. +-- EquipmentFailure is used to indicate that an equipment failure as +-- occured during the operation. +-- MaxNumberExceeded is used to indicate that requested create operation +-- cannot be completed as the maximum number of instances are reached. +-- ContainedObjects is used to indicate that requested delete operation +-- cannot be completed as there are contained instances. +HolderStatus ::= CHOICE { + holderEmpty [0] NULL, + inTheAcceptableList [1] CircuitPackType, + notInTheAcceptableList [2] CircuitPackType, + unknownType [3] NULL +} + +IndividualSwitchOver ::= SEQUENCE { + connection ObjectInstance, + -- crossConnection of connectionProtection (defined in Recommendation G.774.04) + unchangedTP ObjectInstance, + newTP ObjectInstance + -- designates the newTP to which the unchanged TP has to be connected with +} + +IndividualResult ::= CHOICE {failed [0] Failed, + pass [1] Connected +} + +InformationTransferCapabilities ::= ENUMERATED { + speech(0), audio3pt1(1), audio7(2), audioComb(3), digitalRestricted56(4), + digitalUnrestricted64(5) + +-- "..." these ellipses defined in ASN.1 amendment are used here to indicate that this is +-- an extensible type and additional enumerations may be added in future --} + +ListOfCharacteristicInformation ::= SET OF CharacteristicInformation + +ListOfTPs ::= SET OF ObjectInstance + +LocationName ::= GraphicString + +LogicalProblem ::= SEQUENCE { + problemCause ProblemCause, + incorrectInstances SET OF ObjectInstance OPTIONAL +} + +MultipleConnections ::= + SET OF + CHOICE {downstreamNotConnected [0] ObjectInstance, + downstreamConnected [1] ObjectInstance, + upstreamNotConnected [2] ObjectInstance, + upstreamConnected [3] ObjectInstance} + +NamedCrossConnection ::= SEQUENCE { + redline BOOLEAN, + name CrossConnectionName +} + +NameType ::= CHOICE {numericName INTEGER, + pString GraphicString +} + +NumberOfCircuits ::= INTEGER + +ObjectList ::= SET OF ObjectInstance + +PhysicalPortSignalRateAndMappingList ::= CHOICE { + diverse + SEQUENCE {downstream SignalRateAndMappingList, + upStream SignalRateAndMappingList}, + uniform SignalRateAndMappingList +} + +Pointer ::= ObjectInstance + +PointerOrNull ::= CHOICE {pointer ObjectInstance, + null NULL +} + +PointToPoint ::= SEQUENCE { + fromTp ObjectInstance, + toTp ObjectInstance, + xCon ObjectInstance +} + +PointToMultipoint ::= SEQUENCE { + fromTp ObjectInstance, + toTps + SET OF SEQUENCE {tp ObjectInstance, + xConnection ObjectInstance}, + mpXCon ObjectInstance +} + +PortNumber ::= INTEGER + +ProblemCause ::= CHOICE {unknown NULL, + integerValue INTEGER +} + +-- The values of integer value for ProblemCause and integerValue for ResourceProblem shall always be +-- assigned by this Recommendation. No values of integerValue for ResourceProblem have been assigned. +-- The following values are used for integerValue of ProblemCause. + +PtoMPools ::= SEQUENCE {fromTp ExplicitTP, + toTPPools ToTPPools +} + +PtoTPPool ::= SEQUENCE {fromTp ExplicitTP, + toTpPool ObjectInstance +} + +Reach ::= INTEGER + +RelatedObjectInstance ::= CHOICE { + notAvailable NULL, + relatedObject ObjectInstance +} + +RemoveTpsFromGtpInformation ::= + SEQUENCE OF SEQUENCE {fromGtp ObjectInstance, + tps SET OF ObjectInstance} + +RemoveTpsFromGtpResult ::= + SEQUENCE OF + CHOICE {failed [0] Failed, + removed [1] RemoveTpsResultInformation} + +-- the n-th element in the "SEQUENCE OF" is related to the n-th element in the "SEQUENCE OF" of the +-- "RemoveTPsFromGtpInformation" type. +RemoveTpsFromTpPoolInformation ::= + SEQUENCE OF + SEQUENCE {fromTpPool ObjectInstance, + tps SET OF ObjectInstance} + +RemoveTpsFromTpPoolResult ::= + SEQUENCE OF + CHOICE {failed [0] Failed, + removed [1] RemoveTpsResultInformation} + +-- the n-th element in the "SEQUENCE OF" is related to the n-th element in the "SEQUENCE OF" of the +-- "RemoveTPsFromTpPoolInformation" type. +RemoveTpsResultInformation ::= SEQUENCE { + deletedTpPoolOrGTP ObjectInstance OPTIONAL, + tps SET OF ObjectInstance +} + +-- If the TP Pool or GTP is deleted, the deleted TP Pool or GTP should be provided in the +-- RemoveTpsResultInformation +Replaceable ::= ENUMERATED {yes(0), no(1), notapplicable(2)} + +ResourceProblem ::= CHOICE {unknown NULL, + integerValue INTEGER +} + +SequenceOfObjectInstance ::= SEQUENCE OF ObjectInstance + +SerialNumber ::= GraphicString + +SignallingCapabilities ::= ENUMERATED { + isup(0), isup92(1), itu-tNo5(2), r2(3), itu-tNo6(4), tup(5) + +-- "..." these ellipses defined in ASN.1 amendment are used here to indicate that this is +-- an extensible type and additional enumerations may be added in future --} + +SignalRateAndMappingList ::= + SET OF + SEQUENCE {-- only one member in the case of TDM + signalRate SignalRate, + mappingList MappingList OPTIONAL, + wavelength WaveLength OPTIONAL} -- used for WDM + +-- the SignalRateAndMappingList is a SET OF to accommodate +-- multiple wavelengths on a single TTP +SignalType ::= CHOICE { + simple CharacteristicInformation, + bundle Bundle, + complex [0] SEQUENCE OF Bundle +} + +SubordinateCircuitPackSoftwareLoad ::= CHOICE { + notApplicable NULL, + softwareInstances [0] SEQUENCE OF ObjectInstance, + softwareIdentifiers [1] SEQUENCE OF PrintableString +} + +SupportableClientList ::= SET OF ObjectClass + +SystemTiming ::= SEQUENCE { + sourceType + ENUMERATED {internalTimingSource(0), remoteTimingSource(1), + slavedTimingTerminationSignal(2)}, + sourceID ObjectInstance OPTIONAL +} -- not needed for internal source + +SystemTimingSource ::= SEQUENCE { + primaryTimingSource SystemTiming, + secondaryTimingSource SystemTiming OPTIONAL +} + +SwitchOverInformation ::= SEQUENCE OF IndividualSwitchOver + +SwitchOverResult ::= SEQUENCE OF IndividualResult + +TerminationPointInformation ::= CHOICE { + tPOrGTP [0] ObjectInstance, + sourceTP [1] ObjectInstance, + sinkTP [2] ObjectInstance +} + +ToTermSpecifier ::= CHOICE { + toTpOrGTP [0] ExplicitTP, + toPool [1] ObjectInstance +} + +ToTPPools ::= + SET OF SEQUENCE {tpPoolId ObjectInstance, + numberOfTPs INTEGER} + +TpsAddedToTpPool ::= SEQUENCE { + tpPool ObjectInstance, + tps SET OF ObjectInstance +} + +TpsInGtpList ::= SEQUENCE OF ObjectInstance + +TransmissionCharacteristics ::= BIT STRING { + satellite(0), dCME(1), echoControl(2)} + +TypeText ::= GraphicString + +UserLabel ::= GraphicString + +VendorName ::= GraphicString + +Version ::= GraphicString + +WaveLength ::= INTEGER + +END -- end of ASN1 DefinedTypesModule + +-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D + diff --git a/asn1/gnm/Makefile.nmake b/asn1/gnm/Makefile.nmake new file mode 100644 index 0000000000..d13d63c48c --- /dev/null +++ b/asn1/gnm/Makefile.nmake @@ -0,0 +1,42 @@ +## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake +# +# $Id$ + +include ../../config.nmake + +UNIX2DOS=$(PERL) ../../tools/unix2dos.pl + +PROTOCOL_NAME=gnm +DISSECTOR_FILES=packet-$(PROTOCOL_NAME).c packet-$(PROTOCOL_NAME).h + +all: generate_dissector + +generate_dissector: $(DISSECTOR_FILES) + +$(DISSECTOR_FILES): ../../tools/asn2eth.py GNM.asn packet-gnm-template.c packet-gnm-template.h gnm.cnf +!IFDEF PYTHON + $(PYTHON) ../../tools/asn2eth.py -X -b -e -p $(PROTOCOL_NAME) -c gnm.cnf -s packet-gnm-template GNM.asn +!ELSE + @echo Error: You need Python to use asn2eth.py + @exit 1 +!ENDIF + +clean: + rm -f parsetab.py $(DISSECTOR_FILES) + +# Fix EOL in generated dissectors. Cygwin's python generates files with +# mixed EOL styles, which can't be commited to the SVN repository. +# Stuff included from template and "cnf" files has "\r\n" on windows, while +# the generated stuff has "\n". + +fix_eol: generate_dissector + move packet-$(PROTOCOL_NAME).c packet-$(PROTOCOL_NAME).c.tmp + move packet-$(PROTOCOL_NAME).h packet-$(PROTOCOL_NAME).h.tmp + $(UNIX2DOS) < packet-$(PROTOCOL_NAME).c.tmp > packet-$(PROTOCOL_NAME).c + $(UNIX2DOS) < packet-$(PROTOCOL_NAME).h.tmp > packet-$(PROTOCOL_NAME).h + del /f packet-$(PROTOCOL_NAME).c.tmp packet-$(PROTOCOL_NAME).h.tmp + +copy_files: generate_dissector fix_eol + xcopy packet-$(PROTOCOL_NAME).c ..\..\epan\dissectors /d /y + xcopy packet-$(PROTOCOL_NAME).h ..\..\epan\dissectors /d /y + diff --git a/asn1/gnm/gnm.cnf b/asn1/gnm/gnm.cnf new file mode 100644 index 0000000000..646fc59d8a --- /dev/null +++ b/asn1/gnm/gnm.cnf @@ -0,0 +1,29 @@ +# gnm.cnf + +# gnm conformation file + + +# $Id$ + + +#.MODULE_IMPORT +CMIP-1 cmip + +#.INCLUDE ../cmip/cmip-exp.cnf +#.EXPORTS + + +#.PDU + + +#.NO_EMIT + + +#.TYPE_RENAME + + +#.FIELD_RENAME + +#.FN_BODY ManagementExtension/information +/* FIX ME */ +#.END diff --git a/asn1/gnm/packet-gnm-template.c b/asn1/gnm/packet-gnm-template.c new file mode 100644 index 0000000000..c32f98dea1 --- /dev/null +++ b/asn1/gnm/packet-gnm-template.c @@ -0,0 +1,331 @@ +/* packet-gnm.c + * Routines for GENERIC NETWORK INFORMATION MODEL Data dissection + * + * Copyright 2005 , Anders Broman + * $Id$ + * + * Ethereal - Network traffic analyzer + * By Gerald Combs + * Copyright 1998 Gerald Combs + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * + * References: + * ITU-T recommendatiom M.3100 + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include +#include + +#include +#include +#include "packet-cmip.h" +#include "packet-ber.h" +#include "packet-gnm.h" + +#define PNAME "ITU M.3100 Generic Network Information Model" +#define PSNAME "GNM" +#define PFNAME "gnm" + +/* Initialize the protocol and registered fields */ +int proto_gnm = -1; + +static int hf_gnm_AdministrativeState = -1; +#include "packet-gnm-hf.c" + +/* Initialize the subtree pointers */ +#include "packet-gnm-ett.c" + +#include "packet-gnm-fn.c" + + + +static void +dissect_gnm_attribute_1(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) +{ + + dissect_gnm_RelatedObjectInstance(FALSE, tvb, 0, pinfo, parent_tree, -1); + +} + +static void +dissect_gnm_attribute_ObjectList(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) +{ + + dissect_gnm_ObjectList(FALSE, tvb, 0, pinfo, parent_tree, -1); + +} + +static void +dissect_gnm_attribute_3(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) +{ + + dissect_gnm_AlarmSeverityAssignmentList(FALSE, tvb, 0, pinfo, parent_tree, -1); + +} + +static void +dissect_gnm_attribute_6(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) +{ + + dissect_gnm_AlarmStatus(FALSE, tvb, 0, pinfo, parent_tree, hf_gnm_alarmStatus); + +} + +static void +dissect_gnm_attribute_7(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) +{ + + dissect_gnm_ChannelNumber(FALSE, tvb, 0, pinfo, parent_tree, hf_gnm_alarmStatus); + +} +static void +dissect_gnm_attribute_8(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) +{ + + dissect_gnm_CharacteristicInformation(FALSE, tvb, 0, pinfo, parent_tree, hf_gnm_alarmStatus); + +} +static void +dissect_gnm_attribute_15(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) +{ + + dissect_gnm_CrossConnectionName(FALSE, tvb, 0, pinfo, parent_tree, -1); + +} +static void +dissect_gnm_attribute_16(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) +{ + + dissect_gnm_CrossConnectionObjectPointer(FALSE, tvb, 0, pinfo, parent_tree, -1); + +} +static void +dissect_gnm_attribute_17(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) +{ + + dissect_gnm_CurrentProblemList(FALSE, tvb, 0, pinfo, parent_tree, -1); + +} +static void +dissect_gnm_attribute_18(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) +{ + + dissect_gnm_Directionality(FALSE, tvb, 0, pinfo, parent_tree, -1); + +} +static void +dissect_gnm_attribute_19(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) +{ + + dissect_gnm_DownstreamConnectivityPointer(FALSE, tvb, 0, pinfo, parent_tree, -1); + +} +static void +dissect_gnm_attribute_21(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) +{ + + dissect_gnm_ExternalTime(FALSE, tvb, 0, pinfo, parent_tree, -1); + +} + +static void +dissect_gnm_attribute_26(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) +{ + + dissect_gnm_ListOfCharacteristicInformation(FALSE, tvb, 0, pinfo, parent_tree, -1); + +} +static void +dissect_gnm_attribute_27(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) +{ + + dissect_gnm_LocationName(FALSE, tvb, 0, pinfo, parent_tree, -1); + +} +static void +dissect_gnm_attribute_34(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) +{ + + dissect_gnm_Replaceable(FALSE, tvb, 0, pinfo, parent_tree, -1); + +} +static void +dissect_gnm_attribute_SequenceOfObjectInstance(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) +{ + + dissect_gnm_SequenceOfObjectInstance(FALSE, tvb, 0, pinfo, parent_tree, -1); + +} +static void +dissect_gnm_attribute_PointerOrNull(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) +{ + + dissect_gnm_PointerOrNull(FALSE, tvb, 0, pinfo, parent_tree, -1); + +} + +static void +dissect_gnm_attribute_NameType(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) +{ + + dissect_gnm_NameType(FALSE, tvb, 0, pinfo, parent_tree, -1); + +} + +static void +dissect_gnm_attribute_ObjectInstance(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) +{ + + dissect_cmip_ObjectInstance(FALSE, tvb, 0, pinfo, parent_tree, -1); + +} +static void +dissect_gnm_attribute_Count(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) +{ + + dissect_gnm_Count(FALSE, tvb, 0, pinfo, parent_tree, -1); + +} +static void +dissect_gnm_attribute_Boolean(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) +{ + + dissect_gnm_Boolean(FALSE, tvb, 0, pinfo, parent_tree, -1); + +} +static void +dissect_smi_attribute_31(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) +{ + + dissect_gnm_AdministrativeState(FALSE, tvb, 0, pinfo, parent_tree, hf_gnm_AdministrativeState); + +} + +static void +dissect_smi_attribute_34(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) +{ + + dissect_gnm_ControlStatus(FALSE, tvb, 0, pinfo, parent_tree, -1); + +} + +static void +dissect_smi_attribute_66(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) +{ + + dissect_gnm_Packages(FALSE, tvb, 0, pinfo, parent_tree, -1); + +} + +static void +dissect_part12AttributeId_7(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) +{ + + dissect_gnm_SupportedTOClasses(FALSE, tvb, 0, pinfo, parent_tree, -1); + +} + + +void +dissect_gnm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) +{ + /* Dymmy function */ +} + +/*--- proto_register_gnm -------------------------------------------*/ +void proto_register_gnm(void) { + + /* List of fields */ + static hf_register_info hf[] = { + { &hf_gnm_AdministrativeState, + { "AdministrativeState", "gnm.AdministrativeState", + FT_UINT32, BASE_DEC, VALS(gnm_AdministrativeState_vals), 0, + "", HFILL }}, + +#include "packet-gnm-hfarr.c" + }; + + /* List of subtrees */ + static gint *ett[] = { +#include "packet-gnm-ettarr.c" + }; + + /* Register protocol */ + proto_gnm = proto_register_protocol(PNAME, PSNAME, PFNAME); + register_dissector("gnm", dissect_gnm, proto_gnm); + /* Register fields and subtrees */ + proto_register_field_array(proto_gnm, hf, array_length(hf)); + proto_register_subtree_array(ett, array_length(ett)); + +} + + +/*--- proto_reg_handoff_gnm ---------------------------------------*/ +void proto_reg_handoff_gnm(void) { + register_ber_oid_dissector("0.0.13.3100.0.7.1", dissect_gnm_attribute_1, proto_gnm, "a-TPInstance(1)"); + register_ber_oid_dissector("0.0.13.3100.0.7.2", dissect_gnm_attribute_ObjectList, proto_gnm, "affectedObjectList(2)"); + register_ber_oid_dissector("0.0.13.3100.0.7.3", dissect_gnm_attribute_3, proto_gnm, "alarmSeverityAssignmentList(3)"); + register_ber_oid_dissector("0.0.13.3100.0.7.4", dissect_gnm_attribute_NameType, proto_gnm, "alarmSeverityAssignmentProfileId(4)"); + register_ber_oid_dissector("0.0.13.3100.0.7.5", dissect_gnm_attribute_PointerOrNull, proto_gnm, "alarmSeverityAssignmentProfilePointer(5)"); + register_ber_oid_dissector("0.0.13.3100.0.7.6", dissect_gnm_attribute_6, proto_gnm, "alarmStatus(6)"); + register_ber_oid_dissector("0.0.13.3100.0.7.7", dissect_gnm_attribute_7, proto_gnm, "channelNumber(7)"); + register_ber_oid_dissector("0.0.13.3100.0.7.8", dissect_gnm_attribute_8, proto_gnm, "characteristicInformation(8)"); + register_ber_oid_dissector("0.0.13.3100.0.7.9", dissect_gnm_attribute_ObjectInstance, proto_gnm, "clientConnection(9)"); + register_ber_oid_dissector("0.0.13.3100.0.7.10", dissect_gnm_attribute_ObjectInstance, proto_gnm, "clientTrail(10)"); + + register_ber_oid_dissector("0.0.13.3100.0.7.11", dissect_gnm_attribute_Count, proto_gnm, "connectedTpCount(11)"); + register_ber_oid_dissector("0.0.13.3100.0.7.12", dissect_gnm_attribute_NameType, proto_gnm, "connectionId(12)"); + register_ber_oid_dissector("0.0.13.3100.0.7.13", dissect_gnm_attribute_NameType, proto_gnm, "cTPId(13)"); + register_ber_oid_dissector("0.0.13.3100.0.7.14", dissect_gnm_attribute_NameType, proto_gnm, "crossConnectionId(14)"); + register_ber_oid_dissector("0.0.13.3100.0.7.15", dissect_gnm_attribute_15, proto_gnm, "crossConnectionName(15)"); + register_ber_oid_dissector("0.0.13.3100.0.7.16", dissect_gnm_attribute_16, proto_gnm, "crossConnectionObjectPointer(16)"); + register_ber_oid_dissector("0.0.13.3100.0.7.17", dissect_gnm_attribute_17, proto_gnm, "currentProblemList(17)"); + register_ber_oid_dissector("0.0.13.3100.0.7.18", dissect_gnm_attribute_18, proto_gnm, "directionality(18)"); + register_ber_oid_dissector("0.0.13.3100.0.7.19", dissect_gnm_attribute_19, proto_gnm, "downstreamConnectivityPointer(19)"); + + register_ber_oid_dissector("0.0.13.3100.0.7.20", dissect_gnm_attribute_NameType, proto_gnm, "equipmentId(20)"); + register_ber_oid_dissector("0.0.13.3100.0.7.21", dissect_gnm_attribute_19, proto_gnm, "externalTime(21)"); + register_ber_oid_dissector("0.0.13.3100.0.7.22", dissect_gnm_attribute_NameType, proto_gnm, "fabricId(22)"); + register_ber_oid_dissector("0.0.13.3100.0.7.23", dissect_gnm_attribute_PointerOrNull, proto_gnm, "fromTermination(23)"); + register_ber_oid_dissector("0.0.13.3100.0.7.24", dissect_gnm_attribute_NameType, proto_gnm, "gtpId(24)"); + register_ber_oid_dissector("0.0.13.3100.0.7.25", dissect_gnm_attribute_Count, proto_gnm, "idleTpCount(25)"); + register_ber_oid_dissector("0.0.13.3100.0.7.26", dissect_gnm_attribute_26, proto_gnm, "listOfCharacteristicInfo(26)"); + register_ber_oid_dissector("0.0.13.3100.0.7.27", dissect_gnm_attribute_27, proto_gnm, "locationName(27)"); + register_ber_oid_dissector("0.0.13.3100.0.7.28", dissect_gnm_attribute_NameType, proto_gnm, "managedElementId(28)"); + register_ber_oid_dissector("0.0.13.3100.0.7.29", dissect_gnm_attribute_NameType, proto_gnm, "mpCrossConnectionId(29)"); + register_ber_oid_dissector("0.0.13.3100.0.7.30", dissect_gnm_attribute_NameType, proto_gnm, "networkId(30)"); + + register_ber_oid_dissector("0.0.13.3100.0.7.31", dissect_gnm_attribute_ObjectInstance, proto_gnm, "networkLevelPointer(31)"); + register_ber_oid_dissector("0.0.13.3100.0.7.32", dissect_gnm_attribute_Boolean, proto_gnm, "protected(32)"); + register_ber_oid_dissector("0.0.13.3100.0.7.33", dissect_gnm_attribute_Boolean, proto_gnm, "redline(33)"); + register_ber_oid_dissector("0.0.13.3100.0.7.34", dissect_gnm_attribute_34, proto_gnm, "replaceable(34)"); + register_ber_oid_dissector("0.0.13.3100.0.7.35", dissect_gnm_attribute_SequenceOfObjectInstance, proto_gnm, "serverConnectionList(35)"); + register_ber_oid_dissector("0.0.13.3100.0.7.36", dissect_gnm_attribute_ObjectList, proto_gnm, "serverTrailList(36)"); + + register_ber_oid_dissector("2.9.3.2.7.31", dissect_smi_attribute_31, proto_gnm, "smi2AttributeID (7) administrativeState(31)"); + register_ber_oid_dissector("2.9.3.2.7.34", dissect_smi_attribute_34, proto_gnm, "smi2AttributeID (7) controlStatus(34)"); + register_ber_oid_dissector("2.9.3.2.7.66", dissect_smi_attribute_66, proto_gnm, "smi2AttributeID (7) packages(66)"); + + register_ber_oid_dissector("2.9.2.12.7.7", dissect_part12AttributeId_7, proto_gnm, "part12AttributeId (7) supportedTOClasses(7)"); + + +} diff --git a/asn1/gnm/packet-gnm-template.h b/asn1/gnm/packet-gnm-template.h new file mode 100644 index 0000000000..5688725eae --- /dev/null +++ b/asn1/gnm/packet-gnm-template.h @@ -0,0 +1,34 @@ +/* packet-gnm.c + * Routines for GENERIC NETWORK INFORMATION MODEL Data dissection + * + * Copyright 2005 , Anders Broman + * $Id$ + * + * Ethereal - Network traffic analyzer + * By Gerald Combs + * Copyright 1998 Gerald Combs + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * + * References: + * ITU-T recommendatiom M.3100 + */ +#ifndef PACKET_GNM_H +#define PACKET_GNM_H + +/*#include "packet-gni-exp.h"*/ + +#endif /* PACKET_GNM_H */ -- cgit v1.2.1