nexmon – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 /******************************************************************************
2 ** Copyright (C) 2006-2015 ascolab GmbH. All Rights Reserved.
3 ** Web: http://www.ascolab.com
4 **
5 ** This program is free software; you can redistribute it and/or
6 ** modify it under the terms of the GNU General Public License
7 ** as published by the Free Software Foundation; either version 2
8 ** of the License, or (at your option) any later version.
9 **
10 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
11 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
12 **
13 ** Project: OpcUa Wireshark Plugin
14 **
15 ** Description: OpcUa Enum Type Parser
16 **
17 ** This file was autogenerated on 13.10.2015.
18 ** DON'T MODIFY THIS FILE!
19 **
20 ******************************************************************************/
21  
22 #include "config.h"
23  
24 #include <epan/packet.h>
25  
26 #include "opcua_enumparser.h"
27  
28 gint ett_opcua_array_NodeIdType = -1;
29 gint ett_opcua_array_NamingRuleType = -1;
30 gint ett_opcua_array_OpenFileMode = -1;
31 gint ett_opcua_array_TrustListMasks = -1;
32 gint ett_opcua_array_IdType = -1;
33 gint ett_opcua_array_NodeClass = -1;
34 gint ett_opcua_array_ApplicationType = -1;
35 gint ett_opcua_array_MessageSecurityMode = -1;
36 gint ett_opcua_array_UserTokenType = -1;
37 gint ett_opcua_array_SecurityTokenRequestType = -1;
38 gint ett_opcua_array_NodeAttributesMask = -1;
39 gint ett_opcua_array_AttributeWriteMask = -1;
40 gint ett_opcua_array_BrowseDirection = -1;
41 gint ett_opcua_array_BrowseResultMask = -1;
42 gint ett_opcua_array_ComplianceLevel = -1;
43 gint ett_opcua_array_FilterOperator = -1;
44 gint ett_opcua_array_TimestampsToReturn = -1;
45 gint ett_opcua_array_HistoryUpdateType = -1;
46 gint ett_opcua_array_PerformUpdateType = -1;
47 gint ett_opcua_array_MonitoringMode = -1;
48 gint ett_opcua_array_DataChangeTrigger = -1;
49 gint ett_opcua_array_DeadbandType = -1;
50 gint ett_opcua_array_EnumeratedTestType = -1;
51 gint ett_opcua_array_RedundancySupport = -1;
52 gint ett_opcua_array_ServerState = -1;
53 gint ett_opcua_array_ModelChangeStructureVerbMask = -1;
54 gint ett_opcua_array_AxisScaleEnumeration = -1;
55 gint ett_opcua_array_ExceptionDeviationFormat = -1;
56  
57 /** NodeIdType enum table */
58 static const value_string g_NodeIdTypeTable[] = {
59 { 0, "TwoByte" },
60 { 1, "FourByte" },
61 { 2, "Numeric" },
62 { 3, "String" },
63 { 4, "Guid" },
64 { 5, "ByteString" },
65 { 0, NULL }
66 };
67 static int hf_opcua_NodeIdType = -1;
68  
69 void parseNodeIdType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
70 {
71 proto_tree_add_item(tree, hf_opcua_NodeIdType, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
72 }
73 /** NamingRuleType enum table */
74 static const value_string g_NamingRuleTypeTable[] = {
75 { 1, "Mandatory" },
76 { 2, "Optional" },
77 { 3, "Constraint" },
78 { 0, NULL }
79 };
80 static int hf_opcua_NamingRuleType = -1;
81  
82 void parseNamingRuleType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
83 {
84 proto_tree_add_item(tree, hf_opcua_NamingRuleType, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
85 }
86 /** OpenFileMode enum table */
87 static const value_string g_OpenFileModeTable[] = {
88 { 1, "Read" },
89 { 2, "Write" },
90 { 4, "EraseExisting" },
91 { 8, "Append" },
92 { 0, NULL }
93 };
94 static int hf_opcua_OpenFileMode = -1;
95  
96 void parseOpenFileMode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
97 {
98 proto_tree_add_item(tree, hf_opcua_OpenFileMode, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
99 }
100 /** TrustListMasks enum table */
101 static const value_string g_TrustListMasksTable[] = {
102 { 0, "None" },
103 { 1, "TrustedCertificates" },
104 { 2, "TrustedCrls" },
105 { 4, "IssuerCertificates" },
106 { 8, "IssuerCrls" },
107 { 15, "All" },
108 { 0, NULL }
109 };
110 static int hf_opcua_TrustListMasks = -1;
111  
112 void parseTrustListMasks(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
113 {
114 proto_tree_add_item(tree, hf_opcua_TrustListMasks, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
115 }
116 /** IdType enum table */
117 static const value_string g_IdTypeTable[] = {
118 { 0, "Numeric" },
119 { 1, "String" },
120 { 2, "Guid" },
121 { 3, "Opaque" },
122 { 0, NULL }
123 };
124 static int hf_opcua_IdType = -1;
125  
126 void parseIdType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
127 {
128 proto_tree_add_item(tree, hf_opcua_IdType, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
129 }
130 /** NodeClass enum table */
131 static const value_string g_NodeClassTable[] = {
132 { 0, "Unspecified" },
133 { 1, "Object" },
134 { 2, "Variable" },
135 { 4, "Method" },
136 { 8, "ObjectType" },
137 { 16, "VariableType" },
138 { 32, "ReferenceType" },
139 { 64, "DataType" },
140 { 128, "View" },
141 { 0, NULL }
142 };
143 static int hf_opcua_NodeClass = -1;
144  
145 void parseNodeClass(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
146 {
147 proto_tree_add_item(tree, hf_opcua_NodeClass, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
148 }
149 /** ApplicationType enum table */
150 static const value_string g_ApplicationTypeTable[] = {
151 { 0, "Server" },
152 { 1, "Client" },
153 { 2, "ClientAndServer" },
154 { 3, "DiscoveryServer" },
155 { 0, NULL }
156 };
157 static int hf_opcua_ApplicationType = -1;
158  
159 void parseApplicationType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
160 {
161 proto_tree_add_item(tree, hf_opcua_ApplicationType, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
162 }
163 /** MessageSecurityMode enum table */
164 static const value_string g_MessageSecurityModeTable[] = {
165 { 0, "Invalid" },
166 { 1, "None" },
167 { 2, "Sign" },
168 { 3, "SignAndEncrypt" },
169 { 0, NULL }
170 };
171 static int hf_opcua_MessageSecurityMode = -1;
172  
173 void parseMessageSecurityMode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
174 {
175 proto_tree_add_item(tree, hf_opcua_MessageSecurityMode, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
176 }
177 /** UserTokenType enum table */
178 static const value_string g_UserTokenTypeTable[] = {
179 { 0, "Anonymous" },
180 { 1, "UserName" },
181 { 2, "Certificate" },
182 { 3, "IssuedToken" },
183 { 4, "Kerberos" },
184 { 0, NULL }
185 };
186 static int hf_opcua_UserTokenType = -1;
187  
188 void parseUserTokenType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
189 {
190 proto_tree_add_item(tree, hf_opcua_UserTokenType, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
191 }
192 /** SecurityTokenRequestType enum table */
193 static const value_string g_SecurityTokenRequestTypeTable[] = {
194 { 0, "Issue" },
195 { 1, "Renew" },
196 { 0, NULL }
197 };
198 static int hf_opcua_SecurityTokenRequestType = -1;
199  
200 void parseSecurityTokenRequestType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
201 {
202 proto_tree_add_item(tree, hf_opcua_SecurityTokenRequestType, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
203 }
204 /** NodeAttributesMask enum table */
205 static const value_string g_NodeAttributesMaskTable[] = {
206 { 0, "None" },
207 { 1, "AccessLevel" },
208 { 2, "ArrayDimensions" },
209 { 4, "BrowseName" },
210 { 8, "ContainsNoLoops" },
211 { 16, "DataType" },
212 { 32, "Description" },
213 { 64, "DisplayName" },
214 { 128, "EventNotifier" },
215 { 256, "Executable" },
216 { 512, "Historizing" },
217 { 1024, "InverseName" },
218 { 2048, "IsAbstract" },
219 { 4096, "MinimumSamplingInterval" },
220 { 8192, "NodeClass" },
221 { 16384, "NodeId" },
222 { 32768, "Symmetric" },
223 { 65536, "UserAccessLevel" },
224 { 131072, "UserExecutable" },
225 { 262144, "UserWriteMask" },
226 { 524288, "ValueRank" },
227 { 1048576, "WriteMask" },
228 { 2097152, "Value" },
229 { 4194303, "All" },
230 { 1335396, "BaseNode" },
231 { 1335524, "Object" },
232 { 1337444, "ObjectTypeOrDataType" },
233 { 4026999, "Variable" },
234 { 3958902, "VariableType" },
235 { 1466724, "Method" },
236 { 1371236, "ReferenceType" },
237 { 1335532, "View" },
238 { 0, NULL }
239 };
240 static int hf_opcua_NodeAttributesMask = -1;
241  
242 void parseNodeAttributesMask(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
243 {
244 proto_tree_add_item(tree, hf_opcua_NodeAttributesMask, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
245 }
246 /** AttributeWriteMask enum table */
247 static const value_string g_AttributeWriteMaskTable[] = {
248 { 0, "None" },
249 { 1, "AccessLevel" },
250 { 2, "ArrayDimensions" },
251 { 4, "BrowseName" },
252 { 8, "ContainsNoLoops" },
253 { 16, "DataType" },
254 { 32, "Description" },
255 { 64, "DisplayName" },
256 { 128, "EventNotifier" },
257 { 256, "Executable" },
258 { 512, "Historizing" },
259 { 1024, "InverseName" },
260 { 2048, "IsAbstract" },
261 { 4096, "MinimumSamplingInterval" },
262 { 8192, "NodeClass" },
263 { 16384, "NodeId" },
264 { 32768, "Symmetric" },
265 { 65536, "UserAccessLevel" },
266 { 131072, "UserExecutable" },
267 { 262144, "UserWriteMask" },
268 { 524288, "ValueRank" },
269 { 1048576, "WriteMask" },
270 { 2097152, "ValueForVariableType" },
271 { 0, NULL }
272 };
273 static int hf_opcua_AttributeWriteMask = -1;
274  
275 void parseAttributeWriteMask(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
276 {
277 proto_tree_add_item(tree, hf_opcua_AttributeWriteMask, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
278 }
279 /** BrowseDirection enum table */
280 static const value_string g_BrowseDirectionTable[] = {
281 { 0, "Forward" },
282 { 1, "Inverse" },
283 { 2, "Both" },
284 { 0, NULL }
285 };
286 static int hf_opcua_BrowseDirection = -1;
287  
288 void parseBrowseDirection(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
289 {
290 proto_tree_add_item(tree, hf_opcua_BrowseDirection, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
291 }
292 /** BrowseResultMask enum table */
293 static const value_string g_BrowseResultMaskTable[] = {
294 { 0, "None" },
295 { 1, "ReferenceTypeId" },
296 { 2, "IsForward" },
297 { 4, "NodeClass" },
298 { 8, "BrowseName" },
299 { 16, "DisplayName" },
300 { 32, "TypeDefinition" },
301 { 63, "All" },
302 { 3, "ReferenceTypeInfo" },
303 { 60, "TargetInfo" },
304 { 0, NULL }
305 };
306 static int hf_opcua_BrowseResultMask = -1;
307  
308 void parseBrowseResultMask(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
309 {
310 proto_tree_add_item(tree, hf_opcua_BrowseResultMask, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
311 }
312 /** ComplianceLevel enum table */
313 static const value_string g_ComplianceLevelTable[] = {
314 { 0, "Untested" },
315 { 1, "Partial" },
316 { 2, "SelfTested" },
317 { 3, "Certified" },
318 { 0, NULL }
319 };
320 static int hf_opcua_ComplianceLevel = -1;
321  
322 void parseComplianceLevel(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
323 {
324 proto_tree_add_item(tree, hf_opcua_ComplianceLevel, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
325 }
326 /** FilterOperator enum table */
327 static const value_string g_FilterOperatorTable[] = {
328 { 0, "Equals" },
329 { 1, "IsNull" },
330 { 2, "GreaterThan" },
331 { 3, "LessThan" },
332 { 4, "GreaterThanOrEqual" },
333 { 5, "LessThanOrEqual" },
334 { 6, "Like" },
335 { 7, "Not" },
336 { 8, "Between" },
337 { 9, "InList" },
338 { 10, "And" },
339 { 11, "Or" },
340 { 12, "Cast" },
341 { 13, "InView" },
342 { 14, "OfType" },
343 { 15, "RelatedTo" },
344 { 16, "BitwiseAnd" },
345 { 17, "BitwiseOr" },
346 { 0, NULL }
347 };
348 static int hf_opcua_FilterOperator = -1;
349  
350 void parseFilterOperator(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
351 {
352 proto_tree_add_item(tree, hf_opcua_FilterOperator, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
353 }
354 /** TimestampsToReturn enum table */
355 static const value_string g_TimestampsToReturnTable[] = {
356 { 0, "Source" },
357 { 1, "Server" },
358 { 2, "Both" },
359 { 3, "Neither" },
360 { 0, NULL }
361 };
362 static int hf_opcua_TimestampsToReturn = -1;
363  
364 void parseTimestampsToReturn(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
365 {
366 proto_tree_add_item(tree, hf_opcua_TimestampsToReturn, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
367 }
368 /** HistoryUpdateType enum table */
369 static const value_string g_HistoryUpdateTypeTable[] = {
370 { 1, "Insert" },
371 { 2, "Replace" },
372 { 3, "Update" },
373 { 4, "Delete" },
374 { 0, NULL }
375 };
376 static int hf_opcua_HistoryUpdateType = -1;
377  
378 void parseHistoryUpdateType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
379 {
380 proto_tree_add_item(tree, hf_opcua_HistoryUpdateType, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
381 }
382 /** PerformUpdateType enum table */
383 static const value_string g_PerformUpdateTypeTable[] = {
384 { 1, "Insert" },
385 { 2, "Replace" },
386 { 3, "Update" },
387 { 4, "Remove" },
388 { 0, NULL }
389 };
390 static int hf_opcua_PerformUpdateType = -1;
391  
392 void parsePerformUpdateType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
393 {
394 proto_tree_add_item(tree, hf_opcua_PerformUpdateType, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
395 }
396 /** MonitoringMode enum table */
397 static const value_string g_MonitoringModeTable[] = {
398 { 0, "Disabled" },
399 { 1, "Sampling" },
400 { 2, "Reporting" },
401 { 0, NULL }
402 };
403 static int hf_opcua_MonitoringMode = -1;
404  
405 void parseMonitoringMode(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
406 {
407 proto_tree_add_item(tree, hf_opcua_MonitoringMode, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
408 }
409 /** DataChangeTrigger enum table */
410 static const value_string g_DataChangeTriggerTable[] = {
411 { 0, "Status" },
412 { 1, "StatusValue" },
413 { 2, "StatusValueTimestamp" },
414 { 0, NULL }
415 };
416 static int hf_opcua_DataChangeTrigger = -1;
417  
418 void parseDataChangeTrigger(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
419 {
420 proto_tree_add_item(tree, hf_opcua_DataChangeTrigger, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
421 }
422 /** DeadbandType enum table */
423 static const value_string g_DeadbandTypeTable[] = {
424 { 0, "None" },
425 { 1, "Absolute" },
426 { 2, "Percent" },
427 { 0, NULL }
428 };
429 static int hf_opcua_DeadbandType = -1;
430  
431 void parseDeadbandType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
432 {
433 proto_tree_add_item(tree, hf_opcua_DeadbandType, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
434 }
435 /** EnumeratedTestType enum table */
436 static const value_string g_EnumeratedTestTypeTable[] = {
437 { 1, "Red" },
438 { 4, "Yellow" },
439 { 5, "Green" },
440 { 0, NULL }
441 };
442 static int hf_opcua_EnumeratedTestType = -1;
443  
444 void parseEnumeratedTestType(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
445 {
446 proto_tree_add_item(tree, hf_opcua_EnumeratedTestType, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
447 }
448 /** RedundancySupport enum table */
449 static const value_string g_RedundancySupportTable[] = {
450 { 0, "None" },
451 { 1, "Cold" },
452 { 2, "Warm" },
453 { 3, "Hot" },
454 { 4, "Transparent" },
455 { 5, "HotAndMirrored" },
456 { 0, NULL }
457 };
458 static int hf_opcua_RedundancySupport = -1;
459  
460 void parseRedundancySupport(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
461 {
462 proto_tree_add_item(tree, hf_opcua_RedundancySupport, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
463 }
464 /** ServerState enum table */
465 static const value_string g_ServerStateTable[] = {
466 { 0, "Running" },
467 { 1, "Failed" },
468 { 2, "NoConfiguration" },
469 { 3, "Suspended" },
470 { 4, "Shutdown" },
471 { 5, "Test" },
472 { 6, "CommunicationFault" },
473 { 7, "Unknown" },
474 { 0, NULL }
475 };
476 static int hf_opcua_ServerState = -1;
477  
478 void parseServerState(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
479 {
480 proto_tree_add_item(tree, hf_opcua_ServerState, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
481 }
482 /** ModelChangeStructureVerbMask enum table */
483 static const value_string g_ModelChangeStructureVerbMaskTable[] = {
484 { 1, "NodeAdded" },
485 { 2, "NodeDeleted" },
486 { 4, "ReferenceAdded" },
487 { 8, "ReferenceDeleted" },
488 { 16, "DataTypeChanged" },
489 { 0, NULL }
490 };
491 static int hf_opcua_ModelChangeStructureVerbMask = -1;
492  
493 void parseModelChangeStructureVerbMask(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
494 {
495 proto_tree_add_item(tree, hf_opcua_ModelChangeStructureVerbMask, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
496 }
497 /** AxisScaleEnumeration enum table */
498 static const value_string g_AxisScaleEnumerationTable[] = {
499 { 0, "Linear" },
500 { 1, "Log" },
501 { 2, "Ln" },
502 { 0, NULL }
503 };
504 static int hf_opcua_AxisScaleEnumeration = -1;
505  
506 void parseAxisScaleEnumeration(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
507 {
508 proto_tree_add_item(tree, hf_opcua_AxisScaleEnumeration, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
509 }
510 /** ExceptionDeviationFormat enum table */
511 static const value_string g_ExceptionDeviationFormatTable[] = {
512 { 0, "AbsoluteValue" },
513 { 1, "PercentOfValue" },
514 { 2, "PercentOfRange" },
515 { 3, "PercentOfEURange" },
516 { 4, "Unknown" },
517 { 0, NULL }
518 };
519 static int hf_opcua_ExceptionDeviationFormat = -1;
520  
521 void parseExceptionDeviationFormat(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
522 {
523 proto_tree_add_item(tree, hf_opcua_ExceptionDeviationFormat, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4;
524 }
525 /** AttributeId enum table */
526 static const value_string g_AttributeIdTable[] = {
527 {1, "NodeId"},
528 {2, "NodeClass"},
529 {3, "BrowseName"},
530 {4, "DisplayName"},
531 {5, "Description"},
532 {6, "WriteMask"},
533 {7, "UserWriteMask"},
534 {8, "IsAbstract"},
535 {9, "Symmetric"},
536 {10, "InverseName"},
537 {11, "ContainsNoLoops"},
538 {12, "EventNotifier"},
539 {13, "Value"},
540 {14, "DataType"},
541 {15, "ValueRank"},
542 {16, "ArrayDimensions"},
543 {17, "AccessLevel"},
544 {18, "UserAccessLevel"},
545 {19, "MinimumSamplingInterval"},
546 {20, "Historizing"},
547 {21, "Executable"},
548 {22, "UserExecutable"},
549 {0, NULL}
550 };
551 static int hf_opcua_AttributeId = -1;
552  
553 void parseAttributeId(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo _U_, gint *pOffset)
554 {
555 proto_tree_add_item(tree, hf_opcua_AttributeId, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset += 4;
556 }
557  
558 /** Setup enum subtree array */
559 static gint *ett[] =
560 {
561 &ett_opcua_array_NodeIdType,
562 &ett_opcua_array_NamingRuleType,
563 &ett_opcua_array_OpenFileMode,
564 &ett_opcua_array_TrustListMasks,
565 &ett_opcua_array_IdType,
566 &ett_opcua_array_NodeClass,
567 &ett_opcua_array_ApplicationType,
568 &ett_opcua_array_MessageSecurityMode,
569 &ett_opcua_array_UserTokenType,
570 &ett_opcua_array_SecurityTokenRequestType,
571 &ett_opcua_array_NodeAttributesMask,
572 &ett_opcua_array_AttributeWriteMask,
573 &ett_opcua_array_BrowseDirection,
574 &ett_opcua_array_BrowseResultMask,
575 &ett_opcua_array_ComplianceLevel,
576 &ett_opcua_array_FilterOperator,
577 &ett_opcua_array_TimestampsToReturn,
578 &ett_opcua_array_HistoryUpdateType,
579 &ett_opcua_array_PerformUpdateType,
580 &ett_opcua_array_MonitoringMode,
581 &ett_opcua_array_DataChangeTrigger,
582 &ett_opcua_array_DeadbandType,
583 &ett_opcua_array_EnumeratedTestType,
584 &ett_opcua_array_RedundancySupport,
585 &ett_opcua_array_ServerState,
586 &ett_opcua_array_ModelChangeStructureVerbMask,
587 &ett_opcua_array_AxisScaleEnumeration,
588 &ett_opcua_array_ExceptionDeviationFormat,
589 };
590  
591 /** Register enum types. */
592 void registerEnumTypes(int proto)
593 {
594 /** header field definitions */
595 static hf_register_info hf[] =
596 {
597 { &hf_opcua_NodeIdType,
598 { "NodeIdType", "opcua.NodeIdType", FT_UINT32, BASE_HEX, VALS(g_NodeIdTypeTable), 0x0, NULL, HFILL }
599 },
600 { &hf_opcua_NamingRuleType,
601 { "NamingRuleType", "opcua.NamingRuleType", FT_UINT32, BASE_HEX, VALS(g_NamingRuleTypeTable), 0x0, NULL, HFILL }
602 },
603 { &hf_opcua_OpenFileMode,
604 { "OpenFileMode", "opcua.OpenFileMode", FT_UINT32, BASE_HEX, VALS(g_OpenFileModeTable), 0x0, NULL, HFILL }
605 },
606 { &hf_opcua_TrustListMasks,
607 { "TrustListMasks", "opcua.TrustListMasks", FT_UINT32, BASE_HEX, VALS(g_TrustListMasksTable), 0x0, NULL, HFILL }
608 },
609 { &hf_opcua_IdType,
610 { "IdType", "opcua.IdType", FT_UINT32, BASE_HEX, VALS(g_IdTypeTable), 0x0, NULL, HFILL }
611 },
612 { &hf_opcua_NodeClass,
613 { "NodeClass", "opcua.NodeClass", FT_UINT32, BASE_HEX, VALS(g_NodeClassTable), 0x0, NULL, HFILL }
614 },
615 { &hf_opcua_ApplicationType,
616 { "ApplicationType", "opcua.ApplicationType", FT_UINT32, BASE_HEX, VALS(g_ApplicationTypeTable), 0x0, NULL, HFILL }
617 },
618 { &hf_opcua_MessageSecurityMode,
619 { "MessageSecurityMode", "opcua.MessageSecurityMode", FT_UINT32, BASE_HEX, VALS(g_MessageSecurityModeTable), 0x0, NULL, HFILL }
620 },
621 { &hf_opcua_UserTokenType,
622 { "UserTokenType", "opcua.UserTokenType", FT_UINT32, BASE_HEX, VALS(g_UserTokenTypeTable), 0x0, NULL, HFILL }
623 },
624 { &hf_opcua_SecurityTokenRequestType,
625 { "SecurityTokenRequestType", "opcua.SecurityTokenRequestType", FT_UINT32, BASE_HEX, VALS(g_SecurityTokenRequestTypeTable), 0x0, NULL, HFILL }
626 },
627 { &hf_opcua_NodeAttributesMask,
628 { "NodeAttributesMask", "opcua.NodeAttributesMask", FT_UINT32, BASE_HEX, VALS(g_NodeAttributesMaskTable), 0x0, NULL, HFILL }
629 },
630 { &hf_opcua_AttributeWriteMask,
631 { "AttributeWriteMask", "opcua.AttributeWriteMask", FT_UINT32, BASE_HEX, VALS(g_AttributeWriteMaskTable), 0x0, NULL, HFILL }
632 },
633 { &hf_opcua_BrowseDirection,
634 { "BrowseDirection", "opcua.BrowseDirection", FT_UINT32, BASE_HEX, VALS(g_BrowseDirectionTable), 0x0, NULL, HFILL }
635 },
636 { &hf_opcua_BrowseResultMask,
637 { "BrowseResultMask", "opcua.BrowseResultMask", FT_UINT32, BASE_HEX, VALS(g_BrowseResultMaskTable), 0x0, NULL, HFILL }
638 },
639 { &hf_opcua_ComplianceLevel,
640 { "ComplianceLevel", "opcua.ComplianceLevel", FT_UINT32, BASE_HEX, VALS(g_ComplianceLevelTable), 0x0, NULL, HFILL }
641 },
642 { &hf_opcua_FilterOperator,
643 { "FilterOperator", "opcua.FilterOperator", FT_UINT32, BASE_HEX, VALS(g_FilterOperatorTable), 0x0, NULL, HFILL }
644 },
645 { &hf_opcua_TimestampsToReturn,
646 { "TimestampsToReturn", "opcua.TimestampsToReturn", FT_UINT32, BASE_HEX, VALS(g_TimestampsToReturnTable), 0x0, NULL, HFILL }
647 },
648 { &hf_opcua_HistoryUpdateType,
649 { "HistoryUpdateType", "opcua.HistoryUpdateType", FT_UINT32, BASE_HEX, VALS(g_HistoryUpdateTypeTable), 0x0, NULL, HFILL }
650 },
651 { &hf_opcua_PerformUpdateType,
652 { "PerformUpdateType", "opcua.PerformUpdateType", FT_UINT32, BASE_HEX, VALS(g_PerformUpdateTypeTable), 0x0, NULL, HFILL }
653 },
654 { &hf_opcua_MonitoringMode,
655 { "MonitoringMode", "opcua.MonitoringMode", FT_UINT32, BASE_HEX, VALS(g_MonitoringModeTable), 0x0, NULL, HFILL }
656 },
657 { &hf_opcua_DataChangeTrigger,
658 { "DataChangeTrigger", "opcua.DataChangeTrigger", FT_UINT32, BASE_HEX, VALS(g_DataChangeTriggerTable), 0x0, NULL, HFILL }
659 },
660 { &hf_opcua_DeadbandType,
661 { "DeadbandType", "opcua.DeadbandType", FT_UINT32, BASE_HEX, VALS(g_DeadbandTypeTable), 0x0, NULL, HFILL }
662 },
663 { &hf_opcua_EnumeratedTestType,
664 { "EnumeratedTestType", "opcua.EnumeratedTestType", FT_UINT32, BASE_HEX, VALS(g_EnumeratedTestTypeTable), 0x0, NULL, HFILL }
665 },
666 { &hf_opcua_RedundancySupport,
667 { "RedundancySupport", "opcua.RedundancySupport", FT_UINT32, BASE_HEX, VALS(g_RedundancySupportTable), 0x0, NULL, HFILL }
668 },
669 { &hf_opcua_ServerState,
670 { "ServerState", "opcua.ServerState", FT_UINT32, BASE_HEX, VALS(g_ServerStateTable), 0x0, NULL, HFILL }
671 },
672 { &hf_opcua_ModelChangeStructureVerbMask,
673 { "ModelChangeStructureVerbMask", "opcua.ModelChangeStructureVerbMask", FT_UINT32, BASE_HEX, VALS(g_ModelChangeStructureVerbMaskTable), 0x0, NULL, HFILL }
674 },
675 { &hf_opcua_AxisScaleEnumeration,
676 { "AxisScaleEnumeration", "opcua.AxisScaleEnumeration", FT_UINT32, BASE_HEX, VALS(g_AxisScaleEnumerationTable), 0x0, NULL, HFILL }
677 },
678 { &hf_opcua_ExceptionDeviationFormat,
679 { "ExceptionDeviationFormat", "opcua.ExceptionDeviationFormat", FT_UINT32, BASE_HEX, VALS(g_ExceptionDeviationFormatTable), 0x0, NULL, HFILL }
680 },
681 { &hf_opcua_AttributeId,
682 { "AttributeId", "opcua.AttributeId", FT_UINT32, BASE_HEX, VALS(g_AttributeIdTable), 0x0, NULL, HFILL }
683 },
684 };
685  
686 proto_register_field_array(proto, hf, array_length(hf));
687 proto_register_subtree_array(ett, array_length(ett));
688 }
689