1 /* Do not modify this file. Changes will be overwritten. */
2 /* Generated automatically by the ASN.1 to Wireshark dissector compiler */
4 /* asn2wrs.py -b -q -L -p glow -c ./glow.cnf -s ./packet-glow-template -D . -O ../.. glow.asn */
7 * Routines for GLOW packet dissection
9 * Copyright 2018, Gilles Dufour <dufour.gilles@gmail.com>
11 * Wireshark - Network traffic analyzer
12 * By Gerald Combs <gerald@wireshark.org>
13 * Copyright 1998 Gerald Combs
15 * SPDX-License-Identifier: GPL-2.0-or-later
20 #include <epan/packet.h>
21 #include <epan/proto_data.h>
22 #include <wsutil/array.h>
23 #include "packet-ber.h"
29 void proto_register_glow(void);
31 static dissector_handle_t glow_handle
;
32 static int proto_glow
;
34 static int hf_glow_Root_PDU
; /* Root */
35 static int hf_glow_number
; /* Integer32 */
36 static int hf_glow_element
; /* TemplateElement */
37 static int hf_glow_description
; /* EmberString */
38 static int hf_glow_path
; /* RELATIVE_OID */
39 static int hf_glow_parameter
; /* Parameter */
40 static int hf_glow_node
; /* Node */
41 static int hf_glow_matrix
; /* Matrix */
42 static int hf_glow_function
; /* Function */
43 static int hf_glow_contents
; /* ParameterContents */
44 static int hf_glow_children
; /* ElementCollection */
45 static int hf_glow_identifier
; /* EmberString */
46 static int hf_glow_value
; /* Value */
47 static int hf_glow_minimum
; /* MinMax */
48 static int hf_glow_maximum
; /* MinMax */
49 static int hf_glow_access
; /* ParameterAccess */
50 static int hf_glow_format
; /* EmberString */
51 static int hf_glow_enumeration
; /* EmberString */
52 static int hf_glow_factor
; /* Integer32 */
53 static int hf_glow_isOnline
; /* BOOLEAN */
54 static int hf_glow_formula
; /* EmberString */
55 static int hf_glow_step
; /* Integer32 */
56 static int hf_glow_default
; /* Value */
57 static int hf_glow_type
; /* ParameterType */
58 static int hf_glow_streamIdentifier
; /* Integer32 */
59 static int hf_glow_enumMap
; /* StringIntegerCollection */
60 static int hf_glow_streamDescriptor
; /* StreamDescription */
61 static int hf_glow_schemaIdentifiers
; /* EmberString */
62 static int hf_glow_templateReference
; /* RELATIVE_OID */
63 static int hf_glow_integer
; /* Integer64 */
64 static int hf_glow_real
; /* REAL */
65 static int hf_glow_string
; /* EmberString */
66 static int hf_glow_boolean
; /* BOOLEAN */
67 static int hf_glow_octets
; /* OCTET_STRING */
68 static int hf_glow_null
; /* NULL */
69 static int hf_glow_entryString
; /* EmberString */
70 static int hf_glow_entryInteger
; /* Integer32 */
71 static int hf_glow__untag_item
; /* StringIntegerPair */
72 static int hf_glow_streamFormat
; /* StreamFormat */
73 static int hf_glow_offset
; /* Integer32 */
74 static int hf_glow_number_01
; /* CommandType */
75 static int hf_glow_options
; /* T_options */
76 static int hf_glow_dirFieldMask
; /* FieldFlags */
77 static int hf_glow_invocation
; /* Invocation */
78 static int hf_glow_contents_01
; /* NodeContents */
79 static int hf_glow_isRoot
; /* BOOLEAN */
80 static int hf_glow_contents_02
; /* MatrixContents */
81 static int hf_glow_targetList
; /* TargetCollection */
82 static int hf_glow_sourceList
; /* SourceCollection */
83 static int hf_glow_connections
; /* ConnectionCollection */
84 static int hf_glow_type_01
; /* MatrixType */
85 static int hf_glow_addressingMode
; /* MatrixAddressingMode */
86 static int hf_glow_targetCount
; /* Integer32 */
87 static int hf_glow_sourceCount
; /* Integer32 */
88 static int hf_glow_maximumTotalConnects
; /* Integer32 */
89 static int hf_glow_maximumConnectsPerTarget
; /* Integer32 */
90 static int hf_glow_parametersLocation
; /* ParametersLocation */
91 static int hf_glow_gainParameterNumber
; /* Integer32 */
92 static int hf_glow_labels
; /* LabelCollection */
93 static int hf_glow_basePath
; /* RELATIVE_OID */
94 static int hf_glow_inline
; /* Integer32 */
95 static int hf_glow_LabelCollection_item
; /* Label */
96 static int hf_glow_TargetCollection_item
; /* Target */
97 static int hf_glow_SourceCollection_item
; /* Source */
98 static int hf_glow_ConnectionCollection_item
; /* Connection */
99 static int hf_glow_target
; /* Integer32 */
100 static int hf_glow_sources
; /* PackedNumbers */
101 static int hf_glow_operation
; /* ConnectionOperation */
102 static int hf_glow_disposition
; /* ConnectionDisposition */
103 static int hf_glow_contents_03
; /* FunctionContents */
104 static int hf_glow_arguments
; /* TupleDescription */
105 static int hf_glow_result
; /* TupleDescription */
106 static int hf_glow_TupleDescription_item
; /* TupleItemDescription */
107 static int hf_glow_name
; /* EmberString */
108 static int hf_glow_invocationId
; /* Integer32 */
109 static int hf_glow_arguments_01
; /* Tuple */
110 static int hf_glow_Tuple_item
; /* Value */
111 static int hf_glow_success
; /* BOOLEAN */
112 static int hf_glow_result_01
; /* Tuple */
113 static int hf_glow__untag_item_01
; /* Element */
114 static int hf_glow_command
; /* Command */
115 static int hf_glow_template
; /* Template */
116 static int hf_glow_streamValue
; /* Value */
117 static int hf_glow__untag_item_02
; /* StreamEntry */
118 static int hf_glow_elements
; /* RootElementCollection */
119 static int hf_glow_streams
; /* StreamCollection */
120 static int hf_glow_invocationResult
; /* InvocationResult */
121 static int hf_glow__untag_item_03
; /* RootElement */
122 static int hf_glow_element_01
; /* Element */
123 static int hf_glow_qualifiedParameter
; /* QualifiedParameter */
124 static int hf_glow_qualifiedNode
; /* QualifiedNode */
125 static int hf_glow_qualifiedMatrix
; /* QualifiedMatrix */
126 static int hf_glow_qualifiedFunction
; /* QualifiedFunction */
127 static int hf_glow_qualifiedTemplate
; /* QualifiedTemplate */
129 /* Initialize the subtree pointers */
132 static int ett_glow_Template_U
;
133 static int ett_glow_QualifiedTemplate_U
;
134 static int ett_glow_TemplateElement
;
135 static int ett_glow_Parameter_U
;
136 static int ett_glow_QualifiedParameter_U
;
137 static int ett_glow_ParameterContents
;
138 static int ett_glow_Value
;
139 static int ett_glow_MinMax
;
140 static int ett_glow_StringIntegerPair_U
;
141 static int ett_glow_SEQUENCE_OF_StringIntegerPair
;
142 static int ett_glow_StreamDescription_U
;
143 static int ett_glow_Command_U
;
144 static int ett_glow_T_options
;
145 static int ett_glow_Node_U
;
146 static int ett_glow_QualifiedNode_U
;
147 static int ett_glow_NodeContents
;
148 static int ett_glow_Matrix_U
;
149 static int ett_glow_MatrixContents
;
150 static int ett_glow_ParametersLocation
;
151 static int ett_glow_LabelCollection
;
152 static int ett_glow_Label_U
;
153 static int ett_glow_TargetCollection
;
154 static int ett_glow_Signal
;
155 static int ett_glow_SourceCollection
;
156 static int ett_glow_ConnectionCollection
;
157 static int ett_glow_Connection_U
;
158 static int ett_glow_QualifiedMatrix_U
;
159 static int ett_glow_Function_U
;
160 static int ett_glow_QualifiedFunction_U
;
161 static int ett_glow_FunctionContents
;
162 static int ett_glow_TupleDescription
;
163 static int ett_glow_TupleItemDescription_U
;
164 static int ett_glow_Invocation_U
;
165 static int ett_glow_Tuple
;
166 static int ett_glow_InvocationResult_U
;
167 static int ett_glow_SEQUENCE_OF_Element
;
168 static int ett_glow_Element
;
169 static int ett_glow_StreamEntry_U
;
170 static int ett_glow_SEQUENCE_OF_StreamEntry
;
171 static int ett_glow_Root_U
;
172 static int ett_glow_SEQUENCE_OF_RootElement
;
173 static int ett_glow_RootElement
;
175 /*--- Cyclic dependencies ---*/
177 /* Parameter -> Parameter/_untag -> ElementCollection -> ElementCollection/_untag -> Element -> Parameter */
178 static int dissect_glow_Parameter(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
);
180 /* ElementCollection -> ElementCollection/_untag -> Element -> Node -> Node/_untag -> ElementCollection */
181 /* ElementCollection -> ElementCollection/_untag -> Element -> Matrix -> Matrix/_untag -> ElementCollection */
182 /* ElementCollection -> ElementCollection/_untag -> Element -> Function -> Function/_untag -> ElementCollection */
183 static int dissect_glow_ElementCollection(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
);
185 /* Template -> Template/_untag -> TemplateElement -> Parameter -> Parameter/_untag -> ElementCollection -> ElementCollection/_untag -> Element -> Template */
186 static int dissect_glow_Template(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
);
192 dissect_glow_EmberString(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
193 offset
= dissect_ber_restricted_string(implicit_tag
, BER_UNI_TAG_UTF8String
,
194 actx
, tree
, tvb
, offset
, hf_index
,
203 dissect_glow_Integer32(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
204 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
213 dissect_glow_Integer64(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
214 offset
= dissect_ber_integer64(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
223 dissect_glow_REAL(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
224 offset
= dissect_ber_real(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
233 dissect_glow_BOOLEAN(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
234 offset
= dissect_ber_boolean(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
, NULL
);
242 dissect_glow_OCTET_STRING(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
243 offset
= dissect_ber_octet_string(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
252 dissect_glow_NULL(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
253 offset
= dissect_ber_null(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
);
259 static const value_string glow_Value_vals
[] = {
269 static const ber_choice_t Value_choice
[] = {
270 { 0, &hf_glow_integer
, BER_CLASS_UNI
, BER_UNI_TAG_INTEGER
, BER_FLAGS_NOOWNTAG
, dissect_glow_Integer64
},
271 { 1, &hf_glow_real
, BER_CLASS_UNI
, BER_UNI_TAG_REAL
, BER_FLAGS_NOOWNTAG
, dissect_glow_REAL
},
272 { 2, &hf_glow_string
, BER_CLASS_UNI
, BER_UNI_TAG_UTF8String
, BER_FLAGS_NOOWNTAG
, dissect_glow_EmberString
},
273 { 3, &hf_glow_boolean
, BER_CLASS_UNI
, BER_UNI_TAG_BOOLEAN
, BER_FLAGS_NOOWNTAG
, dissect_glow_BOOLEAN
},
274 { 4, &hf_glow_octets
, BER_CLASS_UNI
, BER_UNI_TAG_OCTETSTRING
, BER_FLAGS_NOOWNTAG
, dissect_glow_OCTET_STRING
},
275 { 5, &hf_glow_null
, BER_CLASS_UNI
, BER_UNI_TAG_NULL
, BER_FLAGS_NOOWNTAG
, dissect_glow_NULL
},
276 { 0, NULL
, 0, 0, 0, NULL
}
280 dissect_glow_Value(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
281 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
282 Value_choice
, hf_index
, ett_glow_Value
,
289 static const value_string glow_MinMax_vals
[] = {
296 static const ber_choice_t MinMax_choice
[] = {
297 { 0, &hf_glow_integer
, BER_CLASS_UNI
, BER_UNI_TAG_INTEGER
, BER_FLAGS_NOOWNTAG
, dissect_glow_Integer64
},
298 { 1, &hf_glow_real
, BER_CLASS_UNI
, BER_UNI_TAG_REAL
, BER_FLAGS_NOOWNTAG
, dissect_glow_REAL
},
299 { 2, &hf_glow_null
, BER_CLASS_UNI
, BER_UNI_TAG_NULL
, BER_FLAGS_NOOWNTAG
, dissect_glow_NULL
},
300 { 0, NULL
, 0, 0, 0, NULL
}
304 dissect_glow_MinMax(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
305 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
306 MinMax_choice
, hf_index
, ett_glow_MinMax
,
313 static const value_string glow_ParameterAccess_vals
[] = {
323 dissect_glow_ParameterAccess(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
324 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
331 static const value_string glow_ParameterType_vals
[] = {
345 dissect_glow_ParameterType(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
346 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
353 static const ber_sequence_t StringIntegerPair_U_sequence
[] = {
354 { &hf_glow_entryString
, BER_CLASS_CON
, 0, 0, dissect_glow_EmberString
},
355 { &hf_glow_entryInteger
, BER_CLASS_CON
, 1, 0, dissect_glow_Integer32
},
356 { NULL
, 0, 0, 0, NULL
}
360 dissect_glow_StringIntegerPair_U(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
361 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
362 StringIntegerPair_U_sequence
, hf_index
, ett_glow_StringIntegerPair_U
);
370 dissect_glow_StringIntegerPair(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
371 offset
= dissect_ber_tagged_type(implicit_tag
, actx
, tree
, tvb
, offset
,
372 hf_index
, BER_CLASS_APP
, 7, true, dissect_glow_StringIntegerPair_U
);
378 static const ber_sequence_t SEQUENCE_OF_StringIntegerPair_sequence_of
[1] = {
379 { &hf_glow__untag_item
, BER_CLASS_CON
, 0, 0, dissect_glow_StringIntegerPair
},
383 dissect_glow_SEQUENCE_OF_StringIntegerPair(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
384 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
385 SEQUENCE_OF_StringIntegerPair_sequence_of
, hf_index
, ett_glow_SEQUENCE_OF_StringIntegerPair
);
393 dissect_glow_StringIntegerCollection(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
394 offset
= dissect_ber_tagged_type(implicit_tag
, actx
, tree
, tvb
, offset
,
395 hf_index
, BER_CLASS_APP
, 8, true, dissect_glow_SEQUENCE_OF_StringIntegerPair
);
401 static const value_string glow_StreamFormat_vals
[] = {
402 { 0, "unsignedInt8" },
403 { 2, "unsignedInt16BigEndian" },
404 { 3, "unsignedInt16LittleEndian" },
405 { 4, "unsignedInt32BigEndian" },
406 { 5, "unsignedInt32LittleEndian" },
407 { 6, "unsignedInt64BigEndian" },
408 { 7, "unsignedInt64LittleEndian" },
410 { 10, "signedInt16BigEndian" },
411 { 11, "signedInt16LittleEndian" },
412 { 12, "signedInt32BigEndian" },
413 { 13, "signedInt32LittleEndian" },
414 { 14, "signedInt64BigEndian" },
415 { 15, "signedInt64LittleEndian" },
416 { 20, "ieeeFloat32BigEndian" },
417 { 21, "ieeeFloat32LittleEndian" },
418 { 22, "ieeeFloat64BigEndian" },
419 { 23, "ieeeFloat64LittleEndian" },
425 dissect_glow_StreamFormat(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
426 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
433 static const ber_sequence_t StreamDescription_U_sequence
[] = {
434 { &hf_glow_streamFormat
, BER_CLASS_CON
, 0, 0, dissect_glow_StreamFormat
},
435 { &hf_glow_offset
, BER_CLASS_CON
, 1, 0, dissect_glow_Integer32
},
436 { NULL
, 0, 0, 0, NULL
}
440 dissect_glow_StreamDescription_U(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
441 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
442 StreamDescription_U_sequence
, hf_index
, ett_glow_StreamDescription_U
);
450 dissect_glow_StreamDescription(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
451 offset
= dissect_ber_tagged_type(implicit_tag
, actx
, tree
, tvb
, offset
,
452 hf_index
, BER_CLASS_APP
, 12, true, dissect_glow_StreamDescription_U
);
460 dissect_glow_RELATIVE_OID(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
461 offset
= dissect_ber_relative_oid(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
, NULL
);
467 static const ber_sequence_t ParameterContents_set
[] = {
468 { &hf_glow_identifier
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
, dissect_glow_EmberString
},
469 { &hf_glow_description
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
, dissect_glow_EmberString
},
470 { &hf_glow_value
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
|BER_FLAGS_NOTCHKTAG
, dissect_glow_Value
},
471 { &hf_glow_minimum
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
|BER_FLAGS_NOTCHKTAG
, dissect_glow_MinMax
},
472 { &hf_glow_maximum
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
|BER_FLAGS_NOTCHKTAG
, dissect_glow_MinMax
},
473 { &hf_glow_access
, BER_CLASS_CON
, 5, BER_FLAGS_OPTIONAL
, dissect_glow_ParameterAccess
},
474 { &hf_glow_format
, BER_CLASS_CON
, 6, BER_FLAGS_OPTIONAL
, dissect_glow_EmberString
},
475 { &hf_glow_enumeration
, BER_CLASS_CON
, 7, BER_FLAGS_OPTIONAL
, dissect_glow_EmberString
},
476 { &hf_glow_factor
, BER_CLASS_CON
, 8, BER_FLAGS_OPTIONAL
, dissect_glow_Integer32
},
477 { &hf_glow_isOnline
, BER_CLASS_CON
, 9, BER_FLAGS_OPTIONAL
, dissect_glow_BOOLEAN
},
478 { &hf_glow_formula
, BER_CLASS_CON
, 10, BER_FLAGS_OPTIONAL
, dissect_glow_EmberString
},
479 { &hf_glow_step
, BER_CLASS_CON
, 11, BER_FLAGS_OPTIONAL
, dissect_glow_Integer32
},
480 { &hf_glow_default
, BER_CLASS_CON
, 12, BER_FLAGS_OPTIONAL
|BER_FLAGS_NOTCHKTAG
, dissect_glow_Value
},
481 { &hf_glow_type
, BER_CLASS_CON
, 13, BER_FLAGS_OPTIONAL
, dissect_glow_ParameterType
},
482 { &hf_glow_streamIdentifier
, BER_CLASS_CON
, 14, BER_FLAGS_OPTIONAL
, dissect_glow_Integer32
},
483 { &hf_glow_enumMap
, BER_CLASS_CON
, 15, BER_FLAGS_OPTIONAL
, dissect_glow_StringIntegerCollection
},
484 { &hf_glow_streamDescriptor
, BER_CLASS_CON
, 16, BER_FLAGS_OPTIONAL
, dissect_glow_StreamDescription
},
485 { &hf_glow_schemaIdentifiers
, BER_CLASS_CON
, 17, BER_FLAGS_OPTIONAL
, dissect_glow_EmberString
},
486 { &hf_glow_templateReference
, BER_CLASS_CON
, 18, BER_FLAGS_OPTIONAL
, dissect_glow_RELATIVE_OID
},
487 { NULL
, 0, 0, 0, NULL
}
491 dissect_glow_ParameterContents(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
492 offset
= dissect_ber_set(implicit_tag
, actx
, tree
, tvb
, offset
,
493 ParameterContents_set
, hf_index
, ett_glow_ParameterContents
);
499 static const ber_sequence_t NodeContents_set
[] = {
500 { &hf_glow_identifier
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
, dissect_glow_EmberString
},
501 { &hf_glow_description
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
, dissect_glow_EmberString
},
502 { &hf_glow_isRoot
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
, dissect_glow_BOOLEAN
},
503 { &hf_glow_isOnline
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
, dissect_glow_BOOLEAN
},
504 { &hf_glow_schemaIdentifiers
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
, dissect_glow_EmberString
},
505 { &hf_glow_templateReference
, BER_CLASS_CON
, 5, BER_FLAGS_OPTIONAL
, dissect_glow_RELATIVE_OID
},
506 { NULL
, 0, 0, 0, NULL
}
510 dissect_glow_NodeContents(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
511 offset
= dissect_ber_set(implicit_tag
, actx
, tree
, tvb
, offset
,
512 NodeContents_set
, hf_index
, ett_glow_NodeContents
);
518 static const ber_sequence_t Node_U_sequence
[] = {
519 { &hf_glow_number
, BER_CLASS_CON
, 0, 0, dissect_glow_Integer32
},
520 { &hf_glow_contents_01
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
, dissect_glow_NodeContents
},
521 { &hf_glow_children
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
, dissect_glow_ElementCollection
},
522 { NULL
, 0, 0, 0, NULL
}
526 dissect_glow_Node_U(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
527 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
528 Node_U_sequence
, hf_index
, ett_glow_Node_U
);
536 dissect_glow_Node(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
537 offset
= dissect_ber_tagged_type(implicit_tag
, actx
, tree
, tvb
, offset
,
538 hf_index
, BER_CLASS_APP
, 3, true, dissect_glow_Node_U
);
544 static const value_string glow_CommandType_vals
[] = {
546 { 31, "unsubscribe" },
547 { 32, "getDirectory" },
554 dissect_glow_CommandType(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
555 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
562 static const value_string glow_FieldFlags_vals
[] = {
567 { 2, "description" },
570 { 5, "connections" },
576 dissect_glow_FieldFlags(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
577 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
584 static const ber_sequence_t Tuple_sequence_of
[1] = {
585 { &hf_glow_Tuple_item
, BER_CLASS_CON
, 0, BER_FLAGS_NOTCHKTAG
, dissect_glow_Value
},
589 dissect_glow_Tuple(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
590 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
591 Tuple_sequence_of
, hf_index
, ett_glow_Tuple
);
597 static const ber_sequence_t Invocation_U_sequence
[] = {
598 { &hf_glow_invocationId
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
, dissect_glow_Integer32
},
599 { &hf_glow_arguments_01
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
, dissect_glow_Tuple
},
600 { NULL
, 0, 0, 0, NULL
}
604 dissect_glow_Invocation_U(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
605 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
606 Invocation_U_sequence
, hf_index
, ett_glow_Invocation_U
);
614 dissect_glow_Invocation(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
615 offset
= dissect_ber_tagged_type(implicit_tag
, actx
, tree
, tvb
, offset
,
616 hf_index
, BER_CLASS_APP
, 22, true, dissect_glow_Invocation_U
);
622 static const value_string glow_T_options_vals
[] = {
623 { 1, "dirFieldMask" },
628 static const ber_choice_t T_options_choice
[] = {
629 { 1, &hf_glow_dirFieldMask
, BER_CLASS_CON
, 1, 0, dissect_glow_FieldFlags
},
630 { 2, &hf_glow_invocation
, BER_CLASS_CON
, 2, 0, dissect_glow_Invocation
},
631 { 0, NULL
, 0, 0, 0, NULL
}
635 dissect_glow_T_options(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
636 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
637 T_options_choice
, hf_index
, ett_glow_T_options
,
644 static const ber_sequence_t Command_U_sequence
[] = {
645 { &hf_glow_number_01
, BER_CLASS_CON
, 0, 0, dissect_glow_CommandType
},
646 { &hf_glow_options
, BER_CLASS_ANY
/*choice*/, -1/*choice*/, BER_FLAGS_OPTIONAL
|BER_FLAGS_NOOWNTAG
|BER_FLAGS_NOTCHKTAG
, dissect_glow_T_options
},
647 { NULL
, 0, 0, 0, NULL
}
651 dissect_glow_Command_U(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
652 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
653 Command_U_sequence
, hf_index
, ett_glow_Command_U
);
661 dissect_glow_Command(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
662 offset
= dissect_ber_tagged_type(implicit_tag
, actx
, tree
, tvb
, offset
,
663 hf_index
, BER_CLASS_APP
, 2, true, dissect_glow_Command_U
);
669 static const value_string glow_MatrixType_vals
[] = {
678 dissect_glow_MatrixType(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
679 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
686 static const value_string glow_MatrixAddressingMode_vals
[] = {
694 dissect_glow_MatrixAddressingMode(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
695 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
702 static const value_string glow_ParametersLocation_vals
[] = {
708 static const ber_choice_t ParametersLocation_choice
[] = {
709 { 0, &hf_glow_basePath
, BER_CLASS_UNI
, BER_UNI_TAG_RELATIVE_OID
, BER_FLAGS_NOOWNTAG
, dissect_glow_RELATIVE_OID
},
710 { 1, &hf_glow_inline
, BER_CLASS_UNI
, BER_UNI_TAG_INTEGER
, BER_FLAGS_NOOWNTAG
, dissect_glow_Integer32
},
711 { 0, NULL
, 0, 0, 0, NULL
}
715 dissect_glow_ParametersLocation(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
716 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
717 ParametersLocation_choice
, hf_index
, ett_glow_ParametersLocation
,
724 static const ber_sequence_t Label_U_sequence
[] = {
725 { &hf_glow_basePath
, BER_CLASS_CON
, 0, 0, dissect_glow_RELATIVE_OID
},
726 { &hf_glow_description
, BER_CLASS_CON
, 1, 0, dissect_glow_EmberString
},
727 { NULL
, 0, 0, 0, NULL
}
731 dissect_glow_Label_U(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
732 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
733 Label_U_sequence
, hf_index
, ett_glow_Label_U
);
741 dissect_glow_Label(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
742 offset
= dissect_ber_tagged_type(implicit_tag
, actx
, tree
, tvb
, offset
,
743 hf_index
, BER_CLASS_APP
, 18, true, dissect_glow_Label_U
);
749 static const ber_sequence_t LabelCollection_sequence_of
[1] = {
750 { &hf_glow_LabelCollection_item
, BER_CLASS_CON
, 0, 0, dissect_glow_Label
},
754 dissect_glow_LabelCollection(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
755 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
756 LabelCollection_sequence_of
, hf_index
, ett_glow_LabelCollection
);
762 static const ber_sequence_t MatrixContents_set
[] = {
763 { &hf_glow_identifier
, BER_CLASS_CON
, 0, 0, dissect_glow_EmberString
},
764 { &hf_glow_description
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
, dissect_glow_EmberString
},
765 { &hf_glow_type_01
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
, dissect_glow_MatrixType
},
766 { &hf_glow_addressingMode
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
, dissect_glow_MatrixAddressingMode
},
767 { &hf_glow_targetCount
, BER_CLASS_CON
, 4, 0, dissect_glow_Integer32
},
768 { &hf_glow_sourceCount
, BER_CLASS_CON
, 5, 0, dissect_glow_Integer32
},
769 { &hf_glow_maximumTotalConnects
, BER_CLASS_CON
, 6, BER_FLAGS_OPTIONAL
, dissect_glow_Integer32
},
770 { &hf_glow_maximumConnectsPerTarget
, BER_CLASS_CON
, 7, BER_FLAGS_OPTIONAL
, dissect_glow_Integer32
},
771 { &hf_glow_parametersLocation
, BER_CLASS_CON
, 8, BER_FLAGS_OPTIONAL
|BER_FLAGS_NOTCHKTAG
, dissect_glow_ParametersLocation
},
772 { &hf_glow_gainParameterNumber
, BER_CLASS_CON
, 9, BER_FLAGS_OPTIONAL
, dissect_glow_Integer32
},
773 { &hf_glow_labels
, BER_CLASS_CON
, 10, BER_FLAGS_OPTIONAL
, dissect_glow_LabelCollection
},
774 { &hf_glow_schemaIdentifiers
, BER_CLASS_CON
, 11, BER_FLAGS_OPTIONAL
, dissect_glow_EmberString
},
775 { &hf_glow_templateReference
, BER_CLASS_CON
, 12, BER_FLAGS_OPTIONAL
, dissect_glow_RELATIVE_OID
},
776 { NULL
, 0, 0, 0, NULL
}
780 dissect_glow_MatrixContents(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
781 offset
= dissect_ber_set(implicit_tag
, actx
, tree
, tvb
, offset
,
782 MatrixContents_set
, hf_index
, ett_glow_MatrixContents
);
788 static const ber_sequence_t Signal_sequence
[] = {
789 { &hf_glow_number
, BER_CLASS_CON
, 0, 0, dissect_glow_Integer32
},
790 { NULL
, 0, 0, 0, NULL
}
794 dissect_glow_Signal(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
795 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
796 Signal_sequence
, hf_index
, ett_glow_Signal
);
804 dissect_glow_Target(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
805 offset
= dissect_ber_tagged_type(implicit_tag
, actx
, tree
, tvb
, offset
,
806 hf_index
, BER_CLASS_APP
, 14, true, dissect_glow_Signal
);
812 static const ber_sequence_t TargetCollection_sequence_of
[1] = {
813 { &hf_glow_TargetCollection_item
, BER_CLASS_CON
, 0, 0, dissect_glow_Target
},
817 dissect_glow_TargetCollection(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
818 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
819 TargetCollection_sequence_of
, hf_index
, ett_glow_TargetCollection
);
827 dissect_glow_Source(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
828 offset
= dissect_ber_tagged_type(implicit_tag
, actx
, tree
, tvb
, offset
,
829 hf_index
, BER_CLASS_APP
, 15, true, dissect_glow_Signal
);
835 static const ber_sequence_t SourceCollection_sequence_of
[1] = {
836 { &hf_glow_SourceCollection_item
, BER_CLASS_CON
, 0, 0, dissect_glow_Source
},
840 dissect_glow_SourceCollection(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
841 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
842 SourceCollection_sequence_of
, hf_index
, ett_glow_SourceCollection
);
850 dissect_glow_PackedNumbers(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
851 offset
= dissect_ber_relative_oid(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
, NULL
);
857 static const value_string glow_ConnectionOperation_vals
[] = {
866 dissect_glow_ConnectionOperation(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
867 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
874 static const value_string glow_ConnectionDisposition_vals
[] = {
884 dissect_glow_ConnectionDisposition(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
885 offset
= dissect_ber_integer(implicit_tag
, actx
, tree
, tvb
, offset
, hf_index
,
892 static const ber_sequence_t Connection_U_sequence
[] = {
893 { &hf_glow_target
, BER_CLASS_CON
, 0, 0, dissect_glow_Integer32
},
894 { &hf_glow_sources
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
, dissect_glow_PackedNumbers
},
895 { &hf_glow_operation
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
, dissect_glow_ConnectionOperation
},
896 { &hf_glow_disposition
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
, dissect_glow_ConnectionDisposition
},
897 { NULL
, 0, 0, 0, NULL
}
901 dissect_glow_Connection_U(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
902 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
903 Connection_U_sequence
, hf_index
, ett_glow_Connection_U
);
911 dissect_glow_Connection(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
912 offset
= dissect_ber_tagged_type(implicit_tag
, actx
, tree
, tvb
, offset
,
913 hf_index
, BER_CLASS_APP
, 16, true, dissect_glow_Connection_U
);
919 static const ber_sequence_t ConnectionCollection_sequence_of
[1] = {
920 { &hf_glow_ConnectionCollection_item
, BER_CLASS_CON
, 0, 0, dissect_glow_Connection
},
924 dissect_glow_ConnectionCollection(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
925 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
926 ConnectionCollection_sequence_of
, hf_index
, ett_glow_ConnectionCollection
);
932 static const ber_sequence_t Matrix_U_sequence
[] = {
933 { &hf_glow_number
, BER_CLASS_CON
, 0, 0, dissect_glow_Integer32
},
934 { &hf_glow_contents_02
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
, dissect_glow_MatrixContents
},
935 { &hf_glow_children
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
, dissect_glow_ElementCollection
},
936 { &hf_glow_targetList
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
, dissect_glow_TargetCollection
},
937 { &hf_glow_sourceList
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
, dissect_glow_SourceCollection
},
938 { &hf_glow_connections
, BER_CLASS_CON
, 5, BER_FLAGS_OPTIONAL
, dissect_glow_ConnectionCollection
},
939 { NULL
, 0, 0, 0, NULL
}
943 dissect_glow_Matrix_U(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
944 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
945 Matrix_U_sequence
, hf_index
, ett_glow_Matrix_U
);
953 dissect_glow_Matrix(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
954 offset
= dissect_ber_tagged_type(implicit_tag
, actx
, tree
, tvb
, offset
,
955 hf_index
, BER_CLASS_APP
, 13, true, dissect_glow_Matrix_U
);
961 static const ber_sequence_t TupleItemDescription_U_sequence
[] = {
962 { &hf_glow_type
, BER_CLASS_CON
, 0, 0, dissect_glow_ParameterType
},
963 { &hf_glow_name
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
, dissect_glow_EmberString
},
964 { NULL
, 0, 0, 0, NULL
}
968 dissect_glow_TupleItemDescription_U(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
969 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
970 TupleItemDescription_U_sequence
, hf_index
, ett_glow_TupleItemDescription_U
);
978 dissect_glow_TupleItemDescription(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
979 offset
= dissect_ber_tagged_type(implicit_tag
, actx
, tree
, tvb
, offset
,
980 hf_index
, BER_CLASS_APP
, 21, true, dissect_glow_TupleItemDescription_U
);
986 static const ber_sequence_t TupleDescription_sequence_of
[1] = {
987 { &hf_glow_TupleDescription_item
, BER_CLASS_CON
, 0, 0, dissect_glow_TupleItemDescription
},
991 dissect_glow_TupleDescription(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
992 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
993 TupleDescription_sequence_of
, hf_index
, ett_glow_TupleDescription
);
999 static const ber_sequence_t FunctionContents_set
[] = {
1000 { &hf_glow_identifier
, BER_CLASS_CON
, 0, BER_FLAGS_OPTIONAL
, dissect_glow_EmberString
},
1001 { &hf_glow_description
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
, dissect_glow_EmberString
},
1002 { &hf_glow_arguments
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
, dissect_glow_TupleDescription
},
1003 { &hf_glow_result
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
, dissect_glow_TupleDescription
},
1004 { &hf_glow_templateReference
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
, dissect_glow_RELATIVE_OID
},
1005 { NULL
, 0, 0, 0, NULL
}
1009 dissect_glow_FunctionContents(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1010 offset
= dissect_ber_set(implicit_tag
, actx
, tree
, tvb
, offset
,
1011 FunctionContents_set
, hf_index
, ett_glow_FunctionContents
);
1017 static const ber_sequence_t Function_U_sequence
[] = {
1018 { &hf_glow_number
, BER_CLASS_CON
, 0, 0, dissect_glow_Integer32
},
1019 { &hf_glow_contents_03
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
, dissect_glow_FunctionContents
},
1020 { &hf_glow_children
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
, dissect_glow_ElementCollection
},
1021 { NULL
, 0, 0, 0, NULL
}
1025 dissect_glow_Function_U(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1026 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1027 Function_U_sequence
, hf_index
, ett_glow_Function_U
);
1035 dissect_glow_Function(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1036 offset
= dissect_ber_tagged_type(implicit_tag
, actx
, tree
, tvb
, offset
,
1037 hf_index
, BER_CLASS_APP
, 19, true, dissect_glow_Function_U
);
1043 static const value_string glow_Element_vals
[] = {
1053 static const ber_choice_t Element_choice
[] = {
1054 { 1, &hf_glow_parameter
, BER_CLASS_APP
, 1, BER_FLAGS_NOOWNTAG
, dissect_glow_Parameter
},
1055 { 3, &hf_glow_node
, BER_CLASS_APP
, 3, BER_FLAGS_NOOWNTAG
, dissect_glow_Node
},
1056 { 2, &hf_glow_command
, BER_CLASS_APP
, 2, BER_FLAGS_NOOWNTAG
, dissect_glow_Command
},
1057 { 13, &hf_glow_matrix
, BER_CLASS_APP
, 13, BER_FLAGS_NOOWNTAG
, dissect_glow_Matrix
},
1058 { 19, &hf_glow_function
, BER_CLASS_APP
, 19, BER_FLAGS_NOOWNTAG
, dissect_glow_Function
},
1059 { 24, &hf_glow_template
, BER_CLASS_APP
, 24, BER_FLAGS_NOOWNTAG
, dissect_glow_Template
},
1060 { 0, NULL
, 0, 0, 0, NULL
}
1064 dissect_glow_Element(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1065 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
1066 Element_choice
, hf_index
, ett_glow_Element
,
1073 static const ber_sequence_t SEQUENCE_OF_Element_sequence_of
[1] = {
1074 { &hf_glow__untag_item_01
, BER_CLASS_CON
, 0, BER_FLAGS_NOTCHKTAG
, dissect_glow_Element
},
1078 dissect_glow_SEQUENCE_OF_Element(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1079 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
1080 SEQUENCE_OF_Element_sequence_of
, hf_index
, ett_glow_SEQUENCE_OF_Element
);
1088 dissect_glow_ElementCollection(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1089 // ElementCollection -> ElementCollection/_untag -> Element -> Node -> Node/_untag -> ElementCollection
1090 actx
->pinfo
->dissection_depth
+= 5;
1091 increment_dissection_depth(actx
->pinfo
);
1092 offset
= dissect_ber_tagged_type(implicit_tag
, actx
, tree
, tvb
, offset
,
1093 hf_index
, BER_CLASS_APP
, 4, true, dissect_glow_SEQUENCE_OF_Element
);
1095 actx
->pinfo
->dissection_depth
-= 5;
1096 decrement_dissection_depth(actx
->pinfo
);
1101 static const ber_sequence_t Parameter_U_sequence
[] = {
1102 { &hf_glow_number
, BER_CLASS_CON
, 0, 0, dissect_glow_Integer32
},
1103 { &hf_glow_contents
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
, dissect_glow_ParameterContents
},
1104 { &hf_glow_children
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
, dissect_glow_ElementCollection
},
1105 { NULL
, 0, 0, 0, NULL
}
1109 dissect_glow_Parameter_U(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1110 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1111 Parameter_U_sequence
, hf_index
, ett_glow_Parameter_U
);
1119 dissect_glow_Parameter(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1120 // Parameter -> Parameter/_untag -> ElementCollection -> ElementCollection/_untag -> Element -> Parameter
1121 actx
->pinfo
->dissection_depth
+= 5;
1122 increment_dissection_depth(actx
->pinfo
);
1123 offset
= dissect_ber_tagged_type(implicit_tag
, actx
, tree
, tvb
, offset
,
1124 hf_index
, BER_CLASS_APP
, 1, true, dissect_glow_Parameter_U
);
1126 actx
->pinfo
->dissection_depth
-= 5;
1127 decrement_dissection_depth(actx
->pinfo
);
1132 static const value_string glow_TemplateElement_vals
[] = {
1140 static const ber_choice_t TemplateElement_choice
[] = {
1141 { 1, &hf_glow_parameter
, BER_CLASS_APP
, 1, BER_FLAGS_NOOWNTAG
, dissect_glow_Parameter
},
1142 { 3, &hf_glow_node
, BER_CLASS_APP
, 3, BER_FLAGS_NOOWNTAG
, dissect_glow_Node
},
1143 { 13, &hf_glow_matrix
, BER_CLASS_APP
, 13, BER_FLAGS_NOOWNTAG
, dissect_glow_Matrix
},
1144 { 19, &hf_glow_function
, BER_CLASS_APP
, 19, BER_FLAGS_NOOWNTAG
, dissect_glow_Function
},
1145 { 0, NULL
, 0, 0, 0, NULL
}
1149 dissect_glow_TemplateElement(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1150 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
1151 TemplateElement_choice
, hf_index
, ett_glow_TemplateElement
,
1158 static const ber_sequence_t Template_U_set
[] = {
1159 { &hf_glow_number
, BER_CLASS_CON
, 0, 0, dissect_glow_Integer32
},
1160 { &hf_glow_element
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_NOTCHKTAG
, dissect_glow_TemplateElement
},
1161 { &hf_glow_description
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
, dissect_glow_EmberString
},
1162 { NULL
, 0, 0, 0, NULL
}
1166 dissect_glow_Template_U(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1167 offset
= dissect_ber_set(implicit_tag
, actx
, tree
, tvb
, offset
,
1168 Template_U_set
, hf_index
, ett_glow_Template_U
);
1176 dissect_glow_Template(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1177 // Template -> Template/_untag -> TemplateElement -> Parameter -> Parameter/_untag -> ElementCollection -> ElementCollection/_untag -> Element -> Template
1178 actx
->pinfo
->dissection_depth
+= 8;
1179 increment_dissection_depth(actx
->pinfo
);
1180 offset
= dissect_ber_tagged_type(implicit_tag
, actx
, tree
, tvb
, offset
,
1181 hf_index
, BER_CLASS_APP
, 24, true, dissect_glow_Template_U
);
1183 actx
->pinfo
->dissection_depth
-= 8;
1184 decrement_dissection_depth(actx
->pinfo
);
1189 static const ber_sequence_t QualifiedTemplate_U_set
[] = {
1190 { &hf_glow_path
, BER_CLASS_CON
, 0, 0, dissect_glow_RELATIVE_OID
},
1191 { &hf_glow_element
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
|BER_FLAGS_NOTCHKTAG
, dissect_glow_TemplateElement
},
1192 { &hf_glow_description
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
, dissect_glow_EmberString
},
1193 { NULL
, 0, 0, 0, NULL
}
1197 dissect_glow_QualifiedTemplate_U(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1198 offset
= dissect_ber_set(implicit_tag
, actx
, tree
, tvb
, offset
,
1199 QualifiedTemplate_U_set
, hf_index
, ett_glow_QualifiedTemplate_U
);
1207 dissect_glow_QualifiedTemplate(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1208 offset
= dissect_ber_tagged_type(implicit_tag
, actx
, tree
, tvb
, offset
,
1209 hf_index
, BER_CLASS_APP
, 25, true, dissect_glow_QualifiedTemplate_U
);
1215 static const ber_sequence_t QualifiedParameter_U_sequence
[] = {
1216 { &hf_glow_path
, BER_CLASS_CON
, 0, 0, dissect_glow_RELATIVE_OID
},
1217 { &hf_glow_contents
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
, dissect_glow_ParameterContents
},
1218 { &hf_glow_children
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
, dissect_glow_ElementCollection
},
1219 { NULL
, 0, 0, 0, NULL
}
1223 dissect_glow_QualifiedParameter_U(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1224 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1225 QualifiedParameter_U_sequence
, hf_index
, ett_glow_QualifiedParameter_U
);
1233 dissect_glow_QualifiedParameter(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1234 offset
= dissect_ber_tagged_type(implicit_tag
, actx
, tree
, tvb
, offset
,
1235 hf_index
, BER_CLASS_APP
, 9, true, dissect_glow_QualifiedParameter_U
);
1241 static const ber_sequence_t QualifiedNode_U_sequence
[] = {
1242 { &hf_glow_path
, BER_CLASS_CON
, 0, 0, dissect_glow_RELATIVE_OID
},
1243 { &hf_glow_contents_01
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
, dissect_glow_NodeContents
},
1244 { &hf_glow_children
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
, dissect_glow_ElementCollection
},
1245 { NULL
, 0, 0, 0, NULL
}
1249 dissect_glow_QualifiedNode_U(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1250 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1251 QualifiedNode_U_sequence
, hf_index
, ett_glow_QualifiedNode_U
);
1259 dissect_glow_QualifiedNode(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1260 offset
= dissect_ber_tagged_type(implicit_tag
, actx
, tree
, tvb
, offset
,
1261 hf_index
, BER_CLASS_APP
, 10, true, dissect_glow_QualifiedNode_U
);
1267 static const ber_sequence_t QualifiedMatrix_U_sequence
[] = {
1268 { &hf_glow_path
, BER_CLASS_CON
, 0, 0, dissect_glow_RELATIVE_OID
},
1269 { &hf_glow_contents_02
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
, dissect_glow_MatrixContents
},
1270 { &hf_glow_children
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
, dissect_glow_ElementCollection
},
1271 { &hf_glow_targetList
, BER_CLASS_CON
, 3, BER_FLAGS_OPTIONAL
, dissect_glow_TargetCollection
},
1272 { &hf_glow_sourceList
, BER_CLASS_CON
, 4, BER_FLAGS_OPTIONAL
, dissect_glow_SourceCollection
},
1273 { &hf_glow_connections
, BER_CLASS_CON
, 5, BER_FLAGS_OPTIONAL
, dissect_glow_ConnectionCollection
},
1274 { NULL
, 0, 0, 0, NULL
}
1278 dissect_glow_QualifiedMatrix_U(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1279 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1280 QualifiedMatrix_U_sequence
, hf_index
, ett_glow_QualifiedMatrix_U
);
1288 dissect_glow_QualifiedMatrix(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1289 offset
= dissect_ber_tagged_type(implicit_tag
, actx
, tree
, tvb
, offset
,
1290 hf_index
, BER_CLASS_APP
, 17, true, dissect_glow_QualifiedMatrix_U
);
1296 static const ber_sequence_t QualifiedFunction_U_sequence
[] = {
1297 { &hf_glow_path
, BER_CLASS_CON
, 0, 0, dissect_glow_RELATIVE_OID
},
1298 { &hf_glow_contents_03
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
, dissect_glow_FunctionContents
},
1299 { &hf_glow_children
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
, dissect_glow_ElementCollection
},
1300 { NULL
, 0, 0, 0, NULL
}
1304 dissect_glow_QualifiedFunction_U(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1305 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1306 QualifiedFunction_U_sequence
, hf_index
, ett_glow_QualifiedFunction_U
);
1314 dissect_glow_QualifiedFunction(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1315 offset
= dissect_ber_tagged_type(implicit_tag
, actx
, tree
, tvb
, offset
,
1316 hf_index
, BER_CLASS_APP
, 20, true, dissect_glow_QualifiedFunction_U
);
1322 static const ber_sequence_t InvocationResult_U_sequence
[] = {
1323 { &hf_glow_invocationId
, BER_CLASS_CON
, 0, 0, dissect_glow_Integer32
},
1324 { &hf_glow_success
, BER_CLASS_CON
, 1, BER_FLAGS_OPTIONAL
, dissect_glow_BOOLEAN
},
1325 { &hf_glow_result_01
, BER_CLASS_CON
, 2, BER_FLAGS_OPTIONAL
, dissect_glow_Tuple
},
1326 { NULL
, 0, 0, 0, NULL
}
1330 dissect_glow_InvocationResult_U(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1331 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1332 InvocationResult_U_sequence
, hf_index
, ett_glow_InvocationResult_U
);
1340 dissect_glow_InvocationResult(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1341 offset
= dissect_ber_tagged_type(implicit_tag
, actx
, tree
, tvb
, offset
,
1342 hf_index
, BER_CLASS_APP
, 23, true, dissect_glow_InvocationResult_U
);
1348 static const ber_sequence_t StreamEntry_U_sequence
[] = {
1349 { &hf_glow_streamIdentifier
, BER_CLASS_CON
, 0, 0, dissect_glow_Integer32
},
1350 { &hf_glow_streamValue
, BER_CLASS_CON
, 1, BER_FLAGS_NOTCHKTAG
, dissect_glow_Value
},
1351 { NULL
, 0, 0, 0, NULL
}
1355 dissect_glow_StreamEntry_U(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1356 offset
= dissect_ber_sequence(implicit_tag
, actx
, tree
, tvb
, offset
,
1357 StreamEntry_U_sequence
, hf_index
, ett_glow_StreamEntry_U
);
1365 dissect_glow_StreamEntry(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1366 offset
= dissect_ber_tagged_type(implicit_tag
, actx
, tree
, tvb
, offset
,
1367 hf_index
, BER_CLASS_APP
, 5, true, dissect_glow_StreamEntry_U
);
1373 static const ber_sequence_t SEQUENCE_OF_StreamEntry_sequence_of
[1] = {
1374 { &hf_glow__untag_item_02
, BER_CLASS_CON
, 0, 0, dissect_glow_StreamEntry
},
1378 dissect_glow_SEQUENCE_OF_StreamEntry(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1379 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
1380 SEQUENCE_OF_StreamEntry_sequence_of
, hf_index
, ett_glow_SEQUENCE_OF_StreamEntry
);
1388 dissect_glow_StreamCollection(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1389 offset
= dissect_ber_tagged_type(implicit_tag
, actx
, tree
, tvb
, offset
,
1390 hf_index
, BER_CLASS_APP
, 6, true, dissect_glow_SEQUENCE_OF_StreamEntry
);
1396 static const value_string glow_RootElement_vals
[] = {
1398 { 1, "qualifiedParameter" },
1399 { 2, "qualifiedNode" },
1400 { 3, "qualifiedMatrix" },
1401 { 4, "qualifiedFunction" },
1402 { 5, "qualifiedTemplate" },
1406 static const ber_choice_t RootElement_choice
[] = {
1407 { 0, &hf_glow_element_01
, BER_CLASS_ANY
/*choice*/, -1/*choice*/, BER_FLAGS_NOOWNTAG
, dissect_glow_Element
},
1408 { 1, &hf_glow_qualifiedParameter
, BER_CLASS_APP
, 9, BER_FLAGS_NOOWNTAG
, dissect_glow_QualifiedParameter
},
1409 { 2, &hf_glow_qualifiedNode
, BER_CLASS_APP
, 10, BER_FLAGS_NOOWNTAG
, dissect_glow_QualifiedNode
},
1410 { 3, &hf_glow_qualifiedMatrix
, BER_CLASS_APP
, 17, BER_FLAGS_NOOWNTAG
, dissect_glow_QualifiedMatrix
},
1411 { 4, &hf_glow_qualifiedFunction
, BER_CLASS_APP
, 20, BER_FLAGS_NOOWNTAG
, dissect_glow_QualifiedFunction
},
1412 { 5, &hf_glow_qualifiedTemplate
, BER_CLASS_APP
, 25, BER_FLAGS_NOOWNTAG
, dissect_glow_QualifiedTemplate
},
1413 { 0, NULL
, 0, 0, 0, NULL
}
1417 dissect_glow_RootElement(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1418 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
1419 RootElement_choice
, hf_index
, ett_glow_RootElement
,
1426 static const ber_sequence_t SEQUENCE_OF_RootElement_sequence_of
[1] = {
1427 { &hf_glow__untag_item_03
, BER_CLASS_CON
, 0, BER_FLAGS_NOTCHKTAG
, dissect_glow_RootElement
},
1431 dissect_glow_SEQUENCE_OF_RootElement(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1432 offset
= dissect_ber_sequence_of(implicit_tag
, actx
, tree
, tvb
, offset
,
1433 SEQUENCE_OF_RootElement_sequence_of
, hf_index
, ett_glow_SEQUENCE_OF_RootElement
);
1441 dissect_glow_RootElementCollection(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1442 offset
= dissect_ber_tagged_type(implicit_tag
, actx
, tree
, tvb
, offset
,
1443 hf_index
, BER_CLASS_APP
, 11, true, dissect_glow_SEQUENCE_OF_RootElement
);
1449 static const value_string glow_Root_U_vals
[] = {
1452 { 23, "invocationResult" },
1456 static const ber_choice_t Root_U_choice
[] = {
1457 { 11, &hf_glow_elements
, BER_CLASS_APP
, 11, BER_FLAGS_NOOWNTAG
, dissect_glow_RootElementCollection
},
1458 { 6, &hf_glow_streams
, BER_CLASS_APP
, 6, BER_FLAGS_NOOWNTAG
, dissect_glow_StreamCollection
},
1459 { 23, &hf_glow_invocationResult
, BER_CLASS_APP
, 23, BER_FLAGS_NOOWNTAG
, dissect_glow_InvocationResult
},
1460 { 0, NULL
, 0, 0, 0, NULL
}
1464 dissect_glow_Root_U(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1465 offset
= dissect_ber_choice(actx
, tree
, tvb
, offset
,
1466 Root_U_choice
, hf_index
, ett_glow_Root_U
,
1475 dissect_glow_Root(bool implicit_tag _U_
, tvbuff_t
*tvb _U_
, int offset _U_
, asn1_ctx_t
*actx _U_
, proto_tree
*tree _U_
, int hf_index _U_
) {
1476 offset
= dissect_ber_tagged_type(implicit_tag
, actx
, tree
, tvb
, offset
,
1477 hf_index
, BER_CLASS_APP
, 0, false, dissect_glow_Root_U
);
1484 static int dissect_Root_PDU(tvbuff_t
*tvb _U_
, packet_info
*pinfo _U_
, proto_tree
*tree _U_
, void *data _U_
) {
1486 asn1_ctx_t asn1_ctx
;
1487 asn1_ctx_init(&asn1_ctx
, ASN1_ENC_BER
, true, pinfo
);
1488 offset
= dissect_glow_Root(false, tvb
, offset
, &asn1_ctx
, tree
, hf_glow_Root_PDU
);
1494 dissect_glow(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
)
1496 proto_item
*glow_item
= NULL
;
1497 proto_tree
*glow_tree
= NULL
;
1499 /* make entry in the Protocol column on summary display */
1500 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, PNAME
);
1502 /* create the glow protocol tree */
1503 glow_item
= proto_tree_add_item(tree
, proto_glow
, tvb
, 0, -1, ENC_NA
);
1504 glow_tree
= proto_item_add_subtree(glow_item
, ett_glow
);
1506 dissect_Root_PDU(tvb
, pinfo
, glow_tree
, data
);
1508 return tvb_captured_length(tvb
);
1511 void proto_register_glow(void) {
1513 /* List of fields */
1514 static hf_register_info hf
[] = {
1516 { &hf_glow_Root_PDU
,
1517 { "Root", "glow.Root",
1518 FT_UINT32
, BASE_DEC
, VALS(glow_Root_U_vals
), 0,
1521 { "number", "glow.number",
1522 FT_INT32
, BASE_DEC
, NULL
, 0,
1523 "Integer32", HFILL
}},
1525 { "element", "glow.element",
1526 FT_UINT32
, BASE_DEC
, VALS(glow_TemplateElement_vals
), 0,
1527 "TemplateElement", HFILL
}},
1528 { &hf_glow_description
,
1529 { "description", "glow.description",
1530 FT_STRING
, BASE_NONE
, NULL
, 0,
1531 "EmberString", HFILL
}},
1533 { "path", "glow.path",
1534 FT_REL_OID
, BASE_NONE
, NULL
, 0,
1535 "RELATIVE_OID", HFILL
}},
1536 { &hf_glow_parameter
,
1537 { "parameter", "glow.parameter_element",
1538 FT_NONE
, BASE_NONE
, NULL
, 0,
1541 { "node", "glow.node_element",
1542 FT_NONE
, BASE_NONE
, NULL
, 0,
1545 { "matrix", "glow.matrix_element",
1546 FT_NONE
, BASE_NONE
, NULL
, 0,
1548 { &hf_glow_function
,
1549 { "function", "glow.function_element",
1550 FT_NONE
, BASE_NONE
, NULL
, 0,
1552 { &hf_glow_contents
,
1553 { "contents", "glow.contents_element",
1554 FT_NONE
, BASE_NONE
, NULL
, 0,
1555 "ParameterContents", HFILL
}},
1556 { &hf_glow_children
,
1557 { "children", "glow.children",
1558 FT_UINT32
, BASE_DEC
, NULL
, 0,
1559 "ElementCollection", HFILL
}},
1560 { &hf_glow_identifier
,
1561 { "identifier", "glow.identifier",
1562 FT_STRING
, BASE_NONE
, NULL
, 0,
1563 "EmberString", HFILL
}},
1565 { "value", "glow.value",
1566 FT_UINT32
, BASE_DEC
, VALS(glow_Value_vals
), 0,
1569 { "minimum", "glow.minimum",
1570 FT_UINT32
, BASE_DEC
, VALS(glow_MinMax_vals
), 0,
1573 { "maximum", "glow.maximum",
1574 FT_UINT32
, BASE_DEC
, VALS(glow_MinMax_vals
), 0,
1577 { "access", "glow.access",
1578 FT_INT32
, BASE_DEC
, VALS(glow_ParameterAccess_vals
), 0,
1579 "ParameterAccess", HFILL
}},
1581 { "format", "glow.format",
1582 FT_STRING
, BASE_NONE
, NULL
, 0,
1583 "EmberString", HFILL
}},
1584 { &hf_glow_enumeration
,
1585 { "enumeration", "glow.enumeration",
1586 FT_STRING
, BASE_NONE
, NULL
, 0,
1587 "EmberString", HFILL
}},
1589 { "factor", "glow.factor",
1590 FT_INT32
, BASE_DEC
, NULL
, 0,
1591 "Integer32", HFILL
}},
1592 { &hf_glow_isOnline
,
1593 { "isOnline", "glow.isOnline",
1594 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
1595 "BOOLEAN", HFILL
}},
1597 { "formula", "glow.formula",
1598 FT_STRING
, BASE_NONE
, NULL
, 0,
1599 "EmberString", HFILL
}},
1601 { "step", "glow.step",
1602 FT_INT32
, BASE_DEC
, NULL
, 0,
1603 "Integer32", HFILL
}},
1605 { "default", "glow.default",
1606 FT_UINT32
, BASE_DEC
, VALS(glow_Value_vals
), 0,
1609 { "type", "glow.type",
1610 FT_INT32
, BASE_DEC
, VALS(glow_ParameterType_vals
), 0,
1611 "ParameterType", HFILL
}},
1612 { &hf_glow_streamIdentifier
,
1613 { "streamIdentifier", "glow.streamIdentifier",
1614 FT_INT32
, BASE_DEC
, NULL
, 0,
1615 "Integer32", HFILL
}},
1617 { "enumMap", "glow.enumMap",
1618 FT_UINT32
, BASE_DEC
, NULL
, 0,
1619 "StringIntegerCollection", HFILL
}},
1620 { &hf_glow_streamDescriptor
,
1621 { "streamDescriptor", "glow.streamDescriptor_element",
1622 FT_NONE
, BASE_NONE
, NULL
, 0,
1623 "StreamDescription", HFILL
}},
1624 { &hf_glow_schemaIdentifiers
,
1625 { "schemaIdentifiers", "glow.schemaIdentifiers",
1626 FT_STRING
, BASE_NONE
, NULL
, 0,
1627 "EmberString", HFILL
}},
1628 { &hf_glow_templateReference
,
1629 { "templateReference", "glow.templateReference",
1630 FT_REL_OID
, BASE_NONE
, NULL
, 0,
1631 "RELATIVE_OID", HFILL
}},
1633 { "integer", "glow.integer",
1634 FT_INT64
, BASE_DEC
, NULL
, 0,
1635 "Integer64", HFILL
}},
1637 { "real", "glow.real",
1638 FT_DOUBLE
, BASE_NONE
, NULL
, 0,
1641 { "string", "glow.string",
1642 FT_STRING
, BASE_NONE
, NULL
, 0,
1643 "EmberString", HFILL
}},
1645 { "boolean", "glow.boolean",
1646 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
1649 { "octets", "glow.octets",
1650 FT_BYTES
, BASE_NONE
, NULL
, 0,
1651 "OCTET_STRING", HFILL
}},
1653 { "null", "glow.null_element",
1654 FT_NONE
, BASE_NONE
, NULL
, 0,
1656 { &hf_glow_entryString
,
1657 { "entryString", "glow.entryString",
1658 FT_STRING
, BASE_NONE
, NULL
, 0,
1659 "EmberString", HFILL
}},
1660 { &hf_glow_entryInteger
,
1661 { "entryInteger", "glow.entryInteger",
1662 FT_INT32
, BASE_DEC
, NULL
, 0,
1663 "Integer32", HFILL
}},
1664 { &hf_glow__untag_item
,
1665 { "StringIntegerPair", "glow.StringIntegerPair_element",
1666 FT_NONE
, BASE_NONE
, NULL
, 0,
1668 { &hf_glow_streamFormat
,
1669 { "streamFormat", "glow.streamFormat",
1670 FT_INT32
, BASE_DEC
, VALS(glow_StreamFormat_vals
), 0,
1673 { "offset", "glow.offset",
1674 FT_INT32
, BASE_DEC
, NULL
, 0,
1675 "Integer32", HFILL
}},
1676 { &hf_glow_number_01
,
1677 { "number", "glow.number",
1678 FT_INT32
, BASE_DEC
, VALS(glow_CommandType_vals
), 0,
1679 "CommandType", HFILL
}},
1681 { "options", "glow.options",
1682 FT_UINT32
, BASE_DEC
, VALS(glow_T_options_vals
), 0,
1684 { &hf_glow_dirFieldMask
,
1685 { "dirFieldMask", "glow.dirFieldMask",
1686 FT_INT32
, BASE_DEC
, VALS(glow_FieldFlags_vals
), 0,
1687 "FieldFlags", HFILL
}},
1688 { &hf_glow_invocation
,
1689 { "invocation", "glow.invocation_element",
1690 FT_NONE
, BASE_NONE
, NULL
, 0,
1692 { &hf_glow_contents_01
,
1693 { "contents", "glow.contents_element",
1694 FT_NONE
, BASE_NONE
, NULL
, 0,
1695 "NodeContents", HFILL
}},
1697 { "isRoot", "glow.isRoot",
1698 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
1699 "BOOLEAN", HFILL
}},
1700 { &hf_glow_contents_02
,
1701 { "contents", "glow.contents_element",
1702 FT_NONE
, BASE_NONE
, NULL
, 0,
1703 "MatrixContents", HFILL
}},
1704 { &hf_glow_targetList
,
1705 { "targetList", "glow.targetList",
1706 FT_UINT32
, BASE_DEC
, NULL
, 0,
1707 "TargetCollection", HFILL
}},
1708 { &hf_glow_sourceList
,
1709 { "sourceList", "glow.sourceList",
1710 FT_UINT32
, BASE_DEC
, NULL
, 0,
1711 "SourceCollection", HFILL
}},
1712 { &hf_glow_connections
,
1713 { "connections", "glow.connections",
1714 FT_UINT32
, BASE_DEC
, NULL
, 0,
1715 "ConnectionCollection", HFILL
}},
1717 { "type", "glow.type",
1718 FT_INT32
, BASE_DEC
, VALS(glow_MatrixType_vals
), 0,
1719 "MatrixType", HFILL
}},
1720 { &hf_glow_addressingMode
,
1721 { "addressingMode", "glow.addressingMode",
1722 FT_INT32
, BASE_DEC
, VALS(glow_MatrixAddressingMode_vals
), 0,
1723 "MatrixAddressingMode", HFILL
}},
1724 { &hf_glow_targetCount
,
1725 { "targetCount", "glow.targetCount",
1726 FT_INT32
, BASE_DEC
, NULL
, 0,
1727 "Integer32", HFILL
}},
1728 { &hf_glow_sourceCount
,
1729 { "sourceCount", "glow.sourceCount",
1730 FT_INT32
, BASE_DEC
, NULL
, 0,
1731 "Integer32", HFILL
}},
1732 { &hf_glow_maximumTotalConnects
,
1733 { "maximumTotalConnects", "glow.maximumTotalConnects",
1734 FT_INT32
, BASE_DEC
, NULL
, 0,
1735 "Integer32", HFILL
}},
1736 { &hf_glow_maximumConnectsPerTarget
,
1737 { "maximumConnectsPerTarget", "glow.maximumConnectsPerTarget",
1738 FT_INT32
, BASE_DEC
, NULL
, 0,
1739 "Integer32", HFILL
}},
1740 { &hf_glow_parametersLocation
,
1741 { "parametersLocation", "glow.parametersLocation",
1742 FT_UINT32
, BASE_DEC
, VALS(glow_ParametersLocation_vals
), 0,
1744 { &hf_glow_gainParameterNumber
,
1745 { "gainParameterNumber", "glow.gainParameterNumber",
1746 FT_INT32
, BASE_DEC
, NULL
, 0,
1747 "Integer32", HFILL
}},
1749 { "labels", "glow.labels",
1750 FT_UINT32
, BASE_DEC
, NULL
, 0,
1751 "LabelCollection", HFILL
}},
1752 { &hf_glow_basePath
,
1753 { "basePath", "glow.basePath",
1754 FT_REL_OID
, BASE_NONE
, NULL
, 0,
1755 "RELATIVE_OID", HFILL
}},
1757 { "inline", "glow.inline",
1758 FT_INT32
, BASE_DEC
, NULL
, 0,
1759 "Integer32", HFILL
}},
1760 { &hf_glow_LabelCollection_item
,
1761 { "Label", "glow.Label_element",
1762 FT_NONE
, BASE_NONE
, NULL
, 0,
1764 { &hf_glow_TargetCollection_item
,
1765 { "Target", "glow.Target_element",
1766 FT_NONE
, BASE_NONE
, NULL
, 0,
1768 { &hf_glow_SourceCollection_item
,
1769 { "Source", "glow.Source_element",
1770 FT_NONE
, BASE_NONE
, NULL
, 0,
1772 { &hf_glow_ConnectionCollection_item
,
1773 { "Connection", "glow.Connection_element",
1774 FT_NONE
, BASE_NONE
, NULL
, 0,
1777 { "target", "glow.target",
1778 FT_INT32
, BASE_DEC
, NULL
, 0,
1779 "Integer32", HFILL
}},
1781 { "sources", "glow.sources",
1782 FT_REL_OID
, BASE_NONE
, NULL
, 0,
1783 "PackedNumbers", HFILL
}},
1784 { &hf_glow_operation
,
1785 { "operation", "glow.operation",
1786 FT_INT32
, BASE_DEC
, VALS(glow_ConnectionOperation_vals
), 0,
1787 "ConnectionOperation", HFILL
}},
1788 { &hf_glow_disposition
,
1789 { "disposition", "glow.disposition",
1790 FT_INT32
, BASE_DEC
, VALS(glow_ConnectionDisposition_vals
), 0,
1791 "ConnectionDisposition", HFILL
}},
1792 { &hf_glow_contents_03
,
1793 { "contents", "glow.contents_element",
1794 FT_NONE
, BASE_NONE
, NULL
, 0,
1795 "FunctionContents", HFILL
}},
1796 { &hf_glow_arguments
,
1797 { "arguments", "glow.arguments",
1798 FT_UINT32
, BASE_DEC
, NULL
, 0,
1799 "TupleDescription", HFILL
}},
1801 { "result", "glow.result",
1802 FT_UINT32
, BASE_DEC
, NULL
, 0,
1803 "TupleDescription", HFILL
}},
1804 { &hf_glow_TupleDescription_item
,
1805 { "TupleItemDescription", "glow.TupleItemDescription_element",
1806 FT_NONE
, BASE_NONE
, NULL
, 0,
1809 { "name", "glow.name",
1810 FT_STRING
, BASE_NONE
, NULL
, 0,
1811 "EmberString", HFILL
}},
1812 { &hf_glow_invocationId
,
1813 { "invocationId", "glow.invocationId",
1814 FT_INT32
, BASE_DEC
, NULL
, 0,
1815 "Integer32", HFILL
}},
1816 { &hf_glow_arguments_01
,
1817 { "arguments", "glow.arguments",
1818 FT_UINT32
, BASE_DEC
, NULL
, 0,
1820 { &hf_glow_Tuple_item
,
1821 { "Value", "glow.Value",
1822 FT_UINT32
, BASE_DEC
, VALS(glow_Value_vals
), 0,
1825 { "success", "glow.success",
1826 FT_BOOLEAN
, BASE_NONE
, NULL
, 0,
1827 "BOOLEAN", HFILL
}},
1828 { &hf_glow_result_01
,
1829 { "result", "glow.result",
1830 FT_UINT32
, BASE_DEC
, NULL
, 0,
1832 { &hf_glow__untag_item_01
,
1833 { "Element", "glow.Element",
1834 FT_UINT32
, BASE_DEC
, VALS(glow_Element_vals
), 0,
1837 { "command", "glow.command_element",
1838 FT_NONE
, BASE_NONE
, NULL
, 0,
1840 { &hf_glow_template
,
1841 { "template", "glow.template_element",
1842 FT_NONE
, BASE_NONE
, NULL
, 0,
1844 { &hf_glow_streamValue
,
1845 { "streamValue", "glow.streamValue",
1846 FT_UINT32
, BASE_DEC
, VALS(glow_Value_vals
), 0,
1848 { &hf_glow__untag_item_02
,
1849 { "StreamEntry", "glow.StreamEntry_element",
1850 FT_NONE
, BASE_NONE
, NULL
, 0,
1852 { &hf_glow_elements
,
1853 { "elements", "glow.elements",
1854 FT_UINT32
, BASE_DEC
, NULL
, 0,
1855 "RootElementCollection", HFILL
}},
1857 { "streams", "glow.streams",
1858 FT_UINT32
, BASE_DEC
, NULL
, 0,
1859 "StreamCollection", HFILL
}},
1860 { &hf_glow_invocationResult
,
1861 { "invocationResult", "glow.invocationResult_element",
1862 FT_NONE
, BASE_NONE
, NULL
, 0,
1864 { &hf_glow__untag_item_03
,
1865 { "RootElement", "glow.RootElement",
1866 FT_UINT32
, BASE_DEC
, VALS(glow_RootElement_vals
), 0,
1868 { &hf_glow_element_01
,
1869 { "element", "glow.element",
1870 FT_UINT32
, BASE_DEC
, VALS(glow_Element_vals
), 0,
1872 { &hf_glow_qualifiedParameter
,
1873 { "qualifiedParameter", "glow.qualifiedParameter_element",
1874 FT_NONE
, BASE_NONE
, NULL
, 0,
1876 { &hf_glow_qualifiedNode
,
1877 { "qualifiedNode", "glow.qualifiedNode_element",
1878 FT_NONE
, BASE_NONE
, NULL
, 0,
1880 { &hf_glow_qualifiedMatrix
,
1881 { "qualifiedMatrix", "glow.qualifiedMatrix_element",
1882 FT_NONE
, BASE_NONE
, NULL
, 0,
1884 { &hf_glow_qualifiedFunction
,
1885 { "qualifiedFunction", "glow.qualifiedFunction_element",
1886 FT_NONE
, BASE_NONE
, NULL
, 0,
1888 { &hf_glow_qualifiedTemplate
,
1889 { "qualifiedTemplate", "glow.qualifiedTemplate_element",
1890 FT_NONE
, BASE_NONE
, NULL
, 0,
1894 /* List of subtrees */
1895 static int *ett
[] = {
1897 &ett_glow_Template_U
,
1898 &ett_glow_QualifiedTemplate_U
,
1899 &ett_glow_TemplateElement
,
1900 &ett_glow_Parameter_U
,
1901 &ett_glow_QualifiedParameter_U
,
1902 &ett_glow_ParameterContents
,
1905 &ett_glow_StringIntegerPair_U
,
1906 &ett_glow_SEQUENCE_OF_StringIntegerPair
,
1907 &ett_glow_StreamDescription_U
,
1908 &ett_glow_Command_U
,
1909 &ett_glow_T_options
,
1911 &ett_glow_QualifiedNode_U
,
1912 &ett_glow_NodeContents
,
1914 &ett_glow_MatrixContents
,
1915 &ett_glow_ParametersLocation
,
1916 &ett_glow_LabelCollection
,
1918 &ett_glow_TargetCollection
,
1920 &ett_glow_SourceCollection
,
1921 &ett_glow_ConnectionCollection
,
1922 &ett_glow_Connection_U
,
1923 &ett_glow_QualifiedMatrix_U
,
1924 &ett_glow_Function_U
,
1925 &ett_glow_QualifiedFunction_U
,
1926 &ett_glow_FunctionContents
,
1927 &ett_glow_TupleDescription
,
1928 &ett_glow_TupleItemDescription_U
,
1929 &ett_glow_Invocation_U
,
1931 &ett_glow_InvocationResult_U
,
1932 &ett_glow_SEQUENCE_OF_Element
,
1934 &ett_glow_StreamEntry_U
,
1935 &ett_glow_SEQUENCE_OF_StreamEntry
,
1937 &ett_glow_SEQUENCE_OF_RootElement
,
1938 &ett_glow_RootElement
,
1942 /* Register protocol */
1943 proto_glow
= proto_register_protocol(PNAME
, PSNAME
, PFNAME
);
1944 glow_handle
= register_dissector("glow", dissect_glow
, proto_glow
);
1946 /* Register fields and subtrees */
1947 proto_register_field_array(proto_glow
, hf
, array_length(hf
));
1948 proto_register_subtree_array(ett
, array_length(ett
));
1953 * Editor modelines - https://www.wireshark.org/tools/modelines.html
1958 * indent-tabs-mode: nil
1961 * vi: set shiftwidth=4 tabstop=8 expandtab:
1962 * :indentSize=4:tabSize=8:noTabs=true: