diff options
-rw-r--r-- | plugins/opcua/opcua_complextypeparser.c | 733 | ||||
-rw-r--r-- | plugins/opcua/opcua_complextypeparser.h | 272 | ||||
-rw-r--r-- | plugins/opcua/opcua_enumparser.c | 61 | ||||
-rw-r--r-- | plugins/opcua/opcua_enumparser.h | 31 | ||||
-rw-r--r-- | plugins/opcua/opcua_serviceparser.c | 489 | ||||
-rw-r--r-- | plugins/opcua/opcua_serviceparser.h | 275 | ||||
-rw-r--r-- | plugins/opcua/opcua_simpletypes.c | 116 | ||||
-rw-r--r-- | plugins/opcua/opcua_simpletypes.h | 33 |
8 files changed, 1571 insertions, 439 deletions
diff --git a/plugins/opcua/opcua_complextypeparser.c b/plugins/opcua/opcua_complextypeparser.c index d32b6c49ce..c0985072ec 100644 --- a/plugins/opcua/opcua_complextypeparser.c +++ b/plugins/opcua/opcua_complextypeparser.c @@ -29,6 +29,276 @@ #include "opcua_hfindeces.h" gint ett_opcua_Node = -1; +gint ett_opcua_array_Node = -1; +gint ett_opcua_InstanceNode = -1; +gint ett_opcua_array_InstanceNode = -1; +gint ett_opcua_TypeNode = -1; +gint ett_opcua_array_TypeNode = -1; +gint ett_opcua_ObjectNode = -1; +gint ett_opcua_array_ObjectNode = -1; +gint ett_opcua_ObjectTypeNode = -1; +gint ett_opcua_array_ObjectTypeNode = -1; +gint ett_opcua_VariableNode = -1; +gint ett_opcua_array_VariableNode = -1; +gint ett_opcua_VariableTypeNode = -1; +gint ett_opcua_array_VariableTypeNode = -1; +gint ett_opcua_ReferenceTypeNode = -1; +gint ett_opcua_array_ReferenceTypeNode = -1; +gint ett_opcua_MethodNode = -1; +gint ett_opcua_array_MethodNode = -1; +gint ett_opcua_ViewNode = -1; +gint ett_opcua_array_ViewNode = -1; +gint ett_opcua_DataTypeNode = -1; +gint ett_opcua_array_DataTypeNode = -1; +gint ett_opcua_ReferenceNode = -1; +gint ett_opcua_array_ReferenceNode = -1; +gint ett_opcua_Argument = -1; +gint ett_opcua_array_Argument = -1; +gint ett_opcua_EnumValueType = -1; +gint ett_opcua_array_EnumValueType = -1; +gint ett_opcua_TimeZoneDataType = -1; +gint ett_opcua_array_TimeZoneDataType = -1; +gint ett_opcua_ApplicationDescription = -1; +gint ett_opcua_array_ApplicationDescription = -1; +gint ett_opcua_RequestHeader = -1; +gint ett_opcua_array_RequestHeader = -1; +gint ett_opcua_ResponseHeader = -1; +gint ett_opcua_array_ResponseHeader = -1; +gint ett_opcua_UserTokenPolicy = -1; +gint ett_opcua_array_UserTokenPolicy = -1; +gint ett_opcua_EndpointDescription = -1; +gint ett_opcua_array_EndpointDescription = -1; +gint ett_opcua_RegisteredServer = -1; +gint ett_opcua_array_RegisteredServer = -1; +gint ett_opcua_ChannelSecurityToken = -1; +gint ett_opcua_array_ChannelSecurityToken = -1; +gint ett_opcua_SignedSoftwareCertificate = -1; +gint ett_opcua_array_SignedSoftwareCertificate = -1; +gint ett_opcua_SignatureData = -1; +gint ett_opcua_array_SignatureData = -1; +gint ett_opcua_UserIdentityToken = -1; +gint ett_opcua_array_UserIdentityToken = -1; +gint ett_opcua_AnonymousIdentityToken = -1; +gint ett_opcua_array_AnonymousIdentityToken = -1; +gint ett_opcua_UserNameIdentityToken = -1; +gint ett_opcua_array_UserNameIdentityToken = -1; +gint ett_opcua_X509IdentityToken = -1; +gint ett_opcua_array_X509IdentityToken = -1; +gint ett_opcua_IssuedIdentityToken = -1; +gint ett_opcua_array_IssuedIdentityToken = -1; +gint ett_opcua_NodeAttributes = -1; +gint ett_opcua_array_NodeAttributes = -1; +gint ett_opcua_ObjectAttributes = -1; +gint ett_opcua_array_ObjectAttributes = -1; +gint ett_opcua_VariableAttributes = -1; +gint ett_opcua_array_VariableAttributes = -1; +gint ett_opcua_MethodAttributes = -1; +gint ett_opcua_array_MethodAttributes = -1; +gint ett_opcua_ObjectTypeAttributes = -1; +gint ett_opcua_array_ObjectTypeAttributes = -1; +gint ett_opcua_VariableTypeAttributes = -1; +gint ett_opcua_array_VariableTypeAttributes = -1; +gint ett_opcua_ReferenceTypeAttributes = -1; +gint ett_opcua_array_ReferenceTypeAttributes = -1; +gint ett_opcua_DataTypeAttributes = -1; +gint ett_opcua_array_DataTypeAttributes = -1; +gint ett_opcua_ViewAttributes = -1; +gint ett_opcua_array_ViewAttributes = -1; +gint ett_opcua_AddNodesItem = -1; +gint ett_opcua_array_AddNodesItem = -1; +gint ett_opcua_AddNodesResult = -1; +gint ett_opcua_array_AddNodesResult = -1; +gint ett_opcua_AddReferencesItem = -1; +gint ett_opcua_array_AddReferencesItem = -1; +gint ett_opcua_DeleteNodesItem = -1; +gint ett_opcua_array_DeleteNodesItem = -1; +gint ett_opcua_DeleteReferencesItem = -1; +gint ett_opcua_array_DeleteReferencesItem = -1; +gint ett_opcua_ViewDescription = -1; +gint ett_opcua_array_ViewDescription = -1; +gint ett_opcua_BrowseDescription = -1; +gint ett_opcua_array_BrowseDescription = -1; +gint ett_opcua_ReferenceDescription = -1; +gint ett_opcua_array_ReferenceDescription = -1; +gint ett_opcua_BrowseResult = -1; +gint ett_opcua_array_BrowseResult = -1; +gint ett_opcua_RelativePathElement = -1; +gint ett_opcua_array_RelativePathElement = -1; +gint ett_opcua_RelativePath = -1; +gint ett_opcua_array_RelativePath = -1; +gint ett_opcua_BrowsePath = -1; +gint ett_opcua_array_BrowsePath = -1; +gint ett_opcua_BrowsePathTarget = -1; +gint ett_opcua_array_BrowsePathTarget = -1; +gint ett_opcua_BrowsePathResult = -1; +gint ett_opcua_array_BrowsePathResult = -1; +gint ett_opcua_EndpointConfiguration = -1; +gint ett_opcua_array_EndpointConfiguration = -1; +gint ett_opcua_SupportedProfile = -1; +gint ett_opcua_array_SupportedProfile = -1; +gint ett_opcua_SoftwareCertificate = -1; +gint ett_opcua_array_SoftwareCertificate = -1; +gint ett_opcua_QueryDataDescription = -1; +gint ett_opcua_array_QueryDataDescription = -1; +gint ett_opcua_NodeTypeDescription = -1; +gint ett_opcua_array_NodeTypeDescription = -1; +gint ett_opcua_QueryDataSet = -1; +gint ett_opcua_array_QueryDataSet = -1; +gint ett_opcua_NodeReference = -1; +gint ett_opcua_array_NodeReference = -1; +gint ett_opcua_ContentFilterElement = -1; +gint ett_opcua_array_ContentFilterElement = -1; +gint ett_opcua_ContentFilter = -1; +gint ett_opcua_array_ContentFilter = -1; +gint ett_opcua_ElementOperand = -1; +gint ett_opcua_array_ElementOperand = -1; +gint ett_opcua_LiteralOperand = -1; +gint ett_opcua_array_LiteralOperand = -1; +gint ett_opcua_AttributeOperand = -1; +gint ett_opcua_array_AttributeOperand = -1; +gint ett_opcua_SimpleAttributeOperand = -1; +gint ett_opcua_array_SimpleAttributeOperand = -1; +gint ett_opcua_ContentFilterElementResult = -1; +gint ett_opcua_array_ContentFilterElementResult = -1; +gint ett_opcua_ContentFilterResult = -1; +gint ett_opcua_array_ContentFilterResult = -1; +gint ett_opcua_ParsingResult = -1; +gint ett_opcua_array_ParsingResult = -1; +gint ett_opcua_ReadValueId = -1; +gint ett_opcua_array_ReadValueId = -1; +gint ett_opcua_HistoryReadValueId = -1; +gint ett_opcua_array_HistoryReadValueId = -1; +gint ett_opcua_HistoryReadResult = -1; +gint ett_opcua_array_HistoryReadResult = -1; +gint ett_opcua_ReadEventDetails = -1; +gint ett_opcua_array_ReadEventDetails = -1; +gint ett_opcua_ReadRawModifiedDetails = -1; +gint ett_opcua_array_ReadRawModifiedDetails = -1; +gint ett_opcua_ReadProcessedDetails = -1; +gint ett_opcua_array_ReadProcessedDetails = -1; +gint ett_opcua_ReadAtTimeDetails = -1; +gint ett_opcua_array_ReadAtTimeDetails = -1; +gint ett_opcua_HistoryData = -1; +gint ett_opcua_array_HistoryData = -1; +gint ett_opcua_ModificationInfo = -1; +gint ett_opcua_array_ModificationInfo = -1; +gint ett_opcua_HistoryModifiedData = -1; +gint ett_opcua_array_HistoryModifiedData = -1; +gint ett_opcua_HistoryEvent = -1; +gint ett_opcua_array_HistoryEvent = -1; +gint ett_opcua_WriteValue = -1; +gint ett_opcua_array_WriteValue = -1; +gint ett_opcua_HistoryUpdateDetails = -1; +gint ett_opcua_array_HistoryUpdateDetails = -1; +gint ett_opcua_UpdateDataDetails = -1; +gint ett_opcua_array_UpdateDataDetails = -1; +gint ett_opcua_UpdateStructureDataDetails = -1; +gint ett_opcua_array_UpdateStructureDataDetails = -1; +gint ett_opcua_UpdateEventDetails = -1; +gint ett_opcua_array_UpdateEventDetails = -1; +gint ett_opcua_DeleteRawModifiedDetails = -1; +gint ett_opcua_array_DeleteRawModifiedDetails = -1; +gint ett_opcua_DeleteAtTimeDetails = -1; +gint ett_opcua_array_DeleteAtTimeDetails = -1; +gint ett_opcua_DeleteEventDetails = -1; +gint ett_opcua_array_DeleteEventDetails = -1; +gint ett_opcua_HistoryUpdateResult = -1; +gint ett_opcua_array_HistoryUpdateResult = -1; +gint ett_opcua_CallMethodRequest = -1; +gint ett_opcua_array_CallMethodRequest = -1; +gint ett_opcua_CallMethodResult = -1; +gint ett_opcua_array_CallMethodResult = -1; +gint ett_opcua_DataChangeFilter = -1; +gint ett_opcua_array_DataChangeFilter = -1; +gint ett_opcua_EventFilter = -1; +gint ett_opcua_array_EventFilter = -1; +gint ett_opcua_AggregateConfiguration = -1; +gint ett_opcua_array_AggregateConfiguration = -1; +gint ett_opcua_AggregateFilter = -1; +gint ett_opcua_array_AggregateFilter = -1; +gint ett_opcua_EventFilterResult = -1; +gint ett_opcua_array_EventFilterResult = -1; +gint ett_opcua_AggregateFilterResult = -1; +gint ett_opcua_array_AggregateFilterResult = -1; +gint ett_opcua_MonitoringParameters = -1; +gint ett_opcua_array_MonitoringParameters = -1; +gint ett_opcua_MonitoredItemCreateRequest = -1; +gint ett_opcua_array_MonitoredItemCreateRequest = -1; +gint ett_opcua_MonitoredItemCreateResult = -1; +gint ett_opcua_array_MonitoredItemCreateResult = -1; +gint ett_opcua_MonitoredItemModifyRequest = -1; +gint ett_opcua_array_MonitoredItemModifyRequest = -1; +gint ett_opcua_MonitoredItemModifyResult = -1; +gint ett_opcua_array_MonitoredItemModifyResult = -1; +gint ett_opcua_NotificationMessage = -1; +gint ett_opcua_array_NotificationMessage = -1; +gint ett_opcua_DataChangeNotification = -1; +gint ett_opcua_array_DataChangeNotification = -1; +gint ett_opcua_MonitoredItemNotification = -1; +gint ett_opcua_array_MonitoredItemNotification = -1; +gint ett_opcua_EventNotificationList = -1; +gint ett_opcua_array_EventNotificationList = -1; +gint ett_opcua_EventFieldList = -1; +gint ett_opcua_array_EventFieldList = -1; +gint ett_opcua_HistoryEventFieldList = -1; +gint ett_opcua_array_HistoryEventFieldList = -1; +gint ett_opcua_StatusChangeNotification = -1; +gint ett_opcua_array_StatusChangeNotification = -1; +gint ett_opcua_SubscriptionAcknowledgement = -1; +gint ett_opcua_array_SubscriptionAcknowledgement = -1; +gint ett_opcua_TransferResult = -1; +gint ett_opcua_array_TransferResult = -1; +gint ett_opcua_ScalarTestType = -1; +gint ett_opcua_array_ScalarTestType = -1; +gint ett_opcua_ArrayTestType = -1; +gint ett_opcua_array_ArrayTestType = -1; +gint ett_opcua_CompositeTestType = -1; +gint ett_opcua_array_CompositeTestType = -1; +gint ett_opcua_BuildInfo = -1; +gint ett_opcua_array_BuildInfo = -1; +gint ett_opcua_RedundantServerDataType = -1; +gint ett_opcua_array_RedundantServerDataType = -1; +gint ett_opcua_EndpointUrlListDataType = -1; +gint ett_opcua_array_EndpointUrlListDataType = -1; +gint ett_opcua_NetworkGroupDataType = -1; +gint ett_opcua_array_NetworkGroupDataType = -1; +gint ett_opcua_SamplingIntervalDiagnosticsDataType = -1; +gint ett_opcua_array_SamplingIntervalDiagnosticsDataType = -1; +gint ett_opcua_ServerDiagnosticsSummaryDataType = -1; +gint ett_opcua_array_ServerDiagnosticsSummaryDataType = -1; +gint ett_opcua_ServerStatusDataType = -1; +gint ett_opcua_array_ServerStatusDataType = -1; +gint ett_opcua_SessionDiagnosticsDataType = -1; +gint ett_opcua_array_SessionDiagnosticsDataType = -1; +gint ett_opcua_SessionSecurityDiagnosticsDataType = -1; +gint ett_opcua_array_SessionSecurityDiagnosticsDataType = -1; +gint ett_opcua_ServiceCounterDataType = -1; +gint ett_opcua_array_ServiceCounterDataType = -1; +gint ett_opcua_StatusResult = -1; +gint ett_opcua_array_StatusResult = -1; +gint ett_opcua_SubscriptionDiagnosticsDataType = -1; +gint ett_opcua_array_SubscriptionDiagnosticsDataType = -1; +gint ett_opcua_ModelChangeStructureDataType = -1; +gint ett_opcua_array_ModelChangeStructureDataType = -1; +gint ett_opcua_SemanticChangeStructureDataType = -1; +gint ett_opcua_array_SemanticChangeStructureDataType = -1; +gint ett_opcua_Range = -1; +gint ett_opcua_array_Range = -1; +gint ett_opcua_EUInformation = -1; +gint ett_opcua_array_EUInformation = -1; +gint ett_opcua_ComplexNumberType = -1; +gint ett_opcua_array_ComplexNumberType = -1; +gint ett_opcua_DoubleComplexNumberType = -1; +gint ett_opcua_array_DoubleComplexNumberType = -1; +gint ett_opcua_AxisInformation = -1; +gint ett_opcua_array_AxisInformation = -1; +gint ett_opcua_XVType = -1; +gint ett_opcua_array_XVType = -1; +gint ett_opcua_ProgramDiagnosticDataType = -1; +gint ett_opcua_array_ProgramDiagnosticDataType = -1; +gint ett_opcua_Annotation = -1; +gint ett_opcua_array_Annotation = -1; + void parseNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: Node", szFieldName); @@ -41,10 +311,9 @@ void parseNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFie parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask); parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask); /* Array length field ignored: NoOfReferences */ - parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode); + parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_InstanceNode = -1; void parseInstanceNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: InstanceNode", szFieldName); @@ -57,10 +326,9 @@ void parseInstanceNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const cha parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask); parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask); /* Array length field ignored: NoOfReferences */ - parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode); + parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_TypeNode = -1; void parseTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: TypeNode", szFieldName); @@ -73,10 +341,9 @@ void parseTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *s parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask); parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask); /* Array length field ignored: NoOfReferences */ - parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode); + parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ObjectNode = -1; void parseObjectNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ObjectNode", szFieldName); @@ -89,11 +356,10 @@ void parseObjectNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask); parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask); /* Array length field ignored: NoOfReferences */ - parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode); + parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode); parseByte(subtree, tvb, pOffset, hf_opcua_EventNotifier); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ObjectTypeNode = -1; void parseObjectTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ObjectTypeNode", szFieldName); @@ -106,11 +372,10 @@ void parseObjectTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const c parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask); parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask); /* Array length field ignored: NoOfReferences */ - parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode); + parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode); parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_VariableNode = -1; void parseVariableNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: VariableNode", szFieldName); @@ -123,19 +388,18 @@ void parseVariableNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const cha parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask); parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask); /* Array length field ignored: NoOfReferences */ - parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode); + parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode); parseVariant(subtree, tvb, pOffset, "Value"); parseNodeId(subtree, tvb, pOffset, "DataType"); parseInt32(subtree, tvb, pOffset, hf_opcua_ValueRank); /* Array length field ignored: NoOfArrayDimensions */ - parseArraySimple(subtree, tvb, pOffset, "ArrayDimensions", "UInt32", hf_opcua_ArrayDimensions, parseUInt32); + parseArraySimple(subtree, tvb, pOffset, "ArrayDimensions", "UInt32", hf_opcua_ArrayDimensions, parseUInt32, ett_opcua_array_UInt32); parseByte(subtree, tvb, pOffset, hf_opcua_AccessLevel); parseByte(subtree, tvb, pOffset, hf_opcua_UserAccessLevel); parseDouble(subtree, tvb, pOffset, hf_opcua_MinimumSamplingInterval); parseBoolean(subtree, tvb, pOffset, hf_opcua_Historizing); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_VariableTypeNode = -1; void parseVariableTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: VariableTypeNode", szFieldName); @@ -148,16 +412,15 @@ void parseVariableTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask); parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask); /* Array length field ignored: NoOfReferences */ - parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode); + parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode); parseVariant(subtree, tvb, pOffset, "Value"); parseNodeId(subtree, tvb, pOffset, "DataType"); parseInt32(subtree, tvb, pOffset, hf_opcua_ValueRank); /* Array length field ignored: NoOfArrayDimensions */ - parseArraySimple(subtree, tvb, pOffset, "ArrayDimensions", "UInt32", hf_opcua_ArrayDimensions, parseUInt32); + parseArraySimple(subtree, tvb, pOffset, "ArrayDimensions", "UInt32", hf_opcua_ArrayDimensions, parseUInt32, ett_opcua_array_UInt32); parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ReferenceTypeNode = -1; void parseReferenceTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ReferenceTypeNode", szFieldName); @@ -170,13 +433,12 @@ void parseReferenceTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, cons parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask); parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask); /* Array length field ignored: NoOfReferences */ - parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode); + parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode); parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract); parseBoolean(subtree, tvb, pOffset, hf_opcua_Symmetric); parseLocalizedText(subtree, tvb, pOffset, "InverseName"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_MethodNode = -1; void parseMethodNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: MethodNode", szFieldName); @@ -189,12 +451,11 @@ void parseMethodNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask); parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask); /* Array length field ignored: NoOfReferences */ - parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode); + parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode); parseBoolean(subtree, tvb, pOffset, hf_opcua_Executable); parseBoolean(subtree, tvb, pOffset, hf_opcua_UserExecutable); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ViewNode = -1; void parseViewNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ViewNode", szFieldName); @@ -207,12 +468,11 @@ void parseViewNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *s parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask); parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask); /* Array length field ignored: NoOfReferences */ - parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode); + parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode); parseBoolean(subtree, tvb, pOffset, hf_opcua_ContainsNoLoops); parseByte(subtree, tvb, pOffset, hf_opcua_EventNotifier); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_DataTypeNode = -1; void parseDataTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: DataTypeNode", szFieldName); @@ -225,11 +485,10 @@ void parseDataTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const cha parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask); parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask); /* Array length field ignored: NoOfReferences */ - parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode); + parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceNode", parseReferenceNode, ett_opcua_array_ReferenceNode); parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ReferenceNode = -1; void parseReferenceNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ReferenceNode", szFieldName); @@ -239,7 +498,6 @@ void parseReferenceNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const ch parseExpandedNodeId(subtree, tvb, pOffset, "TargetId"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_Argument = -1; void parseArgument(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: Argument", szFieldName); @@ -248,11 +506,10 @@ void parseArgument(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *s parseNodeId(subtree, tvb, pOffset, "DataType"); parseInt32(subtree, tvb, pOffset, hf_opcua_ValueRank); /* Array length field ignored: NoOfArrayDimensions */ - parseArraySimple(subtree, tvb, pOffset, "ArrayDimensions", "UInt32", hf_opcua_ArrayDimensions, parseUInt32); + parseArraySimple(subtree, tvb, pOffset, "ArrayDimensions", "UInt32", hf_opcua_ArrayDimensions, parseUInt32, ett_opcua_array_UInt32); parseLocalizedText(subtree, tvb, pOffset, "Description"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_EnumValueType = -1; void parseEnumValueType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: EnumValueType", szFieldName); @@ -262,7 +519,6 @@ void parseEnumValueType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const ch parseLocalizedText(subtree, tvb, pOffset, "Description"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_TimeZoneDataType = -1; void parseTimeZoneDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: TimeZoneDataType", szFieldName); @@ -271,7 +527,6 @@ void parseTimeZoneDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const parseBoolean(subtree, tvb, pOffset, hf_opcua_DaylightSavingInOffset); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ApplicationDescription = -1; void parseApplicationDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ApplicationDescription", szFieldName); @@ -283,10 +538,9 @@ void parseApplicationDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, parseString(subtree, tvb, pOffset, hf_opcua_GatewayServerUri); parseString(subtree, tvb, pOffset, hf_opcua_DiscoveryProfileUri); /* Array length field ignored: NoOfDiscoveryUrls */ - parseArraySimple(subtree, tvb, pOffset, "DiscoveryUrls", "String", hf_opcua_DiscoveryUrls, parseString); + parseArraySimple(subtree, tvb, pOffset, "DiscoveryUrls", "String", hf_opcua_DiscoveryUrls, parseString, ett_opcua_array_String); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_RequestHeader = -1; void parseRequestHeader(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: RequestHeader", szFieldName); @@ -300,7 +554,6 @@ void parseRequestHeader(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const ch parseExtensionObject(subtree, tvb, pOffset, "AdditionalHeader"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ResponseHeader = -1; void parseResponseHeader(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ResponseHeader", szFieldName); @@ -310,11 +563,10 @@ void parseResponseHeader(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const c parseStatusCode(subtree, tvb, pOffset, hf_opcua_ServiceResult); parseDiagnosticInfo(subtree, tvb, pOffset, "ServiceDiagnostics"); /* Array length field ignored: NoOfStringTable */ - parseArraySimple(subtree, tvb, pOffset, "StringTable", "String", hf_opcua_StringTable, parseString); + parseArraySimple(subtree, tvb, pOffset, "StringTable", "String", hf_opcua_StringTable, parseString, ett_opcua_array_String); parseExtensionObject(subtree, tvb, pOffset, "AdditionalHeader"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_UserTokenPolicy = -1; void parseUserTokenPolicy(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: UserTokenPolicy", szFieldName); @@ -326,7 +578,6 @@ void parseUserTokenPolicy(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const parseString(subtree, tvb, pOffset, hf_opcua_SecurityPolicyUri); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_EndpointDescription = -1; void parseEndpointDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: EndpointDescription", szFieldName); @@ -337,12 +588,11 @@ void parseEndpointDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, co parseMessageSecurityMode(subtree, tvb, pOffset); parseString(subtree, tvb, pOffset, hf_opcua_SecurityPolicyUri); /* Array length field ignored: NoOfUserIdentityTokens */ - parseArrayComplex(subtree, tvb, pOffset, "UserIdentityTokens", "UserTokenPolicy", parseUserTokenPolicy); + parseArrayComplex(subtree, tvb, pOffset, "UserIdentityTokens", "UserTokenPolicy", parseUserTokenPolicy, ett_opcua_array_UserTokenPolicy); parseString(subtree, tvb, pOffset, hf_opcua_TransportProfileUri); parseByte(subtree, tvb, pOffset, hf_opcua_SecurityLevel); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_RegisteredServer = -1; void parseRegisteredServer(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: RegisteredServer", szFieldName); @@ -350,16 +600,15 @@ void parseRegisteredServer(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const parseString(subtree, tvb, pOffset, hf_opcua_ServerUri); parseString(subtree, tvb, pOffset, hf_opcua_ProductUri); /* Array length field ignored: NoOfServerNames */ - parseArrayComplex(subtree, tvb, pOffset, "ServerNames", "LocalizedText", parseLocalizedText); + parseArrayComplex(subtree, tvb, pOffset, "ServerNames", "LocalizedText", parseLocalizedText, ett_opcua_array_LocalizedText); parseApplicationType(subtree, tvb, pOffset); parseString(subtree, tvb, pOffset, hf_opcua_GatewayServerUri); /* Array length field ignored: NoOfDiscoveryUrls */ - parseArraySimple(subtree, tvb, pOffset, "DiscoveryUrls", "String", hf_opcua_DiscoveryUrls, parseString); + parseArraySimple(subtree, tvb, pOffset, "DiscoveryUrls", "String", hf_opcua_DiscoveryUrls, parseString, ett_opcua_array_String); parseString(subtree, tvb, pOffset, hf_opcua_SemaphoreFilePath); parseBoolean(subtree, tvb, pOffset, hf_opcua_IsOnline); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ChannelSecurityToken = -1; void parseChannelSecurityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ChannelSecurityToken", szFieldName); @@ -370,7 +619,6 @@ void parseChannelSecurityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, c parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedLifetime); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_SignedSoftwareCertificate = -1; void parseSignedSoftwareCertificate(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: SignedSoftwareCertificate", szFieldName); @@ -379,7 +627,6 @@ void parseSignedSoftwareCertificate(proto_tree *tree, tvbuff_t *tvb, gint *pOffs parseByteString(subtree, tvb, pOffset, hf_opcua_Signature); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_SignatureData = -1; void parseSignatureData(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: SignatureData", szFieldName); @@ -388,7 +635,6 @@ void parseSignatureData(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const ch parseByteString(subtree, tvb, pOffset, hf_opcua_Signature); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_UserIdentityToken = -1; void parseUserIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: UserIdentityToken", szFieldName); @@ -396,7 +642,6 @@ void parseUserIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, cons parseString(subtree, tvb, pOffset, hf_opcua_PolicyId); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_AnonymousIdentityToken = -1; void parseAnonymousIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: AnonymousIdentityToken", szFieldName); @@ -404,7 +649,6 @@ void parseAnonymousIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, parseString(subtree, tvb, pOffset, hf_opcua_PolicyId); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_UserNameIdentityToken = -1; void parseUserNameIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: UserNameIdentityToken", szFieldName); @@ -415,7 +659,6 @@ void parseUserNameIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, parseString(subtree, tvb, pOffset, hf_opcua_EncryptionAlgorithm); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_X509IdentityToken = -1; void parseX509IdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: X509IdentityToken", szFieldName); @@ -424,7 +667,6 @@ void parseX509IdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, cons parseByteString(subtree, tvb, pOffset, hf_opcua_CertificateData); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_IssuedIdentityToken = -1; void parseIssuedIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: IssuedIdentityToken", szFieldName); @@ -434,7 +676,6 @@ void parseIssuedIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, co parseString(subtree, tvb, pOffset, hf_opcua_EncryptionAlgorithm); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_NodeAttributes = -1; void parseNodeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: NodeAttributes", szFieldName); @@ -446,7 +687,6 @@ void parseNodeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const c parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ObjectAttributes = -1; void parseObjectAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ObjectAttributes", szFieldName); @@ -459,7 +699,6 @@ void parseObjectAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const parseByte(subtree, tvb, pOffset, hf_opcua_EventNotifier); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_VariableAttributes = -1; void parseVariableAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: VariableAttributes", szFieldName); @@ -473,14 +712,13 @@ void parseVariableAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, con parseNodeId(subtree, tvb, pOffset, "DataType"); parseInt32(subtree, tvb, pOffset, hf_opcua_ValueRank); /* Array length field ignored: NoOfArrayDimensions */ - parseArraySimple(subtree, tvb, pOffset, "ArrayDimensions", "UInt32", hf_opcua_ArrayDimensions, parseUInt32); + parseArraySimple(subtree, tvb, pOffset, "ArrayDimensions", "UInt32", hf_opcua_ArrayDimensions, parseUInt32, ett_opcua_array_UInt32); parseByte(subtree, tvb, pOffset, hf_opcua_AccessLevel); parseByte(subtree, tvb, pOffset, hf_opcua_UserAccessLevel); parseDouble(subtree, tvb, pOffset, hf_opcua_MinimumSamplingInterval); parseBoolean(subtree, tvb, pOffset, hf_opcua_Historizing); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_MethodAttributes = -1; void parseMethodAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: MethodAttributes", szFieldName); @@ -494,7 +732,6 @@ void parseMethodAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const parseBoolean(subtree, tvb, pOffset, hf_opcua_UserExecutable); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ObjectTypeAttributes = -1; void parseObjectTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ObjectTypeAttributes", szFieldName); @@ -507,7 +744,6 @@ void parseObjectTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, c parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_VariableTypeAttributes = -1; void parseVariableTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: VariableTypeAttributes", szFieldName); @@ -521,11 +757,10 @@ void parseVariableTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, parseNodeId(subtree, tvb, pOffset, "DataType"); parseInt32(subtree, tvb, pOffset, hf_opcua_ValueRank); /* Array length field ignored: NoOfArrayDimensions */ - parseArraySimple(subtree, tvb, pOffset, "ArrayDimensions", "UInt32", hf_opcua_ArrayDimensions, parseUInt32); + parseArraySimple(subtree, tvb, pOffset, "ArrayDimensions", "UInt32", hf_opcua_ArrayDimensions, parseUInt32, ett_opcua_array_UInt32); parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ReferenceTypeAttributes = -1; void parseReferenceTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ReferenceTypeAttributes", szFieldName); @@ -540,7 +775,6 @@ void parseReferenceTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset parseLocalizedText(subtree, tvb, pOffset, "InverseName"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_DataTypeAttributes = -1; void parseDataTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: DataTypeAttributes", szFieldName); @@ -553,7 +787,6 @@ void parseDataTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, con parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ViewAttributes = -1; void parseViewAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ViewAttributes", szFieldName); @@ -567,7 +800,6 @@ void parseViewAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const c parseByte(subtree, tvb, pOffset, hf_opcua_EventNotifier); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_AddNodesItem = -1; void parseAddNodesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: AddNodesItem", szFieldName); @@ -581,7 +813,6 @@ void parseAddNodesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const cha parseExpandedNodeId(subtree, tvb, pOffset, "TypeDefinition"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_AddNodesResult = -1; void parseAddNodesResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: AddNodesResult", szFieldName); @@ -590,7 +821,6 @@ void parseAddNodesResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const c parseNodeId(subtree, tvb, pOffset, "AddedNodeId"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_AddReferencesItem = -1; void parseAddReferencesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: AddReferencesItem", szFieldName); @@ -603,7 +833,6 @@ void parseAddReferencesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, cons parseNodeClass(subtree, tvb, pOffset); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_DeleteNodesItem = -1; void parseDeleteNodesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: DeleteNodesItem", szFieldName); @@ -612,7 +841,6 @@ void parseDeleteNodesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const parseBoolean(subtree, tvb, pOffset, hf_opcua_DeleteTargetReferences); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_DeleteReferencesItem = -1; void parseDeleteReferencesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: DeleteReferencesItem", szFieldName); @@ -624,7 +852,6 @@ void parseDeleteReferencesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, c parseBoolean(subtree, tvb, pOffset, hf_opcua_DeleteBidirectional); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ViewDescription = -1; void parseViewDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ViewDescription", szFieldName); @@ -634,7 +861,6 @@ void parseViewDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const parseUInt32(subtree, tvb, pOffset, hf_opcua_ViewVersion); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_BrowseDescription = -1; void parseBrowseDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: BrowseDescription", szFieldName); @@ -647,7 +873,6 @@ void parseBrowseDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, cons parseUInt32(subtree, tvb, pOffset, hf_opcua_ResultMask); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ReferenceDescription = -1; void parseReferenceDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ReferenceDescription", szFieldName); @@ -661,7 +886,6 @@ void parseReferenceDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, c parseExpandedNodeId(subtree, tvb, pOffset, "TypeDefinition"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_BrowseResult = -1; void parseBrowseResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: BrowseResult", szFieldName); @@ -669,10 +893,9 @@ void parseBrowseResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const cha parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode); parseByteString(subtree, tvb, pOffset, hf_opcua_ContinuationPoint); /* Array length field ignored: NoOfReferences */ - parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceDescription", parseReferenceDescription); + parseArrayComplex(subtree, tvb, pOffset, "References", "ReferenceDescription", parseReferenceDescription, ett_opcua_array_ReferenceDescription); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_RelativePathElement = -1; void parseRelativePathElement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: RelativePathElement", szFieldName); @@ -683,16 +906,14 @@ void parseRelativePathElement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, co parseQualifiedName(subtree, tvb, pOffset, "TargetName"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_RelativePath = -1; void parseRelativePath(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: RelativePath", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RelativePath); /* Array length field ignored: NoOfElements */ - parseArrayComplex(subtree, tvb, pOffset, "Elements", "RelativePathElement", parseRelativePathElement); + parseArrayComplex(subtree, tvb, pOffset, "Elements", "RelativePathElement", parseRelativePathElement, ett_opcua_array_RelativePathElement); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_BrowsePath = -1; void parseBrowsePath(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: BrowsePath", szFieldName); @@ -701,7 +922,6 @@ void parseBrowsePath(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char parseRelativePath(subtree, tvb, pOffset, "RelativePath"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_BrowsePathTarget = -1; void parseBrowsePathTarget(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: BrowsePathTarget", szFieldName); @@ -710,17 +930,15 @@ void parseBrowsePathTarget(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const parseUInt32(subtree, tvb, pOffset, hf_opcua_RemainingPathIndex); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_BrowsePathResult = -1; void parseBrowsePathResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: BrowsePathResult", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowsePathResult); parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode); /* Array length field ignored: NoOfTargets */ - parseArrayComplex(subtree, tvb, pOffset, "Targets", "BrowsePathTarget", parseBrowsePathTarget); + parseArrayComplex(subtree, tvb, pOffset, "Targets", "BrowsePathTarget", parseBrowsePathTarget, ett_opcua_array_BrowsePathTarget); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_EndpointConfiguration = -1; void parseEndpointConfiguration(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: EndpointConfiguration", szFieldName); @@ -736,7 +954,6 @@ void parseEndpointConfiguration(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, parseInt32(subtree, tvb, pOffset, hf_opcua_SecurityTokenLifetime); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_SupportedProfile = -1; void parseSupportedProfile(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: SupportedProfile", szFieldName); @@ -747,10 +964,9 @@ void parseSupportedProfile(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const parseDateTime(subtree, tvb, pOffset, hf_opcua_ComplianceDate); parseComplianceLevel(subtree, tvb, pOffset); /* Array length field ignored: NoOfUnsupportedUnitIds */ - parseArraySimple(subtree, tvb, pOffset, "UnsupportedUnitIds", "String", hf_opcua_UnsupportedUnitIds, parseString); + parseArraySimple(subtree, tvb, pOffset, "UnsupportedUnitIds", "String", hf_opcua_UnsupportedUnitIds, parseString, ett_opcua_array_String); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_SoftwareCertificate = -1; void parseSoftwareCertificate(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: SoftwareCertificate", szFieldName); @@ -765,10 +981,9 @@ void parseSoftwareCertificate(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, co parseString(subtree, tvb, pOffset, hf_opcua_IssuedBy); parseDateTime(subtree, tvb, pOffset, hf_opcua_IssueDate); /* Array length field ignored: NoOfSupportedProfiles */ - parseArrayComplex(subtree, tvb, pOffset, "SupportedProfiles", "SupportedProfile", parseSupportedProfile); + parseArrayComplex(subtree, tvb, pOffset, "SupportedProfiles", "SupportedProfile", parseSupportedProfile, ett_opcua_array_SupportedProfile); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_QueryDataDescription = -1; void parseQueryDataDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: QueryDataDescription", szFieldName); @@ -778,7 +993,6 @@ void parseQueryDataDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, c parseString(subtree, tvb, pOffset, hf_opcua_IndexRange); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_NodeTypeDescription = -1; void parseNodeTypeDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: NodeTypeDescription", szFieldName); @@ -786,10 +1000,9 @@ void parseNodeTypeDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, co parseExpandedNodeId(subtree, tvb, pOffset, "TypeDefinitionNode"); parseBoolean(subtree, tvb, pOffset, hf_opcua_IncludeSubTypes); /* Array length field ignored: NoOfDataToReturn */ - parseArrayComplex(subtree, tvb, pOffset, "DataToReturn", "QueryDataDescription", parseQueryDataDescription); + parseArrayComplex(subtree, tvb, pOffset, "DataToReturn", "QueryDataDescription", parseQueryDataDescription, ett_opcua_array_QueryDataDescription); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_QueryDataSet = -1; void parseQueryDataSet(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: QueryDataSet", szFieldName); @@ -797,10 +1010,9 @@ void parseQueryDataSet(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const cha parseExpandedNodeId(subtree, tvb, pOffset, "NodeId"); parseExpandedNodeId(subtree, tvb, pOffset, "TypeDefinitionNode"); /* Array length field ignored: NoOfValues */ - parseArrayComplex(subtree, tvb, pOffset, "Values", "Variant", parseVariant); + parseArrayComplex(subtree, tvb, pOffset, "Values", "Variant", parseVariant, ett_opcua_array_Variant); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_NodeReference = -1; void parseNodeReference(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: NodeReference", szFieldName); @@ -809,29 +1021,26 @@ void parseNodeReference(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const ch parseNodeId(subtree, tvb, pOffset, "ReferenceTypeId"); parseBoolean(subtree, tvb, pOffset, hf_opcua_IsForward); /* Array length field ignored: NoOfReferencedNodeIds */ - parseArrayComplex(subtree, tvb, pOffset, "ReferencedNodeIds", "NodeId", parseNodeId); + parseArrayComplex(subtree, tvb, pOffset, "ReferencedNodeIds", "NodeId", parseNodeId, ett_opcua_array_NodeId); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ContentFilterElement = -1; void parseContentFilterElement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ContentFilterElement", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ContentFilterElement); parseFilterOperator(subtree, tvb, pOffset); /* Array length field ignored: NoOfFilterOperands */ - parseArrayComplex(subtree, tvb, pOffset, "FilterOperands", "ExtensionObject", parseExtensionObject); + parseArrayComplex(subtree, tvb, pOffset, "FilterOperands", "ExtensionObject", parseExtensionObject, ett_opcua_array_ExtensionObject); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ContentFilter = -1; void parseContentFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ContentFilter", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ContentFilter); /* Array length field ignored: NoOfElements */ - parseArrayComplex(subtree, tvb, pOffset, "Elements", "ContentFilterElement", parseContentFilterElement); + parseArrayComplex(subtree, tvb, pOffset, "Elements", "ContentFilterElement", parseContentFilterElement, ett_opcua_array_ContentFilterElement); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ElementOperand = -1; void parseElementOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ElementOperand", szFieldName); @@ -839,7 +1048,6 @@ void parseElementOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const c parseUInt32(subtree, tvb, pOffset, hf_opcua_Index); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_LiteralOperand = -1; void parseLiteralOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: LiteralOperand", szFieldName); @@ -847,7 +1055,6 @@ void parseLiteralOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const c parseVariant(subtree, tvb, pOffset, "Value"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_AttributeOperand = -1; void parseAttributeOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: AttributeOperand", szFieldName); @@ -859,54 +1066,49 @@ void parseAttributeOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const parseString(subtree, tvb, pOffset, hf_opcua_IndexRange); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_SimpleAttributeOperand = -1; void parseSimpleAttributeOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: SimpleAttributeOperand", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SimpleAttributeOperand); parseNodeId(subtree, tvb, pOffset, "TypeDefinitionId"); /* Array length field ignored: NoOfBrowsePath */ - parseArrayComplex(subtree, tvb, pOffset, "BrowsePath", "QualifiedName", parseQualifiedName); + parseArrayComplex(subtree, tvb, pOffset, "BrowsePath", "QualifiedName", parseQualifiedName, ett_opcua_array_QualifiedName); parseUInt32(subtree, tvb, pOffset, hf_opcua_AttributeId); parseString(subtree, tvb, pOffset, hf_opcua_IndexRange); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ContentFilterElementResult = -1; void parseContentFilterElementResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ContentFilterElementResult", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ContentFilterElementResult); parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode); /* Array length field ignored: NoOfOperandStatusCodes */ - parseArraySimple(subtree, tvb, pOffset, "OperandStatusCodes", "StatusCode", hf_opcua_OperandStatusCodes, parseStatusCode); + parseArraySimple(subtree, tvb, pOffset, "OperandStatusCodes", "StatusCode", hf_opcua_OperandStatusCodes, parseStatusCode, ett_opcua_array_StatusCode); /* Array length field ignored: NoOfOperandDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "OperandDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo); + parseArrayComplex(subtree, tvb, pOffset, "OperandDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ContentFilterResult = -1; void parseContentFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ContentFilterResult", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ContentFilterResult); /* Array length field ignored: NoOfElementResults */ - parseArrayComplex(subtree, tvb, pOffset, "ElementResults", "ContentFilterElementResult", parseContentFilterElementResult); + parseArrayComplex(subtree, tvb, pOffset, "ElementResults", "ContentFilterElementResult", parseContentFilterElementResult, ett_opcua_array_ContentFilterElementResult); /* Array length field ignored: NoOfElementDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "ElementDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo); + parseArrayComplex(subtree, tvb, pOffset, "ElementDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ParsingResult = -1; void parseParsingResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ParsingResult", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ParsingResult); parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode); /* Array length field ignored: NoOfDataStatusCodes */ - parseArraySimple(subtree, tvb, pOffset, "DataStatusCodes", "StatusCode", hf_opcua_DataStatusCodes, parseStatusCode); + parseArraySimple(subtree, tvb, pOffset, "DataStatusCodes", "StatusCode", hf_opcua_DataStatusCodes, parseStatusCode, ett_opcua_array_StatusCode); /* Array length field ignored: NoOfDataDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DataDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo); + parseArrayComplex(subtree, tvb, pOffset, "DataDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ReadValueId = -1; void parseReadValueId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ReadValueId", szFieldName); @@ -917,7 +1119,6 @@ void parseReadValueId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char parseQualifiedName(subtree, tvb, pOffset, "DataEncoding"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_HistoryReadValueId = -1; void parseHistoryReadValueId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: HistoryReadValueId", szFieldName); @@ -928,7 +1129,6 @@ void parseHistoryReadValueId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, con parseByteString(subtree, tvb, pOffset, hf_opcua_ContinuationPoint); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_HistoryReadResult = -1; void parseHistoryReadResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: HistoryReadResult", szFieldName); @@ -938,7 +1138,6 @@ void parseHistoryReadResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, cons parseExtensionObject(subtree, tvb, pOffset, "HistoryData"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ReadEventDetails = -1; void parseReadEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ReadEventDetails", szFieldName); @@ -949,7 +1148,6 @@ void parseReadEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const parseEventFilter(subtree, tvb, pOffset, "Filter"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ReadRawModifiedDetails = -1; void parseReadRawModifiedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ReadRawModifiedDetails", szFieldName); @@ -961,7 +1159,6 @@ void parseReadRawModifiedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, parseBoolean(subtree, tvb, pOffset, hf_opcua_ReturnBounds); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ReadProcessedDetails = -1; void parseReadProcessedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ReadProcessedDetails", szFieldName); @@ -970,30 +1167,27 @@ void parseReadProcessedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, c parseDateTime(subtree, tvb, pOffset, hf_opcua_EndTime); parseDouble(subtree, tvb, pOffset, hf_opcua_ProcessingInterval); /* Array length field ignored: NoOfAggregateType */ - parseArrayComplex(subtree, tvb, pOffset, "AggregateType", "NodeId", parseNodeId); + parseArrayComplex(subtree, tvb, pOffset, "AggregateType", "NodeId", parseNodeId, ett_opcua_array_NodeId); parseAggregateConfiguration(subtree, tvb, pOffset, "AggregateConfiguration"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ReadAtTimeDetails = -1; void parseReadAtTimeDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ReadAtTimeDetails", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReadAtTimeDetails); /* Array length field ignored: NoOfReqTimes */ - parseArraySimple(subtree, tvb, pOffset, "ReqTimes", "DateTime", hf_opcua_ReqTimes, parseDateTime); + parseArraySimple(subtree, tvb, pOffset, "ReqTimes", "DateTime", hf_opcua_ReqTimes, parseDateTime, ett_opcua_array_DateTime); parseBoolean(subtree, tvb, pOffset, hf_opcua_UseSimpleBounds); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_HistoryData = -1; void parseHistoryData(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: HistoryData", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryData); /* Array length field ignored: NoOfDataValues */ - parseArrayComplex(subtree, tvb, pOffset, "DataValues", "DataValue", parseDataValue); + parseArrayComplex(subtree, tvb, pOffset, "DataValues", "DataValue", parseDataValue, ett_opcua_array_DataValue); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ModificationInfo = -1; void parseModificationInfo(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ModificationInfo", szFieldName); @@ -1003,27 +1197,24 @@ void parseModificationInfo(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const parseString(subtree, tvb, pOffset, hf_opcua_UserName); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_HistoryModifiedData = -1; void parseHistoryModifiedData(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: HistoryModifiedData", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryModifiedData); /* Array length field ignored: NoOfDataValues */ - parseArrayComplex(subtree, tvb, pOffset, "DataValues", "DataValue", parseDataValue); + parseArrayComplex(subtree, tvb, pOffset, "DataValues", "DataValue", parseDataValue, ett_opcua_array_DataValue); /* Array length field ignored: NoOfModificationInfos */ - parseArrayComplex(subtree, tvb, pOffset, "ModificationInfos", "ModificationInfo", parseModificationInfo); + parseArrayComplex(subtree, tvb, pOffset, "ModificationInfos", "ModificationInfo", parseModificationInfo, ett_opcua_array_ModificationInfo); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_HistoryEvent = -1; void parseHistoryEvent(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: HistoryEvent", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryEvent); /* Array length field ignored: NoOfEvents */ - parseArrayComplex(subtree, tvb, pOffset, "Events", "HistoryEventFieldList", parseHistoryEventFieldList); + parseArrayComplex(subtree, tvb, pOffset, "Events", "HistoryEventFieldList", parseHistoryEventFieldList, ett_opcua_array_HistoryEventFieldList); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_WriteValue = -1; void parseWriteValue(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: WriteValue", szFieldName); @@ -1034,7 +1225,6 @@ void parseWriteValue(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char parseDataValue(subtree, tvb, pOffset, "Value"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_HistoryUpdateDetails = -1; void parseHistoryUpdateDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: HistoryUpdateDetails", szFieldName); @@ -1042,7 +1232,6 @@ void parseHistoryUpdateDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, c parseNodeId(subtree, tvb, pOffset, "NodeId"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_UpdateDataDetails = -1; void parseUpdateDataDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: UpdateDataDetails", szFieldName); @@ -1050,10 +1239,9 @@ void parseUpdateDataDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, cons parseNodeId(subtree, tvb, pOffset, "NodeId"); parsePerformUpdateType(subtree, tvb, pOffset); /* Array length field ignored: NoOfUpdateValues */ - parseArrayComplex(subtree, tvb, pOffset, "UpdateValues", "DataValue", parseDataValue); + parseArrayComplex(subtree, tvb, pOffset, "UpdateValues", "DataValue", parseDataValue, ett_opcua_array_DataValue); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_UpdateStructureDataDetails = -1; void parseUpdateStructureDataDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: UpdateStructureDataDetails", szFieldName); @@ -1061,10 +1249,9 @@ void parseUpdateStructureDataDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOff parseNodeId(subtree, tvb, pOffset, "NodeId"); parsePerformUpdateType(subtree, tvb, pOffset); /* Array length field ignored: NoOfUpdateValues */ - parseArrayComplex(subtree, tvb, pOffset, "UpdateValues", "DataValue", parseDataValue); + parseArrayComplex(subtree, tvb, pOffset, "UpdateValues", "DataValue", parseDataValue, ett_opcua_array_DataValue); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_UpdateEventDetails = -1; void parseUpdateEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: UpdateEventDetails", szFieldName); @@ -1073,10 +1260,9 @@ void parseUpdateEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, con parsePerformUpdateType(subtree, tvb, pOffset); parseEventFilter(subtree, tvb, pOffset, "Filter"); /* Array length field ignored: NoOfEventData */ - parseArrayComplex(subtree, tvb, pOffset, "EventData", "HistoryEventFieldList", parseHistoryEventFieldList); + parseArrayComplex(subtree, tvb, pOffset, "EventData", "HistoryEventFieldList", parseHistoryEventFieldList, ett_opcua_array_HistoryEventFieldList); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_DeleteRawModifiedDetails = -1; void parseDeleteRawModifiedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: DeleteRawModifiedDetails", szFieldName); @@ -1087,39 +1273,35 @@ void parseDeleteRawModifiedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffse parseDateTime(subtree, tvb, pOffset, hf_opcua_EndTime); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_DeleteAtTimeDetails = -1; void parseDeleteAtTimeDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: DeleteAtTimeDetails", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteAtTimeDetails); parseNodeId(subtree, tvb, pOffset, "NodeId"); /* Array length field ignored: NoOfReqTimes */ - parseArraySimple(subtree, tvb, pOffset, "ReqTimes", "DateTime", hf_opcua_ReqTimes, parseDateTime); + parseArraySimple(subtree, tvb, pOffset, "ReqTimes", "DateTime", hf_opcua_ReqTimes, parseDateTime, ett_opcua_array_DateTime); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_DeleteEventDetails = -1; void parseDeleteEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: DeleteEventDetails", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteEventDetails); parseNodeId(subtree, tvb, pOffset, "NodeId"); /* Array length field ignored: NoOfEventIds */ - parseArraySimple(subtree, tvb, pOffset, "EventIds", "ByteString", hf_opcua_EventIds, parseByteString); + parseArraySimple(subtree, tvb, pOffset, "EventIds", "ByteString", hf_opcua_EventIds, parseByteString, ett_opcua_array_ByteString); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_HistoryUpdateResult = -1; void parseHistoryUpdateResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: HistoryUpdateResult", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryUpdateResult); parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode); /* Array length field ignored: NoOfOperationResults */ - parseArraySimple(subtree, tvb, pOffset, "OperationResults", "StatusCode", hf_opcua_OperationResults, parseStatusCode); + parseArraySimple(subtree, tvb, pOffset, "OperationResults", "StatusCode", hf_opcua_OperationResults, parseStatusCode, ett_opcua_array_StatusCode); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo); + parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_CallMethodRequest = -1; void parseCallMethodRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: CallMethodRequest", szFieldName); @@ -1127,24 +1309,22 @@ void parseCallMethodRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, cons parseNodeId(subtree, tvb, pOffset, "ObjectId"); parseNodeId(subtree, tvb, pOffset, "MethodId"); /* Array length field ignored: NoOfInputArguments */ - parseArrayComplex(subtree, tvb, pOffset, "InputArguments", "Variant", parseVariant); + parseArrayComplex(subtree, tvb, pOffset, "InputArguments", "Variant", parseVariant, ett_opcua_array_Variant); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_CallMethodResult = -1; void parseCallMethodResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: CallMethodResult", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CallMethodResult); parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode); /* Array length field ignored: NoOfInputArgumentResults */ - parseArraySimple(subtree, tvb, pOffset, "InputArgumentResults", "StatusCode", hf_opcua_InputArgumentResults, parseStatusCode); + parseArraySimple(subtree, tvb, pOffset, "InputArgumentResults", "StatusCode", hf_opcua_InputArgumentResults, parseStatusCode, ett_opcua_array_StatusCode); /* Array length field ignored: NoOfInputArgumentDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "InputArgumentDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo); + parseArrayComplex(subtree, tvb, pOffset, "InputArgumentDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); /* Array length field ignored: NoOfOutputArguments */ - parseArrayComplex(subtree, tvb, pOffset, "OutputArguments", "Variant", parseVariant); + parseArrayComplex(subtree, tvb, pOffset, "OutputArguments", "Variant", parseVariant, ett_opcua_array_Variant); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_DataChangeFilter = -1; void parseDataChangeFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: DataChangeFilter", szFieldName); @@ -1154,17 +1334,15 @@ void parseDataChangeFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const parseDouble(subtree, tvb, pOffset, hf_opcua_DeadbandValue); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_EventFilter = -1; void parseEventFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: EventFilter", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EventFilter); /* Array length field ignored: NoOfSelectClauses */ - parseArrayComplex(subtree, tvb, pOffset, "SelectClauses", "SimpleAttributeOperand", parseSimpleAttributeOperand); + parseArrayComplex(subtree, tvb, pOffset, "SelectClauses", "SimpleAttributeOperand", parseSimpleAttributeOperand, ett_opcua_array_SimpleAttributeOperand); parseContentFilter(subtree, tvb, pOffset, "WhereClause"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_AggregateConfiguration = -1; void parseAggregateConfiguration(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: AggregateConfiguration", szFieldName); @@ -1176,7 +1354,6 @@ void parseAggregateConfiguration(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, parseBoolean(subtree, tvb, pOffset, hf_opcua_UseSlopedExtrapolation); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_AggregateFilter = -1; void parseAggregateFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: AggregateFilter", szFieldName); @@ -1187,19 +1364,17 @@ void parseAggregateFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const parseAggregateConfiguration(subtree, tvb, pOffset, "AggregateConfiguration"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_EventFilterResult = -1; void parseEventFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: EventFilterResult", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EventFilterResult); /* Array length field ignored: NoOfSelectClauseResults */ - parseArraySimple(subtree, tvb, pOffset, "SelectClauseResults", "StatusCode", hf_opcua_SelectClauseResults, parseStatusCode); + parseArraySimple(subtree, tvb, pOffset, "SelectClauseResults", "StatusCode", hf_opcua_SelectClauseResults, parseStatusCode, ett_opcua_array_StatusCode); /* Array length field ignored: NoOfSelectClauseDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "SelectClauseDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo); + parseArrayComplex(subtree, tvb, pOffset, "SelectClauseDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); parseContentFilterResult(subtree, tvb, pOffset, "WhereClauseResult"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_AggregateFilterResult = -1; void parseAggregateFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: AggregateFilterResult", szFieldName); @@ -1209,7 +1384,6 @@ void parseAggregateFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, parseAggregateConfiguration(subtree, tvb, pOffset, "RevisedAggregateConfiguration"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_MonitoringParameters = -1; void parseMonitoringParameters(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: MonitoringParameters", szFieldName); @@ -1221,7 +1395,6 @@ void parseMonitoringParameters(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, c parseBoolean(subtree, tvb, pOffset, hf_opcua_DiscardOldest); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_MonitoredItemCreateRequest = -1; void parseMonitoredItemCreateRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: MonitoredItemCreateRequest", szFieldName); @@ -1231,7 +1404,6 @@ void parseMonitoredItemCreateRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOff parseMonitoringParameters(subtree, tvb, pOffset, "RequestedParameters"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_MonitoredItemCreateResult = -1; void parseMonitoredItemCreateResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: MonitoredItemCreateResult", szFieldName); @@ -1243,7 +1415,6 @@ void parseMonitoredItemCreateResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffs parseExtensionObject(subtree, tvb, pOffset, "FilterResult"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_MonitoredItemModifyRequest = -1; void parseMonitoredItemModifyRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: MonitoredItemModifyRequest", szFieldName); @@ -1252,7 +1423,6 @@ void parseMonitoredItemModifyRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOff parseMonitoringParameters(subtree, tvb, pOffset, "RequestedParameters"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_MonitoredItemModifyResult = -1; void parseMonitoredItemModifyResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: MonitoredItemModifyResult", szFieldName); @@ -1263,7 +1433,6 @@ void parseMonitoredItemModifyResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffs parseExtensionObject(subtree, tvb, pOffset, "FilterResult"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_NotificationMessage = -1; void parseNotificationMessage(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: NotificationMessage", szFieldName); @@ -1271,21 +1440,19 @@ void parseNotificationMessage(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, co parseUInt32(subtree, tvb, pOffset, hf_opcua_SequenceNumber); parseDateTime(subtree, tvb, pOffset, hf_opcua_PublishTime); /* Array length field ignored: NoOfNotificationData */ - parseArrayComplex(subtree, tvb, pOffset, "NotificationData", "ExtensionObject", parseExtensionObject); + parseArrayComplex(subtree, tvb, pOffset, "NotificationData", "ExtensionObject", parseExtensionObject, ett_opcua_array_ExtensionObject); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_DataChangeNotification = -1; void parseDataChangeNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: DataChangeNotification", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DataChangeNotification); /* Array length field ignored: NoOfMonitoredItems */ - parseArrayComplex(subtree, tvb, pOffset, "MonitoredItems", "MonitoredItemNotification", parseMonitoredItemNotification); + parseArrayComplex(subtree, tvb, pOffset, "MonitoredItems", "MonitoredItemNotification", parseMonitoredItemNotification, ett_opcua_array_MonitoredItemNotification); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo); + parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_MonitoredItemNotification = -1; void parseMonitoredItemNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: MonitoredItemNotification", szFieldName); @@ -1294,35 +1461,31 @@ void parseMonitoredItemNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffs parseDataValue(subtree, tvb, pOffset, "Value"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_EventNotificationList = -1; void parseEventNotificationList(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: EventNotificationList", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EventNotificationList); /* Array length field ignored: NoOfEvents */ - parseArrayComplex(subtree, tvb, pOffset, "Events", "EventFieldList", parseEventFieldList); + parseArrayComplex(subtree, tvb, pOffset, "Events", "EventFieldList", parseEventFieldList, ett_opcua_array_EventFieldList); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_EventFieldList = -1; void parseEventFieldList(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: EventFieldList", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EventFieldList); parseUInt32(subtree, tvb, pOffset, hf_opcua_ClientHandle); /* Array length field ignored: NoOfEventFields */ - parseArrayComplex(subtree, tvb, pOffset, "EventFields", "Variant", parseVariant); + parseArrayComplex(subtree, tvb, pOffset, "EventFields", "Variant", parseVariant, ett_opcua_array_Variant); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_HistoryEventFieldList = -1; void parseHistoryEventFieldList(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: HistoryEventFieldList", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryEventFieldList); /* Array length field ignored: NoOfEventFields */ - parseArrayComplex(subtree, tvb, pOffset, "EventFields", "Variant", parseVariant); + parseArrayComplex(subtree, tvb, pOffset, "EventFields", "Variant", parseVariant, ett_opcua_array_Variant); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_StatusChangeNotification = -1; void parseStatusChangeNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: StatusChangeNotification", szFieldName); @@ -1331,7 +1494,6 @@ void parseStatusChangeNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffse parseDiagnosticInfo(subtree, tvb, pOffset, "DiagnosticInfo"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_SubscriptionAcknowledgement = -1; void parseSubscriptionAcknowledgement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: SubscriptionAcknowledgement", szFieldName); @@ -1340,17 +1502,15 @@ void parseSubscriptionAcknowledgement(proto_tree *tree, tvbuff_t *tvb, gint *pOf parseUInt32(subtree, tvb, pOffset, hf_opcua_SequenceNumber); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_TransferResult = -1; void parseTransferResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: TransferResult", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TransferResult); parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode); /* Array length field ignored: NoOfAvailableSequenceNumbers */ - parseArraySimple(subtree, tvb, pOffset, "AvailableSequenceNumbers", "UInt32", hf_opcua_AvailableSequenceNumbers, parseUInt32); + parseArraySimple(subtree, tvb, pOffset, "AvailableSequenceNumbers", "UInt32", hf_opcua_AvailableSequenceNumbers, parseUInt32, ett_opcua_array_UInt32); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ScalarTestType = -1; void parseScalarTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ScalarTestType", szFieldName); @@ -1382,64 +1542,62 @@ void parseScalarTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const c parseEnumeratedTestType(subtree, tvb, pOffset); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ArrayTestType = -1; void parseArrayTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ArrayTestType", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ArrayTestType); /* Array length field ignored: NoOfBooleans */ - parseArraySimple(subtree, tvb, pOffset, "Booleans", "Boolean", hf_opcua_Booleans, parseBoolean); + parseArraySimple(subtree, tvb, pOffset, "Booleans", "Boolean", hf_opcua_Booleans, parseBoolean, ett_opcua_array_Boolean); /* Array length field ignored: NoOfSBytes */ - parseArraySimple(subtree, tvb, pOffset, "SBytes", "SByte", hf_opcua_SBytes, parseSByte); + parseArraySimple(subtree, tvb, pOffset, "SBytes", "SByte", hf_opcua_SBytes, parseSByte, ett_opcua_array_SByte); /* Array length field ignored: NoOfInt16s */ - parseArraySimple(subtree, tvb, pOffset, "Int16s", "Int16", hf_opcua_Int16s, parseInt16); + parseArraySimple(subtree, tvb, pOffset, "Int16s", "Int16", hf_opcua_Int16s, parseInt16, ett_opcua_array_Int16); /* Array length field ignored: NoOfUInt16s */ - parseArraySimple(subtree, tvb, pOffset, "UInt16s", "UInt16", hf_opcua_UInt16s, parseUInt16); + parseArraySimple(subtree, tvb, pOffset, "UInt16s", "UInt16", hf_opcua_UInt16s, parseUInt16, ett_opcua_array_UInt16); /* Array length field ignored: NoOfInt32s */ - parseArraySimple(subtree, tvb, pOffset, "Int32s", "Int32", hf_opcua_Int32s, parseInt32); + parseArraySimple(subtree, tvb, pOffset, "Int32s", "Int32", hf_opcua_Int32s, parseInt32, ett_opcua_array_Int32); /* Array length field ignored: NoOfUInt32s */ - parseArraySimple(subtree, tvb, pOffset, "UInt32s", "UInt32", hf_opcua_UInt32s, parseUInt32); + parseArraySimple(subtree, tvb, pOffset, "UInt32s", "UInt32", hf_opcua_UInt32s, parseUInt32, ett_opcua_array_UInt32); /* Array length field ignored: NoOfInt64s */ - parseArraySimple(subtree, tvb, pOffset, "Int64s", "Int64", hf_opcua_Int64s, parseInt64); + parseArraySimple(subtree, tvb, pOffset, "Int64s", "Int64", hf_opcua_Int64s, parseInt64, ett_opcua_array_Int64); /* Array length field ignored: NoOfUInt64s */ - parseArraySimple(subtree, tvb, pOffset, "UInt64s", "UInt64", hf_opcua_UInt64s, parseUInt64); + parseArraySimple(subtree, tvb, pOffset, "UInt64s", "UInt64", hf_opcua_UInt64s, parseUInt64, ett_opcua_array_UInt64); /* Array length field ignored: NoOfFloats */ - parseArraySimple(subtree, tvb, pOffset, "Floats", "Float", hf_opcua_Floats, parseFloat); + parseArraySimple(subtree, tvb, pOffset, "Floats", "Float", hf_opcua_Floats, parseFloat, ett_opcua_array_Float); /* Array length field ignored: NoOfDoubles */ - parseArraySimple(subtree, tvb, pOffset, "Doubles", "Double", hf_opcua_Doubles, parseDouble); + parseArraySimple(subtree, tvb, pOffset, "Doubles", "Double", hf_opcua_Doubles, parseDouble, ett_opcua_array_Double); /* Array length field ignored: NoOfStrings */ - parseArraySimple(subtree, tvb, pOffset, "Strings", "String", hf_opcua_Strings, parseString); + parseArraySimple(subtree, tvb, pOffset, "Strings", "String", hf_opcua_Strings, parseString, ett_opcua_array_String); /* Array length field ignored: NoOfDateTimes */ - parseArraySimple(subtree, tvb, pOffset, "DateTimes", "DateTime", hf_opcua_DateTimes, parseDateTime); + parseArraySimple(subtree, tvb, pOffset, "DateTimes", "DateTime", hf_opcua_DateTimes, parseDateTime, ett_opcua_array_DateTime); /* Array length field ignored: NoOfGuids */ - parseArraySimple(subtree, tvb, pOffset, "Guids", "Guid", hf_opcua_Guids, parseGuid); + parseArraySimple(subtree, tvb, pOffset, "Guids", "Guid", hf_opcua_Guids, parseGuid, ett_opcua_array_Guid); /* Array length field ignored: NoOfByteStrings */ - parseArraySimple(subtree, tvb, pOffset, "ByteStrings", "ByteString", hf_opcua_ByteStrings, parseByteString); + parseArraySimple(subtree, tvb, pOffset, "ByteStrings", "ByteString", hf_opcua_ByteStrings, parseByteString, ett_opcua_array_ByteString); /* Array length field ignored: NoOfXmlElements */ - parseArraySimple(subtree, tvb, pOffset, "XmlElements", "XmlElement", hf_opcua_XmlElements, parseXmlElement); + parseArraySimple(subtree, tvb, pOffset, "XmlElements", "XmlElement", hf_opcua_XmlElements, parseXmlElement, ett_opcua_array_XmlElement); /* Array length field ignored: NoOfNodeIds */ - parseArrayComplex(subtree, tvb, pOffset, "NodeIds", "NodeId", parseNodeId); + parseArrayComplex(subtree, tvb, pOffset, "NodeIds", "NodeId", parseNodeId, ett_opcua_array_NodeId); /* Array length field ignored: NoOfExpandedNodeIds */ - parseArrayComplex(subtree, tvb, pOffset, "ExpandedNodeIds", "ExpandedNodeId", parseExpandedNodeId); + parseArrayComplex(subtree, tvb, pOffset, "ExpandedNodeIds", "ExpandedNodeId", parseExpandedNodeId, ett_opcua_array_ExpandedNodeId); /* Array length field ignored: NoOfStatusCodes */ - parseArraySimple(subtree, tvb, pOffset, "StatusCodes", "StatusCode", hf_opcua_StatusCodes, parseStatusCode); + parseArraySimple(subtree, tvb, pOffset, "StatusCodes", "StatusCode", hf_opcua_StatusCodes, parseStatusCode, ett_opcua_array_StatusCode); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo); + parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); /* Array length field ignored: NoOfQualifiedNames */ - parseArrayComplex(subtree, tvb, pOffset, "QualifiedNames", "QualifiedName", parseQualifiedName); + parseArrayComplex(subtree, tvb, pOffset, "QualifiedNames", "QualifiedName", parseQualifiedName, ett_opcua_array_QualifiedName); /* Array length field ignored: NoOfLocalizedTexts */ - parseArrayComplex(subtree, tvb, pOffset, "LocalizedTexts", "LocalizedText", parseLocalizedText); + parseArrayComplex(subtree, tvb, pOffset, "LocalizedTexts", "LocalizedText", parseLocalizedText, ett_opcua_array_LocalizedText); /* Array length field ignored: NoOfExtensionObjects */ - parseArrayComplex(subtree, tvb, pOffset, "ExtensionObjects", "ExtensionObject", parseExtensionObject); + parseArrayComplex(subtree, tvb, pOffset, "ExtensionObjects", "ExtensionObject", parseExtensionObject, ett_opcua_array_ExtensionObject); /* Array length field ignored: NoOfDataValues */ - parseArrayComplex(subtree, tvb, pOffset, "DataValues", "DataValue", parseDataValue); + parseArrayComplex(subtree, tvb, pOffset, "DataValues", "DataValue", parseDataValue, ett_opcua_array_DataValue); /* Array length field ignored: NoOfVariants */ - parseArrayComplex(subtree, tvb, pOffset, "Variants", "Variant", parseVariant); + parseArrayComplex(subtree, tvb, pOffset, "Variants", "Variant", parseVariant, ett_opcua_array_Variant); /* Array length field ignored: NoOfEnumeratedValues */ - parseArrayEnum(subtree, tvb, pOffset, "EnumeratedValues", "EnumeratedTestType", parseEnumeratedTestType); + parseArrayEnum(subtree, tvb, pOffset, "EnumeratedValues", "EnumeratedTestType", parseEnumeratedTestType, ett_opcua_array_EnumeratedTestType); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_CompositeTestType = -1; void parseCompositeTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: CompositeTestType", szFieldName); @@ -1448,7 +1606,6 @@ void parseCompositeTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, cons parseArrayTestType(subtree, tvb, pOffset, "Field2"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_BuildInfo = -1; void parseBuildInfo(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: BuildInfo", szFieldName); @@ -1461,7 +1618,6 @@ void parseBuildInfo(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char * parseDateTime(subtree, tvb, pOffset, hf_opcua_BuildDate); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_RedundantServerDataType = -1; void parseRedundantServerDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: RedundantServerDataType", szFieldName); @@ -1471,26 +1627,23 @@ void parseRedundantServerDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset parseServerState(subtree, tvb, pOffset); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_EndpointUrlListDataType = -1; void parseEndpointUrlListDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: EndpointUrlListDataType", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EndpointUrlListDataType); /* Array length field ignored: NoOfEndpointUrlList */ - parseArraySimple(subtree, tvb, pOffset, "EndpointUrlList", "String", hf_opcua_EndpointUrlList, parseString); + parseArraySimple(subtree, tvb, pOffset, "EndpointUrlList", "String", hf_opcua_EndpointUrlList, parseString, ett_opcua_array_String); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_NetworkGroupDataType = -1; void parseNetworkGroupDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: NetworkGroupDataType", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_NetworkGroupDataType); parseString(subtree, tvb, pOffset, hf_opcua_ServerUri); /* Array length field ignored: NoOfNetworkPaths */ - parseArrayComplex(subtree, tvb, pOffset, "NetworkPaths", "EndpointUrlListDataType", parseEndpointUrlListDataType); + parseArrayComplex(subtree, tvb, pOffset, "NetworkPaths", "EndpointUrlListDataType", parseEndpointUrlListDataType, ett_opcua_array_EndpointUrlListDataType); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_SamplingIntervalDiagnosticsDataType = -1; void parseSamplingIntervalDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: SamplingIntervalDiagnosticsDataType", szFieldName); @@ -1501,7 +1654,6 @@ void parseSamplingIntervalDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, g parseUInt32(subtree, tvb, pOffset, hf_opcua_DisabledMonitoredItemCount); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ServerDiagnosticsSummaryDataType = -1; void parseServerDiagnosticsSummaryDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ServerDiagnosticsSummaryDataType", szFieldName); @@ -1520,7 +1672,6 @@ void parseServerDiagnosticsSummaryDataType(proto_tree *tree, tvbuff_t *tvb, gint parseUInt32(subtree, tvb, pOffset, hf_opcua_RejectedRequestsCount); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ServerStatusDataType = -1; void parseServerStatusDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ServerStatusDataType", szFieldName); @@ -1533,7 +1684,6 @@ void parseServerStatusDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, c parseLocalizedText(subtree, tvb, pOffset, "ShutdownReason"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_SessionDiagnosticsDataType = -1; void parseSessionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: SessionDiagnosticsDataType", szFieldName); @@ -1544,7 +1694,7 @@ void parseSessionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOff parseString(subtree, tvb, pOffset, hf_opcua_ServerUri); parseString(subtree, tvb, pOffset, hf_opcua_EndpointUrl); /* Array length field ignored: NoOfLocaleIds */ - parseArraySimple(subtree, tvb, pOffset, "LocaleIds", "String", hf_opcua_LocaleIds, parseString); + parseArraySimple(subtree, tvb, pOffset, "LocaleIds", "String", hf_opcua_LocaleIds, parseString, ett_opcua_array_String); parseDouble(subtree, tvb, pOffset, hf_opcua_ActualSessionTimeout); parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxResponseMessageSize); parseDateTime(subtree, tvb, pOffset, hf_opcua_ClientConnectionTime); @@ -1584,7 +1734,6 @@ void parseSessionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOff parseServiceCounterDataType(subtree, tvb, pOffset, "UnregisterNodesCount"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_SessionSecurityDiagnosticsDataType = -1; void parseSessionSecurityDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: SessionSecurityDiagnosticsDataType", szFieldName); @@ -1592,7 +1741,7 @@ void parseSessionSecurityDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gi parseNodeId(subtree, tvb, pOffset, "SessionId"); parseString(subtree, tvb, pOffset, hf_opcua_ClientUserIdOfSession); /* Array length field ignored: NoOfClientUserIdHistory */ - parseArraySimple(subtree, tvb, pOffset, "ClientUserIdHistory", "String", hf_opcua_ClientUserIdHistory, parseString); + parseArraySimple(subtree, tvb, pOffset, "ClientUserIdHistory", "String", hf_opcua_ClientUserIdHistory, parseString, ett_opcua_array_String); parseString(subtree, tvb, pOffset, hf_opcua_AuthenticationMechanism); parseString(subtree, tvb, pOffset, hf_opcua_Encoding); parseString(subtree, tvb, pOffset, hf_opcua_TransportProtocol); @@ -1601,7 +1750,6 @@ void parseSessionSecurityDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gi parseByteString(subtree, tvb, pOffset, hf_opcua_ClientCertificate); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ServiceCounterDataType = -1; void parseServiceCounterDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ServiceCounterDataType", szFieldName); @@ -1610,7 +1758,6 @@ void parseServiceCounterDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, parseUInt32(subtree, tvb, pOffset, hf_opcua_ErrorCount); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_StatusResult = -1; void parseStatusResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: StatusResult", szFieldName); @@ -1619,7 +1766,6 @@ void parseStatusResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const cha parseDiagnosticInfo(subtree, tvb, pOffset, "DiagnosticInfo"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_SubscriptionDiagnosticsDataType = -1; void parseSubscriptionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: SubscriptionDiagnosticsDataType", szFieldName); @@ -1657,7 +1803,6 @@ void parseSubscriptionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint parseUInt32(subtree, tvb, pOffset, hf_opcua_EventQueueOverFlowCount); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ModelChangeStructureDataType = -1; void parseModelChangeStructureDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ModelChangeStructureDataType", szFieldName); @@ -1667,7 +1812,6 @@ void parseModelChangeStructureDataType(proto_tree *tree, tvbuff_t *tvb, gint *pO parseByte(subtree, tvb, pOffset, hf_opcua_Verb); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_SemanticChangeStructureDataType = -1; void parseSemanticChangeStructureDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: SemanticChangeStructureDataType", szFieldName); @@ -1676,7 +1820,6 @@ void parseSemanticChangeStructureDataType(proto_tree *tree, tvbuff_t *tvb, gint parseNodeId(subtree, tvb, pOffset, "AffectedType"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_Range = -1; void parseRange(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: Range", szFieldName); @@ -1685,7 +1828,6 @@ void parseRange(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFi parseDouble(subtree, tvb, pOffset, hf_opcua_High); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_EUInformation = -1; void parseEUInformation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: EUInformation", szFieldName); @@ -1696,7 +1838,6 @@ void parseEUInformation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const ch parseLocalizedText(subtree, tvb, pOffset, "Description"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ComplexNumberType = -1; void parseComplexNumberType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ComplexNumberType", szFieldName); @@ -1705,7 +1846,6 @@ void parseComplexNumberType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, cons parseFloat(subtree, tvb, pOffset, hf_opcua_Imaginary); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_DoubleComplexNumberType = -1; void parseDoubleComplexNumberType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: DoubleComplexNumberType", szFieldName); @@ -1714,7 +1854,6 @@ void parseDoubleComplexNumberType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset parseDouble(subtree, tvb, pOffset, hf_opcua_Imaginary); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_AxisInformation = -1; void parseAxisInformation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: AxisInformation", szFieldName); @@ -1724,10 +1863,9 @@ void parseAxisInformation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const parseLocalizedText(subtree, tvb, pOffset, "Title"); parseAxisScaleEnumeration(subtree, tvb, pOffset); /* Array length field ignored: NoOfAxisSteps */ - parseArraySimple(subtree, tvb, pOffset, "AxisSteps", "Double", hf_opcua_AxisSteps, parseDouble); + parseArraySimple(subtree, tvb, pOffset, "AxisSteps", "Double", hf_opcua_AxisSteps, parseDouble, ett_opcua_array_Double); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_XVType = -1; void parseXVType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: XVType", szFieldName); @@ -1736,7 +1874,6 @@ void parseXVType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szF parseFloat(subtree, tvb, pOffset, hf_opcua_Value); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ProgramDiagnosticDataType = -1; void parseProgramDiagnosticDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: ProgramDiagnosticDataType", szFieldName); @@ -1748,14 +1885,13 @@ void parseProgramDiagnosticDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffs parseString(subtree, tvb, pOffset, hf_opcua_LastMethodCall); parseNodeId(subtree, tvb, pOffset, "LastMethodSessionId"); /* Array length field ignored: NoOfLastMethodInputArguments */ - parseArrayComplex(subtree, tvb, pOffset, "LastMethodInputArguments", "Argument", parseArgument); + parseArrayComplex(subtree, tvb, pOffset, "LastMethodInputArguments", "Argument", parseArgument, ett_opcua_array_Argument); /* Array length field ignored: NoOfLastMethodOutputArguments */ - parseArrayComplex(subtree, tvb, pOffset, "LastMethodOutputArguments", "Argument", parseArgument); + parseArrayComplex(subtree, tvb, pOffset, "LastMethodOutputArguments", "Argument", parseArgument, ett_opcua_array_Argument); parseDateTime(subtree, tvb, pOffset, hf_opcua_LastMethodCallTime); parseStatusResult(subtree, tvb, pOffset, "LastMethodReturnStatus"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_Annotation = -1; void parseAnnotation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: Annotation", szFieldName); @@ -1770,140 +1906,275 @@ void parseAnnotation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char static gint *ett[] = { &ett_opcua_Node, + &ett_opcua_array_Node, &ett_opcua_InstanceNode, + &ett_opcua_array_InstanceNode, &ett_opcua_TypeNode, + &ett_opcua_array_TypeNode, &ett_opcua_ObjectNode, + &ett_opcua_array_ObjectNode, &ett_opcua_ObjectTypeNode, + &ett_opcua_array_ObjectTypeNode, &ett_opcua_VariableNode, + &ett_opcua_array_VariableNode, &ett_opcua_VariableTypeNode, + &ett_opcua_array_VariableTypeNode, &ett_opcua_ReferenceTypeNode, + &ett_opcua_array_ReferenceTypeNode, &ett_opcua_MethodNode, + &ett_opcua_array_MethodNode, &ett_opcua_ViewNode, + &ett_opcua_array_ViewNode, &ett_opcua_DataTypeNode, + &ett_opcua_array_DataTypeNode, &ett_opcua_ReferenceNode, + &ett_opcua_array_ReferenceNode, &ett_opcua_Argument, + &ett_opcua_array_Argument, &ett_opcua_EnumValueType, + &ett_opcua_array_EnumValueType, &ett_opcua_TimeZoneDataType, + &ett_opcua_array_TimeZoneDataType, &ett_opcua_ApplicationDescription, + &ett_opcua_array_ApplicationDescription, &ett_opcua_RequestHeader, + &ett_opcua_array_RequestHeader, &ett_opcua_ResponseHeader, + &ett_opcua_array_ResponseHeader, &ett_opcua_UserTokenPolicy, + &ett_opcua_array_UserTokenPolicy, &ett_opcua_EndpointDescription, + &ett_opcua_array_EndpointDescription, &ett_opcua_RegisteredServer, + &ett_opcua_array_RegisteredServer, &ett_opcua_ChannelSecurityToken, + &ett_opcua_array_ChannelSecurityToken, &ett_opcua_SignedSoftwareCertificate, + &ett_opcua_array_SignedSoftwareCertificate, &ett_opcua_SignatureData, + &ett_opcua_array_SignatureData, &ett_opcua_UserIdentityToken, + &ett_opcua_array_UserIdentityToken, &ett_opcua_AnonymousIdentityToken, + &ett_opcua_array_AnonymousIdentityToken, &ett_opcua_UserNameIdentityToken, + &ett_opcua_array_UserNameIdentityToken, &ett_opcua_X509IdentityToken, + &ett_opcua_array_X509IdentityToken, &ett_opcua_IssuedIdentityToken, + &ett_opcua_array_IssuedIdentityToken, &ett_opcua_NodeAttributes, + &ett_opcua_array_NodeAttributes, &ett_opcua_ObjectAttributes, + &ett_opcua_array_ObjectAttributes, &ett_opcua_VariableAttributes, + &ett_opcua_array_VariableAttributes, &ett_opcua_MethodAttributes, + &ett_opcua_array_MethodAttributes, &ett_opcua_ObjectTypeAttributes, + &ett_opcua_array_ObjectTypeAttributes, &ett_opcua_VariableTypeAttributes, + &ett_opcua_array_VariableTypeAttributes, &ett_opcua_ReferenceTypeAttributes, + &ett_opcua_array_ReferenceTypeAttributes, &ett_opcua_DataTypeAttributes, + &ett_opcua_array_DataTypeAttributes, &ett_opcua_ViewAttributes, + &ett_opcua_array_ViewAttributes, &ett_opcua_AddNodesItem, + &ett_opcua_array_AddNodesItem, &ett_opcua_AddNodesResult, + &ett_opcua_array_AddNodesResult, &ett_opcua_AddReferencesItem, + &ett_opcua_array_AddReferencesItem, &ett_opcua_DeleteNodesItem, + &ett_opcua_array_DeleteNodesItem, &ett_opcua_DeleteReferencesItem, + &ett_opcua_array_DeleteReferencesItem, &ett_opcua_ViewDescription, + &ett_opcua_array_ViewDescription, &ett_opcua_BrowseDescription, + &ett_opcua_array_BrowseDescription, &ett_opcua_ReferenceDescription, + &ett_opcua_array_ReferenceDescription, &ett_opcua_BrowseResult, + &ett_opcua_array_BrowseResult, &ett_opcua_RelativePathElement, + &ett_opcua_array_RelativePathElement, &ett_opcua_RelativePath, + &ett_opcua_array_RelativePath, &ett_opcua_BrowsePath, + &ett_opcua_array_BrowsePath, &ett_opcua_BrowsePathTarget, + &ett_opcua_array_BrowsePathTarget, &ett_opcua_BrowsePathResult, + &ett_opcua_array_BrowsePathResult, &ett_opcua_EndpointConfiguration, + &ett_opcua_array_EndpointConfiguration, &ett_opcua_SupportedProfile, + &ett_opcua_array_SupportedProfile, &ett_opcua_SoftwareCertificate, + &ett_opcua_array_SoftwareCertificate, &ett_opcua_QueryDataDescription, + &ett_opcua_array_QueryDataDescription, &ett_opcua_NodeTypeDescription, + &ett_opcua_array_NodeTypeDescription, &ett_opcua_QueryDataSet, + &ett_opcua_array_QueryDataSet, &ett_opcua_NodeReference, + &ett_opcua_array_NodeReference, &ett_opcua_ContentFilterElement, + &ett_opcua_array_ContentFilterElement, &ett_opcua_ContentFilter, + &ett_opcua_array_ContentFilter, &ett_opcua_ElementOperand, + &ett_opcua_array_ElementOperand, &ett_opcua_LiteralOperand, + &ett_opcua_array_LiteralOperand, &ett_opcua_AttributeOperand, + &ett_opcua_array_AttributeOperand, &ett_opcua_SimpleAttributeOperand, + &ett_opcua_array_SimpleAttributeOperand, &ett_opcua_ContentFilterElementResult, + &ett_opcua_array_ContentFilterElementResult, &ett_opcua_ContentFilterResult, + &ett_opcua_array_ContentFilterResult, &ett_opcua_ParsingResult, + &ett_opcua_array_ParsingResult, &ett_opcua_ReadValueId, + &ett_opcua_array_ReadValueId, &ett_opcua_HistoryReadValueId, + &ett_opcua_array_HistoryReadValueId, &ett_opcua_HistoryReadResult, + &ett_opcua_array_HistoryReadResult, &ett_opcua_ReadEventDetails, + &ett_opcua_array_ReadEventDetails, &ett_opcua_ReadRawModifiedDetails, + &ett_opcua_array_ReadRawModifiedDetails, &ett_opcua_ReadProcessedDetails, + &ett_opcua_array_ReadProcessedDetails, &ett_opcua_ReadAtTimeDetails, + &ett_opcua_array_ReadAtTimeDetails, &ett_opcua_HistoryData, + &ett_opcua_array_HistoryData, &ett_opcua_ModificationInfo, + &ett_opcua_array_ModificationInfo, &ett_opcua_HistoryModifiedData, + &ett_opcua_array_HistoryModifiedData, &ett_opcua_HistoryEvent, + &ett_opcua_array_HistoryEvent, &ett_opcua_WriteValue, + &ett_opcua_array_WriteValue, &ett_opcua_HistoryUpdateDetails, + &ett_opcua_array_HistoryUpdateDetails, &ett_opcua_UpdateDataDetails, + &ett_opcua_array_UpdateDataDetails, &ett_opcua_UpdateStructureDataDetails, + &ett_opcua_array_UpdateStructureDataDetails, &ett_opcua_UpdateEventDetails, + &ett_opcua_array_UpdateEventDetails, &ett_opcua_DeleteRawModifiedDetails, + &ett_opcua_array_DeleteRawModifiedDetails, &ett_opcua_DeleteAtTimeDetails, + &ett_opcua_array_DeleteAtTimeDetails, &ett_opcua_DeleteEventDetails, + &ett_opcua_array_DeleteEventDetails, &ett_opcua_HistoryUpdateResult, + &ett_opcua_array_HistoryUpdateResult, &ett_opcua_CallMethodRequest, + &ett_opcua_array_CallMethodRequest, &ett_opcua_CallMethodResult, + &ett_opcua_array_CallMethodResult, &ett_opcua_DataChangeFilter, + &ett_opcua_array_DataChangeFilter, &ett_opcua_EventFilter, + &ett_opcua_array_EventFilter, &ett_opcua_AggregateConfiguration, + &ett_opcua_array_AggregateConfiguration, &ett_opcua_AggregateFilter, + &ett_opcua_array_AggregateFilter, &ett_opcua_EventFilterResult, + &ett_opcua_array_EventFilterResult, &ett_opcua_AggregateFilterResult, + &ett_opcua_array_AggregateFilterResult, &ett_opcua_MonitoringParameters, + &ett_opcua_array_MonitoringParameters, &ett_opcua_MonitoredItemCreateRequest, + &ett_opcua_array_MonitoredItemCreateRequest, &ett_opcua_MonitoredItemCreateResult, + &ett_opcua_array_MonitoredItemCreateResult, &ett_opcua_MonitoredItemModifyRequest, + &ett_opcua_array_MonitoredItemModifyRequest, &ett_opcua_MonitoredItemModifyResult, + &ett_opcua_array_MonitoredItemModifyResult, &ett_opcua_NotificationMessage, + &ett_opcua_array_NotificationMessage, &ett_opcua_DataChangeNotification, + &ett_opcua_array_DataChangeNotification, &ett_opcua_MonitoredItemNotification, + &ett_opcua_array_MonitoredItemNotification, &ett_opcua_EventNotificationList, + &ett_opcua_array_EventNotificationList, &ett_opcua_EventFieldList, + &ett_opcua_array_EventFieldList, &ett_opcua_HistoryEventFieldList, + &ett_opcua_array_HistoryEventFieldList, &ett_opcua_StatusChangeNotification, + &ett_opcua_array_StatusChangeNotification, &ett_opcua_SubscriptionAcknowledgement, + &ett_opcua_array_SubscriptionAcknowledgement, &ett_opcua_TransferResult, + &ett_opcua_array_TransferResult, &ett_opcua_ScalarTestType, + &ett_opcua_array_ScalarTestType, &ett_opcua_ArrayTestType, + &ett_opcua_array_ArrayTestType, &ett_opcua_CompositeTestType, + &ett_opcua_array_CompositeTestType, &ett_opcua_BuildInfo, + &ett_opcua_array_BuildInfo, &ett_opcua_RedundantServerDataType, + &ett_opcua_array_RedundantServerDataType, &ett_opcua_EndpointUrlListDataType, + &ett_opcua_array_EndpointUrlListDataType, &ett_opcua_NetworkGroupDataType, + &ett_opcua_array_NetworkGroupDataType, &ett_opcua_SamplingIntervalDiagnosticsDataType, + &ett_opcua_array_SamplingIntervalDiagnosticsDataType, &ett_opcua_ServerDiagnosticsSummaryDataType, + &ett_opcua_array_ServerDiagnosticsSummaryDataType, &ett_opcua_ServerStatusDataType, + &ett_opcua_array_ServerStatusDataType, &ett_opcua_SessionDiagnosticsDataType, + &ett_opcua_array_SessionDiagnosticsDataType, &ett_opcua_SessionSecurityDiagnosticsDataType, + &ett_opcua_array_SessionSecurityDiagnosticsDataType, &ett_opcua_ServiceCounterDataType, + &ett_opcua_array_ServiceCounterDataType, &ett_opcua_StatusResult, + &ett_opcua_array_StatusResult, &ett_opcua_SubscriptionDiagnosticsDataType, + &ett_opcua_array_SubscriptionDiagnosticsDataType, &ett_opcua_ModelChangeStructureDataType, + &ett_opcua_array_ModelChangeStructureDataType, &ett_opcua_SemanticChangeStructureDataType, + &ett_opcua_array_SemanticChangeStructureDataType, &ett_opcua_Range, + &ett_opcua_array_Range, &ett_opcua_EUInformation, + &ett_opcua_array_EUInformation, &ett_opcua_ComplexNumberType, + &ett_opcua_array_ComplexNumberType, &ett_opcua_DoubleComplexNumberType, + &ett_opcua_array_DoubleComplexNumberType, &ett_opcua_AxisInformation, + &ett_opcua_array_AxisInformation, &ett_opcua_XVType, + &ett_opcua_array_XVType, &ett_opcua_ProgramDiagnosticDataType, + &ett_opcua_array_ProgramDiagnosticDataType, &ett_opcua_Annotation, + &ett_opcua_array_Annotation, }; void registerComplexTypes(void) diff --git a/plugins/opcua/opcua_complextypeparser.h b/plugins/opcua/opcua_complextypeparser.h index fbd6ce4cab..ca176c2a93 100644 --- a/plugins/opcua/opcua_complextypeparser.h +++ b/plugins/opcua/opcua_complextypeparser.h @@ -14,7 +14,7 @@ ** ** Description: OpcUa Complex Type Parser ** -** This file was autogenerated on 10.06.2014. +** This file was autogenerated on 17.06.2014. ** DON'T MODIFY THIS FILE! ** XXX - well, except that you may have to. See the README. ** @@ -23,6 +23,276 @@ #include <glib.h> #include <epan/packet.h> +extern gint ett_opcua_Node; +extern gint ett_opcua_array_Node; +extern gint ett_opcua_InstanceNode; +extern gint ett_opcua_array_InstanceNode; +extern gint ett_opcua_TypeNode; +extern gint ett_opcua_array_TypeNode; +extern gint ett_opcua_ObjectNode; +extern gint ett_opcua_array_ObjectNode; +extern gint ett_opcua_ObjectTypeNode; +extern gint ett_opcua_array_ObjectTypeNode; +extern gint ett_opcua_VariableNode; +extern gint ett_opcua_array_VariableNode; +extern gint ett_opcua_VariableTypeNode; +extern gint ett_opcua_array_VariableTypeNode; +extern gint ett_opcua_ReferenceTypeNode; +extern gint ett_opcua_array_ReferenceTypeNode; +extern gint ett_opcua_MethodNode; +extern gint ett_opcua_array_MethodNode; +extern gint ett_opcua_ViewNode; +extern gint ett_opcua_array_ViewNode; +extern gint ett_opcua_DataTypeNode; +extern gint ett_opcua_array_DataTypeNode; +extern gint ett_opcua_ReferenceNode; +extern gint ett_opcua_array_ReferenceNode; +extern gint ett_opcua_Argument; +extern gint ett_opcua_array_Argument; +extern gint ett_opcua_EnumValueType; +extern gint ett_opcua_array_EnumValueType; +extern gint ett_opcua_TimeZoneDataType; +extern gint ett_opcua_array_TimeZoneDataType; +extern gint ett_opcua_ApplicationDescription; +extern gint ett_opcua_array_ApplicationDescription; +extern gint ett_opcua_RequestHeader; +extern gint ett_opcua_array_RequestHeader; +extern gint ett_opcua_ResponseHeader; +extern gint ett_opcua_array_ResponseHeader; +extern gint ett_opcua_UserTokenPolicy; +extern gint ett_opcua_array_UserTokenPolicy; +extern gint ett_opcua_EndpointDescription; +extern gint ett_opcua_array_EndpointDescription; +extern gint ett_opcua_RegisteredServer; +extern gint ett_opcua_array_RegisteredServer; +extern gint ett_opcua_ChannelSecurityToken; +extern gint ett_opcua_array_ChannelSecurityToken; +extern gint ett_opcua_SignedSoftwareCertificate; +extern gint ett_opcua_array_SignedSoftwareCertificate; +extern gint ett_opcua_SignatureData; +extern gint ett_opcua_array_SignatureData; +extern gint ett_opcua_UserIdentityToken; +extern gint ett_opcua_array_UserIdentityToken; +extern gint ett_opcua_AnonymousIdentityToken; +extern gint ett_opcua_array_AnonymousIdentityToken; +extern gint ett_opcua_UserNameIdentityToken; +extern gint ett_opcua_array_UserNameIdentityToken; +extern gint ett_opcua_X509IdentityToken; +extern gint ett_opcua_array_X509IdentityToken; +extern gint ett_opcua_IssuedIdentityToken; +extern gint ett_opcua_array_IssuedIdentityToken; +extern gint ett_opcua_NodeAttributes; +extern gint ett_opcua_array_NodeAttributes; +extern gint ett_opcua_ObjectAttributes; +extern gint ett_opcua_array_ObjectAttributes; +extern gint ett_opcua_VariableAttributes; +extern gint ett_opcua_array_VariableAttributes; +extern gint ett_opcua_MethodAttributes; +extern gint ett_opcua_array_MethodAttributes; +extern gint ett_opcua_ObjectTypeAttributes; +extern gint ett_opcua_array_ObjectTypeAttributes; +extern gint ett_opcua_VariableTypeAttributes; +extern gint ett_opcua_array_VariableTypeAttributes; +extern gint ett_opcua_ReferenceTypeAttributes; +extern gint ett_opcua_array_ReferenceTypeAttributes; +extern gint ett_opcua_DataTypeAttributes; +extern gint ett_opcua_array_DataTypeAttributes; +extern gint ett_opcua_ViewAttributes; +extern gint ett_opcua_array_ViewAttributes; +extern gint ett_opcua_AddNodesItem; +extern gint ett_opcua_array_AddNodesItem; +extern gint ett_opcua_AddNodesResult; +extern gint ett_opcua_array_AddNodesResult; +extern gint ett_opcua_AddReferencesItem; +extern gint ett_opcua_array_AddReferencesItem; +extern gint ett_opcua_DeleteNodesItem; +extern gint ett_opcua_array_DeleteNodesItem; +extern gint ett_opcua_DeleteReferencesItem; +extern gint ett_opcua_array_DeleteReferencesItem; +extern gint ett_opcua_ViewDescription; +extern gint ett_opcua_array_ViewDescription; +extern gint ett_opcua_BrowseDescription; +extern gint ett_opcua_array_BrowseDescription; +extern gint ett_opcua_ReferenceDescription; +extern gint ett_opcua_array_ReferenceDescription; +extern gint ett_opcua_BrowseResult; +extern gint ett_opcua_array_BrowseResult; +extern gint ett_opcua_RelativePathElement; +extern gint ett_opcua_array_RelativePathElement; +extern gint ett_opcua_RelativePath; +extern gint ett_opcua_array_RelativePath; +extern gint ett_opcua_BrowsePath; +extern gint ett_opcua_array_BrowsePath; +extern gint ett_opcua_BrowsePathTarget; +extern gint ett_opcua_array_BrowsePathTarget; +extern gint ett_opcua_BrowsePathResult; +extern gint ett_opcua_array_BrowsePathResult; +extern gint ett_opcua_EndpointConfiguration; +extern gint ett_opcua_array_EndpointConfiguration; +extern gint ett_opcua_SupportedProfile; +extern gint ett_opcua_array_SupportedProfile; +extern gint ett_opcua_SoftwareCertificate; +extern gint ett_opcua_array_SoftwareCertificate; +extern gint ett_opcua_QueryDataDescription; +extern gint ett_opcua_array_QueryDataDescription; +extern gint ett_opcua_NodeTypeDescription; +extern gint ett_opcua_array_NodeTypeDescription; +extern gint ett_opcua_QueryDataSet; +extern gint ett_opcua_array_QueryDataSet; +extern gint ett_opcua_NodeReference; +extern gint ett_opcua_array_NodeReference; +extern gint ett_opcua_ContentFilterElement; +extern gint ett_opcua_array_ContentFilterElement; +extern gint ett_opcua_ContentFilter; +extern gint ett_opcua_array_ContentFilter; +extern gint ett_opcua_ElementOperand; +extern gint ett_opcua_array_ElementOperand; +extern gint ett_opcua_LiteralOperand; +extern gint ett_opcua_array_LiteralOperand; +extern gint ett_opcua_AttributeOperand; +extern gint ett_opcua_array_AttributeOperand; +extern gint ett_opcua_SimpleAttributeOperand; +extern gint ett_opcua_array_SimpleAttributeOperand; +extern gint ett_opcua_ContentFilterElementResult; +extern gint ett_opcua_array_ContentFilterElementResult; +extern gint ett_opcua_ContentFilterResult; +extern gint ett_opcua_array_ContentFilterResult; +extern gint ett_opcua_ParsingResult; +extern gint ett_opcua_array_ParsingResult; +extern gint ett_opcua_ReadValueId; +extern gint ett_opcua_array_ReadValueId; +extern gint ett_opcua_HistoryReadValueId; +extern gint ett_opcua_array_HistoryReadValueId; +extern gint ett_opcua_HistoryReadResult; +extern gint ett_opcua_array_HistoryReadResult; +extern gint ett_opcua_ReadEventDetails; +extern gint ett_opcua_array_ReadEventDetails; +extern gint ett_opcua_ReadRawModifiedDetails; +extern gint ett_opcua_array_ReadRawModifiedDetails; +extern gint ett_opcua_ReadProcessedDetails; +extern gint ett_opcua_array_ReadProcessedDetails; +extern gint ett_opcua_ReadAtTimeDetails; +extern gint ett_opcua_array_ReadAtTimeDetails; +extern gint ett_opcua_HistoryData; +extern gint ett_opcua_array_HistoryData; +extern gint ett_opcua_ModificationInfo; +extern gint ett_opcua_array_ModificationInfo; +extern gint ett_opcua_HistoryModifiedData; +extern gint ett_opcua_array_HistoryModifiedData; +extern gint ett_opcua_HistoryEvent; +extern gint ett_opcua_array_HistoryEvent; +extern gint ett_opcua_WriteValue; +extern gint ett_opcua_array_WriteValue; +extern gint ett_opcua_HistoryUpdateDetails; +extern gint ett_opcua_array_HistoryUpdateDetails; +extern gint ett_opcua_UpdateDataDetails; +extern gint ett_opcua_array_UpdateDataDetails; +extern gint ett_opcua_UpdateStructureDataDetails; +extern gint ett_opcua_array_UpdateStructureDataDetails; +extern gint ett_opcua_UpdateEventDetails; +extern gint ett_opcua_array_UpdateEventDetails; +extern gint ett_opcua_DeleteRawModifiedDetails; +extern gint ett_opcua_array_DeleteRawModifiedDetails; +extern gint ett_opcua_DeleteAtTimeDetails; +extern gint ett_opcua_array_DeleteAtTimeDetails; +extern gint ett_opcua_DeleteEventDetails; +extern gint ett_opcua_array_DeleteEventDetails; +extern gint ett_opcua_HistoryUpdateResult; +extern gint ett_opcua_array_HistoryUpdateResult; +extern gint ett_opcua_CallMethodRequest; +extern gint ett_opcua_array_CallMethodRequest; +extern gint ett_opcua_CallMethodResult; +extern gint ett_opcua_array_CallMethodResult; +extern gint ett_opcua_DataChangeFilter; +extern gint ett_opcua_array_DataChangeFilter; +extern gint ett_opcua_EventFilter; +extern gint ett_opcua_array_EventFilter; +extern gint ett_opcua_AggregateConfiguration; +extern gint ett_opcua_array_AggregateConfiguration; +extern gint ett_opcua_AggregateFilter; +extern gint ett_opcua_array_AggregateFilter; +extern gint ett_opcua_EventFilterResult; +extern gint ett_opcua_array_EventFilterResult; +extern gint ett_opcua_AggregateFilterResult; +extern gint ett_opcua_array_AggregateFilterResult; +extern gint ett_opcua_MonitoringParameters; +extern gint ett_opcua_array_MonitoringParameters; +extern gint ett_opcua_MonitoredItemCreateRequest; +extern gint ett_opcua_array_MonitoredItemCreateRequest; +extern gint ett_opcua_MonitoredItemCreateResult; +extern gint ett_opcua_array_MonitoredItemCreateResult; +extern gint ett_opcua_MonitoredItemModifyRequest; +extern gint ett_opcua_array_MonitoredItemModifyRequest; +extern gint ett_opcua_MonitoredItemModifyResult; +extern gint ett_opcua_array_MonitoredItemModifyResult; +extern gint ett_opcua_NotificationMessage; +extern gint ett_opcua_array_NotificationMessage; +extern gint ett_opcua_DataChangeNotification; +extern gint ett_opcua_array_DataChangeNotification; +extern gint ett_opcua_MonitoredItemNotification; +extern gint ett_opcua_array_MonitoredItemNotification; +extern gint ett_opcua_EventNotificationList; +extern gint ett_opcua_array_EventNotificationList; +extern gint ett_opcua_EventFieldList; +extern gint ett_opcua_array_EventFieldList; +extern gint ett_opcua_HistoryEventFieldList; +extern gint ett_opcua_array_HistoryEventFieldList; +extern gint ett_opcua_StatusChangeNotification; +extern gint ett_opcua_array_StatusChangeNotification; +extern gint ett_opcua_SubscriptionAcknowledgement; +extern gint ett_opcua_array_SubscriptionAcknowledgement; +extern gint ett_opcua_TransferResult; +extern gint ett_opcua_array_TransferResult; +extern gint ett_opcua_ScalarTestType; +extern gint ett_opcua_array_ScalarTestType; +extern gint ett_opcua_ArrayTestType; +extern gint ett_opcua_array_ArrayTestType; +extern gint ett_opcua_CompositeTestType; +extern gint ett_opcua_array_CompositeTestType; +extern gint ett_opcua_BuildInfo; +extern gint ett_opcua_array_BuildInfo; +extern gint ett_opcua_RedundantServerDataType; +extern gint ett_opcua_array_RedundantServerDataType; +extern gint ett_opcua_EndpointUrlListDataType; +extern gint ett_opcua_array_EndpointUrlListDataType; +extern gint ett_opcua_NetworkGroupDataType; +extern gint ett_opcua_array_NetworkGroupDataType; +extern gint ett_opcua_SamplingIntervalDiagnosticsDataType; +extern gint ett_opcua_array_SamplingIntervalDiagnosticsDataType; +extern gint ett_opcua_ServerDiagnosticsSummaryDataType; +extern gint ett_opcua_array_ServerDiagnosticsSummaryDataType; +extern gint ett_opcua_ServerStatusDataType; +extern gint ett_opcua_array_ServerStatusDataType; +extern gint ett_opcua_SessionDiagnosticsDataType; +extern gint ett_opcua_array_SessionDiagnosticsDataType; +extern gint ett_opcua_SessionSecurityDiagnosticsDataType; +extern gint ett_opcua_array_SessionSecurityDiagnosticsDataType; +extern gint ett_opcua_ServiceCounterDataType; +extern gint ett_opcua_array_ServiceCounterDataType; +extern gint ett_opcua_StatusResult; +extern gint ett_opcua_array_StatusResult; +extern gint ett_opcua_SubscriptionDiagnosticsDataType; +extern gint ett_opcua_array_SubscriptionDiagnosticsDataType; +extern gint ett_opcua_ModelChangeStructureDataType; +extern gint ett_opcua_array_ModelChangeStructureDataType; +extern gint ett_opcua_SemanticChangeStructureDataType; +extern gint ett_opcua_array_SemanticChangeStructureDataType; +extern gint ett_opcua_Range; +extern gint ett_opcua_array_Range; +extern gint ett_opcua_EUInformation; +extern gint ett_opcua_array_EUInformation; +extern gint ett_opcua_ComplexNumberType; +extern gint ett_opcua_array_ComplexNumberType; +extern gint ett_opcua_DoubleComplexNumberType; +extern gint ett_opcua_array_DoubleComplexNumberType; +extern gint ett_opcua_AxisInformation; +extern gint ett_opcua_array_AxisInformation; +extern gint ett_opcua_XVType; +extern gint ett_opcua_array_XVType; +extern gint ett_opcua_ProgramDiagnosticDataType; +extern gint ett_opcua_array_ProgramDiagnosticDataType; +extern gint ett_opcua_Annotation; +extern gint ett_opcua_array_Annotation; void parseNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName); void parseInstanceNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName); diff --git a/plugins/opcua/opcua_enumparser.c b/plugins/opcua/opcua_enumparser.c index c12e033876..36b26bb944 100644 --- a/plugins/opcua/opcua_enumparser.c +++ b/plugins/opcua/opcua_enumparser.c @@ -14,7 +14,7 @@ ** ** Description: OpcUa Enum Type Parser ** -** This file was autogenerated on 10.06.2014. +** This file was autogenerated on 17.06.2014. ** DON'T MODIFY THIS FILE! ** ******************************************************************************/ @@ -26,6 +26,33 @@ #include "opcua_enumparser.h" +gint ett_opcua_array_NodeIdType = -1; +gint ett_opcua_array_OpenFileMode = -1; +gint ett_opcua_array_IdType = -1; +gint ett_opcua_array_NodeClass = -1; +gint ett_opcua_array_ApplicationType = -1; +gint ett_opcua_array_MessageSecurityMode = -1; +gint ett_opcua_array_UserTokenType = -1; +gint ett_opcua_array_SecurityTokenRequestType = -1; +gint ett_opcua_array_NodeAttributesMask = -1; +gint ett_opcua_array_AttributeWriteMask = -1; +gint ett_opcua_array_BrowseDirection = -1; +gint ett_opcua_array_BrowseResultMask = -1; +gint ett_opcua_array_ComplianceLevel = -1; +gint ett_opcua_array_FilterOperator = -1; +gint ett_opcua_array_TimestampsToReturn = -1; +gint ett_opcua_array_HistoryUpdateType = -1; +gint ett_opcua_array_PerformUpdateType = -1; +gint ett_opcua_array_MonitoringMode = -1; +gint ett_opcua_array_DataChangeTrigger = -1; +gint ett_opcua_array_DeadbandType = -1; +gint ett_opcua_array_EnumeratedTestType = -1; +gint ett_opcua_array_RedundancySupport = -1; +gint ett_opcua_array_ServerState = -1; +gint ett_opcua_array_ModelChangeStructureVerbMask = -1; +gint ett_opcua_array_AxisScaleEnumeration = -1; +gint ett_opcua_array_ExceptionDeviationFormat = -1; + /** NodeIdType enum table */ static const value_string g_NodeIdTypeTable[] = { { 0, "TwoByte" }, @@ -465,6 +492,37 @@ void parseExceptionDeviationFormat(proto_tree *tree, tvbuff_t *tvb, gint *pOffse proto_tree_add_item(tree, hf_opcua_ExceptionDeviationFormat, tvb, *pOffset, 4, ENC_LITTLE_ENDIAN); *pOffset+=4; } +/** Setup enum subtree array */ +static gint *ett[] = +{ + &ett_opcua_array_NodeIdType, + &ett_opcua_array_OpenFileMode, + &ett_opcua_array_IdType, + &ett_opcua_array_NodeClass, + &ett_opcua_array_ApplicationType, + &ett_opcua_array_MessageSecurityMode, + &ett_opcua_array_UserTokenType, + &ett_opcua_array_SecurityTokenRequestType, + &ett_opcua_array_NodeAttributesMask, + &ett_opcua_array_AttributeWriteMask, + &ett_opcua_array_BrowseDirection, + &ett_opcua_array_BrowseResultMask, + &ett_opcua_array_ComplianceLevel, + &ett_opcua_array_FilterOperator, + &ett_opcua_array_TimestampsToReturn, + &ett_opcua_array_HistoryUpdateType, + &ett_opcua_array_PerformUpdateType, + &ett_opcua_array_MonitoringMode, + &ett_opcua_array_DataChangeTrigger, + &ett_opcua_array_DeadbandType, + &ett_opcua_array_EnumeratedTestType, + &ett_opcua_array_RedundancySupport, + &ett_opcua_array_ServerState, + &ett_opcua_array_ModelChangeStructureVerbMask, + &ett_opcua_array_AxisScaleEnumeration, + &ett_opcua_array_ExceptionDeviationFormat, +}; + /** Register enum types. */ void registerEnumTypes(int proto) { @@ -552,5 +610,6 @@ void registerEnumTypes(int proto) }; proto_register_field_array(proto, hf, array_length(hf)); + proto_register_subtree_array(ett, array_length(ett)); } diff --git a/plugins/opcua/opcua_enumparser.h b/plugins/opcua/opcua_enumparser.h index fc9b85cde7..cedb9a9209 100644 --- a/plugins/opcua/opcua_enumparser.h +++ b/plugins/opcua/opcua_enumparser.h @@ -1,5 +1,5 @@ /****************************************************************************** -** Copyright (C) 2006-2009 ascolab GmbH. All Rights Reserved. +** Copyright (C) 2006-2014 ascolab GmbH. All Rights Reserved. ** Web: http://www.ascolab.com ** ** This program is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ ** ** Description: OpcUa Enum Type Parser ** -** This file was autogenerated on 12.02.2013. +** This file was autogenerated on 17.06.2014. ** DON'T MODIFY THIS FILE! ** XXX - well, except that you may have to. See the README. ** @@ -23,6 +23,33 @@ #include <glib.h> #include <epan/packet.h> +extern gint ett_opcua_array_NodeIdType; +extern gint ett_opcua_array_OpenFileMode; +extern gint ett_opcua_array_IdType; +extern gint ett_opcua_array_NodeClass; +extern gint ett_opcua_array_ApplicationType; +extern gint ett_opcua_array_MessageSecurityMode; +extern gint ett_opcua_array_UserTokenType; +extern gint ett_opcua_array_SecurityTokenRequestType; +extern gint ett_opcua_array_NodeAttributesMask; +extern gint ett_opcua_array_AttributeWriteMask; +extern gint ett_opcua_array_BrowseDirection; +extern gint ett_opcua_array_BrowseResultMask; +extern gint ett_opcua_array_ComplianceLevel; +extern gint ett_opcua_array_FilterOperator; +extern gint ett_opcua_array_TimestampsToReturn; +extern gint ett_opcua_array_HistoryUpdateType; +extern gint ett_opcua_array_PerformUpdateType; +extern gint ett_opcua_array_MonitoringMode; +extern gint ett_opcua_array_DataChangeTrigger; +extern gint ett_opcua_array_DeadbandType; +extern gint ett_opcua_array_EnumeratedTestType; +extern gint ett_opcua_array_RedundancySupport; +extern gint ett_opcua_array_ServerState; +extern gint ett_opcua_array_ModelChangeStructureVerbMask; +extern gint ett_opcua_array_AxisScaleEnumeration; +extern gint ett_opcua_array_ExceptionDeviationFormat; + void parseNodeIdType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void parseOpenFileMode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void parseIdType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); diff --git a/plugins/opcua/opcua_serviceparser.c b/plugins/opcua/opcua_serviceparser.c index 0a46a819f0..dea2b4c00f 100644 --- a/plugins/opcua/opcua_serviceparser.c +++ b/plugins/opcua/opcua_serviceparser.c @@ -30,6 +30,164 @@ #include "opcua_serviceparser.h" gint ett_opcua_ServiceFault = -1; +gint ett_opcua_array_ServiceFault = -1; +gint ett_opcua_FindServersRequest = -1; +gint ett_opcua_array_FindServersRequest = -1; +gint ett_opcua_FindServersResponse = -1; +gint ett_opcua_array_FindServersResponse = -1; +gint ett_opcua_GetEndpointsRequest = -1; +gint ett_opcua_array_GetEndpointsRequest = -1; +gint ett_opcua_GetEndpointsResponse = -1; +gint ett_opcua_array_GetEndpointsResponse = -1; +gint ett_opcua_RegisterServerRequest = -1; +gint ett_opcua_array_RegisterServerRequest = -1; +gint ett_opcua_RegisterServerResponse = -1; +gint ett_opcua_array_RegisterServerResponse = -1; +gint ett_opcua_OpenSecureChannelRequest = -1; +gint ett_opcua_array_OpenSecureChannelRequest = -1; +gint ett_opcua_OpenSecureChannelResponse = -1; +gint ett_opcua_array_OpenSecureChannelResponse = -1; +gint ett_opcua_CloseSecureChannelRequest = -1; +gint ett_opcua_array_CloseSecureChannelRequest = -1; +gint ett_opcua_CloseSecureChannelResponse = -1; +gint ett_opcua_array_CloseSecureChannelResponse = -1; +gint ett_opcua_CreateSessionRequest = -1; +gint ett_opcua_array_CreateSessionRequest = -1; +gint ett_opcua_CreateSessionResponse = -1; +gint ett_opcua_array_CreateSessionResponse = -1; +gint ett_opcua_ActivateSessionRequest = -1; +gint ett_opcua_array_ActivateSessionRequest = -1; +gint ett_opcua_ActivateSessionResponse = -1; +gint ett_opcua_array_ActivateSessionResponse = -1; +gint ett_opcua_CloseSessionRequest = -1; +gint ett_opcua_array_CloseSessionRequest = -1; +gint ett_opcua_CloseSessionResponse = -1; +gint ett_opcua_array_CloseSessionResponse = -1; +gint ett_opcua_CancelRequest = -1; +gint ett_opcua_array_CancelRequest = -1; +gint ett_opcua_CancelResponse = -1; +gint ett_opcua_array_CancelResponse = -1; +gint ett_opcua_AddNodesRequest = -1; +gint ett_opcua_array_AddNodesRequest = -1; +gint ett_opcua_AddNodesResponse = -1; +gint ett_opcua_array_AddNodesResponse = -1; +gint ett_opcua_AddReferencesRequest = -1; +gint ett_opcua_array_AddReferencesRequest = -1; +gint ett_opcua_AddReferencesResponse = -1; +gint ett_opcua_array_AddReferencesResponse = -1; +gint ett_opcua_DeleteNodesRequest = -1; +gint ett_opcua_array_DeleteNodesRequest = -1; +gint ett_opcua_DeleteNodesResponse = -1; +gint ett_opcua_array_DeleteNodesResponse = -1; +gint ett_opcua_DeleteReferencesRequest = -1; +gint ett_opcua_array_DeleteReferencesRequest = -1; +gint ett_opcua_DeleteReferencesResponse = -1; +gint ett_opcua_array_DeleteReferencesResponse = -1; +gint ett_opcua_BrowseRequest = -1; +gint ett_opcua_array_BrowseRequest = -1; +gint ett_opcua_BrowseResponse = -1; +gint ett_opcua_array_BrowseResponse = -1; +gint ett_opcua_BrowseNextRequest = -1; +gint ett_opcua_array_BrowseNextRequest = -1; +gint ett_opcua_BrowseNextResponse = -1; +gint ett_opcua_array_BrowseNextResponse = -1; +gint ett_opcua_TranslateBrowsePathsToNodeIdsRequest = -1; +gint ett_opcua_array_TranslateBrowsePathsToNodeIdsRequest = -1; +gint ett_opcua_TranslateBrowsePathsToNodeIdsResponse = -1; +gint ett_opcua_array_TranslateBrowsePathsToNodeIdsResponse = -1; +gint ett_opcua_RegisterNodesRequest = -1; +gint ett_opcua_array_RegisterNodesRequest = -1; +gint ett_opcua_RegisterNodesResponse = -1; +gint ett_opcua_array_RegisterNodesResponse = -1; +gint ett_opcua_UnregisterNodesRequest = -1; +gint ett_opcua_array_UnregisterNodesRequest = -1; +gint ett_opcua_UnregisterNodesResponse = -1; +gint ett_opcua_array_UnregisterNodesResponse = -1; +gint ett_opcua_QueryFirstRequest = -1; +gint ett_opcua_array_QueryFirstRequest = -1; +gint ett_opcua_QueryFirstResponse = -1; +gint ett_opcua_array_QueryFirstResponse = -1; +gint ett_opcua_QueryNextRequest = -1; +gint ett_opcua_array_QueryNextRequest = -1; +gint ett_opcua_QueryNextResponse = -1; +gint ett_opcua_array_QueryNextResponse = -1; +gint ett_opcua_ReadRequest = -1; +gint ett_opcua_array_ReadRequest = -1; +gint ett_opcua_ReadResponse = -1; +gint ett_opcua_array_ReadResponse = -1; +gint ett_opcua_HistoryReadRequest = -1; +gint ett_opcua_array_HistoryReadRequest = -1; +gint ett_opcua_HistoryReadResponse = -1; +gint ett_opcua_array_HistoryReadResponse = -1; +gint ett_opcua_WriteRequest = -1; +gint ett_opcua_array_WriteRequest = -1; +gint ett_opcua_WriteResponse = -1; +gint ett_opcua_array_WriteResponse = -1; +gint ett_opcua_HistoryUpdateRequest = -1; +gint ett_opcua_array_HistoryUpdateRequest = -1; +gint ett_opcua_HistoryUpdateResponse = -1; +gint ett_opcua_array_HistoryUpdateResponse = -1; +gint ett_opcua_CallRequest = -1; +gint ett_opcua_array_CallRequest = -1; +gint ett_opcua_CallResponse = -1; +gint ett_opcua_array_CallResponse = -1; +gint ett_opcua_CreateMonitoredItemsRequest = -1; +gint ett_opcua_array_CreateMonitoredItemsRequest = -1; +gint ett_opcua_CreateMonitoredItemsResponse = -1; +gint ett_opcua_array_CreateMonitoredItemsResponse = -1; +gint ett_opcua_ModifyMonitoredItemsRequest = -1; +gint ett_opcua_array_ModifyMonitoredItemsRequest = -1; +gint ett_opcua_ModifyMonitoredItemsResponse = -1; +gint ett_opcua_array_ModifyMonitoredItemsResponse = -1; +gint ett_opcua_SetMonitoringModeRequest = -1; +gint ett_opcua_array_SetMonitoringModeRequest = -1; +gint ett_opcua_SetMonitoringModeResponse = -1; +gint ett_opcua_array_SetMonitoringModeResponse = -1; +gint ett_opcua_SetTriggeringRequest = -1; +gint ett_opcua_array_SetTriggeringRequest = -1; +gint ett_opcua_SetTriggeringResponse = -1; +gint ett_opcua_array_SetTriggeringResponse = -1; +gint ett_opcua_DeleteMonitoredItemsRequest = -1; +gint ett_opcua_array_DeleteMonitoredItemsRequest = -1; +gint ett_opcua_DeleteMonitoredItemsResponse = -1; +gint ett_opcua_array_DeleteMonitoredItemsResponse = -1; +gint ett_opcua_CreateSubscriptionRequest = -1; +gint ett_opcua_array_CreateSubscriptionRequest = -1; +gint ett_opcua_CreateSubscriptionResponse = -1; +gint ett_opcua_array_CreateSubscriptionResponse = -1; +gint ett_opcua_ModifySubscriptionRequest = -1; +gint ett_opcua_array_ModifySubscriptionRequest = -1; +gint ett_opcua_ModifySubscriptionResponse = -1; +gint ett_opcua_array_ModifySubscriptionResponse = -1; +gint ett_opcua_SetPublishingModeRequest = -1; +gint ett_opcua_array_SetPublishingModeRequest = -1; +gint ett_opcua_SetPublishingModeResponse = -1; +gint ett_opcua_array_SetPublishingModeResponse = -1; +gint ett_opcua_PublishRequest = -1; +gint ett_opcua_array_PublishRequest = -1; +gint ett_opcua_PublishResponse = -1; +gint ett_opcua_array_PublishResponse = -1; +gint ett_opcua_RepublishRequest = -1; +gint ett_opcua_array_RepublishRequest = -1; +gint ett_opcua_RepublishResponse = -1; +gint ett_opcua_array_RepublishResponse = -1; +gint ett_opcua_TransferSubscriptionsRequest = -1; +gint ett_opcua_array_TransferSubscriptionsRequest = -1; +gint ett_opcua_TransferSubscriptionsResponse = -1; +gint ett_opcua_array_TransferSubscriptionsResponse = -1; +gint ett_opcua_DeleteSubscriptionsRequest = -1; +gint ett_opcua_array_DeleteSubscriptionsRequest = -1; +gint ett_opcua_DeleteSubscriptionsResponse = -1; +gint ett_opcua_array_DeleteSubscriptionsResponse = -1; +gint ett_opcua_TestStackRequest = -1; +gint ett_opcua_array_TestStackRequest = -1; +gint ett_opcua_TestStackResponse = -1; +gint ett_opcua_array_TestStackResponse = -1; +gint ett_opcua_TestStackExRequest = -1; +gint ett_opcua_array_TestStackExRequest = -1; +gint ett_opcua_TestStackExResponse = -1; +gint ett_opcua_array_TestStackExResponse = -1; + void parseServiceFault(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "ServiceFault"); @@ -38,7 +196,6 @@ void parseServiceFault(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_FindServersRequest = -1; void parseFindServersRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "FindServersRequest"); @@ -47,12 +204,11 @@ void parseFindServersRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); parseString(subtree, tvb, pOffset, hf_opcua_EndpointUrl); /* Array length field ignored: NoOfLocaleIds */ - parseArraySimple(subtree, tvb, pOffset, "LocaleIds", "String", hf_opcua_LocaleIds, parseString); + parseArraySimple(subtree, tvb, pOffset, "LocaleIds", "String", hf_opcua_LocaleIds, parseString, ett_opcua_array_String); /* Array length field ignored: NoOfServerUris */ - parseArraySimple(subtree, tvb, pOffset, "ServerUris", "String", hf_opcua_ServerUris, parseString); + parseArraySimple(subtree, tvb, pOffset, "ServerUris", "String", hf_opcua_ServerUris, parseString, ett_opcua_array_String); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_FindServersResponse = -1; void parseFindServersResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "FindServersResponse"); @@ -60,10 +216,9 @@ void parseFindServersResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfServers */ - parseArrayComplex(subtree, tvb, pOffset, "Servers", "ApplicationDescription", parseApplicationDescription); + parseArrayComplex(subtree, tvb, pOffset, "Servers", "ApplicationDescription", parseApplicationDescription, ett_opcua_array_ApplicationDescription); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_GetEndpointsRequest = -1; void parseGetEndpointsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "GetEndpointsRequest"); @@ -72,12 +227,11 @@ void parseGetEndpointsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); parseString(subtree, tvb, pOffset, hf_opcua_EndpointUrl); /* Array length field ignored: NoOfLocaleIds */ - parseArraySimple(subtree, tvb, pOffset, "LocaleIds", "String", hf_opcua_LocaleIds, parseString); + parseArraySimple(subtree, tvb, pOffset, "LocaleIds", "String", hf_opcua_LocaleIds, parseString, ett_opcua_array_String); /* Array length field ignored: NoOfProfileUris */ - parseArraySimple(subtree, tvb, pOffset, "ProfileUris", "String", hf_opcua_ProfileUris, parseString); + parseArraySimple(subtree, tvb, pOffset, "ProfileUris", "String", hf_opcua_ProfileUris, parseString, ett_opcua_array_String); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_GetEndpointsResponse = -1; void parseGetEndpointsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "GetEndpointsResponse"); @@ -85,10 +239,9 @@ void parseGetEndpointsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfEndpoints */ - parseArrayComplex(subtree, tvb, pOffset, "Endpoints", "EndpointDescription", parseEndpointDescription); + parseArrayComplex(subtree, tvb, pOffset, "Endpoints", "EndpointDescription", parseEndpointDescription, ett_opcua_array_EndpointDescription); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_RegisterServerRequest = -1; void parseRegisterServerRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "RegisterServerRequest"); @@ -98,7 +251,6 @@ void parseRegisterServerRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseRegisteredServer(subtree, tvb, pOffset, "Server"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_RegisterServerResponse = -1; void parseRegisterServerResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "RegisterServerResponse"); @@ -107,7 +259,6 @@ void parseRegisterServerResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_OpenSecureChannelRequest = -1; void parseOpenSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "OpenSecureChannelRequest"); @@ -121,7 +272,6 @@ void parseOpenSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffse parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedLifetime); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_OpenSecureChannelResponse = -1; void parseOpenSecureChannelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "OpenSecureChannelResponse"); @@ -133,7 +283,6 @@ void parseOpenSecureChannelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffs parseByteString(subtree, tvb, pOffset, hf_opcua_ServerNonce); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_CloseSecureChannelRequest = -1; void parseCloseSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "CloseSecureChannelRequest"); @@ -142,7 +291,6 @@ void parseCloseSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffs parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_CloseSecureChannelResponse = -1; void parseCloseSecureChannelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "CloseSecureChannelResponse"); @@ -151,7 +299,6 @@ void parseCloseSecureChannelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOff parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_CreateSessionRequest = -1; void parseCreateSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "CreateSessionRequest"); @@ -168,7 +315,6 @@ void parseCreateSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxResponseMessageSize); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_CreateSessionResponse = -1; void parseCreateSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "CreateSessionResponse"); @@ -181,14 +327,13 @@ void parseCreateSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseByteString(subtree, tvb, pOffset, hf_opcua_ServerNonce); parseByteString(subtree, tvb, pOffset, hf_opcua_ServerCertificate); /* Array length field ignored: NoOfServerEndpoints */ - parseArrayComplex(subtree, tvb, pOffset, "ServerEndpoints", "EndpointDescription", parseEndpointDescription); + parseArrayComplex(subtree, tvb, pOffset, "ServerEndpoints", "EndpointDescription", parseEndpointDescription, ett_opcua_array_EndpointDescription); /* Array length field ignored: NoOfServerSoftwareCertificates */ - parseArrayComplex(subtree, tvb, pOffset, "ServerSoftwareCertificates", "SignedSoftwareCertificate", parseSignedSoftwareCertificate); + parseArrayComplex(subtree, tvb, pOffset, "ServerSoftwareCertificates", "SignedSoftwareCertificate", parseSignedSoftwareCertificate, ett_opcua_array_SignedSoftwareCertificate); parseSignatureData(subtree, tvb, pOffset, "ServerSignature"); parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxRequestMessageSize); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ActivateSessionRequest = -1; void parseActivateSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "ActivateSessionRequest"); @@ -197,14 +342,13 @@ void parseActivateSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); parseSignatureData(subtree, tvb, pOffset, "ClientSignature"); /* Array length field ignored: NoOfClientSoftwareCertificates */ - parseArrayComplex(subtree, tvb, pOffset, "ClientSoftwareCertificates", "SignedSoftwareCertificate", parseSignedSoftwareCertificate); + parseArrayComplex(subtree, tvb, pOffset, "ClientSoftwareCertificates", "SignedSoftwareCertificate", parseSignedSoftwareCertificate, ett_opcua_array_SignedSoftwareCertificate); /* Array length field ignored: NoOfLocaleIds */ - parseArraySimple(subtree, tvb, pOffset, "LocaleIds", "String", hf_opcua_LocaleIds, parseString); + parseArraySimple(subtree, tvb, pOffset, "LocaleIds", "String", hf_opcua_LocaleIds, parseString, ett_opcua_array_String); parseExtensionObject(subtree, tvb, pOffset, "UserIdentityToken"); parseSignatureData(subtree, tvb, pOffset, "UserTokenSignature"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ActivateSessionResponse = -1; void parseActivateSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "ActivateSessionResponse"); @@ -213,12 +357,11 @@ void parseActivateSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); parseByteString(subtree, tvb, pOffset, hf_opcua_ServerNonce); /* Array length field ignored: NoOfResults */ - parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode); + parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo); + parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_CloseSessionRequest = -1; void parseCloseSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "CloseSessionRequest"); @@ -228,7 +371,6 @@ void parseCloseSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseBoolean(subtree, tvb, pOffset, hf_opcua_DeleteSubscriptions); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_CloseSessionResponse = -1; void parseCloseSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "CloseSessionResponse"); @@ -237,7 +379,6 @@ void parseCloseSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_CancelRequest = -1; void parseCancelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "CancelRequest"); @@ -247,7 +388,6 @@ void parseCancelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestHandle); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_CancelResponse = -1; void parseCancelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "CancelResponse"); @@ -257,7 +397,6 @@ void parseCancelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseUInt32(subtree, tvb, pOffset, hf_opcua_CancelCount); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_AddNodesRequest = -1; void parseAddNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "AddNodesRequest"); @@ -265,10 +404,9 @@ void parseAddNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); /* Array length field ignored: NoOfNodesToAdd */ - parseArrayComplex(subtree, tvb, pOffset, "NodesToAdd", "AddNodesItem", parseAddNodesItem); + parseArrayComplex(subtree, tvb, pOffset, "NodesToAdd", "AddNodesItem", parseAddNodesItem, ett_opcua_array_AddNodesItem); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_AddNodesResponse = -1; void parseAddNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "AddNodesResponse"); @@ -276,12 +414,11 @@ void parseAddNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArrayComplex(subtree, tvb, pOffset, "Results", "AddNodesResult", parseAddNodesResult); + parseArrayComplex(subtree, tvb, pOffset, "Results", "AddNodesResult", parseAddNodesResult, ett_opcua_array_AddNodesResult); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo); + parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_AddReferencesRequest = -1; void parseAddReferencesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "AddReferencesRequest"); @@ -289,10 +426,9 @@ void parseAddReferencesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); /* Array length field ignored: NoOfReferencesToAdd */ - parseArrayComplex(subtree, tvb, pOffset, "ReferencesToAdd", "AddReferencesItem", parseAddReferencesItem); + parseArrayComplex(subtree, tvb, pOffset, "ReferencesToAdd", "AddReferencesItem", parseAddReferencesItem, ett_opcua_array_AddReferencesItem); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_AddReferencesResponse = -1; void parseAddReferencesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "AddReferencesResponse"); @@ -300,12 +436,11 @@ void parseAddReferencesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode); + parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo); + parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_DeleteNodesRequest = -1; void parseDeleteNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "DeleteNodesRequest"); @@ -313,10 +448,9 @@ void parseDeleteNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); /* Array length field ignored: NoOfNodesToDelete */ - parseArrayComplex(subtree, tvb, pOffset, "NodesToDelete", "DeleteNodesItem", parseDeleteNodesItem); + parseArrayComplex(subtree, tvb, pOffset, "NodesToDelete", "DeleteNodesItem", parseDeleteNodesItem, ett_opcua_array_DeleteNodesItem); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_DeleteNodesResponse = -1; void parseDeleteNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "DeleteNodesResponse"); @@ -324,12 +458,11 @@ void parseDeleteNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode); + parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo); + parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_DeleteReferencesRequest = -1; void parseDeleteReferencesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "DeleteReferencesRequest"); @@ -337,10 +470,9 @@ void parseDeleteReferencesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); /* Array length field ignored: NoOfReferencesToDelete */ - parseArrayComplex(subtree, tvb, pOffset, "ReferencesToDelete", "DeleteReferencesItem", parseDeleteReferencesItem); + parseArrayComplex(subtree, tvb, pOffset, "ReferencesToDelete", "DeleteReferencesItem", parseDeleteReferencesItem, ett_opcua_array_DeleteReferencesItem); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_DeleteReferencesResponse = -1; void parseDeleteReferencesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "DeleteReferencesResponse"); @@ -348,12 +480,11 @@ void parseDeleteReferencesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffse parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode); + parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo); + parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_BrowseRequest = -1; void parseBrowseRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "BrowseRequest"); @@ -363,10 +494,9 @@ void parseBrowseRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseViewDescription(subtree, tvb, pOffset, "View"); parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedMaxReferencesPerNode); /* Array length field ignored: NoOfNodesToBrowse */ - parseArrayComplex(subtree, tvb, pOffset, "NodesToBrowse", "BrowseDescription", parseBrowseDescription); + parseArrayComplex(subtree, tvb, pOffset, "NodesToBrowse", "BrowseDescription", parseBrowseDescription, ett_opcua_array_BrowseDescription); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_BrowseResponse = -1; void parseBrowseResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "BrowseResponse"); @@ -374,12 +504,11 @@ void parseBrowseResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArrayComplex(subtree, tvb, pOffset, "Results", "BrowseResult", parseBrowseResult); + parseArrayComplex(subtree, tvb, pOffset, "Results", "BrowseResult", parseBrowseResult, ett_opcua_array_BrowseResult); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo); + parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_BrowseNextRequest = -1; void parseBrowseNextRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "BrowseNextRequest"); @@ -388,10 +517,9 @@ void parseBrowseNextRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); parseBoolean(subtree, tvb, pOffset, hf_opcua_ReleaseContinuationPoints); /* Array length field ignored: NoOfContinuationPoints */ - parseArraySimple(subtree, tvb, pOffset, "ContinuationPoints", "ByteString", hf_opcua_ContinuationPoints, parseByteString); + parseArraySimple(subtree, tvb, pOffset, "ContinuationPoints", "ByteString", hf_opcua_ContinuationPoints, parseByteString, ett_opcua_array_ByteString); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_BrowseNextResponse = -1; void parseBrowseNextResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "BrowseNextResponse"); @@ -399,12 +527,11 @@ void parseBrowseNextResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArrayComplex(subtree, tvb, pOffset, "Results", "BrowseResult", parseBrowseResult); + parseArrayComplex(subtree, tvb, pOffset, "Results", "BrowseResult", parseBrowseResult, ett_opcua_array_BrowseResult); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo); + parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_TranslateBrowsePathsToNodeIdsRequest = -1; void parseTranslateBrowsePathsToNodeIdsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "TranslateBrowsePathsToNodeIdsRequest"); @@ -412,10 +539,9 @@ void parseTranslateBrowsePathsToNodeIdsRequest(proto_tree *tree, tvbuff_t *tvb, parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); /* Array length field ignored: NoOfBrowsePaths */ - parseArrayComplex(subtree, tvb, pOffset, "BrowsePaths", "BrowsePath", parseBrowsePath); + parseArrayComplex(subtree, tvb, pOffset, "BrowsePaths", "BrowsePath", parseBrowsePath, ett_opcua_array_BrowsePath); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_TranslateBrowsePathsToNodeIdsResponse = -1; void parseTranslateBrowsePathsToNodeIdsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "TranslateBrowsePathsToNodeIdsResponse"); @@ -423,12 +549,11 @@ void parseTranslateBrowsePathsToNodeIdsResponse(proto_tree *tree, tvbuff_t *tvb, parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArrayComplex(subtree, tvb, pOffset, "Results", "BrowsePathResult", parseBrowsePathResult); + parseArrayComplex(subtree, tvb, pOffset, "Results", "BrowsePathResult", parseBrowsePathResult, ett_opcua_array_BrowsePathResult); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo); + parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_RegisterNodesRequest = -1; void parseRegisterNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "RegisterNodesRequest"); @@ -436,10 +561,9 @@ void parseRegisterNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); /* Array length field ignored: NoOfNodesToRegister */ - parseArrayComplex(subtree, tvb, pOffset, "NodesToRegister", "NodeId", parseNodeId); + parseArrayComplex(subtree, tvb, pOffset, "NodesToRegister", "NodeId", parseNodeId, ett_opcua_array_NodeId); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_RegisterNodesResponse = -1; void parseRegisterNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "RegisterNodesResponse"); @@ -447,10 +571,9 @@ void parseRegisterNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfRegisteredNodeIds */ - parseArrayComplex(subtree, tvb, pOffset, "RegisteredNodeIds", "NodeId", parseNodeId); + parseArrayComplex(subtree, tvb, pOffset, "RegisteredNodeIds", "NodeId", parseNodeId, ett_opcua_array_NodeId); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_UnregisterNodesRequest = -1; void parseUnregisterNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "UnregisterNodesRequest"); @@ -458,10 +581,9 @@ void parseUnregisterNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); /* Array length field ignored: NoOfNodesToUnregister */ - parseArrayComplex(subtree, tvb, pOffset, "NodesToUnregister", "NodeId", parseNodeId); + parseArrayComplex(subtree, tvb, pOffset, "NodesToUnregister", "NodeId", parseNodeId, ett_opcua_array_NodeId); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_UnregisterNodesResponse = -1; void parseUnregisterNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "UnregisterNodesResponse"); @@ -470,7 +592,6 @@ void parseUnregisterNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_QueryFirstRequest = -1; void parseQueryFirstRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "QueryFirstRequest"); @@ -479,13 +600,12 @@ void parseQueryFirstRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); parseViewDescription(subtree, tvb, pOffset, "View"); /* Array length field ignored: NoOfNodeTypes */ - parseArrayComplex(subtree, tvb, pOffset, "NodeTypes", "NodeTypeDescription", parseNodeTypeDescription); + parseArrayComplex(subtree, tvb, pOffset, "NodeTypes", "NodeTypeDescription", parseNodeTypeDescription, ett_opcua_array_NodeTypeDescription); parseContentFilter(subtree, tvb, pOffset, "Filter"); parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxDataSetsToReturn); parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxReferencesToReturn); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_QueryFirstResponse = -1; void parseQueryFirstResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "QueryFirstResponse"); @@ -493,16 +613,15 @@ void parseQueryFirstResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfQueryDataSets */ - parseArrayComplex(subtree, tvb, pOffset, "QueryDataSets", "QueryDataSet", parseQueryDataSet); + parseArrayComplex(subtree, tvb, pOffset, "QueryDataSets", "QueryDataSet", parseQueryDataSet, ett_opcua_array_QueryDataSet); parseByteString(subtree, tvb, pOffset, hf_opcua_ContinuationPoint); /* Array length field ignored: NoOfParsingResults */ - parseArrayComplex(subtree, tvb, pOffset, "ParsingResults", "ParsingResult", parseParsingResult); + parseArrayComplex(subtree, tvb, pOffset, "ParsingResults", "ParsingResult", parseParsingResult, ett_opcua_array_ParsingResult); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo); + parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); parseContentFilterResult(subtree, tvb, pOffset, "FilterResult"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_QueryNextRequest = -1; void parseQueryNextRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "QueryNextRequest"); @@ -513,7 +632,6 @@ void parseQueryNextRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseByteString(subtree, tvb, pOffset, hf_opcua_ContinuationPoint); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_QueryNextResponse = -1; void parseQueryNextResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "QueryNextResponse"); @@ -521,11 +639,10 @@ void parseQueryNextResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfQueryDataSets */ - parseArrayComplex(subtree, tvb, pOffset, "QueryDataSets", "QueryDataSet", parseQueryDataSet); + parseArrayComplex(subtree, tvb, pOffset, "QueryDataSets", "QueryDataSet", parseQueryDataSet, ett_opcua_array_QueryDataSet); parseByteString(subtree, tvb, pOffset, hf_opcua_RevisedContinuationPoint); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ReadRequest = -1; void parseReadRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "ReadRequest"); @@ -535,10 +652,9 @@ void parseReadRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseDouble(subtree, tvb, pOffset, hf_opcua_MaxAge); parseTimestampsToReturn(subtree, tvb, pOffset); /* Array length field ignored: NoOfNodesToRead */ - parseArrayComplex(subtree, tvb, pOffset, "NodesToRead", "ReadValueId", parseReadValueId); + parseArrayComplex(subtree, tvb, pOffset, "NodesToRead", "ReadValueId", parseReadValueId, ett_opcua_array_ReadValueId); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ReadResponse = -1; void parseReadResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "ReadResponse"); @@ -546,12 +662,11 @@ void parseReadResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArrayComplex(subtree, tvb, pOffset, "Results", "DataValue", parseDataValue); + parseArrayComplex(subtree, tvb, pOffset, "Results", "DataValue", parseDataValue, ett_opcua_array_DataValue); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo); + parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_HistoryReadRequest = -1; void parseHistoryReadRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "HistoryReadRequest"); @@ -562,10 +677,9 @@ void parseHistoryReadRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseTimestampsToReturn(subtree, tvb, pOffset); parseBoolean(subtree, tvb, pOffset, hf_opcua_ReleaseContinuationPoints); /* Array length field ignored: NoOfNodesToRead */ - parseArrayComplex(subtree, tvb, pOffset, "NodesToRead", "HistoryReadValueId", parseHistoryReadValueId); + parseArrayComplex(subtree, tvb, pOffset, "NodesToRead", "HistoryReadValueId", parseHistoryReadValueId, ett_opcua_array_HistoryReadValueId); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_HistoryReadResponse = -1; void parseHistoryReadResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "HistoryReadResponse"); @@ -573,12 +687,11 @@ void parseHistoryReadResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArrayComplex(subtree, tvb, pOffset, "Results", "HistoryReadResult", parseHistoryReadResult); + parseArrayComplex(subtree, tvb, pOffset, "Results", "HistoryReadResult", parseHistoryReadResult, ett_opcua_array_HistoryReadResult); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo); + parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_WriteRequest = -1; void parseWriteRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "WriteRequest"); @@ -586,10 +699,9 @@ void parseWriteRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); /* Array length field ignored: NoOfNodesToWrite */ - parseArrayComplex(subtree, tvb, pOffset, "NodesToWrite", "WriteValue", parseWriteValue); + parseArrayComplex(subtree, tvb, pOffset, "NodesToWrite", "WriteValue", parseWriteValue, ett_opcua_array_WriteValue); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_WriteResponse = -1; void parseWriteResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "WriteResponse"); @@ -597,12 +709,11 @@ void parseWriteResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode); + parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo); + parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_HistoryUpdateRequest = -1; void parseHistoryUpdateRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "HistoryUpdateRequest"); @@ -610,10 +721,9 @@ void parseHistoryUpdateRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); /* Array length field ignored: NoOfHistoryUpdateDetails */ - parseArrayComplex(subtree, tvb, pOffset, "HistoryUpdateDetails", "ExtensionObject", parseExtensionObject); + parseArrayComplex(subtree, tvb, pOffset, "HistoryUpdateDetails", "ExtensionObject", parseExtensionObject, ett_opcua_array_ExtensionObject); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_HistoryUpdateResponse = -1; void parseHistoryUpdateResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "HistoryUpdateResponse"); @@ -621,12 +731,11 @@ void parseHistoryUpdateResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArrayComplex(subtree, tvb, pOffset, "Results", "HistoryUpdateResult", parseHistoryUpdateResult); + parseArrayComplex(subtree, tvb, pOffset, "Results", "HistoryUpdateResult", parseHistoryUpdateResult, ett_opcua_array_HistoryUpdateResult); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo); + parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_CallRequest = -1; void parseCallRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "CallRequest"); @@ -634,10 +743,9 @@ void parseCallRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); /* Array length field ignored: NoOfMethodsToCall */ - parseArrayComplex(subtree, tvb, pOffset, "MethodsToCall", "CallMethodRequest", parseCallMethodRequest); + parseArrayComplex(subtree, tvb, pOffset, "MethodsToCall", "CallMethodRequest", parseCallMethodRequest, ett_opcua_array_CallMethodRequest); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_CallResponse = -1; void parseCallResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "CallResponse"); @@ -645,12 +753,11 @@ void parseCallResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArrayComplex(subtree, tvb, pOffset, "Results", "CallMethodResult", parseCallMethodResult); + parseArrayComplex(subtree, tvb, pOffset, "Results", "CallMethodResult", parseCallMethodResult, ett_opcua_array_CallMethodResult); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo); + parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_CreateMonitoredItemsRequest = -1; void parseCreateMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "CreateMonitoredItemsRequest"); @@ -660,10 +767,9 @@ void parseCreateMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOf parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId); parseTimestampsToReturn(subtree, tvb, pOffset); /* Array length field ignored: NoOfItemsToCreate */ - parseArrayComplex(subtree, tvb, pOffset, "ItemsToCreate", "MonitoredItemCreateRequest", parseMonitoredItemCreateRequest); + parseArrayComplex(subtree, tvb, pOffset, "ItemsToCreate", "MonitoredItemCreateRequest", parseMonitoredItemCreateRequest, ett_opcua_array_MonitoredItemCreateRequest); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_CreateMonitoredItemsResponse = -1; void parseCreateMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "CreateMonitoredItemsResponse"); @@ -671,12 +777,11 @@ void parseCreateMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pO parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArrayComplex(subtree, tvb, pOffset, "Results", "MonitoredItemCreateResult", parseMonitoredItemCreateResult); + parseArrayComplex(subtree, tvb, pOffset, "Results", "MonitoredItemCreateResult", parseMonitoredItemCreateResult, ett_opcua_array_MonitoredItemCreateResult); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo); + parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ModifyMonitoredItemsRequest = -1; void parseModifyMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "ModifyMonitoredItemsRequest"); @@ -686,10 +791,9 @@ void parseModifyMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOf parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId); parseTimestampsToReturn(subtree, tvb, pOffset); /* Array length field ignored: NoOfItemsToModify */ - parseArrayComplex(subtree, tvb, pOffset, "ItemsToModify", "MonitoredItemModifyRequest", parseMonitoredItemModifyRequest); + parseArrayComplex(subtree, tvb, pOffset, "ItemsToModify", "MonitoredItemModifyRequest", parseMonitoredItemModifyRequest, ett_opcua_array_MonitoredItemModifyRequest); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ModifyMonitoredItemsResponse = -1; void parseModifyMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "ModifyMonitoredItemsResponse"); @@ -697,12 +801,11 @@ void parseModifyMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pO parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArrayComplex(subtree, tvb, pOffset, "Results", "MonitoredItemModifyResult", parseMonitoredItemModifyResult); + parseArrayComplex(subtree, tvb, pOffset, "Results", "MonitoredItemModifyResult", parseMonitoredItemModifyResult, ett_opcua_array_MonitoredItemModifyResult); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo); + parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_SetMonitoringModeRequest = -1; void parseSetMonitoringModeRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "SetMonitoringModeRequest"); @@ -712,10 +815,9 @@ void parseSetMonitoringModeRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffse parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId); parseMonitoringMode(subtree, tvb, pOffset); /* Array length field ignored: NoOfMonitoredItemIds */ - parseArraySimple(subtree, tvb, pOffset, "MonitoredItemIds", "UInt32", hf_opcua_MonitoredItemIds, parseUInt32); + parseArraySimple(subtree, tvb, pOffset, "MonitoredItemIds", "UInt32", hf_opcua_MonitoredItemIds, parseUInt32, ett_opcua_array_UInt32); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_SetMonitoringModeResponse = -1; void parseSetMonitoringModeResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "SetMonitoringModeResponse"); @@ -723,12 +825,11 @@ void parseSetMonitoringModeResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffs parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode); + parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo); + parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_SetTriggeringRequest = -1; void parseSetTriggeringRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "SetTriggeringRequest"); @@ -738,12 +839,11 @@ void parseSetTriggeringRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId); parseUInt32(subtree, tvb, pOffset, hf_opcua_TriggeringItemId); /* Array length field ignored: NoOfLinksToAdd */ - parseArraySimple(subtree, tvb, pOffset, "LinksToAdd", "UInt32", hf_opcua_LinksToAdd, parseUInt32); + parseArraySimple(subtree, tvb, pOffset, "LinksToAdd", "UInt32", hf_opcua_LinksToAdd, parseUInt32, ett_opcua_array_UInt32); /* Array length field ignored: NoOfLinksToRemove */ - parseArraySimple(subtree, tvb, pOffset, "LinksToRemove", "UInt32", hf_opcua_LinksToRemove, parseUInt32); + parseArraySimple(subtree, tvb, pOffset, "LinksToRemove", "UInt32", hf_opcua_LinksToRemove, parseUInt32, ett_opcua_array_UInt32); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_SetTriggeringResponse = -1; void parseSetTriggeringResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "SetTriggeringResponse"); @@ -751,16 +851,15 @@ void parseSetTriggeringResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfAddResults */ - parseArraySimple(subtree, tvb, pOffset, "AddResults", "StatusCode", hf_opcua_AddResults, parseStatusCode); + parseArraySimple(subtree, tvb, pOffset, "AddResults", "StatusCode", hf_opcua_AddResults, parseStatusCode, ett_opcua_array_StatusCode); /* Array length field ignored: NoOfAddDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "AddDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo); + parseArrayComplex(subtree, tvb, pOffset, "AddDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); /* Array length field ignored: NoOfRemoveResults */ - parseArraySimple(subtree, tvb, pOffset, "RemoveResults", "StatusCode", hf_opcua_RemoveResults, parseStatusCode); + parseArraySimple(subtree, tvb, pOffset, "RemoveResults", "StatusCode", hf_opcua_RemoveResults, parseStatusCode, ett_opcua_array_StatusCode); /* Array length field ignored: NoOfRemoveDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "RemoveDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo); + parseArrayComplex(subtree, tvb, pOffset, "RemoveDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_DeleteMonitoredItemsRequest = -1; void parseDeleteMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "DeleteMonitoredItemsRequest"); @@ -769,10 +868,9 @@ void parseDeleteMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOf parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId); /* Array length field ignored: NoOfMonitoredItemIds */ - parseArraySimple(subtree, tvb, pOffset, "MonitoredItemIds", "UInt32", hf_opcua_MonitoredItemIds, parseUInt32); + parseArraySimple(subtree, tvb, pOffset, "MonitoredItemIds", "UInt32", hf_opcua_MonitoredItemIds, parseUInt32, ett_opcua_array_UInt32); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_DeleteMonitoredItemsResponse = -1; void parseDeleteMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "DeleteMonitoredItemsResponse"); @@ -780,12 +878,11 @@ void parseDeleteMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pO parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode); + parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo); + parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_CreateSubscriptionRequest = -1; void parseCreateSubscriptionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "CreateSubscriptionRequest"); @@ -800,7 +897,6 @@ void parseCreateSubscriptionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffs parseByte(subtree, tvb, pOffset, hf_opcua_Priority); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_CreateSubscriptionResponse = -1; void parseCreateSubscriptionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "CreateSubscriptionResponse"); @@ -813,7 +909,6 @@ void parseCreateSubscriptionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOff parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedMaxKeepAliveCount); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ModifySubscriptionRequest = -1; void parseModifySubscriptionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "ModifySubscriptionRequest"); @@ -828,7 +923,6 @@ void parseModifySubscriptionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffs parseByte(subtree, tvb, pOffset, hf_opcua_Priority); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_ModifySubscriptionResponse = -1; void parseModifySubscriptionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "ModifySubscriptionResponse"); @@ -840,7 +934,6 @@ void parseModifySubscriptionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOff parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedMaxKeepAliveCount); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_SetPublishingModeRequest = -1; void parseSetPublishingModeRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "SetPublishingModeRequest"); @@ -849,10 +942,9 @@ void parseSetPublishingModeRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffse parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); parseBoolean(subtree, tvb, pOffset, hf_opcua_PublishingEnabled); /* Array length field ignored: NoOfSubscriptionIds */ - parseArraySimple(subtree, tvb, pOffset, "SubscriptionIds", "UInt32", hf_opcua_SubscriptionIds, parseUInt32); + parseArraySimple(subtree, tvb, pOffset, "SubscriptionIds", "UInt32", hf_opcua_SubscriptionIds, parseUInt32, ett_opcua_array_UInt32); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_SetPublishingModeResponse = -1; void parseSetPublishingModeResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "SetPublishingModeResponse"); @@ -860,12 +952,11 @@ void parseSetPublishingModeResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffs parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode); + parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo); + parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_PublishRequest = -1; void parsePublishRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "PublishRequest"); @@ -873,10 +964,9 @@ void parsePublishRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); /* Array length field ignored: NoOfSubscriptionAcknowledgements */ - parseArrayComplex(subtree, tvb, pOffset, "SubscriptionAcknowledgements", "SubscriptionAcknowledgement", parseSubscriptionAcknowledgement); + parseArrayComplex(subtree, tvb, pOffset, "SubscriptionAcknowledgements", "SubscriptionAcknowledgement", parseSubscriptionAcknowledgement, ett_opcua_array_SubscriptionAcknowledgement); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_PublishResponse = -1; void parsePublishResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "PublishResponse"); @@ -885,16 +975,15 @@ void parsePublishResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId); /* Array length field ignored: NoOfAvailableSequenceNumbers */ - parseArraySimple(subtree, tvb, pOffset, "AvailableSequenceNumbers", "UInt32", hf_opcua_AvailableSequenceNumbers, parseUInt32); + parseArraySimple(subtree, tvb, pOffset, "AvailableSequenceNumbers", "UInt32", hf_opcua_AvailableSequenceNumbers, parseUInt32, ett_opcua_array_UInt32); parseBoolean(subtree, tvb, pOffset, hf_opcua_MoreNotifications); parseNotificationMessage(subtree, tvb, pOffset, "NotificationMessage"); /* Array length field ignored: NoOfResults */ - parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode); + parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo); + parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_RepublishRequest = -1; void parseRepublishRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "RepublishRequest"); @@ -905,7 +994,6 @@ void parseRepublishRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseUInt32(subtree, tvb, pOffset, hf_opcua_RetransmitSequenceNumber); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_RepublishResponse = -1; void parseRepublishResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "RepublishResponse"); @@ -915,7 +1003,6 @@ void parseRepublishResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseNotificationMessage(subtree, tvb, pOffset, "NotificationMessage"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_TransferSubscriptionsRequest = -1; void parseTransferSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "TransferSubscriptionsRequest"); @@ -923,11 +1010,10 @@ void parseTransferSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pO parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); /* Array length field ignored: NoOfSubscriptionIds */ - parseArraySimple(subtree, tvb, pOffset, "SubscriptionIds", "UInt32", hf_opcua_SubscriptionIds, parseUInt32); + parseArraySimple(subtree, tvb, pOffset, "SubscriptionIds", "UInt32", hf_opcua_SubscriptionIds, parseUInt32, ett_opcua_array_UInt32); parseBoolean(subtree, tvb, pOffset, hf_opcua_SendInitialValues); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_TransferSubscriptionsResponse = -1; void parseTransferSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "TransferSubscriptionsResponse"); @@ -935,12 +1021,11 @@ void parseTransferSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, gint *p parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArrayComplex(subtree, tvb, pOffset, "Results", "TransferResult", parseTransferResult); + parseArrayComplex(subtree, tvb, pOffset, "Results", "TransferResult", parseTransferResult, ett_opcua_array_TransferResult); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo); + parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_DeleteSubscriptionsRequest = -1; void parseDeleteSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "DeleteSubscriptionsRequest"); @@ -948,10 +1033,9 @@ void parseDeleteSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOff parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); /* Array length field ignored: NoOfSubscriptionIds */ - parseArraySimple(subtree, tvb, pOffset, "SubscriptionIds", "UInt32", hf_opcua_SubscriptionIds, parseUInt32); + parseArraySimple(subtree, tvb, pOffset, "SubscriptionIds", "UInt32", hf_opcua_SubscriptionIds, parseUInt32, ett_opcua_array_UInt32); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_DeleteSubscriptionsResponse = -1; void parseDeleteSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "DeleteSubscriptionsResponse"); @@ -959,12 +1043,11 @@ void parseDeleteSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOf parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); /* Array length field ignored: NoOfResults */ - parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode); + parseArraySimple(subtree, tvb, pOffset, "Results", "StatusCode", hf_opcua_Results, parseStatusCode, ett_opcua_array_StatusCode); /* Array length field ignored: NoOfDiagnosticInfos */ - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo); + parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_TestStackRequest = -1; void parseTestStackRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "TestStackRequest"); @@ -976,7 +1059,6 @@ void parseTestStackRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseVariant(subtree, tvb, pOffset, "Input"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_TestStackResponse = -1; void parseTestStackResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "TestStackResponse"); @@ -986,7 +1068,6 @@ void parseTestStackResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseVariant(subtree, tvb, pOffset, "Output"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_TestStackExRequest = -1; void parseTestStackExRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "TestStackExRequest"); @@ -998,7 +1079,6 @@ void parseTestStackExRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseCompositeTestType(subtree, tvb, pOffset, "Input"); proto_item_set_end(ti, tvb, *pOffset); } -gint ett_opcua_TestStackExResponse = -1; void parseTestStackExResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "TestStackExResponse"); @@ -1013,84 +1093,163 @@ void parseTestStackExResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) static gint *ett[] = { &ett_opcua_ServiceFault, + &ett_opcua_array_ServiceFault, &ett_opcua_FindServersRequest, + &ett_opcua_array_FindServersRequest, &ett_opcua_FindServersResponse, + &ett_opcua_array_FindServersResponse, &ett_opcua_GetEndpointsRequest, + &ett_opcua_array_GetEndpointsRequest, &ett_opcua_GetEndpointsResponse, + &ett_opcua_array_GetEndpointsResponse, &ett_opcua_RegisterServerRequest, + &ett_opcua_array_RegisterServerRequest, &ett_opcua_RegisterServerResponse, + &ett_opcua_array_RegisterServerResponse, &ett_opcua_OpenSecureChannelRequest, + &ett_opcua_array_OpenSecureChannelRequest, &ett_opcua_OpenSecureChannelResponse, + &ett_opcua_array_OpenSecureChannelResponse, &ett_opcua_CloseSecureChannelRequest, + &ett_opcua_array_CloseSecureChannelRequest, &ett_opcua_CloseSecureChannelResponse, + &ett_opcua_array_CloseSecureChannelResponse, &ett_opcua_CreateSessionRequest, + &ett_opcua_array_CreateSessionRequest, &ett_opcua_CreateSessionResponse, + &ett_opcua_array_CreateSessionResponse, &ett_opcua_ActivateSessionRequest, + &ett_opcua_array_ActivateSessionRequest, &ett_opcua_ActivateSessionResponse, + &ett_opcua_array_ActivateSessionResponse, &ett_opcua_CloseSessionRequest, + &ett_opcua_array_CloseSessionRequest, &ett_opcua_CloseSessionResponse, + &ett_opcua_array_CloseSessionResponse, &ett_opcua_CancelRequest, + &ett_opcua_array_CancelRequest, &ett_opcua_CancelResponse, + &ett_opcua_array_CancelResponse, &ett_opcua_AddNodesRequest, + &ett_opcua_array_AddNodesRequest, &ett_opcua_AddNodesResponse, + &ett_opcua_array_AddNodesResponse, &ett_opcua_AddReferencesRequest, + &ett_opcua_array_AddReferencesRequest, &ett_opcua_AddReferencesResponse, + &ett_opcua_array_AddReferencesResponse, &ett_opcua_DeleteNodesRequest, + &ett_opcua_array_DeleteNodesRequest, &ett_opcua_DeleteNodesResponse, + &ett_opcua_array_DeleteNodesResponse, &ett_opcua_DeleteReferencesRequest, + &ett_opcua_array_DeleteReferencesRequest, &ett_opcua_DeleteReferencesResponse, + &ett_opcua_array_DeleteReferencesResponse, &ett_opcua_BrowseRequest, + &ett_opcua_array_BrowseRequest, &ett_opcua_BrowseResponse, + &ett_opcua_array_BrowseResponse, &ett_opcua_BrowseNextRequest, + &ett_opcua_array_BrowseNextRequest, &ett_opcua_BrowseNextResponse, + &ett_opcua_array_BrowseNextResponse, &ett_opcua_TranslateBrowsePathsToNodeIdsRequest, + &ett_opcua_array_TranslateBrowsePathsToNodeIdsRequest, &ett_opcua_TranslateBrowsePathsToNodeIdsResponse, + &ett_opcua_array_TranslateBrowsePathsToNodeIdsResponse, &ett_opcua_RegisterNodesRequest, + &ett_opcua_array_RegisterNodesRequest, &ett_opcua_RegisterNodesResponse, + &ett_opcua_array_RegisterNodesResponse, &ett_opcua_UnregisterNodesRequest, + &ett_opcua_array_UnregisterNodesRequest, &ett_opcua_UnregisterNodesResponse, + &ett_opcua_array_UnregisterNodesResponse, &ett_opcua_QueryFirstRequest, + &ett_opcua_array_QueryFirstRequest, &ett_opcua_QueryFirstResponse, + &ett_opcua_array_QueryFirstResponse, &ett_opcua_QueryNextRequest, + &ett_opcua_array_QueryNextRequest, &ett_opcua_QueryNextResponse, + &ett_opcua_array_QueryNextResponse, &ett_opcua_ReadRequest, + &ett_opcua_array_ReadRequest, &ett_opcua_ReadResponse, + &ett_opcua_array_ReadResponse, &ett_opcua_HistoryReadRequest, + &ett_opcua_array_HistoryReadRequest, &ett_opcua_HistoryReadResponse, + &ett_opcua_array_HistoryReadResponse, &ett_opcua_WriteRequest, + &ett_opcua_array_WriteRequest, &ett_opcua_WriteResponse, + &ett_opcua_array_WriteResponse, &ett_opcua_HistoryUpdateRequest, + &ett_opcua_array_HistoryUpdateRequest, &ett_opcua_HistoryUpdateResponse, + &ett_opcua_array_HistoryUpdateResponse, &ett_opcua_CallRequest, + &ett_opcua_array_CallRequest, &ett_opcua_CallResponse, + &ett_opcua_array_CallResponse, &ett_opcua_CreateMonitoredItemsRequest, + &ett_opcua_array_CreateMonitoredItemsRequest, &ett_opcua_CreateMonitoredItemsResponse, + &ett_opcua_array_CreateMonitoredItemsResponse, &ett_opcua_ModifyMonitoredItemsRequest, + &ett_opcua_array_ModifyMonitoredItemsRequest, &ett_opcua_ModifyMonitoredItemsResponse, + &ett_opcua_array_ModifyMonitoredItemsResponse, &ett_opcua_SetMonitoringModeRequest, + &ett_opcua_array_SetMonitoringModeRequest, &ett_opcua_SetMonitoringModeResponse, + &ett_opcua_array_SetMonitoringModeResponse, &ett_opcua_SetTriggeringRequest, + &ett_opcua_array_SetTriggeringRequest, &ett_opcua_SetTriggeringResponse, + &ett_opcua_array_SetTriggeringResponse, &ett_opcua_DeleteMonitoredItemsRequest, + &ett_opcua_array_DeleteMonitoredItemsRequest, &ett_opcua_DeleteMonitoredItemsResponse, + &ett_opcua_array_DeleteMonitoredItemsResponse, &ett_opcua_CreateSubscriptionRequest, + &ett_opcua_array_CreateSubscriptionRequest, &ett_opcua_CreateSubscriptionResponse, + &ett_opcua_array_CreateSubscriptionResponse, &ett_opcua_ModifySubscriptionRequest, + &ett_opcua_array_ModifySubscriptionRequest, &ett_opcua_ModifySubscriptionResponse, + &ett_opcua_array_ModifySubscriptionResponse, &ett_opcua_SetPublishingModeRequest, + &ett_opcua_array_SetPublishingModeRequest, &ett_opcua_SetPublishingModeResponse, + &ett_opcua_array_SetPublishingModeResponse, &ett_opcua_PublishRequest, + &ett_opcua_array_PublishRequest, &ett_opcua_PublishResponse, + &ett_opcua_array_PublishResponse, &ett_opcua_RepublishRequest, + &ett_opcua_array_RepublishRequest, &ett_opcua_RepublishResponse, + &ett_opcua_array_RepublishResponse, &ett_opcua_TransferSubscriptionsRequest, + &ett_opcua_array_TransferSubscriptionsRequest, &ett_opcua_TransferSubscriptionsResponse, + &ett_opcua_array_TransferSubscriptionsResponse, &ett_opcua_DeleteSubscriptionsRequest, + &ett_opcua_array_DeleteSubscriptionsRequest, &ett_opcua_DeleteSubscriptionsResponse, + &ett_opcua_array_DeleteSubscriptionsResponse, &ett_opcua_TestStackRequest, + &ett_opcua_array_TestStackRequest, &ett_opcua_TestStackResponse, + &ett_opcua_array_TestStackResponse, &ett_opcua_TestStackExRequest, + &ett_opcua_array_TestStackExRequest, &ett_opcua_TestStackExResponse, + &ett_opcua_array_TestStackExResponse, }; void registerServiceTypes(void) diff --git a/plugins/opcua/opcua_serviceparser.h b/plugins/opcua/opcua_serviceparser.h index 6025cf7d73..44ff4ee2c8 100644 --- a/plugins/opcua/opcua_serviceparser.h +++ b/plugins/opcua/opcua_serviceparser.h @@ -1,5 +1,5 @@ /****************************************************************************** -** Copyright (C) 2006-2009 ascolab GmbH. All Rights Reserved. +** Copyright (C) 2006-2014 ascolab GmbH. All Rights Reserved. ** Web: http://www.ascolab.com ** ** This program is free software; you can redistribute it and/or @@ -14,7 +14,7 @@ ** ** Description: OpcUa Service Type Parser ** -** This file was autogenerated on 12.02.2013. +** This file was autogenerated on 17.06.2014. ** DON'T MODIFY THIS FILE! ** XXX - well, except that you may have to. See the README. ** @@ -23,6 +23,277 @@ #include <glib.h> #include <epan/packet.h> +extern gint ett_opcua_Node; +extern gint ett_opcua_array_Node; +extern gint ett_opcua_InstanceNode; +extern gint ett_opcua_array_InstanceNode; +extern gint ett_opcua_TypeNode; +extern gint ett_opcua_array_TypeNode; +extern gint ett_opcua_ObjectNode; +extern gint ett_opcua_array_ObjectNode; +extern gint ett_opcua_ObjectTypeNode; +extern gint ett_opcua_array_ObjectTypeNode; +extern gint ett_opcua_VariableNode; +extern gint ett_opcua_array_VariableNode; +extern gint ett_opcua_VariableTypeNode; +extern gint ett_opcua_array_VariableTypeNode; +extern gint ett_opcua_ReferenceTypeNode; +extern gint ett_opcua_array_ReferenceTypeNode; +extern gint ett_opcua_MethodNode; +extern gint ett_opcua_array_MethodNode; +extern gint ett_opcua_ViewNode; +extern gint ett_opcua_array_ViewNode; +extern gint ett_opcua_DataTypeNode; +extern gint ett_opcua_array_DataTypeNode; +extern gint ett_opcua_ReferenceNode; +extern gint ett_opcua_array_ReferenceNode; +extern gint ett_opcua_Argument; +extern gint ett_opcua_array_Argument; +extern gint ett_opcua_EnumValueType; +extern gint ett_opcua_array_EnumValueType; +extern gint ett_opcua_TimeZoneDataType; +extern gint ett_opcua_array_TimeZoneDataType; +extern gint ett_opcua_ApplicationDescription; +extern gint ett_opcua_array_ApplicationDescription; +extern gint ett_opcua_RequestHeader; +extern gint ett_opcua_array_RequestHeader; +extern gint ett_opcua_ResponseHeader; +extern gint ett_opcua_array_ResponseHeader; +extern gint ett_opcua_UserTokenPolicy; +extern gint ett_opcua_array_UserTokenPolicy; +extern gint ett_opcua_EndpointDescription; +extern gint ett_opcua_array_EndpointDescription; +extern gint ett_opcua_RegisteredServer; +extern gint ett_opcua_array_RegisteredServer; +extern gint ett_opcua_ChannelSecurityToken; +extern gint ett_opcua_array_ChannelSecurityToken; +extern gint ett_opcua_SignedSoftwareCertificate; +extern gint ett_opcua_array_SignedSoftwareCertificate; +extern gint ett_opcua_SignatureData; +extern gint ett_opcua_array_SignatureData; +extern gint ett_opcua_UserIdentityToken; +extern gint ett_opcua_array_UserIdentityToken; +extern gint ett_opcua_AnonymousIdentityToken; +extern gint ett_opcua_array_AnonymousIdentityToken; +extern gint ett_opcua_UserNameIdentityToken; +extern gint ett_opcua_array_UserNameIdentityToken; +extern gint ett_opcua_X509IdentityToken; +extern gint ett_opcua_array_X509IdentityToken; +extern gint ett_opcua_IssuedIdentityToken; +extern gint ett_opcua_array_IssuedIdentityToken; +extern gint ett_opcua_NodeAttributes; +extern gint ett_opcua_array_NodeAttributes; +extern gint ett_opcua_ObjectAttributes; +extern gint ett_opcua_array_ObjectAttributes; +extern gint ett_opcua_VariableAttributes; +extern gint ett_opcua_array_VariableAttributes; +extern gint ett_opcua_MethodAttributes; +extern gint ett_opcua_array_MethodAttributes; +extern gint ett_opcua_ObjectTypeAttributes; +extern gint ett_opcua_array_ObjectTypeAttributes; +extern gint ett_opcua_VariableTypeAttributes; +extern gint ett_opcua_array_VariableTypeAttributes; +extern gint ett_opcua_ReferenceTypeAttributes; +extern gint ett_opcua_array_ReferenceTypeAttributes; +extern gint ett_opcua_DataTypeAttributes; +extern gint ett_opcua_array_DataTypeAttributes; +extern gint ett_opcua_ViewAttributes; +extern gint ett_opcua_array_ViewAttributes; +extern gint ett_opcua_AddNodesItem; +extern gint ett_opcua_array_AddNodesItem; +extern gint ett_opcua_AddNodesResult; +extern gint ett_opcua_array_AddNodesResult; +extern gint ett_opcua_AddReferencesItem; +extern gint ett_opcua_array_AddReferencesItem; +extern gint ett_opcua_DeleteNodesItem; +extern gint ett_opcua_array_DeleteNodesItem; +extern gint ett_opcua_DeleteReferencesItem; +extern gint ett_opcua_array_DeleteReferencesItem; +extern gint ett_opcua_ViewDescription; +extern gint ett_opcua_array_ViewDescription; +extern gint ett_opcua_BrowseDescription; +extern gint ett_opcua_array_BrowseDescription; +extern gint ett_opcua_ReferenceDescription; +extern gint ett_opcua_array_ReferenceDescription; +extern gint ett_opcua_BrowseResult; +extern gint ett_opcua_array_BrowseResult; +extern gint ett_opcua_RelativePathElement; +extern gint ett_opcua_array_RelativePathElement; +extern gint ett_opcua_RelativePath; +extern gint ett_opcua_array_RelativePath; +extern gint ett_opcua_BrowsePath; +extern gint ett_opcua_array_BrowsePath; +extern gint ett_opcua_BrowsePathTarget; +extern gint ett_opcua_array_BrowsePathTarget; +extern gint ett_opcua_BrowsePathResult; +extern gint ett_opcua_array_BrowsePathResult; +extern gint ett_opcua_EndpointConfiguration; +extern gint ett_opcua_array_EndpointConfiguration; +extern gint ett_opcua_SupportedProfile; +extern gint ett_opcua_array_SupportedProfile; +extern gint ett_opcua_SoftwareCertificate; +extern gint ett_opcua_array_SoftwareCertificate; +extern gint ett_opcua_QueryDataDescription; +extern gint ett_opcua_array_QueryDataDescription; +extern gint ett_opcua_NodeTypeDescription; +extern gint ett_opcua_array_NodeTypeDescription; +extern gint ett_opcua_QueryDataSet; +extern gint ett_opcua_array_QueryDataSet; +extern gint ett_opcua_NodeReference; +extern gint ett_opcua_array_NodeReference; +extern gint ett_opcua_ContentFilterElement; +extern gint ett_opcua_array_ContentFilterElement; +extern gint ett_opcua_ContentFilter; +extern gint ett_opcua_array_ContentFilter; +extern gint ett_opcua_ElementOperand; +extern gint ett_opcua_array_ElementOperand; +extern gint ett_opcua_LiteralOperand; +extern gint ett_opcua_array_LiteralOperand; +extern gint ett_opcua_AttributeOperand; +extern gint ett_opcua_array_AttributeOperand; +extern gint ett_opcua_SimpleAttributeOperand; +extern gint ett_opcua_array_SimpleAttributeOperand; +extern gint ett_opcua_ContentFilterElementResult; +extern gint ett_opcua_array_ContentFilterElementResult; +extern gint ett_opcua_ContentFilterResult; +extern gint ett_opcua_array_ContentFilterResult; +extern gint ett_opcua_ParsingResult; +extern gint ett_opcua_array_ParsingResult; +extern gint ett_opcua_ReadValueId; +extern gint ett_opcua_array_ReadValueId; +extern gint ett_opcua_HistoryReadValueId; +extern gint ett_opcua_array_HistoryReadValueId; +extern gint ett_opcua_HistoryReadResult; +extern gint ett_opcua_array_HistoryReadResult; +extern gint ett_opcua_ReadEventDetails; +extern gint ett_opcua_array_ReadEventDetails; +extern gint ett_opcua_ReadRawModifiedDetails; +extern gint ett_opcua_array_ReadRawModifiedDetails; +extern gint ett_opcua_ReadProcessedDetails; +extern gint ett_opcua_array_ReadProcessedDetails; +extern gint ett_opcua_ReadAtTimeDetails; +extern gint ett_opcua_array_ReadAtTimeDetails; +extern gint ett_opcua_HistoryData; +extern gint ett_opcua_array_HistoryData; +extern gint ett_opcua_ModificationInfo; +extern gint ett_opcua_array_ModificationInfo; +extern gint ett_opcua_HistoryModifiedData; +extern gint ett_opcua_array_HistoryModifiedData; +extern gint ett_opcua_HistoryEvent; +extern gint ett_opcua_array_HistoryEvent; +extern gint ett_opcua_WriteValue; +extern gint ett_opcua_array_WriteValue; +extern gint ett_opcua_HistoryUpdateDetails; +extern gint ett_opcua_array_HistoryUpdateDetails; +extern gint ett_opcua_UpdateDataDetails; +extern gint ett_opcua_array_UpdateDataDetails; +extern gint ett_opcua_UpdateStructureDataDetails; +extern gint ett_opcua_array_UpdateStructureDataDetails; +extern gint ett_opcua_UpdateEventDetails; +extern gint ett_opcua_array_UpdateEventDetails; +extern gint ett_opcua_DeleteRawModifiedDetails; +extern gint ett_opcua_array_DeleteRawModifiedDetails; +extern gint ett_opcua_DeleteAtTimeDetails; +extern gint ett_opcua_array_DeleteAtTimeDetails; +extern gint ett_opcua_DeleteEventDetails; +extern gint ett_opcua_array_DeleteEventDetails; +extern gint ett_opcua_HistoryUpdateResult; +extern gint ett_opcua_array_HistoryUpdateResult; +extern gint ett_opcua_CallMethodRequest; +extern gint ett_opcua_array_CallMethodRequest; +extern gint ett_opcua_CallMethodResult; +extern gint ett_opcua_array_CallMethodResult; +extern gint ett_opcua_DataChangeFilter; +extern gint ett_opcua_array_DataChangeFilter; +extern gint ett_opcua_EventFilter; +extern gint ett_opcua_array_EventFilter; +extern gint ett_opcua_AggregateConfiguration; +extern gint ett_opcua_array_AggregateConfiguration; +extern gint ett_opcua_AggregateFilter; +extern gint ett_opcua_array_AggregateFilter; +extern gint ett_opcua_EventFilterResult; +extern gint ett_opcua_array_EventFilterResult; +extern gint ett_opcua_AggregateFilterResult; +extern gint ett_opcua_array_AggregateFilterResult; +extern gint ett_opcua_MonitoringParameters; +extern gint ett_opcua_array_MonitoringParameters; +extern gint ett_opcua_MonitoredItemCreateRequest; +extern gint ett_opcua_array_MonitoredItemCreateRequest; +extern gint ett_opcua_MonitoredItemCreateResult; +extern gint ett_opcua_array_MonitoredItemCreateResult; +extern gint ett_opcua_MonitoredItemModifyRequest; +extern gint ett_opcua_array_MonitoredItemModifyRequest; +extern gint ett_opcua_MonitoredItemModifyResult; +extern gint ett_opcua_array_MonitoredItemModifyResult; +extern gint ett_opcua_NotificationMessage; +extern gint ett_opcua_array_NotificationMessage; +extern gint ett_opcua_DataChangeNotification; +extern gint ett_opcua_array_DataChangeNotification; +extern gint ett_opcua_MonitoredItemNotification; +extern gint ett_opcua_array_MonitoredItemNotification; +extern gint ett_opcua_EventNotificationList; +extern gint ett_opcua_array_EventNotificationList; +extern gint ett_opcua_EventFieldList; +extern gint ett_opcua_array_EventFieldList; +extern gint ett_opcua_HistoryEventFieldList; +extern gint ett_opcua_array_HistoryEventFieldList; +extern gint ett_opcua_StatusChangeNotification; +extern gint ett_opcua_array_StatusChangeNotification; +extern gint ett_opcua_SubscriptionAcknowledgement; +extern gint ett_opcua_array_SubscriptionAcknowledgement; +extern gint ett_opcua_TransferResult; +extern gint ett_opcua_array_TransferResult; +extern gint ett_opcua_ScalarTestType; +extern gint ett_opcua_array_ScalarTestType; +extern gint ett_opcua_ArrayTestType; +extern gint ett_opcua_array_ArrayTestType; +extern gint ett_opcua_CompositeTestType; +extern gint ett_opcua_array_CompositeTestType; +extern gint ett_opcua_BuildInfo; +extern gint ett_opcua_array_BuildInfo; +extern gint ett_opcua_RedundantServerDataType; +extern gint ett_opcua_array_RedundantServerDataType; +extern gint ett_opcua_EndpointUrlListDataType; +extern gint ett_opcua_array_EndpointUrlListDataType; +extern gint ett_opcua_NetworkGroupDataType; +extern gint ett_opcua_array_NetworkGroupDataType; +extern gint ett_opcua_SamplingIntervalDiagnosticsDataType; +extern gint ett_opcua_array_SamplingIntervalDiagnosticsDataType; +extern gint ett_opcua_ServerDiagnosticsSummaryDataType; +extern gint ett_opcua_array_ServerDiagnosticsSummaryDataType; +extern gint ett_opcua_ServerStatusDataType; +extern gint ett_opcua_array_ServerStatusDataType; +extern gint ett_opcua_SessionDiagnosticsDataType; +extern gint ett_opcua_array_SessionDiagnosticsDataType; +extern gint ett_opcua_SessionSecurityDiagnosticsDataType; +extern gint ett_opcua_array_SessionSecurityDiagnosticsDataType; +extern gint ett_opcua_ServiceCounterDataType; +extern gint ett_opcua_array_ServiceCounterDataType; +extern gint ett_opcua_StatusResult; +extern gint ett_opcua_array_StatusResult; +extern gint ett_opcua_SubscriptionDiagnosticsDataType; +extern gint ett_opcua_array_SubscriptionDiagnosticsDataType; +extern gint ett_opcua_ModelChangeStructureDataType; +extern gint ett_opcua_array_ModelChangeStructureDataType; +extern gint ett_opcua_SemanticChangeStructureDataType; +extern gint ett_opcua_array_SemanticChangeStructureDataType; +extern gint ett_opcua_Range; +extern gint ett_opcua_array_Range; +extern gint ett_opcua_EUInformation; +extern gint ett_opcua_array_EUInformation; +extern gint ett_opcua_ComplexNumberType; +extern gint ett_opcua_array_ComplexNumberType; +extern gint ett_opcua_DoubleComplexNumberType; +extern gint ett_opcua_array_DoubleComplexNumberType; +extern gint ett_opcua_AxisInformation; +extern gint ett_opcua_array_AxisInformation; +extern gint ett_opcua_XVType; +extern gint ett_opcua_array_XVType; +extern gint ett_opcua_ProgramDiagnosticDataType; +extern gint ett_opcua_array_ProgramDiagnosticDataType; +extern gint ett_opcua_Annotation; +extern gint ett_opcua_array_Annotation; + void parseServiceFault(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void parseFindServersRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void parseFindServersResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); diff --git a/plugins/opcua/opcua_simpletypes.c b/plugins/opcua/opcua_simpletypes.c index 24600f5223..d74dc31541 100644 --- a/plugins/opcua/opcua_simpletypes.c +++ b/plugins/opcua/opcua_simpletypes.c @@ -266,7 +266,6 @@ static const value_string g_VariantTypes[] = { #define VARIANT_ARRAYMASK 0x80 /* trees */ -static gint ett_opcua_array = -1; static gint ett_opcua_diagnosticinfo = -1; static gint ett_opcua_diagnosticinfo_encodingmask = -1; static gint ett_opcua_nodeid = -1; @@ -282,9 +281,33 @@ static gint ett_opcua_extensionobject = -1; static gint ett_opcua_extensionobject_encodingmask = -1; static gint ett_opcua_statuscode = -1; static gint ett_opcua_statuscode_info = -1; +gint ett_opcua_array_Boolean = -1; +gint ett_opcua_array_SByte = -1; +gint ett_opcua_array_Byte = -1; +gint ett_opcua_array_Int16 = -1; +gint ett_opcua_array_UInt16 = -1; +gint ett_opcua_array_Int32 = -1; +gint ett_opcua_array_UInt32 = -1; +gint ett_opcua_array_Int64 = -1; +gint ett_opcua_array_UInt64 = -1; +gint ett_opcua_array_Float = -1; +gint ett_opcua_array_Double = -1; +gint ett_opcua_array_String = -1; +gint ett_opcua_array_DateTime = -1; +gint ett_opcua_array_Guid = -1; +gint ett_opcua_array_ByteString = -1; +gint ett_opcua_array_XmlElement = -1; +gint ett_opcua_array_NodeId = -1; +gint ett_opcua_array_ExpandedNodeId = -1; +gint ett_opcua_array_StatusCode = -1; +gint ett_opcua_array_DiagnosticInfo = -1; +gint ett_opcua_array_QualifiedName = -1; +gint ett_opcua_array_LocalizedText = -1; +gint ett_opcua_array_ExtensionObject = -1; +gint ett_opcua_array_DataValue = -1; +gint ett_opcua_array_Variant = -1; static gint *ett[] = { - &ett_opcua_array, &ett_opcua_diagnosticinfo, &ett_opcua_diagnosticinfo_encodingmask, &ett_opcua_nodeid, @@ -299,7 +322,32 @@ static gint *ett[] = &ett_opcua_extensionobject, &ett_opcua_extensionobject_encodingmask, &ett_opcua_statuscode, - &ett_opcua_statuscode_info + &ett_opcua_statuscode_info, + &ett_opcua_array_Boolean, + &ett_opcua_array_SByte, + &ett_opcua_array_Byte, + &ett_opcua_array_Int16, + &ett_opcua_array_UInt16, + &ett_opcua_array_Int32, + &ett_opcua_array_UInt32, + &ett_opcua_array_Int64, + &ett_opcua_array_UInt64, + &ett_opcua_array_Float, + &ett_opcua_array_Double, + &ett_opcua_array_String, + &ett_opcua_array_DateTime, + &ett_opcua_array_Guid, + &ett_opcua_array_ByteString, + &ett_opcua_array_XmlElement, + &ett_opcua_array_NodeId, + &ett_opcua_array_ExpandedNodeId, + &ett_opcua_array_StatusCode, + &ett_opcua_array_DiagnosticInfo, + &ett_opcua_array_QualifiedName, + &ett_opcua_array_LocalizedText, + &ett_opcua_array_ExtensionObject, + &ett_opcua_array_DataValue, + &ett_opcua_array_Variant }; void registerSimpleTypes(int proto) @@ -767,31 +815,31 @@ void parseVariant(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *sz switch(EncodingMask & 0x3f) { case OpcUaType_Null: break; - case OpcUaType_Boolean: parseArraySimple(subtree, tvb, &iOffset, "Boolean", "Boolean", hf_opcua_Boolean, parseBoolean); break; - case OpcUaType_SByte: parseArraySimple(subtree, tvb, &iOffset, "SByte", "SByte", hf_opcua_SByte, parseSByte); break; - case OpcUaType_Byte: parseArraySimple(subtree, tvb, &iOffset, "Byte", "Byte", hf_opcua_Byte, parseByte); break; - case OpcUaType_Int16: parseArraySimple(subtree, tvb, &iOffset, "Int16", "Int16", hf_opcua_Int16, parseInt16); break; - case OpcUaType_UInt16: parseArraySimple(subtree, tvb, &iOffset, "UInt16", "UInt16", hf_opcua_UInt16, parseUInt16); break; - case OpcUaType_Int32: parseArraySimple(subtree, tvb, &iOffset, "Int32", "Int32", hf_opcua_Int32, parseInt32); break; - case OpcUaType_UInt32: parseArraySimple(subtree, tvb, &iOffset, "UInt32", "UInt32", hf_opcua_UInt32, parseUInt32); break; - case OpcUaType_Int64: parseArraySimple(subtree, tvb, &iOffset, "Int64", "Int64", hf_opcua_Int64, parseInt64); break; - case OpcUaType_UInt64: parseArraySimple(subtree, tvb, &iOffset, "UInt64", "UInt64", hf_opcua_UInt64, parseUInt64); break; - case OpcUaType_Float: parseArraySimple(subtree, tvb, &iOffset, "Float", "Float", hf_opcua_Float, parseFloat); break; - case OpcUaType_Double: parseArraySimple(subtree, tvb, &iOffset, "Double", "Double", hf_opcua_Double, parseDouble); break; - case OpcUaType_String: parseArraySimple(subtree, tvb, &iOffset, "String", "String", hf_opcua_String, parseString); break; - case OpcUaType_DateTime: parseArraySimple(subtree, tvb, &iOffset, "DateTime", "DateTime", hf_opcua_DateTime, parseDateTime); break; - case OpcUaType_Guid: parseArraySimple(subtree, tvb, &iOffset, "Guid", "Guid", hf_opcua_Guid, parseGuid); break; - case OpcUaType_ByteString: parseArraySimple(subtree, tvb, &iOffset, "ByteString", "ByteString", hf_opcua_ByteString, parseByteString); break; - case OpcUaType_XmlElement: parseArraySimple(subtree, tvb, &iOffset, "XmlElement", "XmlElement", hf_opcua_XmlElement, parseXmlElement); break; - case OpcUaType_NodeId: parseArrayComplex(subtree, tvb, &iOffset, "NodeId", "NodeId", parseNodeId); break; - case OpcUaType_ExpandedNodeId: parseArrayComplex(subtree, tvb, &iOffset, "ExpandedNodeId", "ExpandedNodeId", parseExpandedNodeId); break; - case OpcUaType_StatusCode: parseArraySimple(subtree, tvb, &iOffset, "StatusCode", "StatusCode", hf_opcua_StatusCode, parseStatusCode); break; - case OpcUaType_DiagnosticInfo: parseArrayComplex(subtree, tvb, &iOffset, "DiagnosticInfo", "DiagnosticInfo", parseDiagnosticInfo); break; - case OpcUaType_QualifiedName: parseArrayComplex(subtree, tvb, &iOffset, "QualifiedName", "QualifiedName", parseQualifiedName); break; - case OpcUaType_LocalizedText: parseArrayComplex(subtree, tvb, &iOffset, "LocalizedText", "LocalizedText", parseLocalizedText); break; - case OpcUaType_ExtensionObject: parseArrayComplex(subtree, tvb, &iOffset, "ExtensionObject", "ExtensionObject", parseExtensionObject); break; - case OpcUaType_DataValue: parseArrayComplex(subtree, tvb, &iOffset, "DataValue", "DataValue", parseDataValue); break; - case OpcUaType_Variant: parseArrayComplex(subtree, tvb, &iOffset, "Variant", "Variant", parseVariant); break; + case OpcUaType_Boolean: parseArraySimple(subtree, tvb, &iOffset, "Boolean", "Boolean", hf_opcua_Boolean, parseBoolean, ett_opcua_array_Boolean); break; + case OpcUaType_SByte: parseArraySimple(subtree, tvb, &iOffset, "SByte", "SByte", hf_opcua_SByte, parseSByte, ett_opcua_array_SByte); break; + case OpcUaType_Byte: parseArraySimple(subtree, tvb, &iOffset, "Byte", "Byte", hf_opcua_Byte, parseByte, ett_opcua_array_Byte); break; + case OpcUaType_Int16: parseArraySimple(subtree, tvb, &iOffset, "Int16", "Int16", hf_opcua_Int16, parseInt16, ett_opcua_array_Int16); break; + case OpcUaType_UInt16: parseArraySimple(subtree, tvb, &iOffset, "UInt16", "UInt16", hf_opcua_UInt16, parseUInt16, ett_opcua_array_UInt16); break; + case OpcUaType_Int32: parseArraySimple(subtree, tvb, &iOffset, "Int32", "Int32", hf_opcua_Int32, parseInt32, ett_opcua_array_Int32); break; + case OpcUaType_UInt32: parseArraySimple(subtree, tvb, &iOffset, "UInt32", "UInt32", hf_opcua_UInt32, parseUInt32, ett_opcua_array_UInt32); break; + case OpcUaType_Int64: parseArraySimple(subtree, tvb, &iOffset, "Int64", "Int64", hf_opcua_Int64, parseInt64, ett_opcua_array_Int64); break; + case OpcUaType_UInt64: parseArraySimple(subtree, tvb, &iOffset, "UInt64", "UInt64", hf_opcua_UInt64, parseUInt64, ett_opcua_array_UInt64); break; + case OpcUaType_Float: parseArraySimple(subtree, tvb, &iOffset, "Float", "Float", hf_opcua_Float, parseFloat, ett_opcua_array_Float); break; + case OpcUaType_Double: parseArraySimple(subtree, tvb, &iOffset, "Double", "Double", hf_opcua_Double, parseDouble, ett_opcua_array_Double); break; + case OpcUaType_String: parseArraySimple(subtree, tvb, &iOffset, "String", "String", hf_opcua_String, parseString, ett_opcua_array_String); break; + case OpcUaType_DateTime: parseArraySimple(subtree, tvb, &iOffset, "DateTime", "DateTime", hf_opcua_DateTime, parseDateTime, ett_opcua_array_DateTime); break; + case OpcUaType_Guid: parseArraySimple(subtree, tvb, &iOffset, "Guid", "Guid", hf_opcua_Guid, parseGuid, ett_opcua_array_Guid); break; + case OpcUaType_ByteString: parseArraySimple(subtree, tvb, &iOffset, "ByteString", "ByteString", hf_opcua_ByteString, parseByteString, ett_opcua_array_ByteString); break; + case OpcUaType_XmlElement: parseArraySimple(subtree, tvb, &iOffset, "XmlElement", "XmlElement", hf_opcua_XmlElement, parseXmlElement, ett_opcua_array_XmlElement); break; + case OpcUaType_NodeId: parseArrayComplex(subtree, tvb, &iOffset, "NodeId", "NodeId", parseNodeId, ett_opcua_array_NodeId); break; + case OpcUaType_ExpandedNodeId: parseArrayComplex(subtree, tvb, &iOffset, "ExpandedNodeId", "ExpandedNodeId", parseExpandedNodeId, ett_opcua_array_ExpandedNodeId); break; + case OpcUaType_StatusCode: parseArraySimple(subtree, tvb, &iOffset, "StatusCode", "StatusCode", hf_opcua_StatusCode, parseStatusCode, ett_opcua_array_StatusCode); break; + case OpcUaType_DiagnosticInfo: parseArrayComplex(subtree, tvb, &iOffset, "DiagnosticInfo", "DiagnosticInfo", parseDiagnosticInfo, ett_opcua_array_DiagnosticInfo); break; + case OpcUaType_QualifiedName: parseArrayComplex(subtree, tvb, &iOffset, "QualifiedName", "QualifiedName", parseQualifiedName, ett_opcua_array_QualifiedName); break; + case OpcUaType_LocalizedText: parseArrayComplex(subtree, tvb, &iOffset, "LocalizedText", "LocalizedText", parseLocalizedText, ett_opcua_array_LocalizedText); break; + case OpcUaType_ExtensionObject: parseArrayComplex(subtree, tvb, &iOffset, "ExtensionObject", "ExtensionObject", parseExtensionObject, ett_opcua_array_ExtensionObject); break; + case OpcUaType_DataValue: parseArrayComplex(subtree, tvb, &iOffset, "DataValue", "DataValue", parseDataValue, ett_opcua_array_DataValue); break; + case OpcUaType_Variant: parseArrayComplex(subtree, tvb, &iOffset, "Variant", "Variant", parseVariant, ett_opcua_array_Variant); break; } if (EncodingMask & VARIANT_ARRAYDIMENSIONS) @@ -862,10 +910,10 @@ void parseVariant(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *sz * All arrays have one 4 byte signed integer length information, * followed by n data elements. */ -void parseArraySimple(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName, const char *szTypeName, int hfIndex, fctSimpleTypeParser pParserFunction) +void parseArraySimple(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName, const char *szTypeName, int hfIndex, fctSimpleTypeParser pParserFunction, const gint idx) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: Array of %s", szFieldName, szTypeName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_array); + proto_tree *subtree = proto_item_add_subtree(ti, idx); int i; gint32 iLen; @@ -897,10 +945,10 @@ void parseArraySimple(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char * All arrays have one 4 byte signed integer length information, * followed by n data elements. */ -void parseArrayEnum(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName, const char *szTypeName, fctEnumParser pParserFunction) +void parseArrayEnum(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName, const char *szTypeName, fctEnumParser pParserFunction, const gint idx) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: Array of %s", szFieldName, szTypeName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_array); + proto_tree *subtree = proto_item_add_subtree(ti, idx); int i; gint32 iLen; @@ -928,10 +976,10 @@ void parseArrayEnum(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char * * All arrays have one 4 byte signed integer length information, * followed by n data elements. */ -void parseArrayComplex(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName, const char *szTypeName, fctComplexTypeParser pParserFunction) +void parseArrayComplex(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName, const char *szTypeName, fctComplexTypeParser pParserFunction, const gint idx) { proto_item *ti = proto_tree_add_text(tree, tvb, *pOffset, -1, "%s: Array of %s", szFieldName, szTypeName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_array); + proto_tree *subtree = proto_item_add_subtree(ti, idx); int i; gint32 iLen; diff --git a/plugins/opcua/opcua_simpletypes.h b/plugins/opcua/opcua_simpletypes.h index 0c3cc45446..2ff583a78f 100644 --- a/plugins/opcua/opcua_simpletypes.h +++ b/plugins/opcua/opcua_simpletypes.h @@ -21,6 +21,33 @@ ******************************************************************************/ #include "opcua_identifiers.h" +/* simple types trees */ +extern gint ett_opcua_array_Boolean; +extern gint ett_opcua_array_SByte; +extern gint ett_opcua_array_Byte; +extern gint ett_opcua_array_Int16; +extern gint ett_opcua_array_UInt16; +extern gint ett_opcua_array_Int32; +extern gint ett_opcua_array_UInt32; +extern gint ett_opcua_array_Int64; +extern gint ett_opcua_array_UInt64; +extern gint ett_opcua_array_Float; +extern gint ett_opcua_array_Double; +extern gint ett_opcua_array_String; +extern gint ett_opcua_array_DateTime; +extern gint ett_opcua_array_Guid; +extern gint ett_opcua_array_ByteString; +extern gint ett_opcua_array_XmlElement; +extern gint ett_opcua_array_NodeId; +extern gint ett_opcua_array_ExpandedNodeId; +extern gint ett_opcua_array_StatusCode; +extern gint ett_opcua_array_DiagnosticInfo; +extern gint ett_opcua_array_QualifiedName; +extern gint ett_opcua_array_LocalizedText; +extern gint ett_opcua_array_ExtensionObject; +extern gint ett_opcua_array_DataValue; +extern gint ett_opcua_array_Variant; + /* simple types */ proto_item* parseBoolean(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex); proto_item* parseByte(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int hfIndex); @@ -48,9 +75,9 @@ void parseQualifiedName(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const ch void parseDataValue(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName); void parseVariant(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName); void parseExpandedNodeId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName); -void parseArraySimple(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName, const char *szTypeName, int hfIndex, fctSimpleTypeParser pParserFunction); -void parseArrayEnum(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName, const char *szTypeName, fctEnumParser pParserFunction); -void parseArrayComplex(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName, const char *szTypeName, fctComplexTypeParser pParserFunction); +void parseArraySimple(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName, const char *szTypeName, int hfIndex, fctSimpleTypeParser pParserFunction, const gint idx); +void parseArrayEnum(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName, const char *szTypeName, fctEnumParser pParserFunction, const gint idx); +void parseArrayComplex(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, const char *szFieldName, const char *szTypeName, fctComplexTypeParser pParserFunction, const gint idx); void registerSimpleTypes(int proto); guint32 getExtensionObjectType(tvbuff_t *tvb, gint *pOffset); |