aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnders Broman <anders.broman@ericsson.com>2005-08-28 14:56:03 +0000
committerAnders Broman <anders.broman@ericsson.com>2005-08-28 14:56:03 +0000
commit12c44d2d721b0321d4a9caeb28c98dc11c6d74a8 (patch)
tree1450742db023ab3dd2724a16e21b69dc119581c5
parent374c3d0b7581648039cae9a16318619ad5340e29 (diff)
Add dissection of ITU M.3100 GNM (GENERIC NETWORK INFORMATION MODEL).
svn path=/trunk/; revision=15592
-rw-r--r--asn1/gnm/GNM.asn717
-rw-r--r--asn1/gnm/Makefile.nmake42
-rw-r--r--asn1/gnm/gnm.cnf29
-rw-r--r--asn1/gnm/packet-gnm-template.c331
-rw-r--r--asn1/gnm/packet-gnm-template.h34
-rw-r--r--epan/dissectors/packet-gnm.c4289
-rw-r--r--epan/dissectors/packet-gnm.h41
7 files changed, 5483 insertions, 0 deletions
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
+--<GDMO.Document "ITU-T Recommendation M.3100">
+-- 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 <anders.broman [AT] ericsson.com>
+ * $Id$
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@ethereal.com>
+ * 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 <glib.h>
+#include <epan/packet.h>
+#include <epan/conversation.h>
+
+#include <stdio.h>
+#include <string.h>
+#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 <anders.broman [AT] ericsson.com>
+ * $Id$
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@ethereal.com>
+ * 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 */
diff --git a/epan/dissectors/packet-gnm.c b/epan/dissectors/packet-gnm.c
new file mode 100644
index 0000000000..225a45504a
--- /dev/null
+++ b/epan/dissectors/packet-gnm.c
@@ -0,0 +1,4289 @@
+/* Do not modify this file. */
+/* It is created automatically by the ASN.1 to Ethereal dissector compiler */
+/* .\packet-gnm.c */
+/* ../../tools/asn2eth.py -X -b -e -p gnm -c gnm.cnf -s packet-gnm-template GNM.asn */
+
+/* Input file: packet-gnm-template.c */
+
+/* packet-gnm.c
+ * Routines for GENERIC NETWORK INFORMATION MODEL Data dissection
+ *
+ * Copyright 2005 , Anders Broman <anders.broman [AT] ericsson.com>
+ * $Id: packet-gnm-template.c 13967 2005-03-29 14:56:09Z gerald $
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@ethereal.com>
+ * 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 <glib.h>
+#include <epan/packet.h>
+#include <epan/conversation.h>
+
+#include <stdio.h>
+#include <string.h>
+#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;
+
+/*--- Included file: packet-gnm-hf.c ---*/
+
+static int hf_gnm_globalValue = -1; /* OBJECT_IDENTIFIER */
+static int hf_gnm_localValue = -1; /* INTEGER */
+static int hf_gnm_AvailabilityStatus_item = -1; /* AvailabilityStatus_item */
+static int hf_gnm_AttributeList_item = -1; /* Attribute */
+static int hf_gnm_AdditionalInformation_item = -1; /* ManagementExtension */
+static int hf_gnm_ControlStatus_item = -1; /* ControlStatus_item */
+static int hf_gnm_identifier = -1; /* OBJECT_IDENTIFIER */
+static int hf_gnm_significance = -1; /* BOOLEAN */
+static int hf_gnm_information = -1; /* T_information */
+static int hf_gnm_MappingList_item = -1; /* PayloadLevel */
+static int hf_gnm_Packages_item = -1; /* OBJECT_IDENTIFIER */
+static int hf_gnm_objectClass = -1; /* OBJECT_IDENTIFIER */
+static int hf_gnm_characteristicInformation = -1; /* CharacteristicInformation */
+static int hf_gnm_SupportedTOClasses_item = -1; /* OBJECT_IDENTIFIER */
+static int hf_gnm_AcceptableCircuitPackTypeList_item = -1; /* PrintableString */
+static int hf_gnm_gtp = -1; /* ObjectInstance */
+static int hf_gnm_tpsAdded = -1; /* SEQUENCE_OF_ObjectInstance */
+static int hf_gnm_tpsAdded_item = -1; /* ObjectInstance */
+static int hf_gnm_mpCrossConnection = -1; /* ObjectInstance */
+static int hf_gnm_legs = -1; /* SET_OF_ToTermSpecifier */
+static int hf_gnm_legs_item = -1; /* ToTermSpecifier */
+static int hf_gnm_AddTpsToGtpInformation_item = -1; /* AddTpsToGtpInformation_item */
+static int hf_gnm_tpsAdded1 = -1; /* SEQUENCE_OF_TerminationPointInformation */
+static int hf_gnm_tpsAdded_item1 = -1; /* TerminationPointInformation */
+static int hf_gnm_AddTpsToGtpResult_item = -1; /* AddTpsToGtpResult_item */
+static int hf_gnm_failed = -1; /* Failed */
+static int hf_gnm_addedTps = -1; /* AddedTps */
+static int hf_gnm_AddTpsToTpPoolInformation_item = -1; /* AddTpsToTpPoolInformation_item */
+static int hf_gnm_tps = -1; /* SET_OF_TerminationPointInformation */
+static int hf_gnm_tps_item = -1; /* TerminationPointInformation */
+static int hf_gnm_toTpPool = -1; /* ObjectInstance */
+static int hf_gnm_AddTpsToTpPoolResult_item = -1; /* AddTpsToTpPoolResult_item */
+static int hf_gnm_tpsAddedToTpPool = -1; /* TpsAddedToTpPool */
+static int hf_gnm_problem = -1; /* ProbableCause */
+static int hf_gnm_severityAssignedServiceAffecting = -1; /* AlarmSeverityCode */
+static int hf_gnm_severityAssignedNonServiceAffecting = -1; /* AlarmSeverityCode */
+static int hf_gnm_severityAssignedServiceIndependent = -1; /* AlarmSeverityCode */
+static int hf_gnm_AlarmSeverityAssignmentList_item = -1; /* AlarmSeverityAssignment */
+static int hf_gnm_characteristicInfoType = -1; /* CharacteristicInformation */
+static int hf_gnm_bundlingFactor = -1; /* INTEGER */
+static int hf_gnm_pointToPoint = -1; /* PointToPoint */
+static int hf_gnm_pointToMultipoint = -1; /* PointToMultipoint */
+static int hf_gnm_ConnectInformation_item = -1; /* ConnectInformation_item */
+static int hf_gnm_itemType = -1; /* T_itemType */
+static int hf_gnm_unidirectional = -1; /* ConnectionType */
+static int hf_gnm_bidirectional = -1; /* ConnectionTypeBi */
+static int hf_gnm_addleg = -1; /* AddLeg */
+static int hf_gnm_administrativeState = -1; /* AdministrativeState */
+static int hf_gnm_namedCrossConnection = -1; /* NamedCrossConnection */
+static int hf_gnm_userLabel = -1; /* UserLabel */
+static int hf_gnm_redline = -1; /* Boolean */
+static int hf_gnm_additionalInfo = -1; /* AdditionalInformation */
+static int hf_gnm_none = -1; /* NULL */
+static int hf_gnm_single = -1; /* ObjectInstance */
+static int hf_gnm_concatenated = -1; /* SEQUENCE_OF_ObjectInstance */
+static int hf_gnm_concatenated_item = -1; /* ObjectInstance */
+static int hf_gnm_ConnectResult_item = -1; /* ConnectResult_item */
+static int hf_gnm_connected = -1; /* Connected */
+static int hf_gnm_explicitPToP = -1; /* ExplicitPtoP */
+static int hf_gnm_ptoTpPool = -1; /* PtoTPPool */
+static int hf_gnm_explicitPtoMP = -1; /* ExplicitPtoMP */
+static int hf_gnm_ptoMPools = -1; /* PtoMPools */
+static int hf_gnm_notConnected = -1; /* ObjectInstance */
+static int hf_gnm_connected1 = -1; /* ObjectInstance */
+static int hf_gnm_multipleConnections = -1; /* MultipleConnections */
+static int hf_gnm_alarmStatus = -1; /* AlarmStatus */
+static int hf_gnm_CurrentProblemList_item = -1; /* CurrentProblem */
+static int hf_gnm_DisconnectInformation_item = -1; /* ObjectInstance */
+static int hf_gnm_DisconnectResult_item = -1; /* DisconnectResult_item */
+static int hf_gnm_disconnected = -1; /* ObjectInstance */
+static int hf_gnm_broadcast = -1; /* SET_OF_ObjectInstance */
+static int hf_gnm_broadcast_item = -1; /* ObjectInstance */
+static int hf_gnm_broadcastConcatenated = -1; /* T_broadcastConcatenated */
+static int hf_gnm_broadcastConcatenated_item = -1; /* SEQUENCE_OF_ObjectInstance */
+static int hf_gnm__item_item = -1; /* ObjectInstance */
+static int hf_gnm_fromTp = -1; /* ExplicitTP */
+static int hf_gnm_toTPs = -1; /* SET_OF_ExplicitTP */
+static int hf_gnm_toTPs_item = -1; /* ExplicitTP */
+static int hf_gnm_toTp = -1; /* ExplicitTP */
+static int hf_gnm_oneTPorGTP = -1; /* ObjectInstance */
+static int hf_gnm_listofTPs = -1; /* SEQUENCE_OF_ObjectInstance */
+static int hf_gnm_listofTPs_item = -1; /* ObjectInstance */
+static int hf_gnm_EquipmentHolderAddress_item = -1; /* PrintableString */
+static int hf_gnm_logicalProblem = -1; /* LogicalProblem */
+static int hf_gnm_resourceProblem = -1; /* ResourceProblem */
+static int hf_gnm_GeneralError_item = -1; /* GeneralError_item */
+static int hf_gnm_cause = -1; /* GeneralErrorCause */
+static int hf_gnm_details = -1; /* GraphicString */
+static int hf_gnm_relatedObjects = -1; /* SET_OF_ObjectInstance */
+static int hf_gnm_relatedObjects_item = -1; /* ObjectInstance */
+static int hf_gnm_attributeList = -1; /* AttributeList */
+static int hf_gnm_holderEmpty = -1; /* NULL */
+static int hf_gnm_inTheAcceptableList = -1; /* CircuitPackType */
+static int hf_gnm_notInTheAcceptableList = -1; /* CircuitPackType */
+static int hf_gnm_unknownType = -1; /* NULL */
+static int hf_gnm_connection = -1; /* ObjectInstance */
+static int hf_gnm_unchangedTP = -1; /* ObjectInstance */
+static int hf_gnm_newTP = -1; /* ObjectInstance */
+static int hf_gnm_pass = -1; /* Connected */
+static int hf_gnm_ListOfCharacteristicInformation_item = -1; /* CharacteristicInformation */
+static int hf_gnm_ListOfTPs_item = -1; /* ObjectInstance */
+static int hf_gnm_problemCause = -1; /* ProblemCause */
+static int hf_gnm_incorrectInstances = -1; /* SET_OF_ObjectInstance */
+static int hf_gnm_incorrectInstances_item = -1; /* ObjectInstance */
+static int hf_gnm_MultipleConnections_item = -1; /* MultipleConnections_item */
+static int hf_gnm_downstreamNotConnected = -1; /* ObjectInstance */
+static int hf_gnm_downstreamConnected = -1; /* ObjectInstance */
+static int hf_gnm_upstreamNotConnected = -1; /* ObjectInstance */
+static int hf_gnm_upstreamConnected = -1; /* ObjectInstance */
+static int hf_gnm_redline1 = -1; /* BOOLEAN */
+static int hf_gnm_name = -1; /* CrossConnectionName */
+static int hf_gnm_numericName = -1; /* INTEGER */
+static int hf_gnm_pString = -1; /* GraphicString */
+static int hf_gnm_ObjectList_item = -1; /* ObjectInstance */
+static int hf_gnm_diverse = -1; /* T_diverse */
+static int hf_gnm_downstream = -1; /* SignalRateAndMappingList */
+static int hf_gnm_upStream = -1; /* SignalRateAndMappingList */
+static int hf_gnm_uniform = -1; /* SignalRateAndMappingList */
+static int hf_gnm_pointer = -1; /* ObjectInstance */
+static int hf_gnm_null = -1; /* NULL */
+static int hf_gnm_fromTp1 = -1; /* ObjectInstance */
+static int hf_gnm_toTp1 = -1; /* ObjectInstance */
+static int hf_gnm_xCon = -1; /* ObjectInstance */
+static int hf_gnm_toTps = -1; /* T_toTps */
+static int hf_gnm_toTps_item = -1; /* T_toTps_item */
+static int hf_gnm_tp = -1; /* ObjectInstance */
+static int hf_gnm_xConnection = -1; /* ObjectInstance */
+static int hf_gnm_mpXCon = -1; /* ObjectInstance */
+static int hf_gnm_unknown = -1; /* NULL */
+static int hf_gnm_integerValue = -1; /* INTEGER */
+static int hf_gnm_toTPPools = -1; /* ToTPPools */
+static int hf_gnm_notAvailable = -1; /* NULL */
+static int hf_gnm_relatedObject = -1; /* ObjectInstance */
+static int hf_gnm_RemoveTpsFromGtpInformation_item = -1; /* RemoveTpsFromGtpInformation_item */
+static int hf_gnm_fromGtp = -1; /* ObjectInstance */
+static int hf_gnm_tps1 = -1; /* SET_OF_ObjectInstance */
+static int hf_gnm_tps_item1 = -1; /* ObjectInstance */
+static int hf_gnm_RemoveTpsFromGtpResult_item = -1; /* RemoveTpsFromGtpResult_item */
+static int hf_gnm_removed = -1; /* RemoveTpsResultInformation */
+static int hf_gnm_RemoveTpsFromTpPoolInformation_item = -1; /* RemoveTpsFromTpPoolInformation_item */
+static int hf_gnm_fromTpPool = -1; /* ObjectInstance */
+static int hf_gnm_RemoveTpsFromTpPoolResult_item = -1; /* RemoveTpsFromTpPoolResult_item */
+static int hf_gnm_deletedTpPoolOrGTP = -1; /* ObjectInstance */
+static int hf_gnm_SequenceOfObjectInstance_item = -1; /* ObjectInstance */
+static int hf_gnm_SignalRateAndMappingList_item = -1; /* SignalRateAndMappingList_item */
+static int hf_gnm_signalRate = -1; /* SignalRate */
+static int hf_gnm_mappingList = -1; /* MappingList */
+static int hf_gnm_wavelength = -1; /* WaveLength */
+static int hf_gnm_simple = -1; /* CharacteristicInformation */
+static int hf_gnm_bundle = -1; /* Bundle */
+static int hf_gnm_complex = -1; /* SEQUENCE_OF_Bundle */
+static int hf_gnm_complex_item = -1; /* Bundle */
+static int hf_gnm_notApplicable = -1; /* NULL */
+static int hf_gnm_softwareInstances = -1; /* SEQUENCE_OF_ObjectInstance */
+static int hf_gnm_softwareInstances_item = -1; /* ObjectInstance */
+static int hf_gnm_softwareIdentifiers = -1; /* T_softwareIdentifiers */
+static int hf_gnm_softwareIdentifiers_item = -1; /* PrintableString */
+static int hf_gnm_SupportableClientList_item = -1; /* ObjectClass */
+static int hf_gnm_sourceType = -1; /* T_sourceType */
+static int hf_gnm_sourceID = -1; /* ObjectInstance */
+static int hf_gnm_primaryTimingSource = -1; /* SystemTiming */
+static int hf_gnm_secondaryTimingSource = -1; /* SystemTiming */
+static int hf_gnm_SwitchOverInformation_item = -1; /* IndividualSwitchOver */
+static int hf_gnm_SwitchOverResult_item = -1; /* IndividualResult */
+static int hf_gnm_tPOrGTP = -1; /* ObjectInstance */
+static int hf_gnm_sourceTP = -1; /* ObjectInstance */
+static int hf_gnm_sinkTP = -1; /* ObjectInstance */
+static int hf_gnm_toTpOrGTP = -1; /* ExplicitTP */
+static int hf_gnm_toPool = -1; /* ObjectInstance */
+static int hf_gnm_ToTPPools_item = -1; /* ToTPPools_item */
+static int hf_gnm_tpPoolId = -1; /* ObjectInstance */
+static int hf_gnm_numberOfTPs = -1; /* INTEGER */
+static int hf_gnm_tpPool = -1; /* ObjectInstance */
+static int hf_gnm_TpsInGtpList_item = -1; /* ObjectInstance */
+/* named bits */
+static int hf_gnm_TransmissionCharacteristics_satellite = -1;
+static int hf_gnm_TransmissionCharacteristics_dCME = -1;
+static int hf_gnm_TransmissionCharacteristics_echoControl = -1;
+
+/*--- End of included file: packet-gnm-hf.c ---*/
+
+
+/* Initialize the subtree pointers */
+
+/*--- Included file: packet-gnm-ett.c ---*/
+
+static gint ett_gnm_ProbableCause = -1;
+static gint ett_gnm_AvailabilityStatus = -1;
+static gint ett_gnm_AttributeList = -1;
+static gint ett_gnm_AdditionalInformation = -1;
+static gint ett_gnm_ControlStatus = -1;
+static gint ett_gnm_ManagementExtension = -1;
+static gint ett_gnm_MappingList = -1;
+static gint ett_gnm_Packages = -1;
+static gint ett_gnm_SignalRate = -1;
+static gint ett_gnm_SupportedTOClasses = -1;
+static gint ett_gnm_AcceptableCircuitPackTypeList = -1;
+static gint ett_gnm_AddedTps = -1;
+static gint ett_gnm_SEQUENCE_OF_ObjectInstance = -1;
+static gint ett_gnm_AddLeg = -1;
+static gint ett_gnm_SET_OF_ToTermSpecifier = -1;
+static gint ett_gnm_AddTpsToGtpInformation = -1;
+static gint ett_gnm_AddTpsToGtpInformation_item = -1;
+static gint ett_gnm_SEQUENCE_OF_TerminationPointInformation = -1;
+static gint ett_gnm_AddTpsToGtpResult = -1;
+static gint ett_gnm_AddTpsToGtpResult_item = -1;
+static gint ett_gnm_AddTpsToTpPoolInformation = -1;
+static gint ett_gnm_AddTpsToTpPoolInformation_item = -1;
+static gint ett_gnm_SET_OF_TerminationPointInformation = -1;
+static gint ett_gnm_AddTpsToTpPoolResult = -1;
+static gint ett_gnm_AddTpsToTpPoolResult_item = -1;
+static gint ett_gnm_AlarmSeverityAssignment = -1;
+static gint ett_gnm_AlarmSeverityAssignmentList = -1;
+static gint ett_gnm_Bundle = -1;
+static gint ett_gnm_Connected = -1;
+static gint ett_gnm_ConnectInformation = -1;
+static gint ett_gnm_ConnectInformation_item = -1;
+static gint ett_gnm_T_itemType = -1;
+static gint ett_gnm_ConnectivityPointer = -1;
+static gint ett_gnm_ConnectResult = -1;
+static gint ett_gnm_ConnectResult_item = -1;
+static gint ett_gnm_ConnectionType = -1;
+static gint ett_gnm_ConnectionTypeBi = -1;
+static gint ett_gnm_CrossConnectionObjectPointer = -1;
+static gint ett_gnm_CurrentProblem = -1;
+static gint ett_gnm_CurrentProblemList = -1;
+static gint ett_gnm_DisconnectInformation = -1;
+static gint ett_gnm_DisconnectResult = -1;
+static gint ett_gnm_DisconnectResult_item = -1;
+static gint ett_gnm_DownstreamConnectivityPointer = -1;
+static gint ett_gnm_SET_OF_ObjectInstance = -1;
+static gint ett_gnm_T_broadcastConcatenated = -1;
+static gint ett_gnm_ExplicitPtoMP = -1;
+static gint ett_gnm_SET_OF_ExplicitTP = -1;
+static gint ett_gnm_ExplicitPtoP = -1;
+static gint ett_gnm_ExplicitTP = -1;
+static gint ett_gnm_EquipmentHolderAddress = -1;
+static gint ett_gnm_Failed = -1;
+static gint ett_gnm_GeneralError = -1;
+static gint ett_gnm_GeneralError_item = -1;
+static gint ett_gnm_GeneralErrorCause = -1;
+static gint ett_gnm_HolderStatus = -1;
+static gint ett_gnm_IndividualSwitchOver = -1;
+static gint ett_gnm_IndividualResult = -1;
+static gint ett_gnm_ListOfCharacteristicInformation = -1;
+static gint ett_gnm_ListOfTPs = -1;
+static gint ett_gnm_LogicalProblem = -1;
+static gint ett_gnm_MultipleConnections = -1;
+static gint ett_gnm_MultipleConnections_item = -1;
+static gint ett_gnm_NamedCrossConnection = -1;
+static gint ett_gnm_NameType = -1;
+static gint ett_gnm_ObjectList = -1;
+static gint ett_gnm_PhysicalPortSignalRateAndMappingList = -1;
+static gint ett_gnm_T_diverse = -1;
+static gint ett_gnm_PointerOrNull = -1;
+static gint ett_gnm_PointToPoint = -1;
+static gint ett_gnm_PointToMultipoint = -1;
+static gint ett_gnm_T_toTps = -1;
+static gint ett_gnm_T_toTps_item = -1;
+static gint ett_gnm_ProblemCause = -1;
+static gint ett_gnm_PtoMPools = -1;
+static gint ett_gnm_PtoTPPool = -1;
+static gint ett_gnm_RelatedObjectInstance = -1;
+static gint ett_gnm_RemoveTpsFromGtpInformation = -1;
+static gint ett_gnm_RemoveTpsFromGtpInformation_item = -1;
+static gint ett_gnm_RemoveTpsFromGtpResult = -1;
+static gint ett_gnm_RemoveTpsFromGtpResult_item = -1;
+static gint ett_gnm_RemoveTpsFromTpPoolInformation = -1;
+static gint ett_gnm_RemoveTpsFromTpPoolInformation_item = -1;
+static gint ett_gnm_RemoveTpsFromTpPoolResult = -1;
+static gint ett_gnm_RemoveTpsFromTpPoolResult_item = -1;
+static gint ett_gnm_RemoveTpsResultInformation = -1;
+static gint ett_gnm_ResourceProblem = -1;
+static gint ett_gnm_SequenceOfObjectInstance = -1;
+static gint ett_gnm_SignalRateAndMappingList = -1;
+static gint ett_gnm_SignalRateAndMappingList_item = -1;
+static gint ett_gnm_SignalType = -1;
+static gint ett_gnm_SEQUENCE_OF_Bundle = -1;
+static gint ett_gnm_SubordinateCircuitPackSoftwareLoad = -1;
+static gint ett_gnm_T_softwareIdentifiers = -1;
+static gint ett_gnm_SupportableClientList = -1;
+static gint ett_gnm_SystemTiming = -1;
+static gint ett_gnm_SystemTimingSource = -1;
+static gint ett_gnm_SwitchOverInformation = -1;
+static gint ett_gnm_SwitchOverResult = -1;
+static gint ett_gnm_TerminationPointInformation = -1;
+static gint ett_gnm_ToTermSpecifier = -1;
+static gint ett_gnm_ToTPPools = -1;
+static gint ett_gnm_ToTPPools_item = -1;
+static gint ett_gnm_TpsAddedToTpPool = -1;
+static gint ett_gnm_TpsInGtpList = -1;
+static gint ett_gnm_TransmissionCharacteristics = -1;
+
+/*--- End of included file: packet-gnm-ett.c ---*/
+
+
+
+/*--- Included file: packet-gnm-fn.c ---*/
+
+/*--- Fields for imported types ---*/
+
+static int dissect_AttributeList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_Attribute(FALSE, tvb, offset, pinfo, tree, hf_gnm_AttributeList_item);
+}
+static int dissect_gtp(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_gtp);
+}
+static int dissect_tpsAdded_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_tpsAdded_item);
+}
+static int dissect_mpCrossConnection(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_mpCrossConnection);
+}
+static int dissect_toTpPool(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_toTpPool);
+}
+static int dissect_single(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_single);
+}
+static int dissect_concatenated_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_concatenated_item);
+}
+static int dissect_notConnected_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(TRUE, tvb, offset, pinfo, tree, hf_gnm_notConnected);
+}
+static int dissect_connected1_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(TRUE, tvb, offset, pinfo, tree, hf_gnm_connected1);
+}
+static int dissect_DisconnectInformation_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_DisconnectInformation_item);
+}
+static int dissect_disconnected(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_disconnected);
+}
+static int dissect_broadcast_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_broadcast_item);
+}
+static int dissect__item_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm__item_item);
+}
+static int dissect_oneTPorGTP(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_oneTPorGTP);
+}
+static int dissect_listofTPs_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_listofTPs_item);
+}
+static int dissect_relatedObjects_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_relatedObjects_item);
+}
+static int dissect_connection(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_connection);
+}
+static int dissect_unchangedTP(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_unchangedTP);
+}
+static int dissect_newTP(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_newTP);
+}
+static int dissect_ListOfTPs_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_ListOfTPs_item);
+}
+static int dissect_incorrectInstances_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_incorrectInstances_item);
+}
+static int dissect_downstreamNotConnected_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(TRUE, tvb, offset, pinfo, tree, hf_gnm_downstreamNotConnected);
+}
+static int dissect_downstreamConnected_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(TRUE, tvb, offset, pinfo, tree, hf_gnm_downstreamConnected);
+}
+static int dissect_upstreamNotConnected_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(TRUE, tvb, offset, pinfo, tree, hf_gnm_upstreamNotConnected);
+}
+static int dissect_upstreamConnected_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(TRUE, tvb, offset, pinfo, tree, hf_gnm_upstreamConnected);
+}
+static int dissect_ObjectList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_ObjectList_item);
+}
+static int dissect_pointer(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_pointer);
+}
+static int dissect_fromTp1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_fromTp1);
+}
+static int dissect_toTp1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_toTp1);
+}
+static int dissect_xCon(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_xCon);
+}
+static int dissect_tp(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_tp);
+}
+static int dissect_xConnection(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_xConnection);
+}
+static int dissect_mpXCon(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_mpXCon);
+}
+static int dissect_relatedObject(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_relatedObject);
+}
+static int dissect_fromGtp(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_fromGtp);
+}
+static int dissect_tps_item1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_tps_item1);
+}
+static int dissect_fromTpPool(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_fromTpPool);
+}
+static int dissect_deletedTpPoolOrGTP(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_deletedTpPoolOrGTP);
+}
+static int dissect_SequenceOfObjectInstance_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_SequenceOfObjectInstance_item);
+}
+static int dissect_softwareInstances_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_softwareInstances_item);
+}
+static int dissect_SupportableClientList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectClass(FALSE, tvb, offset, pinfo, tree, hf_gnm_SupportableClientList_item);
+}
+static int dissect_sourceID(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_sourceID);
+}
+static int dissect_tPOrGTP_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(TRUE, tvb, offset, pinfo, tree, hf_gnm_tPOrGTP);
+}
+static int dissect_sourceTP_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(TRUE, tvb, offset, pinfo, tree, hf_gnm_sourceTP);
+}
+static int dissect_sinkTP_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(TRUE, tvb, offset, pinfo, tree, hf_gnm_sinkTP);
+}
+static int dissect_toPool_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(TRUE, tvb, offset, pinfo, tree, hf_gnm_toPool);
+}
+static int dissect_tpPoolId(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_tpPoolId);
+}
+static int dissect_tpPool(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_tpPool);
+}
+static int dissect_TpsInGtpList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_cmip_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_TpsInGtpList_item);
+}
+
+
+
+static int
+dissect_gnm_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_globalValue(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_gnm_globalValue);
+}
+static int dissect_identifier(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_gnm_identifier);
+}
+static int dissect_Packages_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_gnm_Packages_item);
+}
+static int dissect_objectClass_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_OBJECT_IDENTIFIER(TRUE, tvb, offset, pinfo, tree, hf_gnm_objectClass);
+}
+static int dissect_SupportedTOClasses_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_OBJECT_IDENTIFIER(FALSE, tvb, offset, pinfo, tree, hf_gnm_SupportedTOClasses_item);
+}
+
+
+
+static int
+dissect_gnm_INTEGER(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_localValue(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_gnm_localValue);
+}
+static int dissect_bundlingFactor(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_gnm_bundlingFactor);
+}
+static int dissect_numericName(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_gnm_numericName);
+}
+static int dissect_integerValue(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_gnm_integerValue);
+}
+static int dissect_numberOfTPs(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_INTEGER(FALSE, tvb, offset, pinfo, tree, hf_gnm_numberOfTPs);
+}
+
+
+static const value_string gnm_ProbableCause_vals[] = {
+ { 0, "globalValue" },
+ { 1, "localValue" },
+ { 0, NULL }
+};
+
+static const ber_choice_t ProbableCause_choice[] = {
+ { 0, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_globalValue },
+ { 1, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_localValue },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_ProbableCause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ ProbableCause_choice, hf_index, ett_gnm_ProbableCause,
+ NULL);
+
+ return offset;
+}
+static int dissect_problem(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_ProbableCause(FALSE, tvb, offset, pinfo, tree, hf_gnm_problem);
+}
+static int dissect_problem_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_ProbableCause(TRUE, tvb, offset, pinfo, tree, hf_gnm_problem);
+}
+
+
+static const value_string gnm_AdministrativeState_vals[] = {
+ { 0, "locked" },
+ { 1, "unlocked" },
+ { 2, "shuttingDown" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gnm_AdministrativeState(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_administrativeState(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_AdministrativeState(FALSE, tvb, offset, pinfo, tree, hf_gnm_administrativeState);
+}
+
+
+static const value_string gnm_AvailabilityStatus_item_vals[] = {
+ { 0, "inTest" },
+ { 1, "failed" },
+ { 2, "powerOff" },
+ { 3, "offLine" },
+ { 4, "offDuty" },
+ { 5, "dependency" },
+ { 6, "degraded" },
+ { 7, "notInstalled" },
+ { 8, "logFull" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gnm_AvailabilityStatus_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_AvailabilityStatus_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_AvailabilityStatus_item(FALSE, tvb, offset, pinfo, tree, hf_gnm_AvailabilityStatus_item);
+}
+
+
+static const ber_sequence_t AvailabilityStatus_set_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_AvailabilityStatus_item },
+};
+
+static int
+dissect_gnm_AvailabilityStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
+ AvailabilityStatus_set_of, hf_index, ett_gnm_AvailabilityStatus);
+
+ return offset;
+}
+
+
+static const ber_sequence_t AttributeList_set_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_AttributeList_item },
+};
+
+static int
+dissect_gnm_AttributeList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
+ AttributeList_set_of, hf_index, ett_gnm_AttributeList);
+
+ return offset;
+}
+static int dissect_attributeList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_AttributeList(TRUE, tvb, offset, pinfo, tree, hf_gnm_attributeList);
+}
+
+
+
+static int
+dissect_gnm_BOOLEAN(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_boolean(implicit_tag, pinfo, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+static int dissect_significance_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_BOOLEAN(TRUE, tvb, offset, pinfo, tree, hf_gnm_significance);
+}
+static int dissect_redline1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_BOOLEAN(FALSE, tvb, offset, pinfo, tree, hf_gnm_redline1);
+}
+
+
+
+static int
+dissect_gnm_T_information(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+/* FIX ME */
+
+ return offset;
+}
+static int dissect_information_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_T_information(TRUE, tvb, offset, pinfo, tree, hf_gnm_information);
+}
+
+
+static const ber_sequence_t ManagementExtension_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_identifier },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_significance_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_IMPLTAG, dissect_information_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_ManagementExtension(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ ManagementExtension_sequence, hf_index, ett_gnm_ManagementExtension);
+
+ return offset;
+}
+static int dissect_AdditionalInformation_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_ManagementExtension(FALSE, tvb, offset, pinfo, tree, hf_gnm_AdditionalInformation_item);
+}
+
+
+static const ber_sequence_t AdditionalInformation_set_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_AdditionalInformation_item },
+};
+
+static int
+dissect_gnm_AdditionalInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
+ AdditionalInformation_set_of, hf_index, ett_gnm_AdditionalInformation);
+
+ return offset;
+}
+static int dissect_additionalInfo_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_AdditionalInformation(TRUE, tvb, offset, pinfo, tree, hf_gnm_additionalInfo);
+}
+
+
+static const value_string gnm_ControlStatus_item_vals[] = {
+ { 0, "subjectToTest" },
+ { 1, "partOfServicesLocked" },
+ { 2, "reservedForTest" },
+ { 3, "suspended" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gnm_ControlStatus_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_ControlStatus_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_ControlStatus_item(FALSE, tvb, offset, pinfo, tree, hf_gnm_ControlStatus_item);
+}
+
+
+static const ber_sequence_t ControlStatus_set_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_ControlStatus_item },
+};
+
+static int
+dissect_gnm_ControlStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
+ ControlStatus_set_of, hf_index, ett_gnm_ControlStatus);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gnm_CharacteristicInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_object_identifier(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_characteristicInformation_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_CharacteristicInformation(TRUE, tvb, offset, pinfo, tree, hf_gnm_characteristicInformation);
+}
+static int dissect_characteristicInfoType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_CharacteristicInformation(FALSE, tvb, offset, pinfo, tree, hf_gnm_characteristicInfoType);
+}
+static int dissect_ListOfCharacteristicInformation_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_CharacteristicInformation(FALSE, tvb, offset, pinfo, tree, hf_gnm_ListOfCharacteristicInformation_item);
+}
+static int dissect_simple(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_CharacteristicInformation(FALSE, tvb, offset, pinfo, tree, hf_gnm_simple);
+}
+
+
+
+static int
+dissect_gnm_PayloadLevel(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_gnm_CharacteristicInformation(implicit_tag, tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+static int dissect_MappingList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_PayloadLevel(FALSE, tvb, offset, pinfo, tree, hf_gnm_MappingList_item);
+}
+
+
+static const ber_sequence_t MappingList_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_MappingList_item },
+};
+
+static int
+dissect_gnm_MappingList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ MappingList_sequence_of, hf_index, ett_gnm_MappingList);
+
+ return offset;
+}
+static int dissect_mappingList(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_MappingList(FALSE, tvb, offset, pinfo, tree, hf_gnm_mappingList);
+}
+
+
+static const ber_sequence_t Packages_set_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_Packages_item },
+};
+
+static int
+dissect_gnm_Packages(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
+ Packages_set_of, hf_index, ett_gnm_Packages);
+
+ return offset;
+}
+
+
+static const value_string gnm_SignalRate_vals[] = {
+ { 0, "objectClass" },
+ { 1, "characteristicInformation" },
+ { 0, NULL }
+};
+
+static const ber_choice_t SignalRate_choice[] = {
+ { 0, BER_CLASS_CON, 0, 0, dissect_objectClass_impl },
+ { 1, BER_CLASS_CON, 1, 0, dissect_characteristicInformation_impl },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_SignalRate(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ SignalRate_choice, hf_index, ett_gnm_SignalRate,
+ NULL);
+
+ return offset;
+}
+static int dissect_signalRate(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_SignalRate(FALSE, tvb, offset, pinfo, tree, hf_gnm_signalRate);
+}
+
+
+static const ber_sequence_t SupportedTOClasses_set_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_SupportedTOClasses_item },
+};
+
+static int
+dissect_gnm_SupportedTOClasses(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
+ SupportedTOClasses_set_of, hf_index, ett_gnm_SupportedTOClasses);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gnm_PrintableString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
+ pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_AcceptableCircuitPackTypeList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_PrintableString(FALSE, tvb, offset, pinfo, tree, hf_gnm_AcceptableCircuitPackTypeList_item);
+}
+static int dissect_EquipmentHolderAddress_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_PrintableString(FALSE, tvb, offset, pinfo, tree, hf_gnm_EquipmentHolderAddress_item);
+}
+static int dissect_softwareIdentifiers_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_PrintableString(FALSE, tvb, offset, pinfo, tree, hf_gnm_softwareIdentifiers_item);
+}
+
+
+static const ber_sequence_t AcceptableCircuitPackTypeList_set_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_AcceptableCircuitPackTypeList_item },
+};
+
+static int
+dissect_gnm_AcceptableCircuitPackTypeList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
+ AcceptableCircuitPackTypeList_set_of, hf_index, ett_gnm_AcceptableCircuitPackTypeList);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SEQUENCE_OF_ObjectInstance_sequence_of[1] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_tpsAdded_item },
+};
+
+static int
+dissect_gnm_SEQUENCE_OF_ObjectInstance(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ SEQUENCE_OF_ObjectInstance_sequence_of, hf_index, ett_gnm_SEQUENCE_OF_ObjectInstance);
+
+ return offset;
+}
+static int dissect_tpsAdded(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_SEQUENCE_OF_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_tpsAdded);
+}
+static int dissect_concatenated(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_SEQUENCE_OF_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_concatenated);
+}
+static int dissect_broadcastConcatenated_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_SEQUENCE_OF_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_broadcastConcatenated_item);
+}
+static int dissect_listofTPs(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_SEQUENCE_OF_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_listofTPs);
+}
+static int dissect_softwareInstances_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_SEQUENCE_OF_ObjectInstance(TRUE, tvb, offset, pinfo, tree, hf_gnm_softwareInstances);
+}
+
+
+static const ber_sequence_t AddedTps_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_gtp },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_tpsAdded },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_AddedTps(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ AddedTps_sequence, hf_index, ett_gnm_AddedTps);
+
+ return offset;
+}
+static int dissect_addedTps_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_AddedTps(TRUE, tvb, offset, pinfo, tree, hf_gnm_addedTps);
+}
+
+
+static const value_string gnm_ExplicitTP_vals[] = {
+ { 0, "oneTPorGTP" },
+ { 1, "listofTPs" },
+ { 0, NULL }
+};
+
+static const ber_choice_t ExplicitTP_choice[] = {
+ { 0, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_oneTPorGTP },
+ { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_listofTPs },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_ExplicitTP(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ ExplicitTP_choice, hf_index, ett_gnm_ExplicitTP,
+ NULL);
+
+ return offset;
+}
+static int dissect_fromTp(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_ExplicitTP(FALSE, tvb, offset, pinfo, tree, hf_gnm_fromTp);
+}
+static int dissect_toTPs_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_ExplicitTP(FALSE, tvb, offset, pinfo, tree, hf_gnm_toTPs_item);
+}
+static int dissect_toTp(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_ExplicitTP(FALSE, tvb, offset, pinfo, tree, hf_gnm_toTp);
+}
+static int dissect_toTpOrGTP_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_ExplicitTP(TRUE, tvb, offset, pinfo, tree, hf_gnm_toTpOrGTP);
+}
+
+
+static const value_string gnm_ToTermSpecifier_vals[] = {
+ { 0, "toTpOrGTP" },
+ { 1, "toPool" },
+ { 0, NULL }
+};
+
+static const ber_choice_t ToTermSpecifier_choice[] = {
+ { 0, BER_CLASS_CON, 0, 0, dissect_toTpOrGTP_impl },
+ { 1, BER_CLASS_CON, 1, 0, dissect_toPool_impl },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_ToTermSpecifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ ToTermSpecifier_choice, hf_index, ett_gnm_ToTermSpecifier,
+ NULL);
+
+ return offset;
+}
+static int dissect_legs_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_ToTermSpecifier(FALSE, tvb, offset, pinfo, tree, hf_gnm_legs_item);
+}
+
+
+static const ber_sequence_t SET_OF_ToTermSpecifier_set_of[1] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_legs_item },
+};
+
+static int
+dissect_gnm_SET_OF_ToTermSpecifier(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
+ SET_OF_ToTermSpecifier_set_of, hf_index, ett_gnm_SET_OF_ToTermSpecifier);
+
+ return offset;
+}
+static int dissect_legs(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_SET_OF_ToTermSpecifier(FALSE, tvb, offset, pinfo, tree, hf_gnm_legs);
+}
+
+
+static const ber_sequence_t AddLeg_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_mpCrossConnection },
+ { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_legs },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_AddLeg(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ AddLeg_sequence, hf_index, ett_gnm_AddLeg);
+
+ return offset;
+}
+static int dissect_addleg_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_AddLeg(TRUE, tvb, offset, pinfo, tree, hf_gnm_addleg);
+}
+
+
+static const value_string gnm_TerminationPointInformation_vals[] = {
+ { 0, "tPOrGTP" },
+ { 1, "sourceTP" },
+ { 2, "sinkTP" },
+ { 0, NULL }
+};
+
+static const ber_choice_t TerminationPointInformation_choice[] = {
+ { 0, BER_CLASS_CON, 0, 0, dissect_tPOrGTP_impl },
+ { 1, BER_CLASS_CON, 1, 0, dissect_sourceTP_impl },
+ { 2, BER_CLASS_CON, 2, 0, dissect_sinkTP_impl },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_TerminationPointInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ TerminationPointInformation_choice, hf_index, ett_gnm_TerminationPointInformation,
+ NULL);
+
+ return offset;
+}
+static int dissect_tpsAdded_item1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_TerminationPointInformation(FALSE, tvb, offset, pinfo, tree, hf_gnm_tpsAdded_item1);
+}
+static int dissect_tps_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_TerminationPointInformation(FALSE, tvb, offset, pinfo, tree, hf_gnm_tps_item);
+}
+
+
+static const ber_sequence_t SEQUENCE_OF_TerminationPointInformation_sequence_of[1] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_tpsAdded_item1 },
+};
+
+static int
+dissect_gnm_SEQUENCE_OF_TerminationPointInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ SEQUENCE_OF_TerminationPointInformation_sequence_of, hf_index, ett_gnm_SEQUENCE_OF_TerminationPointInformation);
+
+ return offset;
+}
+static int dissect_tpsAdded1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_SEQUENCE_OF_TerminationPointInformation(FALSE, tvb, offset, pinfo, tree, hf_gnm_tpsAdded1);
+}
+
+
+static const ber_sequence_t AddTpsToGtpInformation_item_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_tpsAdded1 },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_gtp },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_AddTpsToGtpInformation_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ AddTpsToGtpInformation_item_sequence, hf_index, ett_gnm_AddTpsToGtpInformation_item);
+
+ return offset;
+}
+static int dissect_AddTpsToGtpInformation_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_AddTpsToGtpInformation_item(FALSE, tvb, offset, pinfo, tree, hf_gnm_AddTpsToGtpInformation_item);
+}
+
+
+static const ber_sequence_t AddTpsToGtpInformation_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_AddTpsToGtpInformation_item },
+};
+
+static int
+dissect_gnm_AddTpsToGtpInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ AddTpsToGtpInformation_sequence_of, hf_index, ett_gnm_AddTpsToGtpInformation);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gnm_NULL(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_null(implicit_tag, pinfo, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+static int dissect_none(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_NULL(FALSE, tvb, offset, pinfo, tree, hf_gnm_none);
+}
+static int dissect_holderEmpty_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_NULL(TRUE, tvb, offset, pinfo, tree, hf_gnm_holderEmpty);
+}
+static int dissect_unknownType_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_NULL(TRUE, tvb, offset, pinfo, tree, hf_gnm_unknownType);
+}
+static int dissect_null(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_NULL(FALSE, tvb, offset, pinfo, tree, hf_gnm_null);
+}
+static int dissect_unknown(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_NULL(FALSE, tvb, offset, pinfo, tree, hf_gnm_unknown);
+}
+static int dissect_notAvailable(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_NULL(FALSE, tvb, offset, pinfo, tree, hf_gnm_notAvailable);
+}
+static int dissect_notApplicable(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_NULL(FALSE, tvb, offset, pinfo, tree, hf_gnm_notApplicable);
+}
+
+
+static const value_string gnm_ProblemCause_vals[] = {
+ { 0, "unknown" },
+ { 1, "integerValue" },
+ { 0, NULL }
+};
+
+static const ber_choice_t ProblemCause_choice[] = {
+ { 0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_unknown },
+ { 1, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_integerValue },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_ProblemCause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ ProblemCause_choice, hf_index, ett_gnm_ProblemCause,
+ NULL);
+
+ return offset;
+}
+static int dissect_problemCause(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_ProblemCause(FALSE, tvb, offset, pinfo, tree, hf_gnm_problemCause);
+}
+
+
+static const ber_sequence_t SET_OF_ObjectInstance_set_of[1] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_broadcast_item },
+};
+
+static int
+dissect_gnm_SET_OF_ObjectInstance(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
+ SET_OF_ObjectInstance_set_of, hf_index, ett_gnm_SET_OF_ObjectInstance);
+
+ return offset;
+}
+static int dissect_broadcast(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_SET_OF_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_broadcast);
+}
+static int dissect_relatedObjects_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_SET_OF_ObjectInstance(TRUE, tvb, offset, pinfo, tree, hf_gnm_relatedObjects);
+}
+static int dissect_incorrectInstances(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_SET_OF_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_incorrectInstances);
+}
+static int dissect_tps1(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_SET_OF_ObjectInstance(FALSE, tvb, offset, pinfo, tree, hf_gnm_tps1);
+}
+
+
+static const ber_sequence_t LogicalProblem_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_problemCause },
+ { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_incorrectInstances },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_LogicalProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ LogicalProblem_sequence, hf_index, ett_gnm_LogicalProblem);
+
+ return offset;
+}
+static int dissect_logicalProblem(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_LogicalProblem(FALSE, tvb, offset, pinfo, tree, hf_gnm_logicalProblem);
+}
+
+
+static const value_string gnm_ResourceProblem_vals[] = {
+ { 0, "unknown" },
+ { 1, "integerValue" },
+ { 0, NULL }
+};
+
+static const ber_choice_t ResourceProblem_choice[] = {
+ { 0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_unknown },
+ { 1, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_integerValue },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_ResourceProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ ResourceProblem_choice, hf_index, ett_gnm_ResourceProblem,
+ NULL);
+
+ return offset;
+}
+static int dissect_resourceProblem(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_ResourceProblem(FALSE, tvb, offset, pinfo, tree, hf_gnm_resourceProblem);
+}
+
+
+static const value_string gnm_Failed_vals[] = {
+ { 0, "logicalProblem" },
+ { 1, "resourceProblem" },
+ { 0, NULL }
+};
+
+static const ber_choice_t Failed_choice[] = {
+ { 0, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_logicalProblem },
+ { 1, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_resourceProblem },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_Failed(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ Failed_choice, hf_index, ett_gnm_Failed,
+ NULL);
+
+ return offset;
+}
+static int dissect_failed(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_Failed(FALSE, tvb, offset, pinfo, tree, hf_gnm_failed);
+}
+static int dissect_failed_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_Failed(TRUE, tvb, offset, pinfo, tree, hf_gnm_failed);
+}
+
+
+static const value_string gnm_AddTpsToGtpResult_item_vals[] = {
+ { 0, "failed" },
+ { 1, "addedTps" },
+ { 0, NULL }
+};
+
+static const ber_choice_t AddTpsToGtpResult_item_choice[] = {
+ { 0, BER_CLASS_CON, 0, 0, dissect_failed_impl },
+ { 1, BER_CLASS_CON, 1, 0, dissect_addedTps_impl },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_AddTpsToGtpResult_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ AddTpsToGtpResult_item_choice, hf_index, ett_gnm_AddTpsToGtpResult_item,
+ NULL);
+
+ return offset;
+}
+static int dissect_AddTpsToGtpResult_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_AddTpsToGtpResult_item(FALSE, tvb, offset, pinfo, tree, hf_gnm_AddTpsToGtpResult_item);
+}
+
+
+static const ber_sequence_t AddTpsToGtpResult_sequence_of[1] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_AddTpsToGtpResult_item },
+};
+
+static int
+dissect_gnm_AddTpsToGtpResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ AddTpsToGtpResult_sequence_of, hf_index, ett_gnm_AddTpsToGtpResult);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SET_OF_TerminationPointInformation_set_of[1] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_tps_item },
+};
+
+static int
+dissect_gnm_SET_OF_TerminationPointInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
+ SET_OF_TerminationPointInformation_set_of, hf_index, ett_gnm_SET_OF_TerminationPointInformation);
+
+ return offset;
+}
+static int dissect_tps(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_SET_OF_TerminationPointInformation(FALSE, tvb, offset, pinfo, tree, hf_gnm_tps);
+}
+
+
+static const ber_sequence_t AddTpsToTpPoolInformation_item_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_tps },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_toTpPool },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_AddTpsToTpPoolInformation_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ AddTpsToTpPoolInformation_item_sequence, hf_index, ett_gnm_AddTpsToTpPoolInformation_item);
+
+ return offset;
+}
+static int dissect_AddTpsToTpPoolInformation_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_AddTpsToTpPoolInformation_item(FALSE, tvb, offset, pinfo, tree, hf_gnm_AddTpsToTpPoolInformation_item);
+}
+
+
+static const ber_sequence_t AddTpsToTpPoolInformation_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_AddTpsToTpPoolInformation_item },
+};
+
+static int
+dissect_gnm_AddTpsToTpPoolInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ AddTpsToTpPoolInformation_sequence_of, hf_index, ett_gnm_AddTpsToTpPoolInformation);
+
+ return offset;
+}
+
+
+static const ber_sequence_t TpsAddedToTpPool_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_tpPool },
+ { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_tps1 },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_TpsAddedToTpPool(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ TpsAddedToTpPool_sequence, hf_index, ett_gnm_TpsAddedToTpPool);
+
+ return offset;
+}
+static int dissect_tpsAddedToTpPool_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_TpsAddedToTpPool(TRUE, tvb, offset, pinfo, tree, hf_gnm_tpsAddedToTpPool);
+}
+
+
+static const value_string gnm_AddTpsToTpPoolResult_item_vals[] = {
+ { 0, "failed" },
+ { 1, "tpsAddedToTpPool" },
+ { 0, NULL }
+};
+
+static const ber_choice_t AddTpsToTpPoolResult_item_choice[] = {
+ { 0, BER_CLASS_CON, 0, 0, dissect_failed_impl },
+ { 1, BER_CLASS_CON, 1, 0, dissect_tpsAddedToTpPool_impl },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_AddTpsToTpPoolResult_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ AddTpsToTpPoolResult_item_choice, hf_index, ett_gnm_AddTpsToTpPoolResult_item,
+ NULL);
+
+ return offset;
+}
+static int dissect_AddTpsToTpPoolResult_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_AddTpsToTpPoolResult_item(FALSE, tvb, offset, pinfo, tree, hf_gnm_AddTpsToTpPoolResult_item);
+}
+
+
+static const ber_sequence_t AddTpsToTpPoolResult_sequence_of[1] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_AddTpsToTpPoolResult_item },
+};
+
+static int
+dissect_gnm_AddTpsToTpPoolResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ AddTpsToTpPoolResult_sequence_of, hf_index, ett_gnm_AddTpsToTpPoolResult);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gnm_AlarmEffectOnServiceParameter(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_boolean(implicit_tag, pinfo, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+static const value_string gnm_AlarmSeverityCode_vals[] = {
+ { 0, "non-alarmed" },
+ { 1, "minor" },
+ { 2, "major" },
+ { 3, "critical" },
+ { 4, "warning" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gnm_AlarmSeverityCode(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_severityAssignedServiceAffecting_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_AlarmSeverityCode(TRUE, tvb, offset, pinfo, tree, hf_gnm_severityAssignedServiceAffecting);
+}
+static int dissect_severityAssignedNonServiceAffecting_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_AlarmSeverityCode(TRUE, tvb, offset, pinfo, tree, hf_gnm_severityAssignedNonServiceAffecting);
+}
+static int dissect_severityAssignedServiceIndependent_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_AlarmSeverityCode(TRUE, tvb, offset, pinfo, tree, hf_gnm_severityAssignedServiceIndependent);
+}
+
+
+static const ber_sequence_t AlarmSeverityAssignment_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_problem },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_severityAssignedServiceAffecting_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_severityAssignedNonServiceAffecting_impl },
+ { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_severityAssignedServiceIndependent_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_AlarmSeverityAssignment(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ AlarmSeverityAssignment_sequence, hf_index, ett_gnm_AlarmSeverityAssignment);
+
+ return offset;
+}
+static int dissect_AlarmSeverityAssignmentList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_AlarmSeverityAssignment(FALSE, tvb, offset, pinfo, tree, hf_gnm_AlarmSeverityAssignmentList_item);
+}
+
+
+static const ber_sequence_t AlarmSeverityAssignmentList_set_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_AlarmSeverityAssignmentList_item },
+};
+
+static int
+dissect_gnm_AlarmSeverityAssignmentList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
+ AlarmSeverityAssignmentList_set_of, hf_index, ett_gnm_AlarmSeverityAssignmentList);
+
+ return offset;
+}
+
+
+static const value_string gnm_AlarmStatus_vals[] = {
+ { 0, "cleared" },
+ { 1, "activeReportable-Indeterminate" },
+ { 2, "activeReportable-Warning" },
+ { 3, "activeReportable-Minor" },
+ { 4, "activeReportable-Major" },
+ { 5, "activeReportable-Critical" },
+ { 6, "activePending" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gnm_AlarmStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_alarmStatus_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_AlarmStatus(TRUE, tvb, offset, pinfo, tree, hf_gnm_alarmStatus);
+}
+
+
+
+static int
+dissect_gnm_Boolean(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_boolean(implicit_tag, pinfo, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+static int dissect_redline_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_Boolean(TRUE, tvb, offset, pinfo, tree, hf_gnm_redline);
+}
+
+
+static const ber_sequence_t Bundle_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_characteristicInfoType },
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_bundlingFactor },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_Bundle(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ Bundle_sequence, hf_index, ett_gnm_Bundle);
+
+ return offset;
+}
+static int dissect_bundle(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_Bundle(FALSE, tvb, offset, pinfo, tree, hf_gnm_bundle);
+}
+static int dissect_complex_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_Bundle(FALSE, tvb, offset, pinfo, tree, hf_gnm_complex_item);
+}
+
+
+
+static int
+dissect_gnm_ChannelNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string gnm_CircuitDirectionality_vals[] = {
+ { 0, "onewayOut" },
+ { 1, "onewayIn" },
+ { 2, "twoway" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gnm_CircuitDirectionality(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gnm_CircuitPackAvailabilityStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_gnm_AvailabilityStatus(implicit_tag, tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gnm_CircuitPackType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
+ pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_inTheAcceptableList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_CircuitPackType(TRUE, tvb, offset, pinfo, tree, hf_gnm_inTheAcceptableList);
+}
+static int dissect_notInTheAcceptableList_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_CircuitPackType(TRUE, tvb, offset, pinfo, tree, hf_gnm_notInTheAcceptableList);
+}
+
+
+static const ber_sequence_t PointToPoint_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_fromTp1 },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_toTp1 },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_xCon },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_PointToPoint(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ PointToPoint_sequence, hf_index, ett_gnm_PointToPoint);
+
+ return offset;
+}
+static int dissect_pointToPoint_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_PointToPoint(TRUE, tvb, offset, pinfo, tree, hf_gnm_pointToPoint);
+}
+
+
+static const ber_sequence_t T_toTps_item_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_tp },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_xConnection },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_T_toTps_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ T_toTps_item_sequence, hf_index, ett_gnm_T_toTps_item);
+
+ return offset;
+}
+static int dissect_toTps_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_T_toTps_item(FALSE, tvb, offset, pinfo, tree, hf_gnm_toTps_item);
+}
+
+
+static const ber_sequence_t T_toTps_set_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_toTps_item },
+};
+
+static int
+dissect_gnm_T_toTps(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
+ T_toTps_set_of, hf_index, ett_gnm_T_toTps);
+
+ return offset;
+}
+static int dissect_toTps(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_T_toTps(FALSE, tvb, offset, pinfo, tree, hf_gnm_toTps);
+}
+
+
+static const ber_sequence_t PointToMultipoint_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_fromTp1 },
+ { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_toTps },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_mpXCon },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_PointToMultipoint(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ PointToMultipoint_sequence, hf_index, ett_gnm_PointToMultipoint);
+
+ return offset;
+}
+static int dissect_pointToMultipoint_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_PointToMultipoint(TRUE, tvb, offset, pinfo, tree, hf_gnm_pointToMultipoint);
+}
+
+
+static const value_string gnm_Connected_vals[] = {
+ { 0, "pointToPoint" },
+ { 1, "pointToMultipoint" },
+ { 0, NULL }
+};
+
+static const ber_choice_t Connected_choice[] = {
+ { 0, BER_CLASS_CON, 0, 0, dissect_pointToPoint_impl },
+ { 1, BER_CLASS_CON, 1, 0, dissect_pointToMultipoint_impl },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_Connected(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ Connected_choice, hf_index, ett_gnm_Connected,
+ NULL);
+
+ return offset;
+}
+static int dissect_connected(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_Connected(FALSE, tvb, offset, pinfo, tree, hf_gnm_connected);
+}
+static int dissect_pass_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_Connected(TRUE, tvb, offset, pinfo, tree, hf_gnm_pass);
+}
+
+
+static const ber_sequence_t ExplicitPtoP_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_fromTp },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_toTp },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_ExplicitPtoP(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ ExplicitPtoP_sequence, hf_index, ett_gnm_ExplicitPtoP);
+
+ return offset;
+}
+static int dissect_explicitPToP_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_ExplicitPtoP(TRUE, tvb, offset, pinfo, tree, hf_gnm_explicitPToP);
+}
+
+
+static const ber_sequence_t PtoTPPool_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_fromTp },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_toTpPool },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_PtoTPPool(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ PtoTPPool_sequence, hf_index, ett_gnm_PtoTPPool);
+
+ return offset;
+}
+static int dissect_ptoTpPool_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_PtoTPPool(TRUE, tvb, offset, pinfo, tree, hf_gnm_ptoTpPool);
+}
+
+
+static const ber_sequence_t SET_OF_ExplicitTP_set_of[1] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_toTPs_item },
+};
+
+static int
+dissect_gnm_SET_OF_ExplicitTP(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
+ SET_OF_ExplicitTP_set_of, hf_index, ett_gnm_SET_OF_ExplicitTP);
+
+ return offset;
+}
+static int dissect_toTPs(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_SET_OF_ExplicitTP(FALSE, tvb, offset, pinfo, tree, hf_gnm_toTPs);
+}
+
+
+static const ber_sequence_t ExplicitPtoMP_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_fromTp },
+ { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_toTPs },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_ExplicitPtoMP(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ ExplicitPtoMP_sequence, hf_index, ett_gnm_ExplicitPtoMP);
+
+ return offset;
+}
+static int dissect_explicitPtoMP_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_ExplicitPtoMP(TRUE, tvb, offset, pinfo, tree, hf_gnm_explicitPtoMP);
+}
+
+
+static const ber_sequence_t ToTPPools_item_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_tpPoolId },
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_numberOfTPs },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_ToTPPools_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ ToTPPools_item_sequence, hf_index, ett_gnm_ToTPPools_item);
+
+ return offset;
+}
+static int dissect_ToTPPools_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_ToTPPools_item(FALSE, tvb, offset, pinfo, tree, hf_gnm_ToTPPools_item);
+}
+
+
+static const ber_sequence_t ToTPPools_set_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ToTPPools_item },
+};
+
+static int
+dissect_gnm_ToTPPools(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
+ ToTPPools_set_of, hf_index, ett_gnm_ToTPPools);
+
+ return offset;
+}
+static int dissect_toTPPools(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_ToTPPools(FALSE, tvb, offset, pinfo, tree, hf_gnm_toTPPools);
+}
+
+
+static const ber_sequence_t PtoMPools_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_fromTp },
+ { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_toTPPools },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_PtoMPools(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ PtoMPools_sequence, hf_index, ett_gnm_PtoMPools);
+
+ return offset;
+}
+static int dissect_ptoMPools_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_PtoMPools(TRUE, tvb, offset, pinfo, tree, hf_gnm_ptoMPools);
+}
+
+
+static const value_string gnm_ConnectionType_vals[] = {
+ { 0, "explicitPToP" },
+ { 1, "ptoTpPool" },
+ { 2, "explicitPtoMP" },
+ { 3, "ptoMPools" },
+ { 0, NULL }
+};
+
+static const ber_choice_t ConnectionType_choice[] = {
+ { 0, BER_CLASS_CON, 0, 0, dissect_explicitPToP_impl },
+ { 1, BER_CLASS_CON, 1, 0, dissect_ptoTpPool_impl },
+ { 2, BER_CLASS_CON, 2, 0, dissect_explicitPtoMP_impl },
+ { 3, BER_CLASS_CON, 3, 0, dissect_ptoMPools_impl },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_ConnectionType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ ConnectionType_choice, hf_index, ett_gnm_ConnectionType,
+ NULL);
+
+ return offset;
+}
+static int dissect_unidirectional_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_ConnectionType(TRUE, tvb, offset, pinfo, tree, hf_gnm_unidirectional);
+}
+
+
+static const value_string gnm_ConnectionTypeBi_vals[] = {
+ { 0, "explicitPToP" },
+ { 1, "ptoTpPool" },
+ { 0, NULL }
+};
+
+static const ber_choice_t ConnectionTypeBi_choice[] = {
+ { 0, BER_CLASS_CON, 0, 0, dissect_explicitPToP_impl },
+ { 1, BER_CLASS_CON, 1, 0, dissect_ptoTpPool_impl },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_ConnectionTypeBi(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ ConnectionTypeBi_choice, hf_index, ett_gnm_ConnectionTypeBi,
+ NULL);
+
+ return offset;
+}
+static int dissect_bidirectional_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_ConnectionTypeBi(TRUE, tvb, offset, pinfo, tree, hf_gnm_bidirectional);
+}
+
+
+static const value_string gnm_T_itemType_vals[] = {
+ { 0, "unidirectional" },
+ { 1, "bidirectional" },
+ { 2, "addleg" },
+ { 0, NULL }
+};
+
+static const ber_choice_t T_itemType_choice[] = {
+ { 0, BER_CLASS_CON, 0, 0, dissect_unidirectional_impl },
+ { 1, BER_CLASS_CON, 1, 0, dissect_bidirectional_impl },
+ { 2, BER_CLASS_CON, 2, 0, dissect_addleg_impl },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_T_itemType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ T_itemType_choice, hf_index, ett_gnm_T_itemType,
+ NULL);
+
+ return offset;
+}
+static int dissect_itemType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_T_itemType(FALSE, tvb, offset, pinfo, tree, hf_gnm_itemType);
+}
+
+
+
+static int
+dissect_gnm_CrossConnectionName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GraphicString,
+ pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_name(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_CrossConnectionName(FALSE, tvb, offset, pinfo, tree, hf_gnm_name);
+}
+
+
+static const ber_sequence_t NamedCrossConnection_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_BOOLEAN, BER_FLAGS_NOOWNTAG, dissect_redline1 },
+ { BER_CLASS_UNI, BER_UNI_TAG_GraphicString, BER_FLAGS_NOOWNTAG, dissect_name },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_NamedCrossConnection(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ NamedCrossConnection_sequence, hf_index, ett_gnm_NamedCrossConnection);
+
+ return offset;
+}
+static int dissect_namedCrossConnection_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_NamedCrossConnection(TRUE, tvb, offset, pinfo, tree, hf_gnm_namedCrossConnection);
+}
+
+
+
+static int
+dissect_gnm_UserLabel(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GraphicString,
+ pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_userLabel_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_UserLabel(TRUE, tvb, offset, pinfo, tree, hf_gnm_userLabel);
+}
+
+
+static const ber_sequence_t ConnectInformation_item_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_itemType },
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_administrativeState },
+ { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_namedCrossConnection_impl },
+ { BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_userLabel_impl },
+ { BER_CLASS_CON, 5, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_redline_impl },
+ { BER_CLASS_CON, 6, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_additionalInfo_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_ConnectInformation_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ ConnectInformation_item_sequence, hf_index, ett_gnm_ConnectInformation_item);
+
+ return offset;
+}
+static int dissect_ConnectInformation_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_ConnectInformation_item(FALSE, tvb, offset, pinfo, tree, hf_gnm_ConnectInformation_item);
+}
+
+
+static const ber_sequence_t ConnectInformation_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_ConnectInformation_item },
+};
+
+static int
+dissect_gnm_ConnectInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ ConnectInformation_sequence_of, hf_index, ett_gnm_ConnectInformation);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gnm_ConnectorType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string gnm_ConnectivityPointer_vals[] = {
+ { 0, "none" },
+ { 1, "single" },
+ { 2, "concatenated" },
+ { 0, NULL }
+};
+
+static const ber_choice_t ConnectivityPointer_choice[] = {
+ { 0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_none },
+ { 1, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_single },
+ { 2, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_concatenated },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_ConnectivityPointer(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ ConnectivityPointer_choice, hf_index, ett_gnm_ConnectivityPointer,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string gnm_ConnectResult_item_vals[] = {
+ { -1/*choice*/, "failed" },
+ { -1/*choice*/, "connected" },
+ { 0, NULL }
+};
+
+static const ber_choice_t ConnectResult_item_choice[] = {
+ { -1/*choice*/, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_failed },
+ { -1/*choice*/, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_connected },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_ConnectResult_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ ConnectResult_item_choice, hf_index, ett_gnm_ConnectResult_item,
+ NULL);
+
+ return offset;
+}
+static int dissect_ConnectResult_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_ConnectResult_item(FALSE, tvb, offset, pinfo, tree, hf_gnm_ConnectResult_item);
+}
+
+
+static const ber_sequence_t ConnectResult_sequence_of[1] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_ConnectResult_item },
+};
+
+static int
+dissect_gnm_ConnectResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ ConnectResult_sequence_of, hf_index, ett_gnm_ConnectResult);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gnm_Count(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gnm_CreateError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string gnm_MultipleConnections_item_vals[] = {
+ { 0, "downstreamNotConnected" },
+ { 1, "downstreamConnected" },
+ { 2, "upstreamNotConnected" },
+ { 3, "upstreamConnected" },
+ { 0, NULL }
+};
+
+static const ber_choice_t MultipleConnections_item_choice[] = {
+ { 0, BER_CLASS_CON, 0, 0, dissect_downstreamNotConnected_impl },
+ { 1, BER_CLASS_CON, 1, 0, dissect_downstreamConnected_impl },
+ { 2, BER_CLASS_CON, 2, 0, dissect_upstreamNotConnected_impl },
+ { 3, BER_CLASS_CON, 3, 0, dissect_upstreamConnected_impl },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_MultipleConnections_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ MultipleConnections_item_choice, hf_index, ett_gnm_MultipleConnections_item,
+ NULL);
+
+ return offset;
+}
+static int dissect_MultipleConnections_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_MultipleConnections_item(FALSE, tvb, offset, pinfo, tree, hf_gnm_MultipleConnections_item);
+}
+
+
+static const ber_sequence_t MultipleConnections_set_of[1] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_MultipleConnections_item },
+};
+
+static int
+dissect_gnm_MultipleConnections(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
+ MultipleConnections_set_of, hf_index, ett_gnm_MultipleConnections);
+
+ return offset;
+}
+static int dissect_multipleConnections(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_MultipleConnections(FALSE, tvb, offset, pinfo, tree, hf_gnm_multipleConnections);
+}
+
+
+static const value_string gnm_CrossConnectionObjectPointer_vals[] = {
+ { 0, "notConnected" },
+ { 1, "connected" },
+ { 2, "multipleConnections" },
+ { 0, NULL }
+};
+
+static const ber_choice_t CrossConnectionObjectPointer_choice[] = {
+ { 0, BER_CLASS_CON, 0, 0, dissect_notConnected_impl },
+ { 1, BER_CLASS_CON, 1, 0, dissect_connected1_impl },
+ { 2, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_multipleConnections },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_CrossConnectionObjectPointer(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ CrossConnectionObjectPointer_choice, hf_index, ett_gnm_CrossConnectionObjectPointer,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gnm_CTPUpstreamPointer(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_gnm_ConnectivityPointer(implicit_tag, tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+
+
+static const ber_sequence_t T_broadcastConcatenated_set_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_broadcastConcatenated_item },
+};
+
+static int
+dissect_gnm_T_broadcastConcatenated(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
+ T_broadcastConcatenated_set_of, hf_index, ett_gnm_T_broadcastConcatenated);
+
+ return offset;
+}
+static int dissect_broadcastConcatenated_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_T_broadcastConcatenated(TRUE, tvb, offset, pinfo, tree, hf_gnm_broadcastConcatenated);
+}
+
+
+static const value_string gnm_DownstreamConnectivityPointer_vals[] = {
+ { 0, "none" },
+ { 1, "single" },
+ { 2, "concatenated" },
+ { 3, "broadcast" },
+ { 4, "broadcastConcatenated" },
+ { 0, NULL }
+};
+
+static const ber_choice_t DownstreamConnectivityPointer_choice[] = {
+ { 0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_none },
+ { 1, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_single },
+ { 2, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_concatenated },
+ { 3, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_broadcast },
+ { 4, BER_CLASS_CON, 1, 0, dissect_broadcastConcatenated_impl },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_DownstreamConnectivityPointer(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ DownstreamConnectivityPointer_choice, hf_index, ett_gnm_DownstreamConnectivityPointer,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gnm_CTPDownstreamPointer(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_gnm_DownstreamConnectivityPointer(implicit_tag, tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+
+
+static const ber_sequence_t CurrentProblem_sequence[] = {
+ { BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG|BER_FLAGS_NOTCHKTAG, dissect_problem_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_alarmStatus_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_CurrentProblem(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ CurrentProblem_sequence, hf_index, ett_gnm_CurrentProblem);
+
+ return offset;
+}
+static int dissect_CurrentProblemList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_CurrentProblem(FALSE, tvb, offset, pinfo, tree, hf_gnm_CurrentProblemList_item);
+}
+
+
+static const ber_sequence_t CurrentProblemList_set_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_CurrentProblemList_item },
+};
+
+static int
+dissect_gnm_CurrentProblemList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
+ CurrentProblemList_set_of, hf_index, ett_gnm_CurrentProblemList);
+
+ return offset;
+}
+
+
+static const value_string gnm_Directionality_vals[] = {
+ { 0, "unidirectional" },
+ { 1, "bidirectional" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gnm_Directionality(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t DisconnectInformation_sequence_of[1] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_DisconnectInformation_item },
+};
+
+static int
+dissect_gnm_DisconnectInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ DisconnectInformation_sequence_of, hf_index, ett_gnm_DisconnectInformation);
+
+ return offset;
+}
+
+
+static const value_string gnm_DisconnectResult_item_vals[] = {
+ { -1/*choice*/, "failed" },
+ { -1/*choice*/, "disconnected" },
+ { 0, NULL }
+};
+
+static const ber_choice_t DisconnectResult_item_choice[] = {
+ { -1/*choice*/, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_failed },
+ { -1/*choice*/, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_disconnected },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_DisconnectResult_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ DisconnectResult_item_choice, hf_index, ett_gnm_DisconnectResult_item,
+ NULL);
+
+ return offset;
+}
+static int dissect_DisconnectResult_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_DisconnectResult_item(FALSE, tvb, offset, pinfo, tree, hf_gnm_DisconnectResult_item);
+}
+
+
+static const ber_sequence_t DisconnectResult_sequence_of[1] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_DisconnectResult_item },
+};
+
+static int
+dissect_gnm_DisconnectResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ DisconnectResult_sequence_of, hf_index, ett_gnm_DisconnectResult);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gnm_ExternalTime(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_GeneralizedTime(implicit_tag, pinfo, tree, tvb, offset, hf_index);
+
+ return offset;
+}
+
+
+static const ber_sequence_t EquipmentHolderAddress_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_EquipmentHolderAddress_item },
+};
+
+static int
+dissect_gnm_EquipmentHolderAddress(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ EquipmentHolderAddress_sequence_of, hf_index, ett_gnm_EquipmentHolderAddress);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gnm_EquipmentHolderType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GraphicString,
+ pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string gnm_GeneralErrorCause_vals[] = {
+ { 0, "globalValue" },
+ { 1, "localValue" },
+ { 0, NULL }
+};
+
+static const ber_choice_t GeneralErrorCause_choice[] = {
+ { 0, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_globalValue },
+ { 1, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_localValue },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_GeneralErrorCause(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ GeneralErrorCause_choice, hf_index, ett_gnm_GeneralErrorCause,
+ NULL);
+
+ return offset;
+}
+static int dissect_cause(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_GeneralErrorCause(FALSE, tvb, offset, pinfo, tree, hf_gnm_cause);
+}
+
+
+
+static int
+dissect_gnm_GraphicString(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GraphicString,
+ pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_details(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_GraphicString(FALSE, tvb, offset, pinfo, tree, hf_gnm_details);
+}
+static int dissect_pString(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_GraphicString(FALSE, tvb, offset, pinfo, tree, hf_gnm_pString);
+}
+
+
+static const ber_sequence_t GeneralError_item_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_cause },
+ { BER_CLASS_UNI, BER_UNI_TAG_GraphicString, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_details },
+ { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_relatedObjects_impl },
+ { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_attributeList_impl },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_GeneralError_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ GeneralError_item_sequence, hf_index, ett_gnm_GeneralError_item);
+
+ return offset;
+}
+static int dissect_GeneralError_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_GeneralError_item(FALSE, tvb, offset, pinfo, tree, hf_gnm_GeneralError_item);
+}
+
+
+static const ber_sequence_t GeneralError_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_GeneralError_item },
+};
+
+static int
+dissect_gnm_GeneralError(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ GeneralError_sequence_of, hf_index, ett_gnm_GeneralError);
+
+ return offset;
+}
+
+
+static const value_string gnm_HolderStatus_vals[] = {
+ { 0, "holderEmpty" },
+ { 1, "inTheAcceptableList" },
+ { 2, "notInTheAcceptableList" },
+ { 3, "unknownType" },
+ { 0, NULL }
+};
+
+static const ber_choice_t HolderStatus_choice[] = {
+ { 0, BER_CLASS_CON, 0, 0, dissect_holderEmpty_impl },
+ { 1, BER_CLASS_CON, 1, 0, dissect_inTheAcceptableList_impl },
+ { 2, BER_CLASS_CON, 2, 0, dissect_notInTheAcceptableList_impl },
+ { 3, BER_CLASS_CON, 3, 0, dissect_unknownType_impl },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_HolderStatus(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ HolderStatus_choice, hf_index, ett_gnm_HolderStatus,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t IndividualSwitchOver_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_connection },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_unchangedTP },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_newTP },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_IndividualSwitchOver(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ IndividualSwitchOver_sequence, hf_index, ett_gnm_IndividualSwitchOver);
+
+ return offset;
+}
+static int dissect_SwitchOverInformation_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_IndividualSwitchOver(FALSE, tvb, offset, pinfo, tree, hf_gnm_SwitchOverInformation_item);
+}
+
+
+static const value_string gnm_IndividualResult_vals[] = {
+ { 0, "failed" },
+ { 1, "pass" },
+ { 0, NULL }
+};
+
+static const ber_choice_t IndividualResult_choice[] = {
+ { 0, BER_CLASS_CON, 0, 0, dissect_failed_impl },
+ { 1, BER_CLASS_CON, 1, 0, dissect_pass_impl },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_IndividualResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ IndividualResult_choice, hf_index, ett_gnm_IndividualResult,
+ NULL);
+
+ return offset;
+}
+static int dissect_SwitchOverResult_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_IndividualResult(FALSE, tvb, offset, pinfo, tree, hf_gnm_SwitchOverResult_item);
+}
+
+
+static const value_string gnm_InformationTransferCapabilities_vals[] = {
+ { 0, "speech" },
+ { 1, "audio3pt1" },
+ { 2, "audio7" },
+ { 3, "audioComb" },
+ { 4, "digitalRestricted56" },
+ { 5, "digitalUnrestricted64" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gnm_InformationTransferCapabilities(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ListOfCharacteristicInformation_set_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_ListOfCharacteristicInformation_item },
+};
+
+static int
+dissect_gnm_ListOfCharacteristicInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
+ ListOfCharacteristicInformation_set_of, hf_index, ett_gnm_ListOfCharacteristicInformation);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ListOfTPs_set_of[1] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_ListOfTPs_item },
+};
+
+static int
+dissect_gnm_ListOfTPs(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
+ ListOfTPs_set_of, hf_index, ett_gnm_ListOfTPs);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gnm_LocationName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GraphicString,
+ pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string gnm_NameType_vals[] = {
+ { 0, "numericName" },
+ { 1, "pString" },
+ { 0, NULL }
+};
+
+static const ber_choice_t NameType_choice[] = {
+ { 0, BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, dissect_numericName },
+ { 1, BER_CLASS_UNI, BER_UNI_TAG_GraphicString, BER_FLAGS_NOOWNTAG, dissect_pString },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_NameType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ NameType_choice, hf_index, ett_gnm_NameType,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gnm_NumberOfCircuits(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t ObjectList_set_of[1] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_ObjectList_item },
+};
+
+static int
+dissect_gnm_ObjectList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
+ ObjectList_set_of, hf_index, ett_gnm_ObjectList);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gnm_WaveLength(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_wavelength(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_WaveLength(FALSE, tvb, offset, pinfo, tree, hf_gnm_wavelength);
+}
+
+
+static const ber_sequence_t SignalRateAndMappingList_item_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_signalRate },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_mappingList },
+ { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_wavelength },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_SignalRateAndMappingList_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ SignalRateAndMappingList_item_sequence, hf_index, ett_gnm_SignalRateAndMappingList_item);
+
+ return offset;
+}
+static int dissect_SignalRateAndMappingList_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_SignalRateAndMappingList_item(FALSE, tvb, offset, pinfo, tree, hf_gnm_SignalRateAndMappingList_item);
+}
+
+
+static const ber_sequence_t SignalRateAndMappingList_set_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_SignalRateAndMappingList_item },
+};
+
+static int
+dissect_gnm_SignalRateAndMappingList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
+ SignalRateAndMappingList_set_of, hf_index, ett_gnm_SignalRateAndMappingList);
+
+ return offset;
+}
+static int dissect_downstream(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_SignalRateAndMappingList(FALSE, tvb, offset, pinfo, tree, hf_gnm_downstream);
+}
+static int dissect_upStream(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_SignalRateAndMappingList(FALSE, tvb, offset, pinfo, tree, hf_gnm_upStream);
+}
+static int dissect_uniform(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_SignalRateAndMappingList(FALSE, tvb, offset, pinfo, tree, hf_gnm_uniform);
+}
+
+
+static const ber_sequence_t T_diverse_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_downstream },
+ { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_upStream },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_T_diverse(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ T_diverse_sequence, hf_index, ett_gnm_T_diverse);
+
+ return offset;
+}
+static int dissect_diverse(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_T_diverse(FALSE, tvb, offset, pinfo, tree, hf_gnm_diverse);
+}
+
+
+static const value_string gnm_PhysicalPortSignalRateAndMappingList_vals[] = {
+ { 0, "diverse" },
+ { 1, "uniform" },
+ { 0, NULL }
+};
+
+static const ber_choice_t PhysicalPortSignalRateAndMappingList_choice[] = {
+ { 0, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_diverse },
+ { 1, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_uniform },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_PhysicalPortSignalRateAndMappingList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ PhysicalPortSignalRateAndMappingList_choice, hf_index, ett_gnm_PhysicalPortSignalRateAndMappingList,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gnm_Pointer(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_cmip_ObjectInstance(implicit_tag, tvb, offset, pinfo, tree, hf_index);
+
+ return offset;
+}
+
+
+static const value_string gnm_PointerOrNull_vals[] = {
+ { 0, "pointer" },
+ { 1, "null" },
+ { 0, NULL }
+};
+
+static const ber_choice_t PointerOrNull_choice[] = {
+ { 0, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_pointer },
+ { 1, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_null },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_PointerOrNull(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ PointerOrNull_choice, hf_index, ett_gnm_PointerOrNull,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gnm_PortNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gnm_Reach(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string gnm_RelatedObjectInstance_vals[] = {
+ { 0, "notAvailable" },
+ { 1, "relatedObject" },
+ { 0, NULL }
+};
+
+static const ber_choice_t RelatedObjectInstance_choice[] = {
+ { 0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_notAvailable },
+ { 1, BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_relatedObject },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_RelatedObjectInstance(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ RelatedObjectInstance_choice, hf_index, ett_gnm_RelatedObjectInstance,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t RemoveTpsFromGtpInformation_item_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_fromGtp },
+ { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_tps1 },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_RemoveTpsFromGtpInformation_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ RemoveTpsFromGtpInformation_item_sequence, hf_index, ett_gnm_RemoveTpsFromGtpInformation_item);
+
+ return offset;
+}
+static int dissect_RemoveTpsFromGtpInformation_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_RemoveTpsFromGtpInformation_item(FALSE, tvb, offset, pinfo, tree, hf_gnm_RemoveTpsFromGtpInformation_item);
+}
+
+
+static const ber_sequence_t RemoveTpsFromGtpInformation_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_RemoveTpsFromGtpInformation_item },
+};
+
+static int
+dissect_gnm_RemoveTpsFromGtpInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ RemoveTpsFromGtpInformation_sequence_of, hf_index, ett_gnm_RemoveTpsFromGtpInformation);
+
+ return offset;
+}
+
+
+static const ber_sequence_t RemoveTpsResultInformation_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_deletedTpPoolOrGTP },
+ { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_tps1 },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_RemoveTpsResultInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ RemoveTpsResultInformation_sequence, hf_index, ett_gnm_RemoveTpsResultInformation);
+
+ return offset;
+}
+static int dissect_removed_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_RemoveTpsResultInformation(TRUE, tvb, offset, pinfo, tree, hf_gnm_removed);
+}
+
+
+static const value_string gnm_RemoveTpsFromGtpResult_item_vals[] = {
+ { 0, "failed" },
+ { 1, "removed" },
+ { 0, NULL }
+};
+
+static const ber_choice_t RemoveTpsFromGtpResult_item_choice[] = {
+ { 0, BER_CLASS_CON, 0, 0, dissect_failed_impl },
+ { 1, BER_CLASS_CON, 1, 0, dissect_removed_impl },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_RemoveTpsFromGtpResult_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ RemoveTpsFromGtpResult_item_choice, hf_index, ett_gnm_RemoveTpsFromGtpResult_item,
+ NULL);
+
+ return offset;
+}
+static int dissect_RemoveTpsFromGtpResult_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_RemoveTpsFromGtpResult_item(FALSE, tvb, offset, pinfo, tree, hf_gnm_RemoveTpsFromGtpResult_item);
+}
+
+
+static const ber_sequence_t RemoveTpsFromGtpResult_sequence_of[1] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_RemoveTpsFromGtpResult_item },
+};
+
+static int
+dissect_gnm_RemoveTpsFromGtpResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ RemoveTpsFromGtpResult_sequence_of, hf_index, ett_gnm_RemoveTpsFromGtpResult);
+
+ return offset;
+}
+
+
+static const ber_sequence_t RemoveTpsFromTpPoolInformation_item_sequence[] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_fromTpPool },
+ { BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_tps1 },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_RemoveTpsFromTpPoolInformation_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ RemoveTpsFromTpPoolInformation_item_sequence, hf_index, ett_gnm_RemoveTpsFromTpPoolInformation_item);
+
+ return offset;
+}
+static int dissect_RemoveTpsFromTpPoolInformation_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_RemoveTpsFromTpPoolInformation_item(FALSE, tvb, offset, pinfo, tree, hf_gnm_RemoveTpsFromTpPoolInformation_item);
+}
+
+
+static const ber_sequence_t RemoveTpsFromTpPoolInformation_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_RemoveTpsFromTpPoolInformation_item },
+};
+
+static int
+dissect_gnm_RemoveTpsFromTpPoolInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ RemoveTpsFromTpPoolInformation_sequence_of, hf_index, ett_gnm_RemoveTpsFromTpPoolInformation);
+
+ return offset;
+}
+
+
+static const value_string gnm_RemoveTpsFromTpPoolResult_item_vals[] = {
+ { 0, "failed" },
+ { 1, "removed" },
+ { 0, NULL }
+};
+
+static const ber_choice_t RemoveTpsFromTpPoolResult_item_choice[] = {
+ { 0, BER_CLASS_CON, 0, 0, dissect_failed_impl },
+ { 1, BER_CLASS_CON, 1, 0, dissect_removed_impl },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_RemoveTpsFromTpPoolResult_item(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ RemoveTpsFromTpPoolResult_item_choice, hf_index, ett_gnm_RemoveTpsFromTpPoolResult_item,
+ NULL);
+
+ return offset;
+}
+static int dissect_RemoveTpsFromTpPoolResult_item(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_RemoveTpsFromTpPoolResult_item(FALSE, tvb, offset, pinfo, tree, hf_gnm_RemoveTpsFromTpPoolResult_item);
+}
+
+
+static const ber_sequence_t RemoveTpsFromTpPoolResult_sequence_of[1] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_RemoveTpsFromTpPoolResult_item },
+};
+
+static int
+dissect_gnm_RemoveTpsFromTpPoolResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ RemoveTpsFromTpPoolResult_sequence_of, hf_index, ett_gnm_RemoveTpsFromTpPoolResult);
+
+ return offset;
+}
+
+
+static const value_string gnm_Replaceable_vals[] = {
+ { 0, "yes" },
+ { 1, "no" },
+ { 2, "notapplicable" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gnm_Replaceable(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SequenceOfObjectInstance_sequence_of[1] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_SequenceOfObjectInstance_item },
+};
+
+static int
+dissect_gnm_SequenceOfObjectInstance(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ SequenceOfObjectInstance_sequence_of, hf_index, ett_gnm_SequenceOfObjectInstance);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gnm_SerialNumber(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GraphicString,
+ pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const value_string gnm_SignallingCapabilities_vals[] = {
+ { 0, "isup" },
+ { 1, "isup92" },
+ { 2, "itu-tNo5" },
+ { 3, "r2" },
+ { 4, "itu-tNo6" },
+ { 5, "tup" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gnm_SignallingCapabilities(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SEQUENCE_OF_Bundle_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_complex_item },
+};
+
+static int
+dissect_gnm_SEQUENCE_OF_Bundle(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ SEQUENCE_OF_Bundle_sequence_of, hf_index, ett_gnm_SEQUENCE_OF_Bundle);
+
+ return offset;
+}
+static int dissect_complex_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_SEQUENCE_OF_Bundle(TRUE, tvb, offset, pinfo, tree, hf_gnm_complex);
+}
+
+
+static const value_string gnm_SignalType_vals[] = {
+ { 0, "simple" },
+ { 1, "bundle" },
+ { 2, "complex" },
+ { 0, NULL }
+};
+
+static const ber_choice_t SignalType_choice[] = {
+ { 0, BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_simple },
+ { 1, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_bundle },
+ { 2, BER_CLASS_CON, 0, 0, dissect_complex_impl },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_SignalType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ SignalType_choice, hf_index, ett_gnm_SignalType,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t T_softwareIdentifiers_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_softwareIdentifiers_item },
+};
+
+static int
+dissect_gnm_T_softwareIdentifiers(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ T_softwareIdentifiers_sequence_of, hf_index, ett_gnm_T_softwareIdentifiers);
+
+ return offset;
+}
+static int dissect_softwareIdentifiers_impl(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_T_softwareIdentifiers(TRUE, tvb, offset, pinfo, tree, hf_gnm_softwareIdentifiers);
+}
+
+
+static const value_string gnm_SubordinateCircuitPackSoftwareLoad_vals[] = {
+ { 0, "notApplicable" },
+ { 1, "softwareInstances" },
+ { 2, "softwareIdentifiers" },
+ { 0, NULL }
+};
+
+static const ber_choice_t SubordinateCircuitPackSoftwareLoad_choice[] = {
+ { 0, BER_CLASS_UNI, BER_UNI_TAG_NULL, BER_FLAGS_NOOWNTAG, dissect_notApplicable },
+ { 1, BER_CLASS_CON, 0, 0, dissect_softwareInstances_impl },
+ { 2, BER_CLASS_CON, 1, 0, dissect_softwareIdentifiers_impl },
+ { 0, 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_SubordinateCircuitPackSoftwareLoad(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_choice(pinfo, tree, tvb, offset,
+ SubordinateCircuitPackSoftwareLoad_choice, hf_index, ett_gnm_SubordinateCircuitPackSoftwareLoad,
+ NULL);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SupportableClientList_set_of[1] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_SupportableClientList_item },
+};
+
+static int
+dissect_gnm_SupportableClientList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_set_of(implicit_tag, pinfo, tree, tvb, offset,
+ SupportableClientList_set_of, hf_index, ett_gnm_SupportableClientList);
+
+ return offset;
+}
+
+
+static const value_string gnm_T_sourceType_vals[] = {
+ { 0, "internalTimingSource" },
+ { 1, "remoteTimingSource" },
+ { 2, "slavedTimingTerminationSignal" },
+ { 0, NULL }
+};
+
+
+static int
+dissect_gnm_T_sourceType(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_integer(implicit_tag, pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+static int dissect_sourceType(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_T_sourceType(FALSE, tvb, offset, pinfo, tree, hf_gnm_sourceType);
+}
+
+
+static const ber_sequence_t SystemTiming_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_ENUMERATED, BER_FLAGS_NOOWNTAG, dissect_sourceType },
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_sourceID },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_SystemTiming(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ SystemTiming_sequence, hf_index, ett_gnm_SystemTiming);
+
+ return offset;
+}
+static int dissect_primaryTimingSource(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_SystemTiming(FALSE, tvb, offset, pinfo, tree, hf_gnm_primaryTimingSource);
+}
+static int dissect_secondaryTimingSource(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
+ return dissect_gnm_SystemTiming(FALSE, tvb, offset, pinfo, tree, hf_gnm_secondaryTimingSource);
+}
+
+
+static const ber_sequence_t SystemTimingSource_sequence[] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_primaryTimingSource },
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_OPTIONAL|BER_FLAGS_NOOWNTAG, dissect_secondaryTimingSource },
+ { 0, 0, 0, NULL }
+};
+
+static int
+dissect_gnm_SystemTimingSource(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence(implicit_tag, pinfo, tree, tvb, offset,
+ SystemTimingSource_sequence, hf_index, ett_gnm_SystemTimingSource);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SwitchOverInformation_sequence_of[1] = {
+ { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_SwitchOverInformation_item },
+};
+
+static int
+dissect_gnm_SwitchOverInformation(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ SwitchOverInformation_sequence_of, hf_index, ett_gnm_SwitchOverInformation);
+
+ return offset;
+}
+
+
+static const ber_sequence_t SwitchOverResult_sequence_of[1] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_SwitchOverResult_item },
+};
+
+static int
+dissect_gnm_SwitchOverResult(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ SwitchOverResult_sequence_of, hf_index, ett_gnm_SwitchOverResult);
+
+ return offset;
+}
+
+
+static const ber_sequence_t TpsInGtpList_sequence_of[1] = {
+ { BER_CLASS_ANY/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG, dissect_TpsInGtpList_item },
+};
+
+static int
+dissect_gnm_TpsInGtpList(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_sequence_of(implicit_tag, pinfo, tree, tvb, offset,
+ TpsInGtpList_sequence_of, hf_index, ett_gnm_TpsInGtpList);
+
+ return offset;
+}
+
+
+static const asn_namedbit TransmissionCharacteristics_bits[] = {
+ { 0, &hf_gnm_TransmissionCharacteristics_satellite, -1, -1, "satellite", NULL },
+ { 1, &hf_gnm_TransmissionCharacteristics_dCME, -1, -1, "dCME", NULL },
+ { 2, &hf_gnm_TransmissionCharacteristics_echoControl, -1, -1, "echoControl", NULL },
+ { 0, NULL, 0, 0, NULL, NULL }
+};
+
+static int
+dissect_gnm_TransmissionCharacteristics(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_bitstring(implicit_tag, pinfo, tree, tvb, offset,
+ TransmissionCharacteristics_bits, hf_index, ett_gnm_TransmissionCharacteristics,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gnm_TypeText(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GraphicString,
+ pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gnm_VendorName(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GraphicString,
+ pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+
+static int
+dissect_gnm_Version(gboolean implicit_tag _U_, tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree, int hf_index _U_) {
+ offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_GraphicString,
+ pinfo, tree, tvb, offset, hf_index,
+ NULL);
+
+ return offset;
+}
+
+
+/*--- End of included file: 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 }},
+
+
+/*--- Included file: packet-gnm-hfarr.c ---*/
+
+ { &hf_gnm_globalValue,
+ { "globalValue", "gnm.globalValue",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "", HFILL }},
+ { &hf_gnm_localValue,
+ { "localValue", "gnm.localValue",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "", HFILL }},
+ { &hf_gnm_AvailabilityStatus_item,
+ { "Item", "gnm.AvailabilityStatus_item",
+ FT_INT32, BASE_DEC, VALS(gnm_AvailabilityStatus_item_vals), 0,
+ "AvailabilityStatus/_item", HFILL }},
+ { &hf_gnm_AttributeList_item,
+ { "Item", "gnm.AttributeList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "AttributeList/_item", HFILL }},
+ { &hf_gnm_AdditionalInformation_item,
+ { "Item", "gnm.AdditionalInformation_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "AdditionalInformation/_item", HFILL }},
+ { &hf_gnm_ControlStatus_item,
+ { "Item", "gnm.ControlStatus_item",
+ FT_INT32, BASE_DEC, VALS(gnm_ControlStatus_item_vals), 0,
+ "ControlStatus/_item", HFILL }},
+ { &hf_gnm_identifier,
+ { "identifier", "gnm.identifier",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "ManagementExtension/identifier", HFILL }},
+ { &hf_gnm_significance,
+ { "significance", "gnm.significance",
+ FT_BOOLEAN, 8, NULL, 0,
+ "ManagementExtension/significance", HFILL }},
+ { &hf_gnm_information,
+ { "information", "gnm.information",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "ManagementExtension/information", HFILL }},
+ { &hf_gnm_MappingList_item,
+ { "Item", "gnm.MappingList_item",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "MappingList/_item", HFILL }},
+ { &hf_gnm_Packages_item,
+ { "Item", "gnm.Packages_item",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "Packages/_item", HFILL }},
+ { &hf_gnm_objectClass,
+ { "objectClass", "gnm.objectClass",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "SignalRate/objectClass", HFILL }},
+ { &hf_gnm_characteristicInformation,
+ { "characteristicInformation", "gnm.characteristicInformation",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "SignalRate/characteristicInformation", HFILL }},
+ { &hf_gnm_SupportedTOClasses_item,
+ { "Item", "gnm.SupportedTOClasses_item",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "SupportedTOClasses/_item", HFILL }},
+ { &hf_gnm_AcceptableCircuitPackTypeList_item,
+ { "Item", "gnm.AcceptableCircuitPackTypeList_item",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "AcceptableCircuitPackTypeList/_item", HFILL }},
+ { &hf_gnm_gtp,
+ { "gtp", "gnm.gtp",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "", HFILL }},
+ { &hf_gnm_tpsAdded,
+ { "tpsAdded", "gnm.tpsAdded",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "AddedTps/tpsAdded", HFILL }},
+ { &hf_gnm_tpsAdded_item,
+ { "Item", "gnm.tpsAdded_item",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "AddedTps/tpsAdded/_item", HFILL }},
+ { &hf_gnm_mpCrossConnection,
+ { "mpCrossConnection", "gnm.mpCrossConnection",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "AddLeg/mpCrossConnection", HFILL }},
+ { &hf_gnm_legs,
+ { "legs", "gnm.legs",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "AddLeg/legs", HFILL }},
+ { &hf_gnm_legs_item,
+ { "Item", "gnm.legs_item",
+ FT_UINT32, BASE_DEC, VALS(gnm_ToTermSpecifier_vals), 0,
+ "AddLeg/legs/_item", HFILL }},
+ { &hf_gnm_AddTpsToGtpInformation_item,
+ { "Item", "gnm.AddTpsToGtpInformation_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "AddTpsToGtpInformation/_item", HFILL }},
+ { &hf_gnm_tpsAdded1,
+ { "tpsAdded", "gnm.tpsAdded",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "AddTpsToGtpInformation/_item/tpsAdded", HFILL }},
+ { &hf_gnm_tpsAdded_item1,
+ { "Item", "gnm.tpsAdded_item",
+ FT_UINT32, BASE_DEC, VALS(gnm_TerminationPointInformation_vals), 0,
+ "AddTpsToGtpInformation/_item/tpsAdded/_item", HFILL }},
+ { &hf_gnm_AddTpsToGtpResult_item,
+ { "Item", "gnm.AddTpsToGtpResult_item",
+ FT_UINT32, BASE_DEC, VALS(gnm_AddTpsToGtpResult_item_vals), 0,
+ "AddTpsToGtpResult/_item", HFILL }},
+ { &hf_gnm_failed,
+ { "failed", "gnm.failed",
+ FT_UINT32, BASE_DEC, VALS(gnm_Failed_vals), 0,
+ "", HFILL }},
+ { &hf_gnm_addedTps,
+ { "addedTps", "gnm.addedTps",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "AddTpsToGtpResult/_item/addedTps", HFILL }},
+ { &hf_gnm_AddTpsToTpPoolInformation_item,
+ { "Item", "gnm.AddTpsToTpPoolInformation_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "AddTpsToTpPoolInformation/_item", HFILL }},
+ { &hf_gnm_tps,
+ { "tps", "gnm.tps",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "AddTpsToTpPoolInformation/_item/tps", HFILL }},
+ { &hf_gnm_tps_item,
+ { "Item", "gnm.tps_item",
+ FT_UINT32, BASE_DEC, VALS(gnm_TerminationPointInformation_vals), 0,
+ "AddTpsToTpPoolInformation/_item/tps/_item", HFILL }},
+ { &hf_gnm_toTpPool,
+ { "toTpPool", "gnm.toTpPool",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "", HFILL }},
+ { &hf_gnm_AddTpsToTpPoolResult_item,
+ { "Item", "gnm.AddTpsToTpPoolResult_item",
+ FT_UINT32, BASE_DEC, VALS(gnm_AddTpsToTpPoolResult_item_vals), 0,
+ "AddTpsToTpPoolResult/_item", HFILL }},
+ { &hf_gnm_tpsAddedToTpPool,
+ { "tpsAddedToTpPool", "gnm.tpsAddedToTpPool",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "AddTpsToTpPoolResult/_item/tpsAddedToTpPool", HFILL }},
+ { &hf_gnm_problem,
+ { "problem", "gnm.problem",
+ FT_UINT32, BASE_DEC, VALS(gnm_ProbableCause_vals), 0,
+ "", HFILL }},
+ { &hf_gnm_severityAssignedServiceAffecting,
+ { "severityAssignedServiceAffecting", "gnm.severityAssignedServiceAffecting",
+ FT_UINT32, BASE_DEC, VALS(gnm_AlarmSeverityCode_vals), 0,
+ "AlarmSeverityAssignment/severityAssignedServiceAffecting", HFILL }},
+ { &hf_gnm_severityAssignedNonServiceAffecting,
+ { "severityAssignedNonServiceAffecting", "gnm.severityAssignedNonServiceAffecting",
+ FT_UINT32, BASE_DEC, VALS(gnm_AlarmSeverityCode_vals), 0,
+ "AlarmSeverityAssignment/severityAssignedNonServiceAffecting", HFILL }},
+ { &hf_gnm_severityAssignedServiceIndependent,
+ { "severityAssignedServiceIndependent", "gnm.severityAssignedServiceIndependent",
+ FT_UINT32, BASE_DEC, VALS(gnm_AlarmSeverityCode_vals), 0,
+ "AlarmSeverityAssignment/severityAssignedServiceIndependent", HFILL }},
+ { &hf_gnm_AlarmSeverityAssignmentList_item,
+ { "Item", "gnm.AlarmSeverityAssignmentList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "AlarmSeverityAssignmentList/_item", HFILL }},
+ { &hf_gnm_characteristicInfoType,
+ { "characteristicInfoType", "gnm.characteristicInfoType",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "Bundle/characteristicInfoType", HFILL }},
+ { &hf_gnm_bundlingFactor,
+ { "bundlingFactor", "gnm.bundlingFactor",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "Bundle/bundlingFactor", HFILL }},
+ { &hf_gnm_pointToPoint,
+ { "pointToPoint", "gnm.pointToPoint",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Connected/pointToPoint", HFILL }},
+ { &hf_gnm_pointToMultipoint,
+ { "pointToMultipoint", "gnm.pointToMultipoint",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Connected/pointToMultipoint", HFILL }},
+ { &hf_gnm_ConnectInformation_item,
+ { "Item", "gnm.ConnectInformation_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "ConnectInformation/_item", HFILL }},
+ { &hf_gnm_itemType,
+ { "itemType", "gnm.itemType",
+ FT_UINT32, BASE_DEC, VALS(gnm_T_itemType_vals), 0,
+ "ConnectInformation/_item/itemType", HFILL }},
+ { &hf_gnm_unidirectional,
+ { "unidirectional", "gnm.unidirectional",
+ FT_UINT32, BASE_DEC, VALS(gnm_ConnectionType_vals), 0,
+ "ConnectInformation/_item/itemType/unidirectional", HFILL }},
+ { &hf_gnm_bidirectional,
+ { "bidirectional", "gnm.bidirectional",
+ FT_UINT32, BASE_DEC, VALS(gnm_ConnectionTypeBi_vals), 0,
+ "ConnectInformation/_item/itemType/bidirectional", HFILL }},
+ { &hf_gnm_addleg,
+ { "addleg", "gnm.addleg",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "ConnectInformation/_item/itemType/addleg", HFILL }},
+ { &hf_gnm_administrativeState,
+ { "administrativeState", "gnm.administrativeState",
+ FT_UINT32, BASE_DEC, VALS(gnm_AdministrativeState_vals), 0,
+ "ConnectInformation/_item/administrativeState", HFILL }},
+ { &hf_gnm_namedCrossConnection,
+ { "namedCrossConnection", "gnm.namedCrossConnection",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "ConnectInformation/_item/namedCrossConnection", HFILL }},
+ { &hf_gnm_userLabel,
+ { "userLabel", "gnm.userLabel",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "ConnectInformation/_item/userLabel", HFILL }},
+ { &hf_gnm_redline,
+ { "redline", "gnm.redline",
+ FT_BOOLEAN, 8, NULL, 0,
+ "ConnectInformation/_item/redline", HFILL }},
+ { &hf_gnm_additionalInfo,
+ { "additionalInfo", "gnm.additionalInfo",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "ConnectInformation/_item/additionalInfo", HFILL }},
+ { &hf_gnm_none,
+ { "none", "gnm.none",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "", HFILL }},
+ { &hf_gnm_single,
+ { "single", "gnm.single",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "", HFILL }},
+ { &hf_gnm_concatenated,
+ { "concatenated", "gnm.concatenated",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "", HFILL }},
+ { &hf_gnm_concatenated_item,
+ { "Item", "gnm.concatenated_item",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "", HFILL }},
+ { &hf_gnm_ConnectResult_item,
+ { "Item", "gnm.ConnectResult_item",
+ FT_UINT32, BASE_DEC, VALS(gnm_ConnectResult_item_vals), 0,
+ "ConnectResult/_item", HFILL }},
+ { &hf_gnm_connected,
+ { "connected", "gnm.connected",
+ FT_UINT32, BASE_DEC, VALS(gnm_Connected_vals), 0,
+ "ConnectResult/_item/connected", HFILL }},
+ { &hf_gnm_explicitPToP,
+ { "explicitPToP", "gnm.explicitPToP",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "", HFILL }},
+ { &hf_gnm_ptoTpPool,
+ { "ptoTpPool", "gnm.ptoTpPool",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "", HFILL }},
+ { &hf_gnm_explicitPtoMP,
+ { "explicitPtoMP", "gnm.explicitPtoMP",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "ConnectionType/explicitPtoMP", HFILL }},
+ { &hf_gnm_ptoMPools,
+ { "ptoMPools", "gnm.ptoMPools",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "ConnectionType/ptoMPools", HFILL }},
+ { &hf_gnm_notConnected,
+ { "notConnected", "gnm.notConnected",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "CrossConnectionObjectPointer/notConnected", HFILL }},
+ { &hf_gnm_connected1,
+ { "connected", "gnm.connected",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "CrossConnectionObjectPointer/connected", HFILL }},
+ { &hf_gnm_multipleConnections,
+ { "multipleConnections", "gnm.multipleConnections",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "CrossConnectionObjectPointer/multipleConnections", HFILL }},
+ { &hf_gnm_alarmStatus,
+ { "alarmStatus", "gnm.alarmStatus",
+ FT_UINT32, BASE_DEC, VALS(gnm_AlarmStatus_vals), 0,
+ "CurrentProblem/alarmStatus", HFILL }},
+ { &hf_gnm_CurrentProblemList_item,
+ { "Item", "gnm.CurrentProblemList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "CurrentProblemList/_item", HFILL }},
+ { &hf_gnm_DisconnectInformation_item,
+ { "Item", "gnm.DisconnectInformation_item",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "DisconnectInformation/_item", HFILL }},
+ { &hf_gnm_DisconnectResult_item,
+ { "Item", "gnm.DisconnectResult_item",
+ FT_UINT32, BASE_DEC, VALS(gnm_DisconnectResult_item_vals), 0,
+ "DisconnectResult/_item", HFILL }},
+ { &hf_gnm_disconnected,
+ { "disconnected", "gnm.disconnected",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "DisconnectResult/_item/disconnected", HFILL }},
+ { &hf_gnm_broadcast,
+ { "broadcast", "gnm.broadcast",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "DownstreamConnectivityPointer/broadcast", HFILL }},
+ { &hf_gnm_broadcast_item,
+ { "Item", "gnm.broadcast_item",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "DownstreamConnectivityPointer/broadcast/_item", HFILL }},
+ { &hf_gnm_broadcastConcatenated,
+ { "broadcastConcatenated", "gnm.broadcastConcatenated",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "DownstreamConnectivityPointer/broadcastConcatenated", HFILL }},
+ { &hf_gnm_broadcastConcatenated_item,
+ { "Item", "gnm.broadcastConcatenated_item",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "DownstreamConnectivityPointer/broadcastConcatenated/_item", HFILL }},
+ { &hf_gnm__item_item,
+ { "Item", "gnm._item_item",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "DownstreamConnectivityPointer/broadcastConcatenated/_item/_item", HFILL }},
+ { &hf_gnm_fromTp,
+ { "fromTp", "gnm.fromTp",
+ FT_UINT32, BASE_DEC, VALS(gnm_ExplicitTP_vals), 0,
+ "", HFILL }},
+ { &hf_gnm_toTPs,
+ { "toTPs", "gnm.toTPs",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "ExplicitPtoMP/toTPs", HFILL }},
+ { &hf_gnm_toTPs_item,
+ { "Item", "gnm.toTPs_item",
+ FT_UINT32, BASE_DEC, VALS(gnm_ExplicitTP_vals), 0,
+ "ExplicitPtoMP/toTPs/_item", HFILL }},
+ { &hf_gnm_toTp,
+ { "toTp", "gnm.toTp",
+ FT_UINT32, BASE_DEC, VALS(gnm_ExplicitTP_vals), 0,
+ "ExplicitPtoP/toTp", HFILL }},
+ { &hf_gnm_oneTPorGTP,
+ { "oneTPorGTP", "gnm.oneTPorGTP",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "ExplicitTP/oneTPorGTP", HFILL }},
+ { &hf_gnm_listofTPs,
+ { "listofTPs", "gnm.listofTPs",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "ExplicitTP/listofTPs", HFILL }},
+ { &hf_gnm_listofTPs_item,
+ { "Item", "gnm.listofTPs_item",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "ExplicitTP/listofTPs/_item", HFILL }},
+ { &hf_gnm_EquipmentHolderAddress_item,
+ { "Item", "gnm.EquipmentHolderAddress_item",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "EquipmentHolderAddress/_item", HFILL }},
+ { &hf_gnm_logicalProblem,
+ { "logicalProblem", "gnm.logicalProblem",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "Failed/logicalProblem", HFILL }},
+ { &hf_gnm_resourceProblem,
+ { "resourceProblem", "gnm.resourceProblem",
+ FT_UINT32, BASE_DEC, VALS(gnm_ResourceProblem_vals), 0,
+ "Failed/resourceProblem", HFILL }},
+ { &hf_gnm_GeneralError_item,
+ { "Item", "gnm.GeneralError_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "GeneralError/_item", HFILL }},
+ { &hf_gnm_cause,
+ { "cause", "gnm.cause",
+ FT_UINT32, BASE_DEC, VALS(gnm_GeneralErrorCause_vals), 0,
+ "GeneralError/_item/cause", HFILL }},
+ { &hf_gnm_details,
+ { "details", "gnm.details",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "GeneralError/_item/details", HFILL }},
+ { &hf_gnm_relatedObjects,
+ { "relatedObjects", "gnm.relatedObjects",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "GeneralError/_item/relatedObjects", HFILL }},
+ { &hf_gnm_relatedObjects_item,
+ { "Item", "gnm.relatedObjects_item",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "GeneralError/_item/relatedObjects/_item", HFILL }},
+ { &hf_gnm_attributeList,
+ { "attributeList", "gnm.attributeList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "GeneralError/_item/attributeList", HFILL }},
+ { &hf_gnm_holderEmpty,
+ { "holderEmpty", "gnm.holderEmpty",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "HolderStatus/holderEmpty", HFILL }},
+ { &hf_gnm_inTheAcceptableList,
+ { "inTheAcceptableList", "gnm.inTheAcceptableList",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "HolderStatus/inTheAcceptableList", HFILL }},
+ { &hf_gnm_notInTheAcceptableList,
+ { "notInTheAcceptableList", "gnm.notInTheAcceptableList",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "HolderStatus/notInTheAcceptableList", HFILL }},
+ { &hf_gnm_unknownType,
+ { "unknownType", "gnm.unknownType",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "HolderStatus/unknownType", HFILL }},
+ { &hf_gnm_connection,
+ { "connection", "gnm.connection",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "IndividualSwitchOver/connection", HFILL }},
+ { &hf_gnm_unchangedTP,
+ { "unchangedTP", "gnm.unchangedTP",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "IndividualSwitchOver/unchangedTP", HFILL }},
+ { &hf_gnm_newTP,
+ { "newTP", "gnm.newTP",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "IndividualSwitchOver/newTP", HFILL }},
+ { &hf_gnm_pass,
+ { "pass", "gnm.pass",
+ FT_UINT32, BASE_DEC, VALS(gnm_Connected_vals), 0,
+ "IndividualResult/pass", HFILL }},
+ { &hf_gnm_ListOfCharacteristicInformation_item,
+ { "Item", "gnm.ListOfCharacteristicInformation_item",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "ListOfCharacteristicInformation/_item", HFILL }},
+ { &hf_gnm_ListOfTPs_item,
+ { "Item", "gnm.ListOfTPs_item",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "ListOfTPs/_item", HFILL }},
+ { &hf_gnm_problemCause,
+ { "problemCause", "gnm.problemCause",
+ FT_UINT32, BASE_DEC, VALS(gnm_ProblemCause_vals), 0,
+ "LogicalProblem/problemCause", HFILL }},
+ { &hf_gnm_incorrectInstances,
+ { "incorrectInstances", "gnm.incorrectInstances",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "LogicalProblem/incorrectInstances", HFILL }},
+ { &hf_gnm_incorrectInstances_item,
+ { "Item", "gnm.incorrectInstances_item",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "LogicalProblem/incorrectInstances/_item", HFILL }},
+ { &hf_gnm_MultipleConnections_item,
+ { "Item", "gnm.MultipleConnections_item",
+ FT_UINT32, BASE_DEC, VALS(gnm_MultipleConnections_item_vals), 0,
+ "MultipleConnections/_item", HFILL }},
+ { &hf_gnm_downstreamNotConnected,
+ { "downstreamNotConnected", "gnm.downstreamNotConnected",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "MultipleConnections/_item/downstreamNotConnected", HFILL }},
+ { &hf_gnm_downstreamConnected,
+ { "downstreamConnected", "gnm.downstreamConnected",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "MultipleConnections/_item/downstreamConnected", HFILL }},
+ { &hf_gnm_upstreamNotConnected,
+ { "upstreamNotConnected", "gnm.upstreamNotConnected",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "MultipleConnections/_item/upstreamNotConnected", HFILL }},
+ { &hf_gnm_upstreamConnected,
+ { "upstreamConnected", "gnm.upstreamConnected",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "MultipleConnections/_item/upstreamConnected", HFILL }},
+ { &hf_gnm_redline1,
+ { "redline", "gnm.redline",
+ FT_BOOLEAN, 8, NULL, 0,
+ "NamedCrossConnection/redline", HFILL }},
+ { &hf_gnm_name,
+ { "name", "gnm.name",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "NamedCrossConnection/name", HFILL }},
+ { &hf_gnm_numericName,
+ { "numericName", "gnm.numericName",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "NameType/numericName", HFILL }},
+ { &hf_gnm_pString,
+ { "pString", "gnm.pString",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "NameType/pString", HFILL }},
+ { &hf_gnm_ObjectList_item,
+ { "Item", "gnm.ObjectList_item",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "ObjectList/_item", HFILL }},
+ { &hf_gnm_diverse,
+ { "diverse", "gnm.diverse",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "PhysicalPortSignalRateAndMappingList/diverse", HFILL }},
+ { &hf_gnm_downstream,
+ { "downstream", "gnm.downstream",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "PhysicalPortSignalRateAndMappingList/diverse/downstream", HFILL }},
+ { &hf_gnm_upStream,
+ { "upStream", "gnm.upStream",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "PhysicalPortSignalRateAndMappingList/diverse/upStream", HFILL }},
+ { &hf_gnm_uniform,
+ { "uniform", "gnm.uniform",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "PhysicalPortSignalRateAndMappingList/uniform", HFILL }},
+ { &hf_gnm_pointer,
+ { "pointer", "gnm.pointer",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "PointerOrNull/pointer", HFILL }},
+ { &hf_gnm_null,
+ { "null", "gnm.null",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "PointerOrNull/null", HFILL }},
+ { &hf_gnm_fromTp1,
+ { "fromTp", "gnm.fromTp",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "", HFILL }},
+ { &hf_gnm_toTp1,
+ { "toTp", "gnm.toTp",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "PointToPoint/toTp", HFILL }},
+ { &hf_gnm_xCon,
+ { "xCon", "gnm.xCon",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "PointToPoint/xCon", HFILL }},
+ { &hf_gnm_toTps,
+ { "toTps", "gnm.toTps",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "PointToMultipoint/toTps", HFILL }},
+ { &hf_gnm_toTps_item,
+ { "Item", "gnm.toTps_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "PointToMultipoint/toTps/_item", HFILL }},
+ { &hf_gnm_tp,
+ { "tp", "gnm.tp",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "PointToMultipoint/toTps/_item/tp", HFILL }},
+ { &hf_gnm_xConnection,
+ { "xConnection", "gnm.xConnection",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "PointToMultipoint/toTps/_item/xConnection", HFILL }},
+ { &hf_gnm_mpXCon,
+ { "mpXCon", "gnm.mpXCon",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "PointToMultipoint/mpXCon", HFILL }},
+ { &hf_gnm_unknown,
+ { "unknown", "gnm.unknown",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "", HFILL }},
+ { &hf_gnm_integerValue,
+ { "integerValue", "gnm.integerValue",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "", HFILL }},
+ { &hf_gnm_toTPPools,
+ { "toTPPools", "gnm.toTPPools",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "PtoMPools/toTPPools", HFILL }},
+ { &hf_gnm_notAvailable,
+ { "notAvailable", "gnm.notAvailable",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "RelatedObjectInstance/notAvailable", HFILL }},
+ { &hf_gnm_relatedObject,
+ { "relatedObject", "gnm.relatedObject",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "RelatedObjectInstance/relatedObject", HFILL }},
+ { &hf_gnm_RemoveTpsFromGtpInformation_item,
+ { "Item", "gnm.RemoveTpsFromGtpInformation_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "RemoveTpsFromGtpInformation/_item", HFILL }},
+ { &hf_gnm_fromGtp,
+ { "fromGtp", "gnm.fromGtp",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "RemoveTpsFromGtpInformation/_item/fromGtp", HFILL }},
+ { &hf_gnm_tps1,
+ { "tps", "gnm.tps",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "", HFILL }},
+ { &hf_gnm_tps_item1,
+ { "Item", "gnm.tps_item",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "", HFILL }},
+ { &hf_gnm_RemoveTpsFromGtpResult_item,
+ { "Item", "gnm.RemoveTpsFromGtpResult_item",
+ FT_UINT32, BASE_DEC, VALS(gnm_RemoveTpsFromGtpResult_item_vals), 0,
+ "RemoveTpsFromGtpResult/_item", HFILL }},
+ { &hf_gnm_removed,
+ { "removed", "gnm.removed",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "", HFILL }},
+ { &hf_gnm_RemoveTpsFromTpPoolInformation_item,
+ { "Item", "gnm.RemoveTpsFromTpPoolInformation_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "RemoveTpsFromTpPoolInformation/_item", HFILL }},
+ { &hf_gnm_fromTpPool,
+ { "fromTpPool", "gnm.fromTpPool",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "RemoveTpsFromTpPoolInformation/_item/fromTpPool", HFILL }},
+ { &hf_gnm_RemoveTpsFromTpPoolResult_item,
+ { "Item", "gnm.RemoveTpsFromTpPoolResult_item",
+ FT_UINT32, BASE_DEC, VALS(gnm_RemoveTpsFromTpPoolResult_item_vals), 0,
+ "RemoveTpsFromTpPoolResult/_item", HFILL }},
+ { &hf_gnm_deletedTpPoolOrGTP,
+ { "deletedTpPoolOrGTP", "gnm.deletedTpPoolOrGTP",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "RemoveTpsResultInformation/deletedTpPoolOrGTP", HFILL }},
+ { &hf_gnm_SequenceOfObjectInstance_item,
+ { "Item", "gnm.SequenceOfObjectInstance_item",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "SequenceOfObjectInstance/_item", HFILL }},
+ { &hf_gnm_SignalRateAndMappingList_item,
+ { "Item", "gnm.SignalRateAndMappingList_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "SignalRateAndMappingList/_item", HFILL }},
+ { &hf_gnm_signalRate,
+ { "signalRate", "gnm.signalRate",
+ FT_UINT32, BASE_DEC, VALS(gnm_SignalRate_vals), 0,
+ "SignalRateAndMappingList/_item/signalRate", HFILL }},
+ { &hf_gnm_mappingList,
+ { "mappingList", "gnm.mappingList",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "SignalRateAndMappingList/_item/mappingList", HFILL }},
+ { &hf_gnm_wavelength,
+ { "wavelength", "gnm.wavelength",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "SignalRateAndMappingList/_item/wavelength", HFILL }},
+ { &hf_gnm_simple,
+ { "simple", "gnm.simple",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "SignalType/simple", HFILL }},
+ { &hf_gnm_bundle,
+ { "bundle", "gnm.bundle",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "SignalType/bundle", HFILL }},
+ { &hf_gnm_complex,
+ { "complex", "gnm.complex",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "SignalType/complex", HFILL }},
+ { &hf_gnm_complex_item,
+ { "Item", "gnm.complex_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "SignalType/complex/_item", HFILL }},
+ { &hf_gnm_notApplicable,
+ { "notApplicable", "gnm.notApplicable",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "SubordinateCircuitPackSoftwareLoad/notApplicable", HFILL }},
+ { &hf_gnm_softwareInstances,
+ { "softwareInstances", "gnm.softwareInstances",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "SubordinateCircuitPackSoftwareLoad/softwareInstances", HFILL }},
+ { &hf_gnm_softwareInstances_item,
+ { "Item", "gnm.softwareInstances_item",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "SubordinateCircuitPackSoftwareLoad/softwareInstances/_item", HFILL }},
+ { &hf_gnm_softwareIdentifiers,
+ { "softwareIdentifiers", "gnm.softwareIdentifiers",
+ FT_UINT32, BASE_DEC, NULL, 0,
+ "SubordinateCircuitPackSoftwareLoad/softwareIdentifiers", HFILL }},
+ { &hf_gnm_softwareIdentifiers_item,
+ { "Item", "gnm.softwareIdentifiers_item",
+ FT_STRING, BASE_NONE, NULL, 0,
+ "SubordinateCircuitPackSoftwareLoad/softwareIdentifiers/_item", HFILL }},
+ { &hf_gnm_SupportableClientList_item,
+ { "Item", "gnm.SupportableClientList_item",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectClass_vals), 0,
+ "SupportableClientList/_item", HFILL }},
+ { &hf_gnm_sourceType,
+ { "sourceType", "gnm.sourceType",
+ FT_UINT32, BASE_DEC, VALS(gnm_T_sourceType_vals), 0,
+ "SystemTiming/sourceType", HFILL }},
+ { &hf_gnm_sourceID,
+ { "sourceID", "gnm.sourceID",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "SystemTiming/sourceID", HFILL }},
+ { &hf_gnm_primaryTimingSource,
+ { "primaryTimingSource", "gnm.primaryTimingSource",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "SystemTimingSource/primaryTimingSource", HFILL }},
+ { &hf_gnm_secondaryTimingSource,
+ { "secondaryTimingSource", "gnm.secondaryTimingSource",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "SystemTimingSource/secondaryTimingSource", HFILL }},
+ { &hf_gnm_SwitchOverInformation_item,
+ { "Item", "gnm.SwitchOverInformation_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "SwitchOverInformation/_item", HFILL }},
+ { &hf_gnm_SwitchOverResult_item,
+ { "Item", "gnm.SwitchOverResult_item",
+ FT_UINT32, BASE_DEC, VALS(gnm_IndividualResult_vals), 0,
+ "SwitchOverResult/_item", HFILL }},
+ { &hf_gnm_tPOrGTP,
+ { "tPOrGTP", "gnm.tPOrGTP",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "TerminationPointInformation/tPOrGTP", HFILL }},
+ { &hf_gnm_sourceTP,
+ { "sourceTP", "gnm.sourceTP",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "TerminationPointInformation/sourceTP", HFILL }},
+ { &hf_gnm_sinkTP,
+ { "sinkTP", "gnm.sinkTP",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "TerminationPointInformation/sinkTP", HFILL }},
+ { &hf_gnm_toTpOrGTP,
+ { "toTpOrGTP", "gnm.toTpOrGTP",
+ FT_UINT32, BASE_DEC, VALS(gnm_ExplicitTP_vals), 0,
+ "ToTermSpecifier/toTpOrGTP", HFILL }},
+ { &hf_gnm_toPool,
+ { "toPool", "gnm.toPool",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "ToTermSpecifier/toPool", HFILL }},
+ { &hf_gnm_ToTPPools_item,
+ { "Item", "gnm.ToTPPools_item",
+ FT_NONE, BASE_NONE, NULL, 0,
+ "ToTPPools/_item", HFILL }},
+ { &hf_gnm_tpPoolId,
+ { "tpPoolId", "gnm.tpPoolId",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "ToTPPools/_item/tpPoolId", HFILL }},
+ { &hf_gnm_numberOfTPs,
+ { "numberOfTPs", "gnm.numberOfTPs",
+ FT_INT32, BASE_DEC, NULL, 0,
+ "ToTPPools/_item/numberOfTPs", HFILL }},
+ { &hf_gnm_tpPool,
+ { "tpPool", "gnm.tpPool",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "TpsAddedToTpPool/tpPool", HFILL }},
+ { &hf_gnm_TpsInGtpList_item,
+ { "Item", "gnm.TpsInGtpList_item",
+ FT_UINT32, BASE_DEC, VALS(cmip_ObjectInstance_vals), 0,
+ "TpsInGtpList/_item", HFILL }},
+ { &hf_gnm_TransmissionCharacteristics_satellite,
+ { "satellite", "gnm.satellite",
+ FT_BOOLEAN, 8, NULL, 0x80,
+ "", HFILL }},
+ { &hf_gnm_TransmissionCharacteristics_dCME,
+ { "dCME", "gnm.dCME",
+ FT_BOOLEAN, 8, NULL, 0x40,
+ "", HFILL }},
+ { &hf_gnm_TransmissionCharacteristics_echoControl,
+ { "echoControl", "gnm.echoControl",
+ FT_BOOLEAN, 8, NULL, 0x20,
+ "", HFILL }},
+
+/*--- End of included file: packet-gnm-hfarr.c ---*/
+
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+
+/*--- Included file: packet-gnm-ettarr.c ---*/
+
+ &ett_gnm_ProbableCause,
+ &ett_gnm_AvailabilityStatus,
+ &ett_gnm_AttributeList,
+ &ett_gnm_AdditionalInformation,
+ &ett_gnm_ControlStatus,
+ &ett_gnm_ManagementExtension,
+ &ett_gnm_MappingList,
+ &ett_gnm_Packages,
+ &ett_gnm_SignalRate,
+ &ett_gnm_SupportedTOClasses,
+ &ett_gnm_AcceptableCircuitPackTypeList,
+ &ett_gnm_AddedTps,
+ &ett_gnm_SEQUENCE_OF_ObjectInstance,
+ &ett_gnm_AddLeg,
+ &ett_gnm_SET_OF_ToTermSpecifier,
+ &ett_gnm_AddTpsToGtpInformation,
+ &ett_gnm_AddTpsToGtpInformation_item,
+ &ett_gnm_SEQUENCE_OF_TerminationPointInformation,
+ &ett_gnm_AddTpsToGtpResult,
+ &ett_gnm_AddTpsToGtpResult_item,
+ &ett_gnm_AddTpsToTpPoolInformation,
+ &ett_gnm_AddTpsToTpPoolInformation_item,
+ &ett_gnm_SET_OF_TerminationPointInformation,
+ &ett_gnm_AddTpsToTpPoolResult,
+ &ett_gnm_AddTpsToTpPoolResult_item,
+ &ett_gnm_AlarmSeverityAssignment,
+ &ett_gnm_AlarmSeverityAssignmentList,
+ &ett_gnm_Bundle,
+ &ett_gnm_Connected,
+ &ett_gnm_ConnectInformation,
+ &ett_gnm_ConnectInformation_item,
+ &ett_gnm_T_itemType,
+ &ett_gnm_ConnectivityPointer,
+ &ett_gnm_ConnectResult,
+ &ett_gnm_ConnectResult_item,
+ &ett_gnm_ConnectionType,
+ &ett_gnm_ConnectionTypeBi,
+ &ett_gnm_CrossConnectionObjectPointer,
+ &ett_gnm_CurrentProblem,
+ &ett_gnm_CurrentProblemList,
+ &ett_gnm_DisconnectInformation,
+ &ett_gnm_DisconnectResult,
+ &ett_gnm_DisconnectResult_item,
+ &ett_gnm_DownstreamConnectivityPointer,
+ &ett_gnm_SET_OF_ObjectInstance,
+ &ett_gnm_T_broadcastConcatenated,
+ &ett_gnm_ExplicitPtoMP,
+ &ett_gnm_SET_OF_ExplicitTP,
+ &ett_gnm_ExplicitPtoP,
+ &ett_gnm_ExplicitTP,
+ &ett_gnm_EquipmentHolderAddress,
+ &ett_gnm_Failed,
+ &ett_gnm_GeneralError,
+ &ett_gnm_GeneralError_item,
+ &ett_gnm_GeneralErrorCause,
+ &ett_gnm_HolderStatus,
+ &ett_gnm_IndividualSwitchOver,
+ &ett_gnm_IndividualResult,
+ &ett_gnm_ListOfCharacteristicInformation,
+ &ett_gnm_ListOfTPs,
+ &ett_gnm_LogicalProblem,
+ &ett_gnm_MultipleConnections,
+ &ett_gnm_MultipleConnections_item,
+ &ett_gnm_NamedCrossConnection,
+ &ett_gnm_NameType,
+ &ett_gnm_ObjectList,
+ &ett_gnm_PhysicalPortSignalRateAndMappingList,
+ &ett_gnm_T_diverse,
+ &ett_gnm_PointerOrNull,
+ &ett_gnm_PointToPoint,
+ &ett_gnm_PointToMultipoint,
+ &ett_gnm_T_toTps,
+ &ett_gnm_T_toTps_item,
+ &ett_gnm_ProblemCause,
+ &ett_gnm_PtoMPools,
+ &ett_gnm_PtoTPPool,
+ &ett_gnm_RelatedObjectInstance,
+ &ett_gnm_RemoveTpsFromGtpInformation,
+ &ett_gnm_RemoveTpsFromGtpInformation_item,
+ &ett_gnm_RemoveTpsFromGtpResult,
+ &ett_gnm_RemoveTpsFromGtpResult_item,
+ &ett_gnm_RemoveTpsFromTpPoolInformation,
+ &ett_gnm_RemoveTpsFromTpPoolInformation_item,
+ &ett_gnm_RemoveTpsFromTpPoolResult,
+ &ett_gnm_RemoveTpsFromTpPoolResult_item,
+ &ett_gnm_RemoveTpsResultInformation,
+ &ett_gnm_ResourceProblem,
+ &ett_gnm_SequenceOfObjectInstance,
+ &ett_gnm_SignalRateAndMappingList,
+ &ett_gnm_SignalRateAndMappingList_item,
+ &ett_gnm_SignalType,
+ &ett_gnm_SEQUENCE_OF_Bundle,
+ &ett_gnm_SubordinateCircuitPackSoftwareLoad,
+ &ett_gnm_T_softwareIdentifiers,
+ &ett_gnm_SupportableClientList,
+ &ett_gnm_SystemTiming,
+ &ett_gnm_SystemTimingSource,
+ &ett_gnm_SwitchOverInformation,
+ &ett_gnm_SwitchOverResult,
+ &ett_gnm_TerminationPointInformation,
+ &ett_gnm_ToTermSpecifier,
+ &ett_gnm_ToTPPools,
+ &ett_gnm_ToTPPools_item,
+ &ett_gnm_TpsAddedToTpPool,
+ &ett_gnm_TpsInGtpList,
+ &ett_gnm_TransmissionCharacteristics,
+
+/*--- End of included file: 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/epan/dissectors/packet-gnm.h b/epan/dissectors/packet-gnm.h
new file mode 100644
index 0000000000..d5eee5b69e
--- /dev/null
+++ b/epan/dissectors/packet-gnm.h
@@ -0,0 +1,41 @@
+/* Do not modify this file. */
+/* It is created automatically by the ASN.1 to Ethereal dissector compiler */
+/* .\packet-gnm.h */
+/* ../../tools/asn2eth.py -X -b -e -p gnm -c gnm.cnf -s packet-gnm-template GNM.asn */
+
+/* Input file: packet-gnm-template.h */
+
+/* packet-gnm.c
+ * Routines for GENERIC NETWORK INFORMATION MODEL Data dissection
+ *
+ * Copyright 2005 , Anders Broman <anders.broman [AT] ericsson.com>
+ * $Id$
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@ethereal.com>
+ * 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 */