Revert "TODO epan/dissectors/asn1/kerberos/packet-kerberos-template.c new GSS flags"
[wireshark-sm.git] / epan / dissectors / asn1 / h248 / h248v3.asn
blob4b64834f736550b5508ff6b31f2893b5b786ea2d
1 MEDIA-GATEWAY-CONTROL {itu-t(0) recommendation(0) h(8) h248(248) modules(0)
2 media-gateway-control(0) version3(3)}
3 --
4 -- Module MEDIA-GATEWAY-CONTROL (H.248.1:09/2005)
5 -- See also ITU-T H.248.1 v3 (2005) Amend. 1 (05/2008)
6 --
7 --DEFINITIONS AUTOMATIC TAGS ::=
8 --BEGIN
9 -- Has been modified to pass through the ASN2ETH compiler
10 -- (we dont support automatic tags yet so the tags had to be added by
11 --  hand)
12 DEFINITIONS IMPLICIT TAGS ::=
13 BEGIN
14         MegacoMessage ::= SEQUENCE
15         {
16                 authHeader              [0] AuthenticationHeader OPTIONAL,
17                 mess                    [1] Message
18         }
20         AuthenticationHeader ::= SEQUENCE
21         {
22                 secParmIndex    [0] SecurityParmIndex,
23                 seqNum                  [1] SequenceNum,
24                 ad                              [2] AuthData
25         }
27         SecurityParmIndex ::= OCTET STRING(SIZE(4))
29         SequenceNum ::= OCTET STRING(SIZE(4))
31         AuthData ::= OCTET STRING (SIZE (12..32))
33         Message ::= SEQUENCE
34         {
35                 version                 [0] INTEGER(0..99),
36                 -- The version of the protocol defined here is equal to 3.
37                 mId                             [1] MId, -- Name/address of message originator
38                 messageBody             [2] CHOICE
39                 {
40                         messageError    [0] ErrorDescriptor,
41                         transactions    [1] SEQUENCE OF Transaction
42                 },
43                 ...
44         }
46         MId ::= CHOICE
47         {
48                 ip4Address              [0]     IP4Address,
49                 ip6Address              [1] IP6Address,
50                 domainName              [2] DomainName,
51                 deviceName              [3] PathName,
52                 mtpAddress              [4] MtpAddress,
53                 -- Addressing structure of mtpAddress:
54                 -- 25 - 15 0
55                 -- | PC | NI |
56                 -- 24 - 14 bits 2 bits
57                 -- NOTE - 14 bits are defined for international use.
58                 -- Two national options exist where the point code is 16 or 24 bits.
59                 -- To octet align the mtpAddress, the MSBs shall be encoded as 0s.
60                 ...
61         }
62 -- Wireshark specific
63         MtpAddress ::= OCTET STRING(SIZE(2..4))
65         DomainName ::= SEQUENCE
66         {
67                 name                    [0] IA5String,
68                 -- The name starts with an alphanumeric digit followed by a sequence
69                 -- of alphanumeric digits, hyphens and dots. No two dots shall occur
70                 -- consecutively.
72                 portNumber                      [1] INTEGER(0..65535) OPTIONAL
73         }
75         IP4Address ::= SEQUENCE
76         {
77                 address                 [0] OCTET STRING (SIZE(4)),
78                 portNumber              [1] INTEGER(0..65535) OPTIONAL
79         }
81         IP6Address ::= SEQUENCE
82         {
83                 address                 [0] OCTET STRING (SIZE(16)),
84                 portNumber              [1] INTEGER(0..65535) OPTIONAL
85         }
87         PathName ::= IA5String(SIZE (1..64))
88         -- See A.3
90         Transaction ::= CHOICE
91         {
92                 transactionRequest              [0] TransactionRequest,
93                 transactionPending              [1] TransactionPending,
94                 transactionReply                [2] TransactionReply,
95                 transactionResponseAck  [3] TransactionResponseAck,
96                 -- use of response acks is dependent on underlying transport
97                 ...,
98                 segmentReply                    [4] SegmentReply
99         }
101         TransactionId ::= INTEGER(0..4294967295) -- 32-bit unsigned integer
103         TransactionRequest ::= SEQUENCE
104         {
105                 transactionId                   [0] TransactionId,
106                 actions                                 [1] SEQUENCE OF ActionRequest,
107                 ...
108                 }
110         TransactionPending ::= SEQUENCE
111         {
112                 transactionId                   [0] TransactionId,
113                 ...
114         }
116         TransactionReply ::= SEQUENCE
117         {
118                 transactionId                   [0] TransactionId,
119                 immAckRequired                  [1] NULL OPTIONAL,
120                 transactionResult               [2] CHOICE
121                 {
122                         transactionError                [0]ErrorDescriptor,
123                         actionReplies                   [1] SEQUENCE OF ActionReply
124                 },
125                 ...,
126                 segmentNumber                   [3] SegmentNumber OPTIONAL,
127                 segmentationComplete    [4] NULL OPTIONAL
128         }
130         SegmentReply ::= SEQUENCE
131         {
132                 transactionId                   [0] TransactionId,
133                 segmentNumber                   [1] SegmentNumber,
134                 segmentationComplete    [2] NULL OPTIONAL,
135                 ...
136         }
138         SegmentNumber ::= INTEGER(0..65535)
140         TransactionResponseAck ::= SEQUENCE OF TransactionAck
142         TransactionAck ::= SEQUENCE
143         {
144                 firstAck                [0] TransactionId,
145                 lastAck                 [1] TransactionId OPTIONAL
146         }
148         ErrorDescriptor ::= SEQUENCE
149         {
150                 errorCode               [0] ErrorCode,
151                 errorText               [1] ErrorText OPTIONAL
152         }
154         ErrorCode ::= INTEGER(0..65535)
155         -- See clause 14 for IANA considerations with respect to error codes
157         ErrorText ::= IA5String
159         ContextID ::= INTEGER(0..4294967295)
160         -- Context NULL Value: 0
161         -- Context CHOOSE Value: 4294967294 (0xFFFFFFFE)
162         -- Context ALL Value: 4294967295 (0xFFFFFFFF)
164         ActionRequest ::= SEQUENCE
165         {
166                 contextId                               [0] ContextID,
167                 contextRequest                  [1] ContextRequest OPTIONAL,
168                 contextAttrAuditReq             [2] ContextAttrAuditRequest OPTIONAL,
169                 commandRequests                 [3] SEQUENCE OF CommandRequest
170         }
172         ActionReply ::= SEQUENCE
173         {
174                 contextId                               [0] ContextID,
175                 errorDescriptor                 [1] ErrorDescriptor OPTIONAL,
176                 contextReply                    [2] ContextRequest OPTIONAL,
177                 commandReply                    [3] SEQUENCE OF CommandReply
178         }
180         -- Wireshark Specific
181         ContextIDinList ::= INTEGER(0..4294967295)
183         ContextRequest ::= SEQUENCE
184         {
185                 priority                                [0] INTEGER(0..15) OPTIONAL,
186                 emergency                               [1] BOOLEAN OPTIONAL,
187                 topologyReq                             [2] SEQUENCE OF TopologyRequest OPTIONAL,
188                 ...,
189                 iepscallind                             [3] BOOLEAN OPTIONAL,
190                 contextProp                             [4] SEQUENCE OF PropertyParm OPTIONAL,
192                 -- Wireshark Specific
193                 -- contextList                          [5] SEQUENCE OF ContextID OPTIONAL
194                 contextList                             [5] SEQUENCE OF ContextIDinList OPTIONAL
195                 -- Currently the way that WS tracing code's persistent data is
196                 -- organized disallows to relate a request to multiple contexts
197         }
199 -- When returning a contextList, the contextId in the ActionReply construct will
200 -- return the contextId from the associated ActionRequest.
202         ContextAttrAuditRequest ::= SEQUENCE
203         {
204                 topology                                [0] NULL OPTIONAL,
205                 emergency                               [1] NULL OPTIONAL,
206                 priority                                [2] NULL OPTIONAL,
207                 ...,
208                 iepscallind                             [3] NULL OPTIONAL,
209                 contextPropAud                  [4] SEQUENCE OF IndAudPropertyParm OPTIONAL,
210                 selectpriority                  [5] INTEGER(0..15) OPTIONAL,
211                 -- to select given priority
212                 selectemergency                 [6] BOOLEAN OPTIONAL,
213                 -- to select if emergency set/not set (T/F)
214                 selectiepscallind               [7] BOOLEAN OPTIONAL,
215                 -- to select if IEPS set/not set (T/F)
216                 selectLogic                             [8] SelectLogic OPTIONAL -- default is AND
217         }
219         SelectLogic ::= CHOICE
220         {
221                 andAUDITSelect                  [0] NULL, -- all filter conditions satisfied
222                 orAUDITSelect                   [1] NULL, -- at least one filter condition satisfied
223                 ...
224         }
226         CommandRequest ::= SEQUENCE
227         {
228                 command                 [0] Command,
229                 optional                [1]     NULL OPTIONAL,
230                 wildcardReturn  [2] NULL OPTIONAL,
231                 ...
232         }
234         Command ::= CHOICE
235         {
236                 addReq                          [0] AmmRequest,
237                 moveReq                         [1] AmmRequest,
238                 modReq                          [2]     AmmRequest,
239                 -- Add, Move, Modify requests have the same parameters
240                 subtractReq                     [3] SubtractRequest,
241                 auditCapRequest         [4] AuditRequest,
242                 auditValueRequest       [5] AuditRequest,
243                 notifyReq                       [6]     NotifyRequest,
244                 serviceChangeReq        [7] ServiceChangeRequest,
245                 ...
246         }
248         CommandReply ::= CHOICE
249         {
250                 addReply                        [0] AmmsReply,
251                 moveReply                       [1] AmmsReply,
252                 modReply                        [2] AmmsReply,
253                 subtractReply           [3] AmmsReply,
254                 -- Add, Move, Modify, Subtract replies have the same parameters
255                 auditCapReply           [4] AuditReply,
256                 auditValueReply         [5] AuditReply,
257                 notifyReply                     [6] NotifyReply,
258                 serviceChangeReply  [7] ServiceChangeReply,
259                 ...
260         }
262         TopologyRequest ::= SEQUENCE
263         {
264                 terminationFrom                         [0] TerminationID,
265                 terminationTo                           [1] TerminationID,
266                 topologyDirection                       [2] ENUMERATED
267                 {
268                         bothway(0),
269                         isolate(1),
270                         oneway(2)
271                 },
272                 ...,
273                 streamID                                        [3]StreamID OPTIONAL,
274                 topologyDirectionExtension      [4] ENUMERATED
275                 {
276                         onewayexternal(0),
277                         onewayboth(1),
278                         ...
279                 } OPTIONAL
280         }
282         AmmRequest ::= SEQUENCE
283         {
284                 terminationID                           [0] TerminationIDList,
285                 descriptors                                     [1] SEQUENCE OF AmmDescriptor,
286                 -- At most one descriptor of each type (see AmmDescriptor)
287                 -- allowed in the sequence.
288                 ...
289         }
291         AmmDescriptor ::= CHOICE
292         {
293                 mediaDescriptor                         [0] MediaDescriptor,
294                 modemDescriptor                         [1] ModemDescriptor,
295                 muxDescriptor                           [2] MuxDescriptor,
296                 eventsDescriptor                        [3] EventsDescriptor,
297                 eventBufferDescriptor           [4] EventBufferDescriptor,
298                 signalsDescriptor                       [5] SignalsDescriptor,
299                 digitMapDescriptor                      [6] DigitMapDescriptor,
300                 auditDescriptor                         [7] AuditDescriptor,
301                 ...,
302                 statisticsDescriptor            [8] StatisticsDescriptor
303         }
305         AmmsReply ::= SEQUENCE
306         {
307                 terminationID                           [0] TerminationIDList,
308                 terminationAudit                        [1]TerminationAudit OPTIONAL,
309                 ...
310         }
312         SubtractRequest ::= SEQUENCE
313         {
314                 terminationID                           [0] TerminationIDList,
315                 auditDescriptor                         [1] AuditDescriptor OPTIONAL,
316                 ...
317         }
319         AuditRequest ::= SEQUENCE
320         {
321                 terminationID                           [0] TerminationID,
322                 auditDescriptor                         [1] AuditDescriptor,
323                 ...,
324                 terminationIDList                       [3] TerminationIDList OPTIONAL
325         }
326         -- terminationID shall contain the first termination in the
327         -- list when using the terminationIDList construct in AuditRequest
329         AuditReply ::= CHOICE
330         {
331                 contextAuditResult                      [0] TerminationIDList,
332                 error                                           [1] ErrorDescriptor,
333                 auditResult                                     [2] AuditResult,
334                 ...,
335                 auditResultTermList                     [3] TermListAuditResult
336         }
338         AuditResult ::= SEQUENCE
339         {
340                 terminationID                           [0] TerminationID,
341                 terminationAuditResult          [1] TerminationAudit
342         }
344         TermListAuditResult ::= SEQUENCE
345         {
346                 terminationIDList                       [0] TerminationIDList,
347                 terminationAuditResult          [1] TerminationAudit,
348                 ...
349         }
351         TerminationAudit ::= SEQUENCE OF AuditReturnParameter
353         AuditReturnParameter ::= CHOICE
354         {
355                 errorDescriptor                         [0] ErrorDescriptor,
356                 mediaDescriptor                         [1] MediaDescriptor,
357                 modemDescriptor                         [2] ModemDescriptor,
358                 muxDescriptor                           [3] MuxDescriptor,
359                 eventsDescriptor                        [4] EventsDescriptor,
360                 eventBufferDescriptor           [5] EventBufferDescriptor,
361                 signalsDescriptor                       [6] SignalsDescriptor,
362                 digitMapDescriptor                      [7] DigitMapDescriptor,
363                 observedEventsDescriptor        [8] ObservedEventsDescriptor,
364                 statisticsDescriptor            [9] StatisticsDescriptor,
365                 packagesDescriptor                      [10] PackagesDescriptor,
366                 emptyDescriptors                        [11] AuditDescriptor,
367                 ...
368         }
370         AuditDescriptor ::= SEQUENCE
371         {
372                 auditToken                                      [0] BIT STRING
373                 {
374                         muxToken(0),
375                         modemToken(1),
376                         mediaToken(2),
377                         eventsToken(3),
378                         signalsToken(4),
379                         digitMapToken(5),
380                         statsToken(6),
381                         observedEventsToken(7),
382                         packagesToken(8),
383                         eventBufferToken(9)
384                 } OPTIONAL,
385                 ...,
386                 auditPropertyToken                      [1] SEQUENCE OF IndAuditParameter OPTIONAL
387         }
389         IndAuditParameter ::= CHOICE
390         {
391                 indaudmediaDescriptor           [0] IndAudMediaDescriptor,
392                 indaudeventsDescriptor          [1] IndAudEventsDescriptor,
393                 indaudeventBufferDescriptor [2] IndAudEventBufferDescriptor,
394                 indaudsignalsDescriptor         [3] IndAudSignalsDescriptor,
395                 indauddigitMapDescriptor        [4] IndAudDigitMapDescriptor,
396                 indaudstatisticsDescriptor  [5] IndAudStatisticsDescriptor,
397                 indaudpackagesDescriptor        [6] IndAudPackagesDescriptor,
398                 ...
399         }
401         IndAudMediaDescriptor ::= SEQUENCE
402         {
403                 termStateDescr                          [0] IndAudTerminationStateDescriptor OPTIONAL,
404                 streams                                         [1] CHOICE
405                 {
406                         oneStream               [0] IndAudStreamParms,
407                         multiStream             [1] SEQUENCE OF IndAudStreamDescriptor
408                 } OPTIONAL,
409                 ...
410         }
412         IndAudStreamDescriptor ::= SEQUENCE
413         {
414                 streamID                [0] StreamID,
415                 streamParms             [1] IndAudStreamParms
416         }
418         IndAudStreamParms ::= SEQUENCE
419         {
420                 localControlDescriptor          [0] IndAudLocalControlDescriptor OPTIONAL,
421                 localDescriptor                         [1] IndAudLocalRemoteDescriptor OPTIONAL,
422                 remoteDescriptor                        [2] IndAudLocalRemoteDescriptor OPTIONAL,
423                 ...,
424                 statisticsDescriptor            [3] IndAudStatisticsDescriptor OPTIONAL
425         }
427         IndAudLocalControlDescriptor ::= SEQUENCE
428         {
429                 streamMode                                      [0] NULL OPTIONAL,
430                 reserveValue                            [1] NULL OPTIONAL,
431                 reserveGroup                            [2] NULL OPTIONAL,
432                 propertyParms                           [3] SEQUENCE OF IndAudPropertyParm OPTIONAL,
433                 ...,
434                 streamModeSel                           [4] StreamMode OPTIONAL
435         }
436         -- must not have both streamMode and streamModeSel
437         -- if both are present only streamModeSel shall be honoured
439         IndAudPropertyParm ::= SEQUENCE
440         {
441                 name                                            [0] PkgdName,
442                 ...,
443                 propertyParms                           [1] PropertyParm OPTIONAL
444         }
445         -- to select based on property values
446         -- AND/OR selection logic is specified at context level
448         IndAudLocalRemoteDescriptor ::= SEQUENCE
449         {
450                 propGroupID                                     [0] INTEGER(0..65535) OPTIONAL,
451                 propGrps                                        [1] IndAudPropertyGroup,
452                 ...
453         }
455         IndAudPropertyGroup ::= SEQUENCE OF IndAudPropertyParm
457         IndAudTerminationStateDescriptor ::= SEQUENCE
458         {
459                 propertyParms                           [0] SEQUENCE OF IndAudPropertyParm,
460                 eventBufferControl                      [1] NULL OPTIONAL,
461                 serviceState                            [2] NULL OPTIONAL,
462                 ...,
463                 serviceStateSel                         [3] ServiceState OPTIONAL
464         }
465         -- must not have both serviceState and serviceStateSel
466         -- if both are present only serviceStateSel shall be honoured
468         IndAudEventsDescriptor ::= SEQUENCE
469         {
470                 requestID                                       [0] RequestID OPTIONAL,
471                 pkgdName                                        [1] PkgdName,
472                 streamID                                        [2] StreamID OPTIONAL,
473                 ...
474         }
476         IndAudEventBufferDescriptor ::= SEQUENCE
477         {
478                 eventName                                       [0] PkgdName,
479                 streamID                                        [1] StreamID OPTIONAL,
480                 ...
481         }
483         IndAudSignalsDescriptor ::=CHOICE
484         {
485                 signal                                          [0] IndAudSignal,
486                 seqSigList                                      [1] IndAudSeqSigList,
487                 ...
488         }
490         IndAudSeqSigList ::= SEQUENCE
491         {
492                 id                                                      [0] INTEGER(0..65535),
493                 signalList                                      [1] IndAudSignal OPTIONAL
494         }
496         IndAudSignal ::= SEQUENCE
497         {
498                 signalName                                      [0] PkgdName,
499                 streamID                                        [1] StreamID OPTIONAL,
500                 ...,
501                 signalRequestID                         [2] RequestID OPTIONAL
502         }
504         IndAudDigitMapDescriptor ::= SEQUENCE
505         {
506                 digitMapName                            [0] DigitMapName OPTIONAL
507         }
509         IndAudStatisticsDescriptor ::= SEQUENCE
510         {
511                 statName                                        [0] PkgdName
512         }
514         IndAudPackagesDescriptor ::= SEQUENCE
515         {
516                 packageName                                     [0] Name,
517                 packageVersion                          [1] INTEGER(0..99),
518                 ...
519         }
521         NotifyRequest ::= SEQUENCE
522         {
523                 terminationID                           [0] TerminationIDList,
524                 observedEventsDescriptor        [1] ObservedEventsDescriptor,
525                 errorDescriptor                         [2] ErrorDescriptor OPTIONAL,
526                 ...
527         }
529         NotifyReply ::= SEQUENCE
530         {
531                 terminationID                           [0] TerminationIDList,
532                 errorDescriptor                         [1] ErrorDescriptor OPTIONAL,
533                 ...
534         }
536         ObservedEventsDescriptor ::= SEQUENCE
537         {
538                 requestId                                       [0] RequestID,
539                 observedEventLst                        [1] SEQUENCE OF ObservedEvent
540         }
542         ObservedEvent ::= SEQUENCE
543         {
544                 eventName                                       [0] EventName,
545                 streamID                                        [1] StreamID OPTIONAL,
546                 eventParList                            [2] SEQUENCE OF EventParameter,
547                 timeNotation                            [3] TimeNotation OPTIONAL,
548                 ...
549         }
551 --      EventName ::= PkgdName
552         EventName ::= OCTET STRING
554         EventParameter ::= SEQUENCE
555         {
556 -- Wireshark specific
557 --              eventParameterName                      [0] Name,
558 --              value                                           [1] Value,
559                 eventParameterName                      [0] EventParameterName,
560                 eventParamValue                         [1] EventParamValues,
561 -- end
562                 -- For use of extraInfos see the comment related to PropertyParm
563                 extraInfo [2] CHOICE
564                 {
565                         relation                [0] Relation,
566                         range                   [1] BOOLEAN,
567                         sublist                 [2] BOOLEAN
568                 } OPTIONAL,
569                 ...
570         }
571 -- Wireshark specific
572         EventParameterName ::= Name
574         EventParamValues ::= SEQUENCE OF EventParamValue
576         EventParamValue ::= OCTET STRING
577 -- end
578         ServiceChangeRequest ::= SEQUENCE
579         {
580                 terminationID                           [0] TerminationIDList,
581                 serviceChangeParms                      [1] ServiceChangeParm,
582                 ...
583         }
585         ServiceChangeReply ::= SEQUENCE
586         {
587                 terminationID                           [0] TerminationIDList,
588                 serviceChangeResult                     [1] ServiceChangeResult,
589                 ...
590         }
591         -- For ServiceChangeResult, no parameters are mandatory. Hence the
592         -- distinction between ServiceChangeParm and ServiceChangeResParm.
594         ServiceChangeResult ::= CHOICE
595         {
596                 errorDescriptor                         [0] ErrorDescriptor,
597                 serviceChangeResParms           [1] ServiceChangeResParm
598         }
600         WildcardField ::= OCTET STRING(SIZE(1))
602         TerminationID ::= SEQUENCE
603         {
604                 wildcard                                        [0] SEQUENCE OF WildcardField,
605                 id                                                      [1] OCTET STRING(SIZE(1..8)),
606                 ...
607         }
608         -- See A.1 for explanation of wildcarding mechanism.
609         -- TerminationID 0xFFFFFFFFFFFFFFFF indicates the Root Termination.
611         TerminationIDList ::= SEQUENCE OF TerminationID
613         MediaDescriptor ::= SEQUENCE
614         {
615                 termStateDescr                          [0] TerminationStateDescriptor OPTIONAL,
616                 streams                                         [1] CHOICE
617                 {
618                         oneStream               [0] StreamParms,
619                         multiStream             [1] SEQUENCE OF StreamDescriptor
620                 } OPTIONAL,
621                 ...
622         }
624         StreamDescriptor ::= SEQUENCE
625         {
626                 streamID                                        [0] StreamID,
627                 streamParms                                     [1] StreamParms
628         }
630         StreamParms ::= SEQUENCE
631         {
632                 localControlDescriptor          [0] LocalControlDescriptor OPTIONAL,
633                 localDescriptor                         [1] LocalRemoteDescriptor OPTIONAL,
634                 remoteDescriptor                        [2] LocalRemoteDescriptor OPTIONAL,
635                 ...,
636                 statisticsDescriptor            [3] StatisticsDescriptor OPTIONAL
637         }
639         LocalControlDescriptor ::= SEQUENCE
640         {
641         streamMode                                              [0] StreamMode OPTIONAL,
642         reserveValue                                    [1] BOOLEAN OPTIONAL,
643         reserveGroup                                    [2] BOOLEAN OPTIONAL,
644         propertyParms                                   [3] SEQUENCE OF PropertyParm,
645         ...
646         }
648         StreamMode ::= ENUMERATED
649         {
650                 sendOnly(0),
651                 recvOnly(1),
652                 sendRecv(2),
653                 inactive(3),
654                 loopBack(4),
655                 ...
656         }
657 -- In PropertyParm, value is a SEQUENCE OF octet string. When sent
658 -- by an MGC the interpretation is as follows:
659 -- empty sequence means CHOOSE
660 -- one element sequence specifies value
661 -- If the sublist field is not selected, a longer sequence means
662 -- "choose one of the values" (i.e., value1 OR value2 OR ...)
663 -- If the sublist field is selected,
664 -- a sequence with more than one element encodes the value of a
665 -- list-valued property (i.e., value1 AND value2 AND ...).
666 -- The relation field may only be selected if the value sequence
667 -- has length 1. It indicates that the MG has to choose a value
668 -- for the property. E.g., x > 3 (using the greaterThan
669 -- value for relation) instructs the MG to choose any value larger
670 -- than 3 for property x.
671 -- The range field may only be selected if the value sequence
672 -- has length 2. It indicates that the MG has to choose a value
673 -- in the range between the first octet in the value sequence and
674 -- the trailing octet in the value sequence, including the
675 -- boundary values.
676 -- When sent by the MG, only responses to an AuditCapability request
677 -- may contain multiple values, a range, or a relation field.
678         PropertyParm ::= SEQUENCE
679         {
680 --              name                            [0] PkgdName,
681                 propertyName            [0] PkgdName,
682 --              value                           [1] SEQUENCE OF OCTET STRING,
683                 value                           [1] SEQUENCE OF PropertyID,
684                 extraInfo                       [2] CHOICE
685                 {
686                         relation        [0] Relation,
687                         range           [1] BOOLEAN,
688                         sublist         [2] BOOLEAN
689                 } OPTIONAL,
690                 ...
691         }
693         Name ::= OCTET STRING(SIZE(2))
695         PkgdName ::= OCTET STRING(SIZE(4))
696         -- represents Package Name (2 octets) plus property, event,
697         -- signal names or StatisticsID. (2 octets)
698         -- To wildcard a package use 0xFFFF for first two octets, CHOOSE
699         -- is not allowed. To reference native property tag specified in
700         -- Annex C, use 0x0000 as first two octets.
701         -- To wildcard a PropertyID, EventID, SignalID, or StatisticsID, use
702         -- 0xFFFF for last two octets, CHOOSE is not allowed.
703         -- Wildcarding of Package Name is permitted only if PropertyID,
704         -- EventID, SignalID, or StatisticsID are also wildcarded.
705 -- Wireshark specific
706         PropertyID ::= OCTET STRING
708         Relation ::= ENUMERATED
709         {
710                 greaterThan(0),
711                 smallerThan(1),
712                 unequalTo(2),
713                 ...
714         }
716         LocalRemoteDescriptor ::= SEQUENCE
717         {
718                 propGrps                                [0] SEQUENCE OF PropertyGroup,
719                 ...
720         }
722         PropertyGroup ::= SEQUENCE OF PropertyParm
724         TerminationStateDescriptor ::= SEQUENCE
725         {
726                 propertyParms                   [0] SEQUENCE OF PropertyParm,
727                 eventBufferControl              [1] EventBufferControl OPTIONAL,
728                 serviceState                    [2] ServiceState OPTIONAL,
729                 ...
730         }
732         EventBufferControl ::= ENUMERATED
733         {
734                 off(0),
735                 lockStep(1),
736                 ...
737         }
739         ServiceState ::= ENUMERATED
740         {
741                 test(0),
742                 outOfSvc(1),
743                 inSvc(2),
744                 ...
745         }
747         MuxDescriptor ::= SEQUENCE
748         {
749                 muxType                                 [0] MuxType,
750                 termList                                [1] SEQUENCE OF TerminationID,
751                 nonStandardData                 [2] NonStandardData OPTIONAL,
752                 ...
753         }
755         MuxType ::= ENUMERATED
756         {
757                 h221(0),
758                 h223(1),
759                 h226(2),
760                 v76(3),
761                 ...,
762                 nx64k(4)
763         }
765         StreamID ::= INTEGER(0..65535) -- 16-bit unsigned integer
767         EventsDescriptor ::= SEQUENCE
768         {
769                 requestID                               [0] RequestID OPTIONAL,
770                 -- RequestID must be present if eventList
771                 -- is non empty
772                 eventList                               [1] SEQUENCE OF RequestedEvent,
773                 ...
774         }
776         RequestedEvent ::= SEQUENCE
777         {
778 --              pkgdName                                [0] PkgdName,
779                 eventName                               [0] EventName,
780                 streamID                                [1] StreamID OPTIONAL,
781                 eventAction                             [2] RequestedActions OPTIONAL,
782                 evParList                               [3] SEQUENCE OF EventParameter,
783                 ...
784         }
786         RegulatedEmbeddedDescriptor ::= SEQUENCE
787         {
788                 secondEvent                             [0] SecondEventsDescriptor OPTIONAL,
789                 signalsDescriptor               [1] SignalsDescriptor OPTIONAL,
790                 ...
791         }
793         NotifyBehaviour ::= CHOICE
794         {
795                 notifyImmediate                 [0] NULL,
796                 notifyRegulated                 [1] RegulatedEmbeddedDescriptor,
797                 neverNotify                             [2] NULL,
798                 ...
799         }
801         RequestedActions ::= SEQUENCE
802         {
803                 keepActive                              [0] BOOLEAN OPTIONAL,
804                 eventDM                                 [1] EventDM OPTIONAL,
805                 secondEvent                             [2] SecondEventsDescriptor OPTIONAL,
806                 signalsDescriptor               [3] SignalsDescriptor OPTIONAL,
807                 ...,
808                 notifyBehaviour                 [4] NotifyBehaviour OPTIONAL,
809                 resetEventsDescriptor   [5] NULL OPTIONAL
810         }
812         EventDM ::= CHOICE
813         {
814                 digitMapName                    [0] DigitMapName,
815                 digitMapValue                   [1] DigitMapValue
816         }
818         SecondEventsDescriptor ::= SEQUENCE
819         {
820                 requestID                               [0] RequestID OPTIONAL,
821                 eventList                               [1] SEQUENCE OF SecondRequestedEvent,
822                 ...
823         }
825         SecondRequestedEvent ::= SEQUENCE
826         {
827                 pkgdName                                [0] PkgdName,
828                 streamID                                [1] StreamID OPTIONAL,
829                 eventAction                             [2] SecondRequestedActions OPTIONAL,
830                 evParList                               [3] SEQUENCE OF EventParameter,
831                 ...
832         }
834         SecondRequestedActions ::= SEQUENCE
835         {
836                 keepActive                              [0] BOOLEAN OPTIONAL,
837                 eventDM                                 [1] EventDM OPTIONAL,
838                 signalsDescriptor               [2] SignalsDescriptor OPTIONAL,
839                 ...,
840                 notifyBehaviour                 [3] NotifyBehaviour OPTIONAL,
841                 resetEventsDescriptor   [4] NULL OPTIONAL
842         }
844         EventBufferDescriptor ::= SEQUENCE OF EventSpec
846         EventSpec ::= SEQUENCE
847         {
848                 eventName                               [0] EventName,
849                 streamID                                [1] StreamID OPTIONAL,
850                 eventParList                    [2] SEQUENCE OF EventParameter,
851                 ...
852         }
854         SignalsDescriptor ::= SEQUENCE OF SignalRequest
856         SignalRequest ::=CHOICE
857         {
858                 signal                                  [0] Signal,
859                 seqSigList                              [1] SeqSigList,
860                 ...
861         }
863         SeqSigList ::= SEQUENCE
864         {
865                 id                                              [0] INTEGER(0..65535),
866                 signalList                              [1] SEQUENCE OF Signal
867         }
869         Signal ::= SEQUENCE
870         {
871                 signalName                              [0] SignalName,
872                 streamID                                [1] StreamID OPTIONAL,
873                 sigType                                 [2] SignalType OPTIONAL,
874                 duration                                [3] INTEGER (0..65535) OPTIONAL,
875                 notifyCompletion                [4] NotifyCompletion OPTIONAL,
876                 keepActive                              [5] BOOLEAN OPTIONAL,
877                 sigParList                              [6] SEQUENCE OF SigParameter,
878                 ...,
879                 direction                               [7] SignalDirection OPTIONAL,
880                 requestID                               [8] RequestID OPTIONAL,
881                 intersigDelay                   [9] INTEGER (0..65535) OPTIONAL
882         }
884         SignalType ::= ENUMERATED
885         {
886                 brief(0),
887                 onOff(1),
888                 timeOut(2),
889                 ...
890         }
892         SignalDirection ::= ENUMERATED
893         {
894                 internal(0),
895                 external(1),
896                 both(2),
897                 ...
898         }
900 --      SignalName ::= PkgdName
901         SignalName ::= OCTET STRING
903         NotifyCompletion ::= BIT STRING
904         {
905                 onTimeOut(0), onInterruptByEvent(1),
906                 onInterruptByNewSignalDescr(2), otherReason(3), onIteration(4)
907         }
909         SigParameter ::= SEQUENCE
910         {
911 --              sigParameterName                [0] Name,
912 --              value                                   [1] Value,
913                 sigParameterName                [0] SigParameterName,
914                 value                                   [1] SigParamValues,
915         -- For use of extraInfo see the comment related to PropertyParm
916                 extraInfo                               [2] CHOICE
917                 {
918                         relation        [0] Relation,
919                         range           [1] BOOLEAN,
920                         sublist         [2] BOOLEAN
921                 } OPTIONAL,
922         ...
923         }
924 -- Wireshark specific
925         SigParameterName ::= Name
927         SigParamValues ::= SEQUENCE OF SigParamValue
929         SigParamValue ::= OCTET STRING
930 -- end
931         -- For an AuditCapReply with all events, the RequestID shall be ALL.
932         -- ALL is represented by 0xffffffff.
933         RequestID ::= INTEGER(0..4294967295) -- 32-bit unsigned integer
935         ModemDescriptor ::= SEQUENCE
936         {
937                 mtl                                     [0] SEQUENCE OF ModemType,
938                 mpl                                     [1] SEQUENCE OF PropertyParm,
939                 nonStandardData         [2] NonStandardData OPTIONAL
940         }
942         ModemType ::= ENUMERATED
943         {
944                 v18(0),
945                 v22(1),
946                 v22bis(2),
947                 v32(3),
948                 v32bis(4),
949                 v34(5),
950                 v90(6),
951                 v91(7),
952                 synchISDN(8),
953                 ...
954         }
956         DigitMapDescriptor ::= SEQUENCE
957         {
958                 digitMapName                    [0] DigitMapName OPTIONAL,
959                 digitMapValue                   [1] DigitMapValue OPTIONAL
960         }
962         DigitMapName ::= Name
964         DigitMapValue ::= SEQUENCE
965         {
966                 startTimer                              [0] INTEGER(0..99) OPTIONAL,
967                 shortTimer                              [1] INTEGER(0..99) OPTIONAL,
968                 longTimer                               [2] INTEGER(0..99) OPTIONAL,
969                 digitMapBody                    [3] IA5String,
970                 -- Units are seconds for start, short and long timers, and hundreds
971                 -- of milliseconds for duration timer. Thus start, short, and long
972                 -- range from 1 to 99 seconds and duration from 100 ms to 9.9 s
973                 -- See A.3 for explanation of DigitMap syntax
974                 ...,
975                 durationTimer                   [4] INTEGER (0..99) OPTIONAL
976         }
978         ServiceChangeParm ::= SEQUENCE
979         {
980                 serviceChangeMethod                     [0] ServiceChangeMethod,
981                 serviceChangeAddress            [1] ServiceChangeAddress OPTIONAL,
982                 serviceChangeVersion            [2] INTEGER(0..99) OPTIONAL,
983                 serviceChangeProfile            [3] ServiceChangeProfile OPTIONAL,
984 --              serviceChangeReason                     [4] Value,
985                 serviceChangeReason                     [4] SCreasonValue,
986                 -- A serviceChangeReason consists of a numeric reason code
987                 -- and an optional text description.
988                 -- The serviceChangeReason shall be a string consisting of
989                 -- a decimal reason code, optionally followed by a single
990                 -- space character and a textual description string.
991                 -- This string is first BER-encoded as an IA5String.
992                 -- The result of this BER-encoding is then encoded as
993                 -- an ASN.1 OCTET STRING type, "double wrapping" the
994                 -- value as was done for package elements.
996                 serviceChangeDelay                      [5] INTEGER(0..4294967295) OPTIONAL,
997                 -- 32-bit unsigned integer
998                 serviceChangeMgcId                      [6] MId OPTIONAL,
999                 timeStamp                                       [7] TimeNotation OPTIONAL,
1000                 nonStandardData                         [8] NonStandardData OPTIONAL,
1001                 ...,
1002                 serviceChangeInfo                       [9] AuditDescriptor OPTIONAL,
1003                 serviceChangeIncompleteFlag [10] NULL OPTIONAL
1004         }
1006 -- Wireshark extension to decode serviceChangeReason
1007         SCreasonValue ::= SEQUENCE OF SCreasonValueOctetStr
1008         SCreasonValueOctetStr ::= OCTET STRING
1009         ServiceChangeReasonStr ::= IA5String
1010 -- end
1012         ServiceChangeAddress ::= CHOICE
1013         {
1014                 portNumber                                      [0] INTEGER(0..65535), -- TCP/UDP port number
1015                 ip4Address                                      [1] IP4Address,
1016                 ip6Address                                      [2] IP6Address,
1017                 domainName                                      [3] DomainName,
1018                 deviceName                                      [4] PathName,
1019                 mtpAddress                                      [5] MtpAddress,
1020                 ...
1021         }
1023         ServiceChangeResParm ::= SEQUENCE
1024         {
1025                 serviceChangeMgcId                      [0] MId OPTIONAL,
1026                 serviceChangeAddress            [1] ServiceChangeAddress OPTIONAL,
1027                 serviceChangeVersion            [2] INTEGER(0..99) OPTIONAL,
1028                 serviceChangeProfile            [3] ServiceChangeProfile OPTIONAL,
1029                 timestamp                                       [4] TimeNotation OPTIONAL,
1030                 ...
1031         }
1033         ServiceChangeMethod ::= ENUMERATED
1034         {
1035                 failover(0),
1036                 forced(1),
1037                 graceful(2),
1038                 restart(3),
1039                 disconnected(4),
1040                 handOff(5),
1041                 ...
1042         }
1044         ServiceChangeProfile ::= SEQUENCE
1045         {
1046                 profileName             [0] IA5String(SIZE (1..67))
1047                 -- 64 characters for name, 1 for "/", 2 for version to match ABNF
1048         }
1050         PackagesDescriptor ::= SEQUENCE OF PackagesItem
1052         PackagesItem ::= SEQUENCE
1053         {
1054                 packageName                                     [0] Name,
1055                 packageVersion                          [1] INTEGER(0..99),
1056                 ...
1057         }
1059         StatisticsDescriptor ::= SEQUENCE OF StatisticsParameter
1061         StatisticsParameter ::= SEQUENCE
1062         {
1063                 statName                                        [0] PkgdName,
1064                 statValue                                       [1] Value OPTIONAL
1065         }
1066         -- If statistic consists of a sub-lists there will be more than
1067         -- one octetstring in statValue.
1068         NonStandardData ::= SEQUENCE
1069         {
1070                 nonStandardIdentifier           [0] NonStandardIdentifier,
1071                 data                                            [1] OCTET STRING
1072         }
1074         NonStandardIdentifier ::= CHOICE
1075         {
1076                 object                                          [0] OBJECT IDENTIFIER,
1077                 h221NonStandard                         [1] H221NonStandard,
1078                 experimental                            [2] IA5String(SIZE(8)),
1079                 -- first two characters should be "X-" or "X+"
1080                 ...
1081         }
1083         H221NonStandard ::= SEQUENCE
1084         {
1085                 t35CountryCode1                         [0] INTEGER(0..255),
1086                 t35CountryCode2                         [1] INTEGER(0..255),    -- country, as per T.35
1087                 t35Extension                            [2] INTEGER(0..255),    -- assigned nationally
1088                 manufacturerCode                        [3] INTEGER(0..65535),  -- assigned nationally
1089                 ...
1090         }
1092         TimeNotation ::= SEQUENCE
1093         {
1094                 date                                            [0] IA5String(SIZE(8)), -- yyyymmdd format
1095                 time                                            [1] IA5String(SIZE(8)) -- hhmmssss format
1096                 -- per ISO 8601:2004
1097         }
1099         Value ::= SEQUENCE OF OCTET STRING