diff options
author | Jaap Keuter <jaap.keuter@xs4all.nl> | 2009-04-06 18:30:04 +0000 |
---|---|---|
committer | Jaap Keuter <jaap.keuter@xs4all.nl> | 2009-04-06 18:30:04 +0000 |
commit | 8ecf45961110d5783b7c99715b7c7cf05c5b41ed (patch) | |
tree | 926b3b5c94b33b4dbdca1083214be171806a0c9e /plugins | |
parent | 680cf63be8e8fc8f77de645f217d33e28cd61513 (diff) |
From Gerhard Gappmeier:
This patch updates the plugin to fit the released OPCUA protocol version.
svn path=/trunk/; revision=27974
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/opcua/ChangeLog | 13 | ||||
-rw-r--r-- | plugins/opcua/README | 7 | ||||
-rw-r--r-- | plugins/opcua/moduleinfo.h | 2 | ||||
-rw-r--r-- | plugins/opcua/moduleinfo.nmake | 56 | ||||
-rw-r--r-- | plugins/opcua/opcua.c | 152 | ||||
-rw-r--r-- | plugins/opcua/opcua_complextypeparser.c | 1645 | ||||
-rw-r--r-- | plugins/opcua/opcua_complextypeparser.h | 110 | ||||
-rw-r--r-- | plugins/opcua/opcua_enumparser.c | 469 | ||||
-rw-r--r-- | plugins/opcua/opcua_enumparser.h | 24 | ||||
-rw-r--r-- | plugins/opcua/opcua_hfindeces.c | 1236 | ||||
-rw-r--r-- | plugins/opcua/opcua_hfindeces.h | 614 | ||||
-rw-r--r-- | plugins/opcua/opcua_identifiers.h | 2 | ||||
-rw-r--r-- | plugins/opcua/opcua_security_layer.c | 48 | ||||
-rw-r--r-- | plugins/opcua/opcua_serviceparser.c | 333 | ||||
-rw-r--r-- | plugins/opcua/opcua_serviceparser.h | 12 | ||||
-rw-r--r-- | plugins/opcua/opcua_servicetable.c | 317 | ||||
-rw-r--r-- | plugins/opcua/opcua_simpletypes.c | 128 | ||||
-rw-r--r-- | plugins/opcua/opcua_transport_layer.c | 178 | ||||
-rw-r--r-- | plugins/opcua/opcua_transport_layer.h | 8 |
19 files changed, 2868 insertions, 2486 deletions
diff --git a/plugins/opcua/ChangeLog b/plugins/opcua/ChangeLog index 1fbc573370..bae7195ea9 100644 --- a/plugins/opcua/ChangeLog +++ b/plugins/opcua/ChangeLog @@ -6,3 +6,16 @@ Version 0.0.1: * initial implementation without security +Version 1.0.0: + +* released implementation that works for OPC UA V1.0. + - The protocol is not compatible to the previous version. + Transport-layer, security-layer as well as the application-layer + data types have changed. + - This implementation is compliant to + "OPC UA Part 6 - Mappings 1.00 Specification" + - The security-layer is always present, but this plugin can only + decode communication with security policy + http://opcfoundation.org/UA/SecurityPolicy#None, which means + that neither encryption nor signing is active. + diff --git a/plugins/opcua/README b/plugins/opcua/README index d062bebe24..df58cd5108 100644 --- a/plugins/opcua/README +++ b/plugins/opcua/README @@ -50,9 +50,6 @@ For more information see http://www.opcfoundation.org Known limitations: ================== -* In this version the security layer contains only dummy data. - The plugin decodes the transport layer, skips the security dummy data - and decodes the application layer. - Security implementation will follow when it has been implemented in the - Opc Ua stack. +* Only the security policy http://opcfoundation.org/UA/SecurityPolicy#None is supported, + which means the encryption and signing is turned off. diff --git a/plugins/opcua/moduleinfo.h b/plugins/opcua/moduleinfo.h index bdcddac805..19620f61b1 100644 --- a/plugins/opcua/moduleinfo.h +++ b/plugins/opcua/moduleinfo.h @@ -13,5 +13,5 @@ #endif /* Version number of package */ -#define VERSION "0.0.1" +#define VERSION "1.0.0" diff --git a/plugins/opcua/moduleinfo.nmake b/plugins/opcua/moduleinfo.nmake index c4b165ff9d..d4c6d4583c 100644 --- a/plugins/opcua/moduleinfo.nmake +++ b/plugins/opcua/moduleinfo.nmake @@ -1,28 +1,28 @@ -#
-# $Id$
-#
-
-# The name
-PACKAGE=opcua
-
-# The version
-MODULE_VERSION_MAJOR=0
-MODULE_VERSION_MINOR=0
-MODULE_VERSION_MICRO=1
-MODULE_VERSION_EXTRA=0
-
-#
-# The RC_VERSION should be comma-separated, not dot-separated,
-# as per Graham Bloice's message in
-#
-# http://www.ethereal.com/lists/ethereal-dev/200303/msg00283.html
-#
-# "The RC_VERSION variable in config.nmake should be comma separated.
-# This allows the resources to be built correctly and the version
-# number to be correctly displayed in the explorer properties dialog
-# for the executables, and XP's tooltip, rather than 0.0.0.0."
-#
-
-MODULE_VERSION=$(MODULE_VERSION_MAJOR).$(MODULE_VERSION_MINOR).$(MODULE_VERSION_MICRO).$(MODULE_VERSION_EXTRA)
-RC_MODULE_VERSION=$(MODULE_VERSION_MAJOR),$(MODULE_VERSION_MINOR),$(MODULE_VERSION_MICRO),$(MODULE_VERSION_EXTRA)
-
+# +# $Id$ +# + +# The name +PACKAGE=opcua + +# The version +MODULE_VERSION_MAJOR=1 +MODULE_VERSION_MINOR=0 +MODULE_VERSION_MICRO=0 +MODULE_VERSION_EXTRA=0 + +# +# The RC_VERSION should be comma-separated, not dot-separated, +# as per Graham Bloice's message in +# +# http://www.ethereal.com/lists/ethereal-dev/200303/msg00283.html +# +# "The RC_VERSION variable in config.nmake should be comma separated. +# This allows the resources to be built correctly and the version +# number to be correctly displayed in the explorer properties dialog +# for the executables, and XP's tooltip, rather than 0.0.0.0." +# + +MODULE_VERSION=$(MODULE_VERSION_MAJOR).$(MODULE_VERSION_MINOR).$(MODULE_VERSION_MICRO).$(MODULE_VERSION_EXTRA) +RC_MODULE_VERSION=$(MODULE_VERSION_MAJOR),$(MODULE_VERSION_MINOR),$(MODULE_VERSION_MICRO),$(MODULE_VERSION_EXTRA) + diff --git a/plugins/opcua/opcua.c b/plugins/opcua/opcua.c index 0742b5137e..269fe329a5 100644 --- a/plugins/opcua/opcua.c +++ b/plugins/opcua/opcua.c @@ -26,6 +26,7 @@ #endif #include <glib.h> +#include <epan/prefs.h> #include <epan/packet.h> #include <epan/dissectors/packet-tcp.h> #include "opcua_transport_layer.h" @@ -40,11 +41,14 @@ /* forward reference */ static void dissect_opcua(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree); static void dissect_opcua_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree); +void proto_reg_handoff_opcua(void); /* declare parse function pointer */ typedef void (*FctParse)(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); static int proto_opcua = -1; +static dissector_handle_t opcua_handle; +static range_t *global_tcp_ports_opcua; /** Official IANA registered port for OPC UA Binary Protocol. */ #define OPCUA_PORT 4840 @@ -58,13 +62,11 @@ enum MessageType { MSG_HELLO = 0, MSG_ACKNOWLEDGE, - MSG_DISCONNECT, - MSG_DATA_LAST_CHUNK, - MSG_DATA, - MSG_ABORT, MSG_ERROR, - MSG_INVALID, - MSG_UNKNOWN + MSG_MESSAGE, + MSG_OPENSECURECHANNEL, + MSG_CLOSESECURECHANNEL, + MSG_INVALID }; /** OpcUa Transport Message Type Names */ @@ -72,13 +74,11 @@ static char* g_szMessageTypes[] = { "Hello message", "Acknowledge message", - "Disconnect message", - "Data message, last chunk in message.", - "Data message, further chunks must follow.", - "Abort message", "Error message", - "Invalid message", - "Unknown message" + "UA Secure Conversation Message", + "OpenSecureChannel message", + "CloseSecureChannel message", + "Invalid message" }; @@ -95,11 +95,14 @@ static gint *ett[] = */ void proto_register_opcua(void) { + module_t *opcua_module; + proto_opcua = proto_register_protocol( "OpcUa Binary Protocol", /* name */ "OpcUa", /* short name */ "opcua" /* abbrev */ ); + registerTransportLayerTypes(proto_opcua); registerSecurityLayerTypes(proto_opcua); registerApplicationLayerTypes(proto_opcua); @@ -110,16 +113,15 @@ void proto_register_opcua(void) registerFieldTypes(proto_opcua); proto_register_subtree_array(ett, array_length(ett)); -} -/** Register sub protocol. - * For TCP port 4840. - */ -void proto_reg_handoff_opcua(void) -{ - dissector_handle_t opcua_handle; - opcua_handle = create_dissector_handle(dissect_opcua, proto_opcua); - dissector_add("tcp.port", OPCUA_PORT, opcua_handle); + range_convert_str(&global_tcp_ports_opcua, ep_strdup_printf("%u", OPCUA_PORT), 65535); + + /* register user preferences */ + opcua_module = prefs_register_protocol(proto_opcua, proto_reg_handoff_opcua); + prefs_register_range_preference(opcua_module, "tcp_ports", + "OPC UA TCP Ports", + "The TCP ports for the OPC UA TCP Binary Protocol", + &global_tcp_ports_opcua, 65535); } /** header length that is needed to compute @@ -168,51 +170,41 @@ static void dissect_opcua_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree } /* parse message type */ - if (tvb->real_data[0] == 'U' && tvb->real_data[1] == 'A') + if (tvb->real_data[0] == 'H' && tvb->real_data[1] == 'E' && tvb->real_data[2] == 'L') + { + msgtype = MSG_HELLO; + pfctParse = parseHello; + } + else if (tvb->real_data[0] == 'A' && tvb->real_data[1] == 'C' && tvb->real_data[2] == 'K') + { + msgtype = MSG_ACKNOWLEDGE; + pfctParse = parseAcknowledge; + } + else if (tvb->real_data[0] == 'E' && tvb->real_data[1] == 'R' && tvb->real_data[2] == 'R') + { + msgtype = MSG_ERROR; + pfctParse = parseError; + } + else if (tvb->real_data[0] == 'M' && tvb->real_data[1] == 'S' && tvb->real_data[2] == 'G') + { + msgtype = MSG_MESSAGE; + pfctParse = parseMessage; + } + else if (tvb->real_data[0] == 'O' && tvb->real_data[1] == 'P' && tvb->real_data[2] == 'N') + { + msgtype = MSG_OPENSECURECHANNEL; + pfctParse = parseOpenSecureChannel; + } + else if (tvb->real_data[0] == 'C' && tvb->real_data[1] == 'L' && tvb->real_data[2] == 'O') { - if (tvb->real_data[2] == 'T') - { - switch(tvb->real_data[3]) - { - case 'H': msgtype = MSG_HELLO; - pfctParse = parseHello; - break; - case 'A': msgtype = MSG_ACKNOWLEDGE; - pfctParse = parseAcknowledge; - break; - case 'D': msgtype = MSG_DISCONNECT; - pfctParse = parseDisconnect; - break; - default: msgtype = MSG_INVALID; - break; - } - } - else if (tvb->real_data[2] == 'M') - { - switch(tvb->real_data[3]) - { - case 'G': msgtype = MSG_DATA_LAST_CHUNK; - pfctParse = parseData; - break; - case 'C': msgtype = MSG_DATA; - pfctParse = parseData; - break; - case 'A': msgtype = MSG_ABORT; - pfctParse = parseAbort; - break; - case 'E': msgtype = MSG_ERROR; - pfctParse = parseError; - break; - default: msgtype = MSG_INVALID; - break; - } - } + msgtype = MSG_CLOSESECURECHANNEL; + pfctParse = parseCloseSecureChannel; } else { - msgtype = MSG_UNKNOWN; + msgtype = MSG_INVALID; } - + /* Clear out stuff in the info column */ if(check_col(pinfo->cinfo, COL_INFO)) { @@ -232,10 +224,44 @@ static void dissect_opcua_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree /* call the transport message dissector */ (*pfctParse)(transport_tree, tvb, &offset); - } -} +} + +static void register_tcp_port(guint32 port) +{ + if (port != 0) + dissector_add("tcp.port", port, opcua_handle); +} + +static void unregister_tcp_port(guint32 port) +{ + if (port != 0) + dissector_delete("tcp.port", port, opcua_handle); +} + +void proto_reg_handoff_opcua(void) +{ + static gboolean opcua_initialized = FALSE; + static range_t *tcp_ports_opcua = NULL; + if(!opcua_initialized) + { + opcua_handle = create_dissector_handle(dissect_opcua, proto_opcua); + opcua_initialized = TRUE; + } + else + { + /* clean up ports and their lists */ + if (tcp_ports_opcua != NULL) + { + range_foreach(tcp_ports_opcua, unregister_tcp_port); + g_free(tcp_ports_opcua); + } + } + /* If we now have a PDU tree, register for the port or ports we have */ + tcp_ports_opcua = range_copy(global_tcp_ports_opcua); + range_foreach(tcp_ports_opcua, register_tcp_port); +} diff --git a/plugins/opcua/opcua_complextypeparser.c b/plugins/opcua/opcua_complextypeparser.c index 11efbf3cff..9ac6a6f623 100644 --- a/plugins/opcua/opcua_complextypeparser.c +++ b/plugins/opcua/opcua_complextypeparser.c @@ -1,7 +1,7 @@ /****************************************************************************** ** $Id$ ** -** Copyright (C) 2006-2007 ascolab GmbH. All Rights Reserved. +** Copyright (C) 2006-2009 ascolab GmbH. All Rights Reserved. ** Web: http://www.ascolab.com ** ** This program is free software; you can redistribute it and/or @@ -16,7 +16,7 @@ ** ** Description: OpcUa Complex Type Parser ** -** This file was autogenerated on 8.5.2007 18:53:26. +** This file was autogenerated on 01.04.2009. ** DON'T MODIFY THIS FILE! ** ******************************************************************************/ @@ -32,875 +32,441 @@ #include "opcua_simpletypes.h" #include "opcua_hfindeces.h" - -gint ett_opcua_ReferenceNode = -1; -void parseReferenceNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) -{ - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ReferenceNode", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReferenceNode); - - parseNodeId(subtree, tvb, pOffset, "ReferenceTypeId"); - parseBoolean(subtree, tvb, pOffset, hf_opcua_IsInverse); - parseUInt32(subtree, tvb, pOffset, hf_opcua_ServerIndex); - parseExpandedNodeId(subtree, tvb, pOffset, "TargetId"); -} - gint ett_opcua_Node = -1; void parseNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : Node", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_Node); - parseNodeId(subtree, tvb, pOffset, "NodeId"); - parseInt32(subtree, tvb, pOffset, hf_opcua_NodeClass); + parseNodeClass(subtree, tvb, pOffset); parseQualifiedName(subtree, tvb, pOffset, "BrowseName"); parseLocalizedText(subtree, tvb, pOffset, "DisplayName"); parseLocalizedText(subtree, tvb, pOffset, "Description"); + parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask); + parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask); + /* Array length field ignored: NoOfReferences */ parseArrayComplex(subtree, tvb, pOffset, "References", parseReferenceNode); } - gint ett_opcua_ObjectNode = -1; void parseObjectNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ObjectNode", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ObjectNode); - /* parse base class members */ - parseNode(subtree, tvb, pOffset, "[Node]"); - /* parse additional members */ parseByte(subtree, tvb, pOffset, hf_opcua_EventNotifier); } - gint ett_opcua_ObjectTypeNode = -1; void parseObjectTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ObjectTypeNode", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ObjectTypeNode); - /* parse base class members */ - parseNode(subtree, tvb, pOffset, "[Node]"); - /* parse additional members */ parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract); } - gint ett_opcua_VariableNode = -1; void parseVariableNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : VariableNode", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_VariableNode); - /* parse base class members */ - parseNode(subtree, tvb, pOffset, "[Node]"); - /* parse additional members */ parseVariant(subtree, tvb, pOffset, "Value"); parseNodeId(subtree, tvb, pOffset, "DataType"); - parseInt32(subtree, tvb, pOffset, hf_opcua_ArraySize); + parseInt32(subtree, tvb, pOffset, hf_opcua_ValueRank); + /* Array length field ignored: NoOfArrayDimensions */ + parseArraySimple(subtree, tvb, pOffset, hf_opcua_ArrayDimensions, parseUInt32); parseByte(subtree, tvb, pOffset, hf_opcua_AccessLevel); parseByte(subtree, tvb, pOffset, hf_opcua_UserAccessLevel); - parseInt32(subtree, tvb, pOffset, hf_opcua_MinimumSamplingInterval); + parseDouble(subtree, tvb, pOffset, hf_opcua_MinimumSamplingInterval); parseBoolean(subtree, tvb, pOffset, hf_opcua_Historizing); } - gint ett_opcua_VariableTypeNode = -1; void parseVariableTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : VariableTypeNode", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_VariableTypeNode); - /* parse base class members */ - parseNode(subtree, tvb, pOffset, "[Node]"); - /* parse additional members */ parseVariant(subtree, tvb, pOffset, "Value"); parseNodeId(subtree, tvb, pOffset, "DataType"); - parseInt32(subtree, tvb, pOffset, hf_opcua_ArraySize); + parseInt32(subtree, tvb, pOffset, hf_opcua_ValueRank); + /* Array length field ignored: NoOfArrayDimensions */ + parseArraySimple(subtree, tvb, pOffset, hf_opcua_ArrayDimensions, parseUInt32); parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract); } - gint ett_opcua_ReferenceTypeNode = -1; void parseReferenceTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ReferenceTypeNode", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReferenceTypeNode); - /* parse base class members */ - parseNode(subtree, tvb, pOffset, "[Node]"); - /* parse additional members */ parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract); parseBoolean(subtree, tvb, pOffset, hf_opcua_Symmetric); parseLocalizedText(subtree, tvb, pOffset, "InverseName"); } - gint ett_opcua_MethodNode = -1; void parseMethodNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : MethodNode", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MethodNode); - /* parse base class members */ - parseNode(subtree, tvb, pOffset, "[Node]"); - /* parse additional members */ parseBoolean(subtree, tvb, pOffset, hf_opcua_Executable); parseBoolean(subtree, tvb, pOffset, hf_opcua_UserExecutable); } - gint ett_opcua_ViewNode = -1; void parseViewNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ViewNode", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ViewNode); - /* parse base class members */ - parseNode(subtree, tvb, pOffset, "[Node]"); - /* parse additional members */ parseBoolean(subtree, tvb, pOffset, hf_opcua_ContainsNoLoops); parseByte(subtree, tvb, pOffset, hf_opcua_EventNotifier); } - gint ett_opcua_DataTypeNode = -1; void parseDataTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : DataTypeNode", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DataTypeNode); - /* parse base class members */ - parseNode(subtree, tvb, pOffset, "[Node]"); - /* parse additional members */ parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract); } - -gint ett_opcua_UriTableEntry = -1; -void parseUriTableEntry(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) -{ - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : UriTableEntry", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_UriTableEntry); - - parseUInt32(subtree, tvb, pOffset, hf_opcua_Index); - parseString(subtree, tvb, pOffset, hf_opcua_Uri); -} - -gint ett_opcua_NodeSet = -1; -void parseNodeSet(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +gint ett_opcua_ReferenceNode = -1; +void parseReferenceNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : NodeSet", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_NodeSet); - - parseArrayComplex(subtree, tvb, pOffset, "NamespaceUris", parseUriTableEntry); - parseArrayComplex(subtree, tvb, pOffset, "ServerUris", parseUriTableEntry); - parseArrayComplex(subtree, tvb, pOffset, "Nodes", parseExtensionObject); + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ReferenceNode", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReferenceNode); + parseNodeId(subtree, tvb, pOffset, "ReferenceTypeId"); + parseBoolean(subtree, tvb, pOffset, hf_opcua_IsInverse); + parseExpandedNodeId(subtree, tvb, pOffset, "TargetId"); } - gint ett_opcua_Argument = -1; void parseArgument(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : Argument", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_Argument); - parseString(subtree, tvb, pOffset, hf_opcua_Name); parseNodeId(subtree, tvb, pOffset, "DataType"); - parseInt32(subtree, tvb, pOffset, hf_opcua_ArraySize); + parseInt32(subtree, tvb, pOffset, hf_opcua_ValueRank); + /* Array length field ignored: NoOfArrayDimensions */ + parseArraySimple(subtree, tvb, pOffset, hf_opcua_ArrayDimensions, parseUInt32); parseLocalizedText(subtree, tvb, pOffset, "Description"); } - -gint ett_opcua_Status = -1; -void parseStatus(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +gint ett_opcua_TimeZoneDataType = -1; +void parseTimeZoneDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : Status", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_Status); - - parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode); - parseDiagnosticInfo(subtree, tvb, pOffset, "DiagnosticInfo"); + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : TimeZoneDataType", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TimeZoneDataType); + parseInt16(subtree, tvb, pOffset, hf_opcua_Offset); + parseBoolean(subtree, tvb, pOffset, hf_opcua_DaylightSavingInOffset); } - -gint ett_opcua_BaseEvent = -1; -void parseBaseEvent(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +gint ett_opcua_EnumValueInfo = -1; +void parseEnumValueInfo(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : BaseEvent", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BaseEvent); - - parseByteString(subtree, tvb, pOffset, hf_opcua_EventId); - parseNodeId(subtree, tvb, pOffset, "EventType"); - parseNodeId(subtree, tvb, pOffset, "SourceNode"); - parseString(subtree, tvb, pOffset, hf_opcua_SourceName); - parseDateTime(subtree, tvb, pOffset, hf_opcua_Time); - parseDateTime(subtree, tvb, pOffset, hf_opcua_ReceiveTime); - parseLocalizedText(subtree, tvb, pOffset, "Message"); - parseUInt16(subtree, tvb, pOffset, hf_opcua_Severity); + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : EnumValueInfo", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EnumValueInfo); + parseLocalizedText(subtree, tvb, pOffset, "Name"); + parseInt32(subtree, tvb, pOffset, hf_opcua_Value); } - -gint ett_opcua_SecurityPolicy = -1; -void parseSecurityPolicy(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +gint ett_opcua_StatusResult = -1; +void parseStatusResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SecurityPolicy", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SecurityPolicy); - - parseString(subtree, tvb, pOffset, hf_opcua_Uri); - parseString(subtree, tvb, pOffset, hf_opcua_Digest); - parseString(subtree, tvb, pOffset, hf_opcua_SymmetricSignature); - parseString(subtree, tvb, pOffset, hf_opcua_SymmetricKeyWrap); - parseString(subtree, tvb, pOffset, hf_opcua_SymmetricEncryption); - parseInt32(subtree, tvb, pOffset, hf_opcua_SymmetricKeyLength); - parseString(subtree, tvb, pOffset, hf_opcua_AsymmetricSignature); - parseString(subtree, tvb, pOffset, hf_opcua_AsymmetricKeyWrap); - parseString(subtree, tvb, pOffset, hf_opcua_AsymmetricEncryption); - parseUInt32(subtree, tvb, pOffset, hf_opcua_MinimumAsymmetricKeyLength); - parseUInt32(subtree, tvb, pOffset, hf_opcua_MaximumAsymmetricKeyLength); - parseString(subtree, tvb, pOffset, hf_opcua_DerivedKey); - parseUInt32(subtree, tvb, pOffset, hf_opcua_DerivedEncryptionKeyLength); - parseUInt32(subtree, tvb, pOffset, hf_opcua_DerivedSignatureKeyLength); + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : StatusResult", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_StatusResult); + parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode); + parseDiagnosticInfo(subtree, tvb, pOffset, "DiagnosticInfo"); } - gint ett_opcua_UserTokenPolicy = -1; void parseUserTokenPolicy(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : UserTokenPolicy", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_UserTokenPolicy); - + parseString(subtree, tvb, pOffset, hf_opcua_PolicyId); parseUserTokenType(subtree, tvb, pOffset); - parseString(subtree, tvb, pOffset, hf_opcua_IssuerType); - parseString(subtree, tvb, pOffset, hf_opcua_IssuerUrl); + parseString(subtree, tvb, pOffset, hf_opcua_IssuedTokenType); + parseString(subtree, tvb, pOffset, hf_opcua_IssuerEndpointUrl); + parseString(subtree, tvb, pOffset, hf_opcua_SecurityPolicyUri); } - -gint ett_opcua_ServerDescription = -1; -void parseServerDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +gint ett_opcua_ApplicationDescription = -1; +void parseApplicationDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ServerDescription", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ServerDescription); - - parseServerDescriptionType(subtree, tvb, pOffset); - parseString(subtree, tvb, pOffset, hf_opcua_ServerUri); - parseLocalizedText(subtree, tvb, pOffset, "ServerName"); + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ApplicationDescription", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ApplicationDescription); + parseString(subtree, tvb, pOffset, hf_opcua_ApplicationUri); + parseString(subtree, tvb, pOffset, hf_opcua_ProductUri); + parseLocalizedText(subtree, tvb, pOffset, "ApplicationName"); + parseApplicationType(subtree, tvb, pOffset); + parseString(subtree, tvb, pOffset, hf_opcua_GatewayServerUri); + parseString(subtree, tvb, pOffset, hf_opcua_DiscoveryProfileUri); + /* Array length field ignored: NoOfDiscoveryUrls */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_DiscoveryUrls, parseString); } - gint ett_opcua_EndpointDescription = -1; void parseEndpointDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : EndpointDescription", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EndpointDescription); - - parseServerDescription(subtree, tvb, pOffset, "Server"); parseString(subtree, tvb, pOffset, hf_opcua_EndpointUrl); + parseApplicationDescription(subtree, tvb, pOffset, "Server"); parseByteString(subtree, tvb, pOffset, hf_opcua_ServerCertificate); parseMessageSecurityMode(subtree, tvb, pOffset); parseString(subtree, tvb, pOffset, hf_opcua_SecurityPolicyUri); + /* Array length field ignored: NoOfUserIdentityTokens */ parseArrayComplex(subtree, tvb, pOffset, "UserIdentityTokens", parseUserTokenPolicy); - parseArraySimple(subtree, tvb, pOffset, hf_opcua_SupportedProfiles, parseString); + parseString(subtree, tvb, pOffset, hf_opcua_TransportProfileUri); + parseByte(subtree, tvb, pOffset, hf_opcua_SecurityLevel); } - -gint ett_opcua_EndpointConfiguration = -1; -void parseEndpointConfiguration(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) -{ - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : EndpointConfiguration", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EndpointConfiguration); - - parseInt32(subtree, tvb, pOffset, hf_opcua_SendTimeout); - parseInt32(subtree, tvb, pOffset, hf_opcua_OperationTimeout); - parseBoolean(subtree, tvb, pOffset, hf_opcua_UseBinaryEncoding); - parseInt32(subtree, tvb, pOffset, hf_opcua_MaxMessageSize); - parseInt32(subtree, tvb, pOffset, hf_opcua_MaxArrayLength); - parseInt32(subtree, tvb, pOffset, hf_opcua_MaxStringLength); -} - gint ett_opcua_UserIdentityToken = -1; -void parseUserIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset _U_, char *szFieldName) +void parseUserIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : UserIdentityToken", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_UserIdentityToken); - subtree = 0; + parseString(subtree, tvb, pOffset, hf_opcua_PolicyId); } - gint ett_opcua_UserNameIdentityToken = -1; void parseUserNameIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : UserNameIdentityToken", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_UserNameIdentityToken); - /* parse base class members */ - parseUserIdentityToken(subtree, tvb, pOffset, "[UserIdentityToken]"); - /* parse additional members */ parseString(subtree, tvb, pOffset, hf_opcua_UserName); - parseString(subtree, tvb, pOffset, hf_opcua_Password); - parseString(subtree, tvb, pOffset, hf_opcua_HashAlgorithm); + parseByteString(subtree, tvb, pOffset, hf_opcua_Password); + parseString(subtree, tvb, pOffset, hf_opcua_EncryptionAlgorithm); } - gint ett_opcua_X509IdentityToken = -1; void parseX509IdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : X509IdentityToken", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_X509IdentityToken); - /* parse base class members */ - parseUserIdentityToken(subtree, tvb, pOffset, "[UserIdentityToken]"); - /* parse additional members */ parseByteString(subtree, tvb, pOffset, hf_opcua_CertificateData); } - -gint ett_opcua_WssIdentityToken = -1; -void parseWssIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +gint ett_opcua_IssuedIdentityToken = -1; +void parseIssuedIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : WssIdentityToken", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_WssIdentityToken); - /* parse base class members */ - parseUserIdentityToken(subtree, tvb, pOffset, "[UserIdentityToken]"); - /* parse additional members */ - parseXmlElement(subtree, tvb, pOffset, hf_opcua_TokenData); + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : IssuedIdentityToken", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_IssuedIdentityToken); + parseByteString(subtree, tvb, pOffset, hf_opcua_TokenData); + parseString(subtree, tvb, pOffset, hf_opcua_EncryptionAlgorithm); +} +gint ett_opcua_EndpointConfiguration = -1; +void parseEndpointConfiguration(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : EndpointConfiguration", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EndpointConfiguration); + parseInt32(subtree, tvb, pOffset, hf_opcua_OperationTimeout); + parseBoolean(subtree, tvb, pOffset, hf_opcua_UseBinaryEncoding); + parseInt32(subtree, tvb, pOffset, hf_opcua_MaxStringLength); + parseInt32(subtree, tvb, pOffset, hf_opcua_MaxByteStringLength); + parseInt32(subtree, tvb, pOffset, hf_opcua_MaxArrayLength); + parseInt32(subtree, tvb, pOffset, hf_opcua_MaxMessageSize); + parseInt32(subtree, tvb, pOffset, hf_opcua_MaxBufferSize); + parseInt32(subtree, tvb, pOffset, hf_opcua_ChannelLifetime); + parseInt32(subtree, tvb, pOffset, hf_opcua_SecurityTokenLifetime); } - gint ett_opcua_SupportedProfile = -1; void parseSupportedProfile(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SupportedProfile", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SupportedProfile); - - parseString(subtree, tvb, pOffset, hf_opcua_ProfileUri); - parseString(subtree, tvb, pOffset, hf_opcua_ProfileName); + parseString(subtree, tvb, pOffset, hf_opcua_OrganizationUri); + parseString(subtree, tvb, pOffset, hf_opcua_ProfileId); + parseString(subtree, tvb, pOffset, hf_opcua_ComplianceTool); + parseDateTime(subtree, tvb, pOffset, hf_opcua_ComplianceDate); parseComplianceLevel(subtree, tvb, pOffset); + /* Array length field ignored: NoOfUnsupportedUnitIds */ + parseArraySimple(subtree, tvb, pOffset, hf_opcua_UnsupportedUnitIds, parseString); } - gint ett_opcua_BuildInfo = -1; void parseBuildInfo(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : BuildInfo", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BuildInfo); - - parseString(subtree, tvb, pOffset, hf_opcua_ApplicationUri); + parseString(subtree, tvb, pOffset, hf_opcua_ProductUri); parseString(subtree, tvb, pOffset, hf_opcua_ManufacturerName); - parseString(subtree, tvb, pOffset, hf_opcua_ApplicationName); + parseString(subtree, tvb, pOffset, hf_opcua_ProductName); parseString(subtree, tvb, pOffset, hf_opcua_SoftwareVersion); parseString(subtree, tvb, pOffset, hf_opcua_BuildNumber); parseDateTime(subtree, tvb, pOffset, hf_opcua_BuildDate); } - gint ett_opcua_SoftwareCertificate = -1; void parseSoftwareCertificate(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SoftwareCertificate", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SoftwareCertificate); - - parseBuildInfo(subtree, tvb, pOffset, "ServerInfo"); + parseString(subtree, tvb, pOffset, hf_opcua_ProductName); + parseString(subtree, tvb, pOffset, hf_opcua_ProductUri); + parseString(subtree, tvb, pOffset, hf_opcua_VendorName); + parseByteString(subtree, tvb, pOffset, hf_opcua_VendorProductCertificate); + parseString(subtree, tvb, pOffset, hf_opcua_SoftwareVersion); + parseString(subtree, tvb, pOffset, hf_opcua_BuildNumber); + parseDateTime(subtree, tvb, pOffset, hf_opcua_BuildDate); parseString(subtree, tvb, pOffset, hf_opcua_IssuedBy); - parseDateTime(subtree, tvb, pOffset, hf_opcua_IssuedDate); - parseDateTime(subtree, tvb, pOffset, hf_opcua_ExpirationDate); - parseByteString(subtree, tvb, pOffset, hf_opcua_ApplicationCertificate); - parseString(subtree, tvb, pOffset, hf_opcua_IssuerCertificateThumbprint); - parseString(subtree, tvb, pOffset, hf_opcua_IssuerSignatureAlgorithm); + parseDateTime(subtree, tvb, pOffset, hf_opcua_IssueDate); + /* Array length field ignored: NoOfSupportedProfiles */ parseArrayComplex(subtree, tvb, pOffset, "SupportedProfiles", parseSupportedProfile); } - gint ett_opcua_SignedSoftwareCertificate = -1; void parseSignedSoftwareCertificate(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SignedSoftwareCertificate", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SignedSoftwareCertificate); - parseByteString(subtree, tvb, pOffset, hf_opcua_CertificateData); - parseByteString(subtree, tvb, pOffset, hf_opcua_IssuerSignature); + parseByteString(subtree, tvb, pOffset, hf_opcua_Signature); } - gint ett_opcua_NodeAttributes = -1; void parseNodeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : NodeAttributes", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_NodeAttributes); - + parseUInt32(subtree, tvb, pOffset, hf_opcua_SpecifiedAttributes); parseLocalizedText(subtree, tvb, pOffset, "DisplayName"); parseLocalizedText(subtree, tvb, pOffset, "Description"); + parseUInt32(subtree, tvb, pOffset, hf_opcua_WriteMask); + parseUInt32(subtree, tvb, pOffset, hf_opcua_UserWriteMask); } - gint ett_opcua_ObjectAttributes = -1; void parseObjectAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ObjectAttributes", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ObjectAttributes); - /* parse base class members */ - parseNodeAttributes(subtree, tvb, pOffset, "[NodeAttributes]"); - /* parse additional members */ parseByte(subtree, tvb, pOffset, hf_opcua_EventNotifier); } - -gint ett_opcua_ObjectTypeAttributes = -1; -void parseObjectTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) -{ - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ObjectTypeAttributes", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ObjectTypeAttributes); - /* parse base class members */ - parseNodeAttributes(subtree, tvb, pOffset, "[NodeAttributes]"); - /* parse additional members */ - parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract); -} - gint ett_opcua_VariableAttributes = -1; void parseVariableAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : VariableAttributes", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_VariableAttributes); - /* parse base class members */ - parseNodeAttributes(subtree, tvb, pOffset, "[NodeAttributes]"); - /* parse additional members */ parseVariant(subtree, tvb, pOffset, "Value"); parseNodeId(subtree, tvb, pOffset, "DataType"); - parseInt32(subtree, tvb, pOffset, hf_opcua_ArraySize); + parseInt32(subtree, tvb, pOffset, hf_opcua_ValueRank); + /* Array length field ignored: NoOfArrayDimensions */ + parseArraySimple(subtree, tvb, pOffset, hf_opcua_ArrayDimensions, parseUInt32); parseByte(subtree, tvb, pOffset, hf_opcua_AccessLevel); parseByte(subtree, tvb, pOffset, hf_opcua_UserAccessLevel); - parseInt32(subtree, tvb, pOffset, hf_opcua_MinimumSamplingInterval); + parseDouble(subtree, tvb, pOffset, hf_opcua_MinimumSamplingInterval); parseBoolean(subtree, tvb, pOffset, hf_opcua_Historizing); } - +gint ett_opcua_MethodAttributes = -1; +void parseMethodAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : MethodAttributes", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MethodAttributes); + parseBoolean(subtree, tvb, pOffset, hf_opcua_Executable); + parseBoolean(subtree, tvb, pOffset, hf_opcua_UserExecutable); +} +gint ett_opcua_ObjectTypeAttributes = -1; +void parseObjectTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ObjectTypeAttributes", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ObjectTypeAttributes); + parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract); +} gint ett_opcua_VariableTypeAttributes = -1; void parseVariableTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : VariableTypeAttributes", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_VariableTypeAttributes); - /* parse base class members */ - parseNodeAttributes(subtree, tvb, pOffset, "[NodeAttributes]"); - /* parse additional members */ parseVariant(subtree, tvb, pOffset, "Value"); parseNodeId(subtree, tvb, pOffset, "DataType"); - parseInt32(subtree, tvb, pOffset, hf_opcua_ArraySize); + parseInt32(subtree, tvb, pOffset, hf_opcua_ValueRank); + /* Array length field ignored: NoOfArrayDimensions */ + parseArraySimple(subtree, tvb, pOffset, hf_opcua_ArrayDimensions, parseUInt32); parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract); } - gint ett_opcua_ReferenceTypeAttributes = -1; void parseReferenceTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ReferenceTypeAttributes", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReferenceTypeAttributes); - /* parse base class members */ - parseNodeAttributes(subtree, tvb, pOffset, "[NodeAttributes]"); - /* parse additional members */ parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract); parseBoolean(subtree, tvb, pOffset, hf_opcua_Symmetric); parseLocalizedText(subtree, tvb, pOffset, "InverseName"); } - -gint ett_opcua_MethodAttributes = -1; -void parseMethodAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +gint ett_opcua_DataTypeAttributes = -1; +void parseDataTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : MethodAttributes", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MethodAttributes); - /* parse base class members */ - parseNodeAttributes(subtree, tvb, pOffset, "[NodeAttributes]"); - /* parse additional members */ - parseBoolean(subtree, tvb, pOffset, hf_opcua_Executable); - parseBoolean(subtree, tvb, pOffset, hf_opcua_UserExecutable); + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : DataTypeAttributes", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DataTypeAttributes); + parseBoolean(subtree, tvb, pOffset, hf_opcua_IsAbstract); } - gint ett_opcua_ViewAttributes = -1; void parseViewAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ViewAttributes", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ViewAttributes); - /* parse base class members */ - parseNodeAttributes(subtree, tvb, pOffset, "[NodeAttributes]"); - /* parse additional members */ parseBoolean(subtree, tvb, pOffset, hf_opcua_ContainsNoLoops); parseByte(subtree, tvb, pOffset, hf_opcua_EventNotifier); } - gint ett_opcua_AddNodesItem = -1; void parseAddNodesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : AddNodesItem", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AddNodesItem); - parseExpandedNodeId(subtree, tvb, pOffset, "ParentNodeId"); parseNodeId(subtree, tvb, pOffset, "ReferenceTypeId"); parseExpandedNodeId(subtree, tvb, pOffset, "RequestedNewNodeId"); parseQualifiedName(subtree, tvb, pOffset, "BrowseName"); - parseInt32(subtree, tvb, pOffset, hf_opcua_NodeClass); + parseNodeClass(subtree, tvb, pOffset); parseExtensionObject(subtree, tvb, pOffset, "NodeAttributes"); parseExpandedNodeId(subtree, tvb, pOffset, "TypeDefinition"); } - gint ett_opcua_AddReferencesItem = -1; void parseAddReferencesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : AddReferencesItem", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AddReferencesItem); - parseNodeId(subtree, tvb, pOffset, "SourceNodeId"); parseNodeId(subtree, tvb, pOffset, "ReferenceTypeId"); parseBoolean(subtree, tvb, pOffset, hf_opcua_IsForward); parseString(subtree, tvb, pOffset, hf_opcua_TargetServerUri); parseExpandedNodeId(subtree, tvb, pOffset, "TargetNodeId"); - parseInt32(subtree, tvb, pOffset, hf_opcua_TargetNodeClass); + parseNodeClass(subtree, tvb, pOffset); } - gint ett_opcua_DeleteNodesItem = -1; void parseDeleteNodesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : DeleteNodesItem", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteNodesItem); - parseNodeId(subtree, tvb, pOffset, "NodeId"); parseBoolean(subtree, tvb, pOffset, hf_opcua_DeleteTargetReferences); } - gint ett_opcua_DeleteReferencesItem = -1; void parseDeleteReferencesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : DeleteReferencesItem", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteReferencesItem); - parseNodeId(subtree, tvb, pOffset, "SourceNodeId"); parseNodeId(subtree, tvb, pOffset, "ReferenceTypeId"); parseBoolean(subtree, tvb, pOffset, hf_opcua_IsForward); - parseUInt32(subtree, tvb, pOffset, hf_opcua_ServerIndex); parseExpandedNodeId(subtree, tvb, pOffset, "TargetNodeId"); + parseBoolean(subtree, tvb, pOffset, hf_opcua_DeleteBidirectional); } - -gint ett_opcua_RedundantServerDataType = -1; -void parseRedundantServerDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) -{ - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : RedundantServerDataType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RedundantServerDataType); - - parseString(subtree, tvb, pOffset, hf_opcua_ServerId); - parseSByte(subtree, tvb, pOffset, hf_opcua_ServiceLevel); - parseServerState(subtree, tvb, pOffset); -} - -gint ett_opcua_SamplingRateDiagnosticsDataType = -1; -void parseSamplingRateDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) -{ - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SamplingRateDiagnosticsDataType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SamplingRateDiagnosticsDataType); - - parseUInt32(subtree, tvb, pOffset, hf_opcua_SamplingRate); - parseUInt32(subtree, tvb, pOffset, hf_opcua_SamplingErrorCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_SampledMonitoredItemsCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxSampledMonitoredItemsCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_DisabledMonitoredItemsSamplingCount); -} - -gint ett_opcua_ServerDiagnosticsSummaryDataType = -1; -void parseServerDiagnosticsSummaryDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) -{ - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ServerDiagnosticsSummaryDataType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ServerDiagnosticsSummaryDataType); - - parseUInt32(subtree, tvb, pOffset, hf_opcua_ServerViewCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_CurrentSessionCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_CumulatedSessionCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_SecurityRejectedSessionCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_RejectSessionCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_SessionTimeoutCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_SessionAbortCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_SamplingRateCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_PublishingRateCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_CurrentSubscriptionCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_CumulatedSubscriptionCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_SecurityRejectedRequestsCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_RejectedRequestsCount); -} - -gint ett_opcua_ServerStatusDataType = -1; -void parseServerStatusDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) -{ - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ServerStatusDataType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ServerStatusDataType); - - parseDateTime(subtree, tvb, pOffset, hf_opcua_StartTime); - parseDateTime(subtree, tvb, pOffset, hf_opcua_CurrentTime); - parseServerState(subtree, tvb, pOffset); - parseBuildInfo(subtree, tvb, pOffset, "BuildInfo"); -} - -gint ett_opcua_ServiceCounterDataType = -1; -void parseServiceCounterDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) -{ - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ServiceCounterDataType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ServiceCounterDataType); - - parseUInt32(subtree, tvb, pOffset, hf_opcua_TotalCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_UnauthorizedCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_ErrorCount); -} - -gint ett_opcua_SessionDiagnosticsDataType = -1; -void parseSessionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) -{ - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SessionDiagnosticsDataType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SessionDiagnosticsDataType); - - parseUInt32(subtree, tvb, pOffset, hf_opcua_SessionId); - parseString(subtree, tvb, pOffset, hf_opcua_ClientName); - parseArraySimple(subtree, tvb, pOffset, hf_opcua_LocaleIds, parseString); - parseInt32(subtree, tvb, pOffset, hf_opcua_ActualSessionTimeout); - parseDateTime(subtree, tvb, pOffset, hf_opcua_ClientConnectionTime); - parseDateTime(subtree, tvb, pOffset, hf_opcua_ClientLastContactTime); - parseUInt32(subtree, tvb, pOffset, hf_opcua_CurrentSubscriptionsCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_CurrentMonitoredItemsCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_CurrentPublishRequestsInQueue); - parseUInt32(subtree, tvb, pOffset, hf_opcua_CurrentPublishTimerExpirations); - parseUInt32(subtree, tvb, pOffset, hf_opcua_KeepAliveCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_CurrentRepublishRequestsInQueue); - parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxRepublishRequestsInQueue); - parseUInt32(subtree, tvb, pOffset, hf_opcua_RepublishCounter); - parseUInt32(subtree, tvb, pOffset, hf_opcua_PublishingCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_PublishingQueueOverflowCount); - parseServiceCounterDataType(subtree, tvb, pOffset, "ReadCount"); - parseServiceCounterDataType(subtree, tvb, pOffset, "HistoryReadCount"); - parseServiceCounterDataType(subtree, tvb, pOffset, "WriteCount"); - parseServiceCounterDataType(subtree, tvb, pOffset, "HistoryUpdateCount"); - parseServiceCounterDataType(subtree, tvb, pOffset, "CallCount"); - parseServiceCounterDataType(subtree, tvb, pOffset, "CreateMonitoredItemsCount"); - parseServiceCounterDataType(subtree, tvb, pOffset, "ModifyMonitoredItemsCount"); - parseServiceCounterDataType(subtree, tvb, pOffset, "SetMonitoringModeCount"); - parseServiceCounterDataType(subtree, tvb, pOffset, "SetTriggeringCount"); - parseServiceCounterDataType(subtree, tvb, pOffset, "DeleteMonitoredItemsCount"); - parseServiceCounterDataType(subtree, tvb, pOffset, "CreateSubscriptionCount"); - parseServiceCounterDataType(subtree, tvb, pOffset, "ModifySubscriptionCount"); - parseServiceCounterDataType(subtree, tvb, pOffset, "SetPublishingModeCount"); - parseServiceCounterDataType(subtree, tvb, pOffset, "PublishCount"); - parseServiceCounterDataType(subtree, tvb, pOffset, "RepublishCount"); - parseServiceCounterDataType(subtree, tvb, pOffset, "TransferSubscriptionCount"); - parseServiceCounterDataType(subtree, tvb, pOffset, "DeleteSubscriptionsCount"); - parseServiceCounterDataType(subtree, tvb, pOffset, "AddNodesCount"); - parseServiceCounterDataType(subtree, tvb, pOffset, "AddReferencesCount"); - parseServiceCounterDataType(subtree, tvb, pOffset, "DeleteNodesCount"); - parseServiceCounterDataType(subtree, tvb, pOffset, "DeleteReferencesCount"); - parseServiceCounterDataType(subtree, tvb, pOffset, "BrowseCount"); - parseServiceCounterDataType(subtree, tvb, pOffset, "BrowseNextCount"); - parseServiceCounterDataType(subtree, tvb, pOffset, "TranslateBrowsePathsToNodeIdsCount"); - parseServiceCounterDataType(subtree, tvb, pOffset, "QueryFirstCount"); - parseServiceCounterDataType(subtree, tvb, pOffset, "QueryNextCount"); -} - -gint ett_opcua_SessionSecurityDiagnosticsDataType = -1; -void parseSessionSecurityDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) -{ - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SessionSecurityDiagnosticsDataType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SessionSecurityDiagnosticsDataType); - - parseUInt32(subtree, tvb, pOffset, hf_opcua_SessionId); - parseString(subtree, tvb, pOffset, hf_opcua_ClientUserIdOfSession); - parseArraySimple(subtree, tvb, pOffset, hf_opcua_ClientUserIdHistory, parseString); - parseString(subtree, tvb, pOffset, hf_opcua_AuthenticationMechanism); - parseString(subtree, tvb, pOffset, hf_opcua_Encoding); - parseString(subtree, tvb, pOffset, hf_opcua_TransportProtocol); - parseString(subtree, tvb, pOffset, hf_opcua_SecurityPolicy); -} - -gint ett_opcua_SubscriptionDiagnosticsDataType = -1; -void parseSubscriptionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) -{ - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SubscriptionDiagnosticsDataType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SubscriptionDiagnosticsDataType); - - parseUInt32(subtree, tvb, pOffset, hf_opcua_SessionId); - parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId); - parseInt32(subtree, tvb, pOffset, hf_opcua_PublishingInterval); - parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxKeepAliveCount); - parseByte(subtree, tvb, pOffset, hf_opcua_Priority); - parseBoolean(subtree, tvb, pOffset, hf_opcua_PublishingEnabled); - parseUInt32(subtree, tvb, pOffset, hf_opcua_ModifyCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_EnableCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_DisableCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_RepublishRequestCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_RepublishMessageRequestCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_RepublishMessageCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_TransferRequestCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_TransferredToAltClientCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_TransferredToSameClientCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_PublishRequestCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_DataChangeNotificationsCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_EventNotificationsCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_NotificationsCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_LateStateCount); - parseUInt32(subtree, tvb, pOffset, hf_opcua_KeepAliveStateCount); -} - -gint ett_opcua_Range = -1; -void parseRange(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) -{ - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : Range", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_Range); - - parseDouble(subtree, tvb, pOffset, hf_opcua_Low); - parseDouble(subtree, tvb, pOffset, hf_opcua_High); -} - -gint ett_opcua_EUInformation = -1; -void parseEUInformation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) -{ - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : EUInformation", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EUInformation); - - parseString(subtree, tvb, pOffset, hf_opcua_NamespaceUri); - parseInt32(subtree, tvb, pOffset, hf_opcua_UnitId); - parseLocalizedText(subtree, tvb, pOffset, "DisplayName"); - parseLocalizedText(subtree, tvb, pOffset, "Description"); -} - -gint ett_opcua_Annotation = -1; -void parseAnnotation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) -{ - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : Annotation", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_Annotation); - - parseString(subtree, tvb, pOffset, hf_opcua_Message); - parseString(subtree, tvb, pOffset, hf_opcua_UserName); - parseExtensionObject(subtree, tvb, pOffset, "UserIdentity"); - parseDateTime(subtree, tvb, pOffset, hf_opcua_AnnotationTime); -} - -gint ett_opcua_BaseStructureDataType = -1; -void parseBaseStructureDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) -{ - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : BaseStructureDataType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BaseStructureDataType); - - parseInt32(subtree, tvb, pOffset, hf_opcua_Id); - parseString(subtree, tvb, pOffset, hf_opcua_Name); -} - -gint ett_opcua_DerivedStructureDataType = -1; -void parseDerivedStructureDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) -{ - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : DerivedStructureDataType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DerivedStructureDataType); - /* parse base class members */ - parseBaseStructureDataType(subtree, tvb, pOffset, "[BaseStructureDataType]"); - /* parse additional members */ - parseString(subtree, tvb, pOffset, hf_opcua_Description); - parseDateTime(subtree, tvb, pOffset, hf_opcua_Timestamp); -} - -gint ett_opcua_ScalarValuesDataType = -1; -void parseScalarValuesDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) -{ - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ScalarValuesDataType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ScalarValuesDataType); - - parseBoolean(subtree, tvb, pOffset, hf_opcua_Boolean); - parseSByte(subtree, tvb, pOffset, hf_opcua_SByte); - parseByte(subtree, tvb, pOffset, hf_opcua_Byte); - parseInt16(subtree, tvb, pOffset, hf_opcua_Int16); - parseUInt16(subtree, tvb, pOffset, hf_opcua_UInt16); - parseInt32(subtree, tvb, pOffset, hf_opcua_Int32); - parseUInt32(subtree, tvb, pOffset, hf_opcua_UInt32); - parseInt64(subtree, tvb, pOffset, hf_opcua_Int64); - parseUInt64(subtree, tvb, pOffset, hf_opcua_UInt64); - parseFloat(subtree, tvb, pOffset, hf_opcua_Float); - parseDouble(subtree, tvb, pOffset, hf_opcua_Double); - parseString(subtree, tvb, pOffset, hf_opcua_String); - parseDateTime(subtree, tvb, pOffset, hf_opcua_DateTime); - parseGuid(subtree, tvb, pOffset, hf_opcua_Guid); - parseByteString(subtree, tvb, pOffset, hf_opcua_ByteString); - parseXmlElement(subtree, tvb, pOffset, hf_opcua_XmlElement); - parseNodeId(subtree, tvb, pOffset, "NodeId"); - parseExpandedNodeId(subtree, tvb, pOffset, "ExpandedNodeId"); - parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode); - parseDiagnosticInfo(subtree, tvb, pOffset, "DiagnosticInfo"); - parseQualifiedName(subtree, tvb, pOffset, "QualifiedName"); - parseLocalizedText(subtree, tvb, pOffset, "LocalizedText"); - parseExtensionObject(subtree, tvb, pOffset, "ExtensionObject"); - parseDataValue(subtree, tvb, pOffset, "DataValue"); - parseVariant(subtree, tvb, pOffset, "Variant"); - parseBaseStructureDataType(subtree, tvb, pOffset, "Structure"); - parseColorsDataType(subtree, tvb, pOffset); -} - -gint ett_opcua_ArrayValuesDataType = -1; -void parseArrayValuesDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) -{ - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ArrayValuesDataType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ArrayValuesDataType); - - parseArraySimple(subtree, tvb, pOffset, hf_opcua_Boolean, parseBoolean); - parseArraySimple(subtree, tvb, pOffset, hf_opcua_SByte, parseSByte); - parseArraySimple(subtree, tvb, pOffset, hf_opcua_Int16, parseInt16); - parseArraySimple(subtree, tvb, pOffset, hf_opcua_UInt16, parseUInt16); - parseArraySimple(subtree, tvb, pOffset, hf_opcua_Int32, parseInt32); - parseArraySimple(subtree, tvb, pOffset, hf_opcua_UInt32, parseUInt32); - parseArraySimple(subtree, tvb, pOffset, hf_opcua_Int64, parseInt64); - parseArraySimple(subtree, tvb, pOffset, hf_opcua_UInt64, parseUInt64); - parseArraySimple(subtree, tvb, pOffset, hf_opcua_Float, parseFloat); - parseArraySimple(subtree, tvb, pOffset, hf_opcua_Double, parseDouble); - parseArraySimple(subtree, tvb, pOffset, hf_opcua_String, parseString); - parseArraySimple(subtree, tvb, pOffset, hf_opcua_DateTime, parseDateTime); - parseArraySimple(subtree, tvb, pOffset, hf_opcua_Guid, parseGuid); - parseArraySimple(subtree, tvb, pOffset, hf_opcua_ByteString, parseByteString); - parseArraySimple(subtree, tvb, pOffset, hf_opcua_XmlElement, parseXmlElement); - parseArrayComplex(subtree, tvb, pOffset, "NodeId", parseNodeId); - parseArrayComplex(subtree, tvb, pOffset, "ExpandedNodeId", parseExpandedNodeId); - parseArraySimple(subtree, tvb, pOffset, hf_opcua_StatusCode, parseStatusCode); - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfo", parseDiagnosticInfo); - parseArrayComplex(subtree, tvb, pOffset, "QualifiedName", parseQualifiedName); - parseArrayComplex(subtree, tvb, pOffset, "LocalizedText", parseLocalizedText); - parseArrayComplex(subtree, tvb, pOffset, "ExtensionObject", parseExtensionObject); - parseArrayComplex(subtree, tvb, pOffset, "DataValue", parseDataValue); - parseArrayComplex(subtree, tvb, pOffset, "Variant", parseVariant); - parseArrayComplex(subtree, tvb, pOffset, "Structure", parseBaseStructureDataType); - parseArrayEnum(subtree, tvb, pOffset, parseColorsDataType); -} - gint ett_opcua_RequestHeader = -1; void parseRequestHeader(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : RequestHeader", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RequestHeader); - - parseUInt32(subtree, tvb, pOffset, hf_opcua_SessionId); + parseNodeId(subtree, tvb, pOffset, "AuthenticationToken"); parseDateTime(subtree, tvb, pOffset, hf_opcua_Timestamp); - parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestId); + parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestHandle); parseUInt32(subtree, tvb, pOffset, hf_opcua_ReturnDiagnostics); - parseString(subtree, tvb, pOffset, hf_opcua_AuditLogEntryId); - parseInt32(subtree, tvb, pOffset, hf_opcua_TimeoutHint); - parseExtensionObject(subtree, tvb, pOffset, "AdditionalHeaders"); + parseString(subtree, tvb, pOffset, hf_opcua_AuditEntryId); + parseUInt32(subtree, tvb, pOffset, hf_opcua_TimeoutHint); + parseExtensionObject(subtree, tvb, pOffset, "AdditionalHeader"); } - gint ett_opcua_ResponseHeader = -1; void parseResponseHeader(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ResponseHeader", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ResponseHeader); - - parseUInt32(subtree, tvb, pOffset, hf_opcua_SessionId); parseDateTime(subtree, tvb, pOffset, hf_opcua_Timestamp); - parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestId); + parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestHandle); parseStatusCode(subtree, tvb, pOffset, hf_opcua_ServiceResult); parseDiagnosticInfo(subtree, tvb, pOffset, "ServiceDiagnostics"); + /* Array length field ignored: NoOfStringTable */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_StringTable, parseString); - parseExtensionObject(subtree, tvb, pOffset, "AdditionalHeaders"); + parseExtensionObject(subtree, tvb, pOffset, "AdditionalHeader"); } - gint ett_opcua_ServiceFault = -1; void parseServiceFault(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ServiceFault", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ServiceFault); - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); } - -gint ett_opcua_ComplexTestType = -1; -void parseComplexTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) -{ - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ComplexTestType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ComplexTestType); - - parseDateTime(subtree, tvb, pOffset, hf_opcua_Value1); - parseArrayEnum(subtree, tvb, pOffset, parseEnumeratedTestType); -} - -gint ett_opcua_BaseTestType = -1; -void parseBaseTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) -{ - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : BaseTestType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BaseTestType); - - parseDateTime(subtree, tvb, pOffset, hf_opcua_Value1); -} - -gint ett_opcua_DerivedTestType = -1; -void parseDerivedTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) -{ - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : DerivedTestType", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DerivedTestType); - /* parse base class members */ - parseBaseTestType(subtree, tvb, pOffset, "[BaseTestType]"); - /* parse additional members */ - parseDateTime(subtree, tvb, pOffset, hf_opcua_Value2); -} - gint ett_opcua_ScalarTestType = -1; void parseScalarTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ScalarTestType", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ScalarTestType); - parseBoolean(subtree, tvb, pOffset, hf_opcua_Boolean); parseSByte(subtree, tvb, pOffset, hf_opcua_SByte); parseByte(subtree, tvb, pOffset, hf_opcua_Byte); @@ -925,700 +491,935 @@ void parseScalarTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *s parseLocalizedText(subtree, tvb, pOffset, "LocalizedText"); parseExtensionObject(subtree, tvb, pOffset, "ExtensionObject"); parseDataValue(subtree, tvb, pOffset, "DataValue"); - parseVariant(subtree, tvb, pOffset, "Variant"); - parseComplexTestType(subtree, tvb, pOffset, "ComplexValue"); parseEnumeratedTestType(subtree, tvb, pOffset); } - gint ett_opcua_ArrayTestType = -1; void parseArrayTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ArrayTestType", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ArrayTestType); - + /* Array length field ignored: NoOfBooleans */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_Booleans, parseBoolean); + /* Array length field ignored: NoOfSBytes */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_SBytes, parseSByte); + /* Array length field ignored: NoOfInt16s */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_Int16s, parseInt16); + /* Array length field ignored: NoOfUInt16s */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_UInt16s, parseUInt16); + /* Array length field ignored: NoOfInt32s */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_Int32s, parseInt32); + /* Array length field ignored: NoOfUInt32s */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_UInt32s, parseUInt32); + /* Array length field ignored: NoOfInt64s */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_Int64s, parseInt64); + /* Array length field ignored: NoOfUInt64s */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_UInt64s, parseUInt64); + /* Array length field ignored: NoOfFloats */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_Floats, parseFloat); + /* Array length field ignored: NoOfDoubles */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_Doubles, parseDouble); + /* Array length field ignored: NoOfStrings */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_Strings, parseString); + /* Array length field ignored: NoOfDateTimes */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_DateTimes, parseDateTime); + /* Array length field ignored: NoOfGuids */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_Guids, parseGuid); + /* Array length field ignored: NoOfByteStrings */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_ByteStrings, parseByteString); + /* Array length field ignored: NoOfXmlElements */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_XmlElements, parseXmlElement); + /* Array length field ignored: NoOfNodeIds */ parseArrayComplex(subtree, tvb, pOffset, "NodeIds", parseNodeId); + /* Array length field ignored: NoOfExpandedNodeIds */ parseArrayComplex(subtree, tvb, pOffset, "ExpandedNodeIds", parseExpandedNodeId); + /* Array length field ignored: NoOfStatusCodes */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_StatusCodes, parseStatusCode); + /* Array length field ignored: NoOfDiagnosticInfos */ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo); + /* Array length field ignored: NoOfQualifiedNames */ parseArrayComplex(subtree, tvb, pOffset, "QualifiedNames", parseQualifiedName); + /* Array length field ignored: NoOfLocalizedTexts */ parseArrayComplex(subtree, tvb, pOffset, "LocalizedTexts", parseLocalizedText); + /* Array length field ignored: NoOfExtensionObjects */ parseArrayComplex(subtree, tvb, pOffset, "ExtensionObjects", parseExtensionObject); + /* Array length field ignored: NoOfDataValues */ parseArrayComplex(subtree, tvb, pOffset, "DataValues", parseDataValue); + /* Array length field ignored: NoOfVariants */ parseArrayComplex(subtree, tvb, pOffset, "Variants", parseVariant); - parseArrayComplex(subtree, tvb, pOffset, "ComplexValues", parseComplexTestType); + /* Array length field ignored: NoOfEnumeratedValues */ parseArrayEnum(subtree, tvb, pOffset, parseEnumeratedTestType); } - gint ett_opcua_CompositeTestType = -1; void parseCompositeTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : CompositeTestType", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CompositeTestType); - - parseScalarTestType(subtree, tvb, pOffset, "Input1"); - parseArrayTestType(subtree, tvb, pOffset, "Input2"); + parseScalarTestType(subtree, tvb, pOffset, "Field1"); + parseArrayTestType(subtree, tvb, pOffset, "Field2"); } - gint ett_opcua_RegisteredServer = -1; void parseRegisteredServer(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : RegisteredServer", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RegisteredServer); - - parseServerDescriptionType(subtree, tvb, pOffset); parseString(subtree, tvb, pOffset, hf_opcua_ServerUri); + parseString(subtree, tvb, pOffset, hf_opcua_ProductUri); + /* Array length field ignored: NoOfServerNames */ parseArrayComplex(subtree, tvb, pOffset, "ServerNames", parseLocalizedText); + parseApplicationType(subtree, tvb, pOffset); + parseString(subtree, tvb, pOffset, hf_opcua_GatewayServerUri); + /* Array length field ignored: NoOfDiscoveryUrls */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_DiscoveryUrls, parseString); parseString(subtree, tvb, pOffset, hf_opcua_SemaphoreFilePath); parseBoolean(subtree, tvb, pOffset, hf_opcua_IsOnline); } - gint ett_opcua_ChannelSecurityToken = -1; void parseChannelSecurityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ChannelSecurityToken", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ChannelSecurityToken); - - parseGuid(subtree, tvb, pOffset, hf_opcua_ChannelId); - parseString(subtree, tvb, pOffset, hf_opcua_TokenId); + parseUInt32(subtree, tvb, pOffset, hf_opcua_ChannelId); + parseUInt32(subtree, tvb, pOffset, hf_opcua_TokenId); parseDateTime(subtree, tvb, pOffset, hf_opcua_CreatedAt); - parseInt32(subtree, tvb, pOffset, hf_opcua_RevisedLifetime); + parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedLifetime); } - gint ett_opcua_SignatureData = -1; void parseSignatureData(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SignatureData", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SignatureData); - parseString(subtree, tvb, pOffset, hf_opcua_Algorithm); parseByteString(subtree, tvb, pOffset, hf_opcua_Signature); } - gint ett_opcua_AddNodesResult = -1; void parseAddNodesResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : AddNodesResult", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AddNodesResult); - parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode); parseNodeId(subtree, tvb, pOffset, "AddedNodeId"); } - -gint ett_opcua_BrowsePropertiesPropertyResult = -1; -void parseBrowsePropertiesPropertyResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +gint ett_opcua_ViewDescription = -1; +void parseViewDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : BrowsePropertiesPropertyResult", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowsePropertiesPropertyResult); - - parseQualifiedName(subtree, tvb, pOffset, "PropertyName"); - parseLocalizedText(subtree, tvb, pOffset, "PropertyDisplayName"); - parseNodeId(subtree, tvb, pOffset, "PropertyNodeId"); - parseStatusCode(subtree, tvb, pOffset, hf_opcua_PropertyStatusCode); + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ViewDescription", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ViewDescription); + parseNodeId(subtree, tvb, pOffset, "ViewId"); + parseDateTime(subtree, tvb, pOffset, hf_opcua_Timestamp); + parseUInt32(subtree, tvb, pOffset, hf_opcua_ViewVersion); } - -gint ett_opcua_BrowsePropertiesResult = -1; -void parseBrowsePropertiesResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +gint ett_opcua_BrowseDescription = -1; +void parseBrowseDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : BrowsePropertiesResult", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowsePropertiesResult); - - parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode); - parseArrayComplex(subtree, tvb, pOffset, "PropertyResults", parseBrowsePropertiesPropertyResult); - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo); + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : BrowseDescription", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowseDescription); + parseNodeId(subtree, tvb, pOffset, "NodeId"); + parseBrowseDirection(subtree, tvb, pOffset); + parseNodeId(subtree, tvb, pOffset, "ReferenceTypeId"); + parseBoolean(subtree, tvb, pOffset, hf_opcua_IncludeSubtypes); + parseUInt32(subtree, tvb, pOffset, hf_opcua_NodeClassMask); + parseUInt32(subtree, tvb, pOffset, hf_opcua_ResultMask); } - gint ett_opcua_ReferenceDescription = -1; void parseReferenceDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ReferenceDescription", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReferenceDescription); - parseNodeId(subtree, tvb, pOffset, "ReferenceTypeId"); parseBoolean(subtree, tvb, pOffset, hf_opcua_IsForward); - parseUInt32(subtree, tvb, pOffset, hf_opcua_ServerIndex); parseExpandedNodeId(subtree, tvb, pOffset, "NodeId"); parseQualifiedName(subtree, tvb, pOffset, "BrowseName"); parseLocalizedText(subtree, tvb, pOffset, "DisplayName"); - parseInt32(subtree, tvb, pOffset, hf_opcua_NodeClass); + parseNodeClass(subtree, tvb, pOffset); parseExpandedNodeId(subtree, tvb, pOffset, "TypeDefinition"); } - -gint ett_opcua_ViewDescription = -1; -void parseViewDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +gint ett_opcua_BrowseResult = -1; +void parseBrowseResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ViewDescription", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ViewDescription); - - parseNodeId(subtree, tvb, pOffset, "ViewId"); - parseDateTime(subtree, tvb, pOffset, hf_opcua_Timestamp); - parseInt32(subtree, tvb, pOffset, hf_opcua_ViewVersion); + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : BrowseResult", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowseResult); + parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode); + parseByteString(subtree, tvb, pOffset, hf_opcua_ContinuationPoint); + /* Array length field ignored: NoOfReferences */ + parseArrayComplex(subtree, tvb, pOffset, "References", parseReferenceDescription); +} +gint ett_opcua_RelativePathElement = -1; +void parseRelativePathElement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : RelativePathElement", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RelativePathElement); + parseNodeId(subtree, tvb, pOffset, "ReferenceTypeId"); + parseBoolean(subtree, tvb, pOffset, hf_opcua_IsInverse); + parseBoolean(subtree, tvb, pOffset, hf_opcua_IncludeSubtypes); + parseQualifiedName(subtree, tvb, pOffset, "TargetName"); +} +gint ett_opcua_RelativePath = -1; +void parseRelativePath(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -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", parseRelativePathElement); } - gint ett_opcua_BrowsePath = -1; void parseBrowsePath(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : BrowsePath", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowsePath); - parseNodeId(subtree, tvb, pOffset, "StartingNode"); - parseString(subtree, tvb, pOffset, hf_opcua_RelativePath); + parseRelativePath(subtree, tvb, pOffset, "RelativePath"); } - -gint ett_opcua_TranslateBrowsePathResult = -1; -void parseTranslateBrowsePathResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +gint ett_opcua_BrowsePathTarget = -1; +void parseBrowsePathTarget(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : TranslateBrowsePathResult", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TranslateBrowsePathResult); - + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : BrowsePathTarget", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowsePathTarget); + parseExpandedNodeId(subtree, tvb, pOffset, "TargetId"); + parseUInt32(subtree, tvb, pOffset, hf_opcua_RemainingPathIndex); +} +gint ett_opcua_BrowsePathResult = -1; +void parseBrowsePathResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : BrowsePathResult", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowsePathResult); parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode); - parseArrayComplex(subtree, tvb, pOffset, "MatchingNodeIds", parseNodeId); + /* Array length field ignored: NoOfTargets */ + parseArrayComplex(subtree, tvb, pOffset, "Targets", parseBrowsePathTarget); } - -gint ett_opcua_AttributeDescription = -1; -void parseAttributeDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +gint ett_opcua_QueryDataDescription = -1; +void parseQueryDataDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : AttributeDescription", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AttributeDescription); - - parseString(subtree, tvb, pOffset, hf_opcua_RelativePath); + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : QueryDataDescription", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_QueryDataDescription); + parseRelativePath(subtree, tvb, pOffset, "RelativePath"); parseUInt32(subtree, tvb, pOffset, hf_opcua_AttributeId); parseString(subtree, tvb, pOffset, hf_opcua_IndexRange); } - gint ett_opcua_NodeTypeDescription = -1; void parseNodeTypeDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : NodeTypeDescription", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_NodeTypeDescription); - - parseNodeId(subtree, tvb, pOffset, "TypeDefinitionNode"); + parseExpandedNodeId(subtree, tvb, pOffset, "TypeDefinitionNode"); parseBoolean(subtree, tvb, pOffset, hf_opcua_IncludeSubTypes); - parseArrayComplex(subtree, tvb, pOffset, "AttributesToReturn", parseAttributeDescription); + /* Array length field ignored: NoOfDataToReturn */ + parseArrayComplex(subtree, tvb, pOffset, "DataToReturn", parseQueryDataDescription); } - gint ett_opcua_QueryDataSet = -1; void parseQueryDataSet(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : QueryDataSet", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_QueryDataSet); - parseExpandedNodeId(subtree, tvb, pOffset, "NodeId"); - parseNodeId(subtree, tvb, pOffset, "TypeDefinitionNodeId"); + parseExpandedNodeId(subtree, tvb, pOffset, "TypeDefinitionNode"); + /* Array length field ignored: NoOfValues */ parseArrayComplex(subtree, tvb, pOffset, "Values", parseVariant); } - gint ett_opcua_NodeReference = -1; void parseNodeReference(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : NodeReference", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_NodeReference); - parseNodeId(subtree, tvb, pOffset, "NodeId"); parseNodeId(subtree, tvb, pOffset, "ReferenceTypeId"); parseBoolean(subtree, tvb, pOffset, hf_opcua_IsForward); + /* Array length field ignored: NoOfReferencedNodeIds */ parseArrayComplex(subtree, tvb, pOffset, "ReferencedNodeIds", parseNodeId); } - gint ett_opcua_ContentFilterElement = -1; void parseContentFilterElement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -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", parseExtensionObject); } - gint ett_opcua_ContentFilter = -1; void parseContentFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -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", parseContentFilterElement); } - -gint ett_opcua_FilterOperand = -1; -void parseFilterOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset _U_, char *szFieldName) -{ - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : FilterOperand", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_FilterOperand); - subtree = 0; -} - gint ett_opcua_ElementOperand = -1; void parseElementOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ElementOperand", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ElementOperand); - /* parse base class members */ - parseFilterOperand(subtree, tvb, pOffset, "[FilterOperand]"); - /* parse additional members */ parseUInt32(subtree, tvb, pOffset, hf_opcua_Index); } - gint ett_opcua_LiteralOperand = -1; void parseLiteralOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : LiteralOperand", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_LiteralOperand); - /* parse base class members */ - parseFilterOperand(subtree, tvb, pOffset, "[FilterOperand]"); - /* parse additional members */ parseVariant(subtree, tvb, pOffset, "Value"); } - gint ett_opcua_AttributeOperand = -1; void parseAttributeOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : AttributeOperand", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AttributeOperand); - /* parse base class members */ - parseFilterOperand(subtree, tvb, pOffset, "[FilterOperand]"); - /* parse additional members */ parseNodeId(subtree, tvb, pOffset, "NodeId"); parseString(subtree, tvb, pOffset, hf_opcua_Alias); + parseRelativePath(subtree, tvb, pOffset, "BrowsePath"); parseUInt32(subtree, tvb, pOffset, hf_opcua_AttributeId); parseString(subtree, tvb, pOffset, hf_opcua_IndexRange); } - -gint ett_opcua_PropertyOperand = -1; -void parsePropertyOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) -{ - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : PropertyOperand", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_PropertyOperand); - /* parse base class members */ - parseFilterOperand(subtree, tvb, pOffset, "[FilterOperand]"); - /* parse additional members */ - parseNodeId(subtree, tvb, pOffset, "NodeId"); - parseString(subtree, tvb, pOffset, hf_opcua_Alias); - parseQualifiedName(subtree, tvb, pOffset, "Property"); +gint ett_opcua_SimpleAttributeOperand = -1; +void parseSimpleAttributeOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -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", parseQualifiedName); + parseUInt32(subtree, tvb, pOffset, hf_opcua_AttributeId); parseString(subtree, tvb, pOffset, hf_opcua_IndexRange); } - +gint ett_opcua_ContentFilterElementResult = -1; +void parseContentFilterElementResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -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, hf_opcua_OperandStatusCodes, parseStatusCode); + /* Array length field ignored: NoOfOperandDiagnosticInfos */ + parseArrayComplex(subtree, tvb, pOffset, "OperandDiagnosticInfos", parseDiagnosticInfo); +} gint ett_opcua_ContentFilterResult = -1; void parseContentFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ContentFilterResult", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ContentFilterResult); - - parseStatusCode(subtree, tvb, pOffset, hf_opcua_Result); - parseDiagnosticInfo(subtree, tvb, pOffset, "DiagnosticInfo"); - parseUInt32(subtree, tvb, pOffset, hf_opcua_IndexOfInvalidElement); + /* Array length field ignored: NoOfElementResults */ + parseArrayComplex(subtree, tvb, pOffset, "ElementResults", parseContentFilterElementResult); + /* Array length field ignored: NoOfElementDiagnosticInfos */ + parseArrayComplex(subtree, tvb, pOffset, "ElementDiagnosticInfos", parseDiagnosticInfo); } - -gint ett_opcua_QueryResult = -1; -void parseQueryResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +gint ett_opcua_ParsingResult = -1; +void parseParsingResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : QueryResult", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_QueryResult); - + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ParsingResult", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ParsingResult); parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode); - parseArraySimple(subtree, tvb, pOffset, hf_opcua_AttributeStatusCodes, parseStatusCode); - parseArrayComplex(subtree, tvb, pOffset, "AttributeDiagnosticInfos", parseDiagnosticInfo); + /* Array length field ignored: NoOfDataStatusCodes */ + parseArraySimple(subtree, tvb, pOffset, hf_opcua_DataStatusCodes, parseStatusCode); + /* Array length field ignored: NoOfDataDiagnosticInfos */ + parseArrayComplex(subtree, tvb, pOffset, "DataDiagnosticInfos", parseDiagnosticInfo); } - gint ett_opcua_ReadValueId = -1; void parseReadValueId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ReadValueId", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReadValueId); - parseNodeId(subtree, tvb, pOffset, "NodeId"); parseUInt32(subtree, tvb, pOffset, hf_opcua_AttributeId); parseString(subtree, tvb, pOffset, hf_opcua_IndexRange); - parseQualifiedName(subtree, tvb, pOffset, "Encoding"); + parseQualifiedName(subtree, tvb, pOffset, "DataEncoding"); } - gint ett_opcua_HistoryReadValueId = -1; void parseHistoryReadValueId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : HistoryReadValueId", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryReadValueId); - parseNodeId(subtree, tvb, pOffset, "NodeId"); - parseQualifiedName(subtree, tvb, pOffset, "Encoding"); + parseString(subtree, tvb, pOffset, hf_opcua_IndexRange); + parseQualifiedName(subtree, tvb, pOffset, "DataEncoding"); parseByteString(subtree, tvb, pOffset, hf_opcua_ContinuationPoint); } - gint ett_opcua_HistoryReadResult = -1; void parseHistoryReadResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : HistoryReadResult", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryReadResult); - parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode); parseByteString(subtree, tvb, pOffset, hf_opcua_ContinuationPoint); parseExtensionObject(subtree, tvb, pOffset, "HistoryData"); } - -gint ett_opcua_MonitoringFilter = -1; -void parseMonitoringFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset _U_, char *szFieldName) -{ - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : MonitoringFilter", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MonitoringFilter); - subtree = 0; -} - -gint ett_opcua_EventFilter = -1; -void parseEventFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) -{ - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : EventFilter", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EventFilter); - /* parse base class members */ - parseMonitoringFilter(subtree, tvb, pOffset, "[MonitoringFilter]"); - /* parse additional members */ - parseArrayComplex(subtree, tvb, pOffset, "SelectClauses", parseNodeId); - parseContentFilter(subtree, tvb, pOffset, "WhereClause"); -} - gint ett_opcua_ReadEventDetails = -1; void parseReadEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ReadEventDetails", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReadEventDetails); - parseUInt32(subtree, tvb, pOffset, hf_opcua_NumValuesPerNode); parseDateTime(subtree, tvb, pOffset, hf_opcua_StartTime); parseDateTime(subtree, tvb, pOffset, hf_opcua_EndTime); parseEventFilter(subtree, tvb, pOffset, "Filter"); } - gint ett_opcua_ReadRawModifiedDetails = -1; void parseReadRawModifiedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ReadRawModifiedDetails", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReadRawModifiedDetails); - parseBoolean(subtree, tvb, pOffset, hf_opcua_IsReadModified); parseDateTime(subtree, tvb, pOffset, hf_opcua_StartTime); parseDateTime(subtree, tvb, pOffset, hf_opcua_EndTime); parseUInt32(subtree, tvb, pOffset, hf_opcua_NumValuesPerNode); parseBoolean(subtree, tvb, pOffset, hf_opcua_ReturnBounds); } - gint ett_opcua_ReadProcessedDetails = -1; void parseReadProcessedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ReadProcessedDetails", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReadProcessedDetails); - parseDateTime(subtree, tvb, pOffset, hf_opcua_StartTime); parseDateTime(subtree, tvb, pOffset, hf_opcua_EndTime); - parseInt32(subtree, tvb, pOffset, hf_opcua_ResampleInterval); - parseNodeId(subtree, tvb, pOffset, "AggregateType"); + parseDouble(subtree, tvb, pOffset, hf_opcua_ResampleInterval); + /* Array length field ignored: NoOfAggregateType */ + parseArrayComplex(subtree, tvb, pOffset, "AggregateType", parseNodeId); + parseAggregateConfiguration(subtree, tvb, pOffset, "AggregateConfiguration"); } - gint ett_opcua_ReadAtTimeDetails = -1; void parseReadAtTimeDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ReadAtTimeDetails", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReadAtTimeDetails); - + /* Array length field ignored: NoOfReqTimes */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_ReqTimes, parseDateTime); } - gint ett_opcua_HistoryData = -1; void parseHistoryData(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -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", parseDataValue); } - -gint ett_opcua_EventFieldList = -1; -void parseEventFieldList(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) -{ - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : EventFieldList", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EventFieldList); - - parseUInt32(subtree, tvb, pOffset, hf_opcua_ClientHandle); - parseArrayComplex(subtree, tvb, pOffset, "EventFields", parseVariant); -} - -gint ett_opcua_EventNotification = -1; -void parseEventNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) -{ - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : EventNotification", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EventNotification); - - parseArrayComplex(subtree, tvb, pOffset, "Events", parseEventFieldList); -} - gint ett_opcua_HistoryEvent = -1; void parseHistoryEvent(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : HistoryEvent", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryEvent); - - parseArrayComplex(subtree, tvb, pOffset, "Notifications", parseEventNotification); + /* Array length field ignored: NoOfEvents */ + parseArrayComplex(subtree, tvb, pOffset, "Events", parseHistoryEventFieldList); } - gint ett_opcua_WriteValue = -1; void parseWriteValue(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : WriteValue", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_WriteValue); - parseNodeId(subtree, tvb, pOffset, "NodeId"); parseUInt32(subtree, tvb, pOffset, hf_opcua_AttributeId); parseString(subtree, tvb, pOffset, hf_opcua_IndexRange); parseDataValue(subtree, tvb, pOffset, "Value"); } - -gint ett_opcua_InsertReplaceDetails = -1; -void parseInsertReplaceDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +gint ett_opcua_HistoryUpdateDetails = -1; +void parseHistoryUpdateDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : InsertReplaceDetails", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_InsertReplaceDetails); - - parseBoolean(subtree, tvb, pOffset, hf_opcua_PerformInsert); - parseBoolean(subtree, tvb, pOffset, hf_opcua_PerformReplace); + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : HistoryUpdateDetails", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryUpdateDetails); parseNodeId(subtree, tvb, pOffset, "NodeId"); +} +gint ett_opcua_UpdateDataDetails = -1; +void parseUpdateDataDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : UpdateDataDetails", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_UpdateDataDetails); + parseHistoryUpdateMode(subtree, tvb, pOffset); parseHistoryData(subtree, tvb, pOffset, "UpdateValue"); } - -gint ett_opcua_InsertEventDetails = -1; -void parseInsertEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +gint ett_opcua_InsertReplaceEventDetails = -1; +void parseInsertReplaceEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : InsertEventDetails", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_InsertEventDetails); - - parseHistoryEvent(subtree, tvb, pOffset, "HistoryEvent"); + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : InsertReplaceEventDetails", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_InsertReplaceEventDetails); + parseHistoryUpdateMode(subtree, tvb, pOffset); + /* Array length field ignored: NoOfSelectClause */ + parseArrayComplex(subtree, tvb, pOffset, "SelectClause", parseSimpleAttributeOperand); + /* Array length field ignored: NoOfEventData */ + parseArrayComplex(subtree, tvb, pOffset, "EventData", parseHistoryEventFieldList); +} +gint ett_opcua_UpdateEventDetails = -1; +void parseUpdateEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : UpdateEventDetails", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_UpdateEventDetails); + parseHistoryUpdateMode(subtree, tvb, pOffset); + parseEventFilter(subtree, tvb, pOffset, "Filter"); + parseHistoryEventFieldList(subtree, tvb, pOffset, "EventData"); } - gint ett_opcua_DeleteRawModifiedDetails = -1; void parseDeleteRawModifiedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : DeleteRawModifiedDetails", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteRawModifiedDetails); - parseBoolean(subtree, tvb, pOffset, hf_opcua_IsDeleteModified); - parseNodeId(subtree, tvb, pOffset, "NodeId"); parseDateTime(subtree, tvb, pOffset, hf_opcua_StartTime); parseDateTime(subtree, tvb, pOffset, hf_opcua_EndTime); } - gint ett_opcua_DeleteAtTimeDetails = -1; void parseDeleteAtTimeDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -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, hf_opcua_ReqTimes, parseDateTime); } - gint ett_opcua_DeleteEventDetails = -1; void parseDeleteEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : DeleteEventDetails", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteEventDetails); - - parseEventFilter(subtree, tvb, pOffset, "EventFilter"); - parseDateTime(subtree, tvb, pOffset, hf_opcua_StartTime); - parseDateTime(subtree, tvb, pOffset, hf_opcua_EndTime); + parseByteString(subtree, tvb, pOffset, hf_opcua_EventIds); } - gint ett_opcua_HistoryUpdateResult = -1; void parseHistoryUpdateResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : HistoryUpdateResult", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryUpdateResult); - parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode); - parseArraySimple(subtree, tvb, pOffset, hf_opcua_OperationResult, parseStatusCode); + /* Array length field ignored: NoOfOperationResults */ + parseArraySimple(subtree, tvb, pOffset, hf_opcua_OperationResults, parseStatusCode); + /* Array length field ignored: NoOfDiagnosticInfos */ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo); } - -gint ett_opcua_CallRequestItem = -1; -void parseCallRequestItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +gint ett_opcua_HistoryUpdateEventResult = -1; +void parseHistoryUpdateEventResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : CallRequestItem", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CallRequestItem); - + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : HistoryUpdateEventResult", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryUpdateEventResult); + parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode); + parseEventFilterResult(subtree, tvb, pOffset, "EventFilterResult"); +} +gint ett_opcua_CallMethodRequest = -1; +void parseCallMethodRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : CallMethodRequest", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CallMethodRequest); parseNodeId(subtree, tvb, pOffset, "ObjectId"); parseNodeId(subtree, tvb, pOffset, "MethodId"); + /* Array length field ignored: NoOfInputArguments */ parseArrayComplex(subtree, tvb, pOffset, "InputArguments", parseVariant); } - -gint ett_opcua_CallResultItem = -1; -void parseCallResultItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +gint ett_opcua_CallMethodResult = -1; +void parseCallMethodResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : CallResultItem", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CallResultItem); - + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -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, hf_opcua_InputArgumentResults, parseStatusCode); + /* Array length field ignored: NoOfInputArgumentDiagnosticInfos */ parseArrayComplex(subtree, tvb, pOffset, "InputArgumentDiagnosticInfos", parseDiagnosticInfo); + /* Array length field ignored: NoOfOutputArguments */ parseArrayComplex(subtree, tvb, pOffset, "OutputArguments", parseVariant); } - gint ett_opcua_DataChangeFilter = -1; void parseDataChangeFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : DataChangeFilter", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DataChangeFilter); - /* parse base class members */ - parseMonitoringFilter(subtree, tvb, pOffset, "[MonitoringFilter]"); - /* parse additional members */ parseDataChangeTrigger(subtree, tvb, pOffset); parseUInt32(subtree, tvb, pOffset, hf_opcua_DeadbandType); parseDouble(subtree, tvb, pOffset, hf_opcua_DeadbandValue); } - -gint ett_opcua_MonitoringFilterResult = -1; -void parseMonitoringFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset _U_, char *szFieldName) +gint ett_opcua_EventFilter = -1; +void parseEventFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : MonitoringFilterResult", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MonitoringFilterResult); - subtree = 0; + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -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", parseSimpleAttributeOperand); + parseContentFilter(subtree, tvb, pOffset, "WhereClause"); +} +gint ett_opcua_AggregateConfiguration = -1; +void parseAggregateConfiguration(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : AggregateConfiguration", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AggregateConfiguration); + parseBoolean(subtree, tvb, pOffset, hf_opcua_UseSeverCapabilitiesDefaults); + parseBoolean(subtree, tvb, pOffset, hf_opcua_TreatUncertainAsBad); + parseByte(subtree, tvb, pOffset, hf_opcua_PercentDataBad); + parseByte(subtree, tvb, pOffset, hf_opcua_PercentDataGood); + parseBoolean(subtree, tvb, pOffset, hf_opcua_SteppedSlopedExtrapolation); +} +gint ett_opcua_AggregateFilter = -1; +void parseAggregateFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : AggregateFilter", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AggregateFilter); + parseDateTime(subtree, tvb, pOffset, hf_opcua_StartTime); + parseNodeId(subtree, tvb, pOffset, "AggregateType"); + parseDouble(subtree, tvb, pOffset, hf_opcua_ProcessingInterval); + parseAggregateConfiguration(subtree, tvb, pOffset, "AggregateConfiguration"); } - gint ett_opcua_EventFilterResult = -1; void parseEventFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : EventFilterResult", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EventFilterResult); - /* parse base class members */ - parseMonitoringFilterResult(subtree, tvb, pOffset, "[MonitoringFilterResult]"); - /* parse additional members */ + /* Array length field ignored: NoOfSelectClauseResults */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_SelectClauseResults, parseStatusCode); + /* Array length field ignored: NoOfSelectClauseDiagnosticInfos */ parseArrayComplex(subtree, tvb, pOffset, "SelectClauseDiagnosticInfos", parseDiagnosticInfo); parseContentFilterResult(subtree, tvb, pOffset, "WhereClauseResult"); } - -gint ett_opcua_MonitoringAttributes = -1; -void parseMonitoringAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +gint ett_opcua_AggregateFilterResult = -1; +void parseAggregateFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : MonitoringAttributes", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MonitoringAttributes); - + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : AggregateFilterResult", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AggregateFilterResult); + parseDateTime(subtree, tvb, pOffset, hf_opcua_RevisedStartTime); + parseDouble(subtree, tvb, pOffset, hf_opcua_RevisedProcessingInterval); + parseAggregateConfiguration(subtree, tvb, pOffset, "RevisedAggregateConfiguration"); +} +gint ett_opcua_MonitoringParameters = -1; +void parseMonitoringParameters(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : MonitoringParameters", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MonitoringParameters); parseUInt32(subtree, tvb, pOffset, hf_opcua_ClientHandle); - parseInt32(subtree, tvb, pOffset, hf_opcua_SamplingInterval); + parseDouble(subtree, tvb, pOffset, hf_opcua_SamplingInterval); parseExtensionObject(subtree, tvb, pOffset, "Filter"); parseUInt32(subtree, tvb, pOffset, hf_opcua_QueueSize); parseBoolean(subtree, tvb, pOffset, hf_opcua_DiscardOldest); } - gint ett_opcua_MonitoredItemCreateRequest = -1; void parseMonitoredItemCreateRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : MonitoredItemCreateRequest", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MonitoredItemCreateRequest); - parseReadValueId(subtree, tvb, pOffset, "ItemToMonitor"); parseMonitoringMode(subtree, tvb, pOffset); - parseMonitoringAttributes(subtree, tvb, pOffset, "RequestedAttributes"); + parseMonitoringParameters(subtree, tvb, pOffset, "RequestedParameters"); } - gint ett_opcua_MonitoredItemCreateResult = -1; void parseMonitoredItemCreateResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : MonitoredItemCreateResult", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MonitoredItemCreateResult); - parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode); parseUInt32(subtree, tvb, pOffset, hf_opcua_MonitoredItemId); - parseInt32(subtree, tvb, pOffset, hf_opcua_RevisedSamplingInterval); + parseDouble(subtree, tvb, pOffset, hf_opcua_RevisedSamplingInterval); parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedQueueSize); parseExtensionObject(subtree, tvb, pOffset, "FilterResult"); } - gint ett_opcua_MonitoredItemModifyRequest = -1; void parseMonitoredItemModifyRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : MonitoredItemModifyRequest", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MonitoredItemModifyRequest); - - parseUInt32(subtree, tvb, pOffset, hf_opcua_MonitorItemId); - parseMonitoringAttributes(subtree, tvb, pOffset, "RequestedAttributes"); + parseUInt32(subtree, tvb, pOffset, hf_opcua_MonitoredItemId); + parseMonitoringParameters(subtree, tvb, pOffset, "RequestedParameters"); } - gint ett_opcua_MonitoredItemModifyResult = -1; void parseMonitoredItemModifyResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : MonitoredItemModifyResult", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MonitoredItemModifyResult); - parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode); - parseInt32(subtree, tvb, pOffset, hf_opcua_RevisedSamplingInterval); + parseDouble(subtree, tvb, pOffset, hf_opcua_RevisedSamplingInterval); parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedQueueSize); parseExtensionObject(subtree, tvb, pOffset, "FilterResult"); } - -gint ett_opcua_SubscriptionAcknowledgement = -1; -void parseSubscriptionAcknowledgement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) -{ - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SubscriptionAcknowledgement", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SubscriptionAcknowledgement); - - parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId); - parseUInt32(subtree, tvb, pOffset, hf_opcua_SequenceNumber); -} - gint ett_opcua_NotificationMessage = -1; void parseNotificationMessage(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : NotificationMessage", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_NotificationMessage); - parseUInt32(subtree, tvb, pOffset, hf_opcua_SequenceNumber); parseDateTime(subtree, tvb, pOffset, hf_opcua_PublishTime); + /* Array length field ignored: NoOfNotificationData */ parseArrayComplex(subtree, tvb, pOffset, "NotificationData", parseExtensionObject); } - +gint ett_opcua_DataChangeNotification = -1; +void parseDataChangeNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -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", parseMonitoredItemNotification); + /* Array length field ignored: NoOfDiagnosticInfos */ + parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo); +} gint ett_opcua_MonitoredItemNotification = -1; void parseMonitoredItemNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : MonitoredItemNotification", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_MonitoredItemNotification); - parseUInt32(subtree, tvb, pOffset, hf_opcua_ClientHandle); parseDataValue(subtree, tvb, pOffset, "Value"); } - -gint ett_opcua_DataChangeNotification = -1; -void parseDataChangeNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +gint ett_opcua_EventNotificationList = -1; +void parseEventNotificationList(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : DataChangeNotification", szFieldName); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DataChangeNotification); - - parseArrayComplex(subtree, tvb, pOffset, "MonitoredItems", parseMonitoredItemNotification); - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo); + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -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", parseEventFieldList); +} +gint ett_opcua_EventFieldList = -1; +void parseEventFieldList(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -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", parseVariant); +} +gint ett_opcua_HistoryEventFieldList = -1; +void parseHistoryEventFieldList(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -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", parseVariant); +} +gint ett_opcua_StatusChangeNotification = -1; +void parseStatusChangeNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : StatusChangeNotification", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_StatusChangeNotification); + parseStatusCode(subtree, tvb, pOffset, hf_opcua_Status); + parseDiagnosticInfo(subtree, tvb, pOffset, "DiagnosticInfo"); +} +gint ett_opcua_SubscriptionAcknowledgement = -1; +void parseSubscriptionAcknowledgement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SubscriptionAcknowledgement", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SubscriptionAcknowledgement); + parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId); + parseUInt32(subtree, tvb, pOffset, hf_opcua_SequenceNumber); } - gint ett_opcua_TransferResult = -1; void parseTransferResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) { proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : TransferResult", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TransferResult); - parseStatusCode(subtree, tvb, pOffset, hf_opcua_StatusCode); - parseArraySimple(subtree, tvb, pOffset, hf_opcua_AvailableSequenceNumbersRanges, parseString); + /* Array length field ignored: NoOfAvailableSequenceNumbers */ + parseArraySimple(subtree, tvb, pOffset, hf_opcua_AvailableSequenceNumbers, parseUInt32); +} +gint ett_opcua_RedundantServerDataType = -1; +void parseRedundantServerDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : RedundantServerDataType", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RedundantServerDataType); + parseString(subtree, tvb, pOffset, hf_opcua_ServerId); + parseByte(subtree, tvb, pOffset, hf_opcua_ServiceLevel); + parseServerState(subtree, tvb, pOffset); +} +gint ett_opcua_SamplingIntervalDiagnosticsDataType = -1; +void parseSamplingIntervalDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SamplingIntervalDiagnosticsDataType", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SamplingIntervalDiagnosticsDataType); + parseDouble(subtree, tvb, pOffset, hf_opcua_SamplingInterval); + parseUInt32(subtree, tvb, pOffset, hf_opcua_MonitoredItemCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxMonitoredItemCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_DisabledMonitoredItemCount); +} +gint ett_opcua_ServerDiagnosticsSummaryDataType = -1; +void parseServerDiagnosticsSummaryDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ServerDiagnosticsSummaryDataType", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ServerDiagnosticsSummaryDataType); + parseUInt32(subtree, tvb, pOffset, hf_opcua_ServerViewCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_CurrentSessionCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_CumulatedSessionCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_SecurityRejectedSessionCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_RejectedSessionCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_SessionTimeoutCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_SessionAbortCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_CurrentSubscriptionCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_CumulatedSubscriptionCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_PublishingIntervalCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_SecurityRejectedRequestsCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_RejectedRequestsCount); +} +gint ett_opcua_ServerStatusDataType = -1; +void parseServerStatusDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ServerStatusDataType", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ServerStatusDataType); + parseDateTime(subtree, tvb, pOffset, hf_opcua_StartTime); + parseDateTime(subtree, tvb, pOffset, hf_opcua_CurrentTime); + parseServerState(subtree, tvb, pOffset); + parseBuildInfo(subtree, tvb, pOffset, "BuildInfo"); + parseUInt32(subtree, tvb, pOffset, hf_opcua_SecondsTillShutdown); + parseLocalizedText(subtree, tvb, pOffset, "ShutdownReason"); +} +gint ett_opcua_SessionDiagnosticsDataType = -1; +void parseSessionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SessionDiagnosticsDataType", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SessionDiagnosticsDataType); + parseNodeId(subtree, tvb, pOffset, "SessionId"); + parseString(subtree, tvb, pOffset, hf_opcua_SessionName); + parseApplicationDescription(subtree, tvb, pOffset, "ClientDescription"); + parseString(subtree, tvb, pOffset, hf_opcua_ServerUri); + parseString(subtree, tvb, pOffset, hf_opcua_EndpointUrl); + /* Array length field ignored: NoOfLocaleIds */ + parseArraySimple(subtree, tvb, pOffset, hf_opcua_LocaleIds, parseString); + parseDouble(subtree, tvb, pOffset, hf_opcua_ActualSessionTimeout); + parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxResponseMessageSize); + parseDateTime(subtree, tvb, pOffset, hf_opcua_ClientConnectionTime); + parseDateTime(subtree, tvb, pOffset, hf_opcua_ClientLastContactTime); + parseUInt32(subtree, tvb, pOffset, hf_opcua_CurrentSubscriptionsCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_CurrentMonitoredItemsCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_CurrentPublishRequestsInQueue); + parseServiceCounterDataType(subtree, tvb, pOffset, "TotalRequestCount"); + parseUInt32(subtree, tvb, pOffset, hf_opcua_UnauthorizedRequestCount); + parseServiceCounterDataType(subtree, tvb, pOffset, "ReadCount"); + parseServiceCounterDataType(subtree, tvb, pOffset, "HistoryReadCount"); + parseServiceCounterDataType(subtree, tvb, pOffset, "WriteCount"); + parseServiceCounterDataType(subtree, tvb, pOffset, "HistoryUpdateCount"); + parseServiceCounterDataType(subtree, tvb, pOffset, "CallCount"); + parseServiceCounterDataType(subtree, tvb, pOffset, "CreateMonitoredItemsCount"); + parseServiceCounterDataType(subtree, tvb, pOffset, "ModifyMonitoredItemsCount"); + parseServiceCounterDataType(subtree, tvb, pOffset, "SetMonitoringModeCount"); + parseServiceCounterDataType(subtree, tvb, pOffset, "SetTriggeringCount"); + parseServiceCounterDataType(subtree, tvb, pOffset, "DeleteMonitoredItemsCount"); + parseServiceCounterDataType(subtree, tvb, pOffset, "CreateSubscriptionCount"); + parseServiceCounterDataType(subtree, tvb, pOffset, "ModifySubscriptionCount"); + parseServiceCounterDataType(subtree, tvb, pOffset, "SetPublishingModeCount"); + parseServiceCounterDataType(subtree, tvb, pOffset, "PublishCount"); + parseServiceCounterDataType(subtree, tvb, pOffset, "RepublishCount"); + parseServiceCounterDataType(subtree, tvb, pOffset, "TransferSubscriptionsCount"); + parseServiceCounterDataType(subtree, tvb, pOffset, "DeleteSubscriptionsCount"); + parseServiceCounterDataType(subtree, tvb, pOffset, "AddNodesCount"); + parseServiceCounterDataType(subtree, tvb, pOffset, "AddReferencesCount"); + parseServiceCounterDataType(subtree, tvb, pOffset, "DeleteNodesCount"); + parseServiceCounterDataType(subtree, tvb, pOffset, "DeleteReferencesCount"); + parseServiceCounterDataType(subtree, tvb, pOffset, "BrowseCount"); + parseServiceCounterDataType(subtree, tvb, pOffset, "BrowseNextCount"); + parseServiceCounterDataType(subtree, tvb, pOffset, "TranslateBrowsePathsToNodeIdsCount"); + parseServiceCounterDataType(subtree, tvb, pOffset, "QueryFirstCount"); + parseServiceCounterDataType(subtree, tvb, pOffset, "QueryNextCount"); + parseServiceCounterDataType(subtree, tvb, pOffset, "RegisterNodesCount"); + parseServiceCounterDataType(subtree, tvb, pOffset, "UnregisterNodesCount"); +} +gint ett_opcua_SessionSecurityDiagnosticsDataType = -1; +void parseSessionSecurityDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SessionSecurityDiagnosticsDataType", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SessionSecurityDiagnosticsDataType); + parseNodeId(subtree, tvb, pOffset, "SessionId"); + parseString(subtree, tvb, pOffset, hf_opcua_ClientUserIdOfSession); + /* Array length field ignored: NoOfClientUserIdHistory */ + parseArraySimple(subtree, tvb, pOffset, hf_opcua_ClientUserIdHistory, parseString); + parseString(subtree, tvb, pOffset, hf_opcua_AuthenticationMechanism); + parseString(subtree, tvb, pOffset, hf_opcua_Encoding); + parseString(subtree, tvb, pOffset, hf_opcua_TransportProtocol); + parseMessageSecurityMode(subtree, tvb, pOffset); + parseString(subtree, tvb, pOffset, hf_opcua_SecurityPolicyUri); + parseByteString(subtree, tvb, pOffset, hf_opcua_ClientCertificate); +} +gint ett_opcua_ServiceCounterDataType = -1; +void parseServiceCounterDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ServiceCounterDataType", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ServiceCounterDataType); + parseUInt32(subtree, tvb, pOffset, hf_opcua_TotalCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_ErrorCount); +} +gint ett_opcua_SubscriptionDiagnosticsDataType = -1; +void parseSubscriptionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SubscriptionDiagnosticsDataType", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SubscriptionDiagnosticsDataType); + parseNodeId(subtree, tvb, pOffset, "SessionId"); + parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId); + parseByte(subtree, tvb, pOffset, hf_opcua_Priority); + parseDouble(subtree, tvb, pOffset, hf_opcua_PublishingInterval); + parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxKeepAliveCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxLifetimeCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxNotificationsPerPublish); + parseBoolean(subtree, tvb, pOffset, hf_opcua_PublishingEnabled); + parseUInt32(subtree, tvb, pOffset, hf_opcua_ModifyCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_EnableCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_DisableCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_RepublishRequestCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_RepublishMessageRequestCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_RepublishMessageCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_TransferRequestCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_TransferredToAltClientCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_TransferredToSameClientCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_PublishRequestCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_DataChangeNotificationsCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_EventNotificationsCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_NotificationsCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_LatePublishRequestCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_CurrentKeepAliveCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_CurrentLifetimeCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_UnacknowledgedMessageCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_DiscardedMessageCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_MonitoredItemCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_DisabledMonitoredItemCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_MonitoringQueueOverflowCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_NextSequenceNumber); + parseUInt32(subtree, tvb, pOffset, hf_opcua_EventQueueOverFlowCount); +} +gint ett_opcua_ModelChangeStructureDataType = -1; +void parseModelChangeStructureDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ModelChangeStructureDataType", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ModelChangeStructureDataType); + parseNodeId(subtree, tvb, pOffset, "Affected"); + parseNodeId(subtree, tvb, pOffset, "AffectedType"); + parseByte(subtree, tvb, pOffset, hf_opcua_Verb); +} +gint ett_opcua_SemanticChangeStructureDataType = -1; +void parseSemanticChangeStructureDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : SemanticChangeStructureDataType", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SemanticChangeStructureDataType); + parseNodeId(subtree, tvb, pOffset, "Affected"); + parseNodeId(subtree, tvb, pOffset, "AffectedType"); +} +gint ett_opcua_Range = -1; +void parseRange(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : Range", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_Range); + parseDouble(subtree, tvb, pOffset, hf_opcua_Low); + parseDouble(subtree, tvb, pOffset, hf_opcua_High); +} +gint ett_opcua_EUInformation = -1; +void parseEUInformation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : EUInformation", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_EUInformation); + parseString(subtree, tvb, pOffset, hf_opcua_NamespaceUri); + parseInt32(subtree, tvb, pOffset, hf_opcua_UnitId); + parseLocalizedText(subtree, tvb, pOffset, "DisplayName"); + parseLocalizedText(subtree, tvb, pOffset, "Description"); +} +gint ett_opcua_Annotation = -1; +void parseAnnotation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : Annotation", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_Annotation); + parseString(subtree, tvb, pOffset, hf_opcua_Message); + parseString(subtree, tvb, pOffset, hf_opcua_UserName); + parseDateTime(subtree, tvb, pOffset, hf_opcua_AnnotationTime); +} +gint ett_opcua_ProgramDiagnosticDataType = -1; +void parseProgramDiagnosticDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s : ProgramDiagnosticDataType", szFieldName); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ProgramDiagnosticDataType); + parseNodeId(subtree, tvb, pOffset, "CreateSessionId"); + parseString(subtree, tvb, pOffset, hf_opcua_CreateClientName); + parseDateTime(subtree, tvb, pOffset, hf_opcua_InvocationCreationTime); + parseDateTime(subtree, tvb, pOffset, hf_opcua_LastTransitionTime); + parseString(subtree, tvb, pOffset, hf_opcua_LastMethodCall); + parseNodeId(subtree, tvb, pOffset, "LastMethodSessionId"); + /* Array length field ignored: NoOfLastMethodInputArguments */ + parseArrayComplex(subtree, tvb, pOffset, "LastMethodInputArguments", parseArgument); + /* Array length field ignored: NoOfLastMethodOutputArguments */ + parseArrayComplex(subtree, tvb, pOffset, "LastMethodOutputArguments", parseArgument); + parseDateTime(subtree, tvb, pOffset, hf_opcua_LastMethodCallTime); + parseStatusResult(subtree, tvb, pOffset, "LastMethodReturnStatus"); } /** Setup protocol subtree array */ static gint *ett[] = { - &ett_opcua_ReferenceNode, &ett_opcua_Node, &ett_opcua_ObjectNode, &ett_opcua_ObjectTypeNode, @@ -1628,57 +1429,39 @@ static gint *ett[] = &ett_opcua_MethodNode, &ett_opcua_ViewNode, &ett_opcua_DataTypeNode, - &ett_opcua_UriTableEntry, - &ett_opcua_NodeSet, + &ett_opcua_ReferenceNode, &ett_opcua_Argument, - &ett_opcua_Status, - &ett_opcua_BaseEvent, - &ett_opcua_SecurityPolicy, + &ett_opcua_TimeZoneDataType, + &ett_opcua_EnumValueInfo, + &ett_opcua_StatusResult, &ett_opcua_UserTokenPolicy, - &ett_opcua_ServerDescription, + &ett_opcua_ApplicationDescription, &ett_opcua_EndpointDescription, - &ett_opcua_EndpointConfiguration, &ett_opcua_UserIdentityToken, &ett_opcua_UserNameIdentityToken, &ett_opcua_X509IdentityToken, - &ett_opcua_WssIdentityToken, + &ett_opcua_IssuedIdentityToken, + &ett_opcua_EndpointConfiguration, &ett_opcua_SupportedProfile, &ett_opcua_BuildInfo, &ett_opcua_SoftwareCertificate, &ett_opcua_SignedSoftwareCertificate, &ett_opcua_NodeAttributes, &ett_opcua_ObjectAttributes, - &ett_opcua_ObjectTypeAttributes, &ett_opcua_VariableAttributes, + &ett_opcua_MethodAttributes, + &ett_opcua_ObjectTypeAttributes, &ett_opcua_VariableTypeAttributes, &ett_opcua_ReferenceTypeAttributes, - &ett_opcua_MethodAttributes, + &ett_opcua_DataTypeAttributes, &ett_opcua_ViewAttributes, &ett_opcua_AddNodesItem, &ett_opcua_AddReferencesItem, &ett_opcua_DeleteNodesItem, &ett_opcua_DeleteReferencesItem, - &ett_opcua_RedundantServerDataType, - &ett_opcua_SamplingRateDiagnosticsDataType, - &ett_opcua_ServerDiagnosticsSummaryDataType, - &ett_opcua_ServerStatusDataType, - &ett_opcua_ServiceCounterDataType, - &ett_opcua_SessionDiagnosticsDataType, - &ett_opcua_SessionSecurityDiagnosticsDataType, - &ett_opcua_SubscriptionDiagnosticsDataType, - &ett_opcua_Range, - &ett_opcua_EUInformation, - &ett_opcua_Annotation, - &ett_opcua_BaseStructureDataType, - &ett_opcua_DerivedStructureDataType, - &ett_opcua_ScalarValuesDataType, - &ett_opcua_ArrayValuesDataType, &ett_opcua_RequestHeader, &ett_opcua_ResponseHeader, &ett_opcua_ServiceFault, - &ett_opcua_ComplexTestType, - &ett_opcua_BaseTestType, - &ett_opcua_DerivedTestType, &ett_opcua_ScalarTestType, &ett_opcua_ArrayTestType, &ett_opcua_CompositeTestType, @@ -1686,60 +1469,83 @@ static gint *ett[] = &ett_opcua_ChannelSecurityToken, &ett_opcua_SignatureData, &ett_opcua_AddNodesResult, - &ett_opcua_BrowsePropertiesPropertyResult, - &ett_opcua_BrowsePropertiesResult, - &ett_opcua_ReferenceDescription, &ett_opcua_ViewDescription, + &ett_opcua_BrowseDescription, + &ett_opcua_ReferenceDescription, + &ett_opcua_BrowseResult, + &ett_opcua_RelativePathElement, + &ett_opcua_RelativePath, &ett_opcua_BrowsePath, - &ett_opcua_TranslateBrowsePathResult, - &ett_opcua_AttributeDescription, + &ett_opcua_BrowsePathTarget, + &ett_opcua_BrowsePathResult, + &ett_opcua_QueryDataDescription, &ett_opcua_NodeTypeDescription, &ett_opcua_QueryDataSet, &ett_opcua_NodeReference, &ett_opcua_ContentFilterElement, &ett_opcua_ContentFilter, - &ett_opcua_FilterOperand, &ett_opcua_ElementOperand, &ett_opcua_LiteralOperand, &ett_opcua_AttributeOperand, - &ett_opcua_PropertyOperand, + &ett_opcua_SimpleAttributeOperand, + &ett_opcua_ContentFilterElementResult, &ett_opcua_ContentFilterResult, - &ett_opcua_QueryResult, + &ett_opcua_ParsingResult, &ett_opcua_ReadValueId, &ett_opcua_HistoryReadValueId, &ett_opcua_HistoryReadResult, - &ett_opcua_MonitoringFilter, - &ett_opcua_EventFilter, &ett_opcua_ReadEventDetails, &ett_opcua_ReadRawModifiedDetails, &ett_opcua_ReadProcessedDetails, &ett_opcua_ReadAtTimeDetails, &ett_opcua_HistoryData, - &ett_opcua_EventFieldList, - &ett_opcua_EventNotification, &ett_opcua_HistoryEvent, &ett_opcua_WriteValue, - &ett_opcua_InsertReplaceDetails, - &ett_opcua_InsertEventDetails, + &ett_opcua_HistoryUpdateDetails, + &ett_opcua_UpdateDataDetails, + &ett_opcua_InsertReplaceEventDetails, + &ett_opcua_UpdateEventDetails, &ett_opcua_DeleteRawModifiedDetails, &ett_opcua_DeleteAtTimeDetails, &ett_opcua_DeleteEventDetails, &ett_opcua_HistoryUpdateResult, - &ett_opcua_CallRequestItem, - &ett_opcua_CallResultItem, + &ett_opcua_HistoryUpdateEventResult, + &ett_opcua_CallMethodRequest, + &ett_opcua_CallMethodResult, &ett_opcua_DataChangeFilter, - &ett_opcua_MonitoringFilterResult, + &ett_opcua_EventFilter, + &ett_opcua_AggregateConfiguration, + &ett_opcua_AggregateFilter, &ett_opcua_EventFilterResult, - &ett_opcua_MonitoringAttributes, + &ett_opcua_AggregateFilterResult, + &ett_opcua_MonitoringParameters, &ett_opcua_MonitoredItemCreateRequest, &ett_opcua_MonitoredItemCreateResult, &ett_opcua_MonitoredItemModifyRequest, &ett_opcua_MonitoredItemModifyResult, - &ett_opcua_SubscriptionAcknowledgement, &ett_opcua_NotificationMessage, - &ett_opcua_MonitoredItemNotification, &ett_opcua_DataChangeNotification, + &ett_opcua_MonitoredItemNotification, + &ett_opcua_EventNotificationList, + &ett_opcua_EventFieldList, + &ett_opcua_HistoryEventFieldList, + &ett_opcua_StatusChangeNotification, + &ett_opcua_SubscriptionAcknowledgement, &ett_opcua_TransferResult, + &ett_opcua_RedundantServerDataType, + &ett_opcua_SamplingIntervalDiagnosticsDataType, + &ett_opcua_ServerDiagnosticsSummaryDataType, + &ett_opcua_ServerStatusDataType, + &ett_opcua_SessionDiagnosticsDataType, + &ett_opcua_SessionSecurityDiagnosticsDataType, + &ett_opcua_ServiceCounterDataType, + &ett_opcua_SubscriptionDiagnosticsDataType, + &ett_opcua_ModelChangeStructureDataType, + &ett_opcua_SemanticChangeStructureDataType, + &ett_opcua_Range, + &ett_opcua_EUInformation, + &ett_opcua_Annotation, + &ett_opcua_ProgramDiagnosticDataType, }; void registerComplexTypes(void) @@ -1747,4 +1553,3 @@ void registerComplexTypes(void) proto_register_subtree_array(ett, array_length(ett)); } - diff --git a/plugins/opcua/opcua_complextypeparser.h b/plugins/opcua/opcua_complextypeparser.h index ad05992caa..e9208cc881 100644 --- a/plugins/opcua/opcua_complextypeparser.h +++ b/plugins/opcua/opcua_complextypeparser.h @@ -1,7 +1,7 @@ /****************************************************************************** ** $Id$ ** -** Copyright (C) 2006-2007 ascolab GmbH. All Rights Reserved. +** Copyright (C) 2006-2009 ascolab GmbH. All Rights Reserved. ** Web: http://www.ascolab.com ** ** This program is free software; you can redistribute it and/or @@ -16,7 +16,7 @@ ** ** Description: OpcUa Complex Type Parser ** -** This file was autogenerated on 8.5.2007 18:53:26. +** This file was autogenerated on 31.03.2009. ** DON'T MODIFY THIS FILE! ** ******************************************************************************/ @@ -28,7 +28,7 @@ #include <glib.h> #include <epan/packet.h> -void parseReferenceNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); + void parseNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseObjectNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseObjectTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); @@ -38,57 +38,39 @@ void parseReferenceTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char void parseMethodNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseViewNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseDataTypeNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseUriTableEntry(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseNodeSet(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseReferenceNode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseArgument(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseStatus(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseBaseEvent(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseSecurityPolicy(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseTimeZoneDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseEnumValueInfo(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseStatusResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseUserTokenPolicy(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseServerDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseApplicationDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseEndpointDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseEndpointConfiguration(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseUserIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseUserNameIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseX509IdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseWssIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseIssuedIdentityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseEndpointConfiguration(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseSupportedProfile(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseBuildInfo(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseSoftwareCertificate(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseSignedSoftwareCertificate(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseNodeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseObjectAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseObjectTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseVariableAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseMethodAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseObjectTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseVariableTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseReferenceTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseMethodAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseDataTypeAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseViewAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseAddNodesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseAddReferencesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseDeleteNodesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseDeleteReferencesItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseRedundantServerDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseSamplingRateDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseServerDiagnosticsSummaryDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseServerStatusDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseServiceCounterDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseSessionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseSessionSecurityDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseSubscriptionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseRange(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseEUInformation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseAnnotation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseBaseStructureDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseDerivedStructureDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseScalarValuesDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseArrayValuesDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseRequestHeader(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseResponseHeader(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseServiceFault(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseComplexTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseBaseTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseDerivedTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseScalarTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseArrayTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseCompositeTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); @@ -96,58 +78,82 @@ void parseRegisteredServer(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char void parseChannelSecurityToken(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseSignatureData(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseAddNodesResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseBrowsePropertiesPropertyResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseBrowsePropertiesResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseReferenceDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseViewDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseBrowseDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseReferenceDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseBrowseResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseRelativePathElement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseRelativePath(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseBrowsePath(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseTranslateBrowsePathResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseAttributeDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseBrowsePathTarget(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseBrowsePathResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseQueryDataDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseNodeTypeDescription(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseQueryDataSet(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseNodeReference(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseContentFilterElement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseContentFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseFilterOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseElementOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseLiteralOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseAttributeOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parsePropertyOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseSimpleAttributeOperand(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseContentFilterElementResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseContentFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseQueryResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseParsingResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseReadValueId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseHistoryReadValueId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseHistoryReadResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseMonitoringFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseEventFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseReadEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseReadRawModifiedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseReadProcessedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseReadAtTimeDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseHistoryData(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseEventFieldList(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseEventNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseHistoryEvent(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseWriteValue(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseInsertReplaceDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseInsertEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseHistoryUpdateDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseUpdateDataDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseInsertReplaceEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseUpdateEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseDeleteRawModifiedDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseDeleteAtTimeDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseDeleteEventDetails(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseHistoryUpdateResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseCallRequestItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseCallResultItem(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseHistoryUpdateEventResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseCallMethodRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseCallMethodResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseDataChangeFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseMonitoringFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseEventFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseAggregateConfiguration(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseAggregateFilter(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseEventFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseMonitoringAttributes(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseAggregateFilterResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseMonitoringParameters(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseMonitoredItemCreateRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseMonitoredItemCreateResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseMonitoredItemModifyRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseMonitoredItemModifyResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseSubscriptionAcknowledgement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseNotificationMessage(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void parseMonitoredItemNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseDataChangeNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseMonitoredItemNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseEventNotificationList(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseEventFieldList(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseHistoryEventFieldList(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseStatusChangeNotification(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseSubscriptionAcknowledgement(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); void parseTransferResult(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); -void registerComplexTypes(void); +void parseRedundantServerDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseSamplingIntervalDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseServerDiagnosticsSummaryDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseServerStatusDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseSessionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseSessionSecurityDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseServiceCounterDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseSubscriptionDiagnosticsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseModelChangeStructureDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseSemanticChangeStructureDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseRange(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseEUInformation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseAnnotation(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); +void parseProgramDiagnosticDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName); + +void registerComplexTypes(); diff --git a/plugins/opcua/opcua_enumparser.c b/plugins/opcua/opcua_enumparser.c index a7ce747ef4..e70ef95fe1 100644 --- a/plugins/opcua/opcua_enumparser.c +++ b/plugins/opcua/opcua_enumparser.c @@ -1,7 +1,7 @@ /****************************************************************************** ** $Id$ ** -** Copyright (C) 2006-2007 ascolab GmbH. All Rights Reserved. +** Copyright (C) 2006-2009 ascolab GmbH. All Rights Reserved. ** Web: http://www.ascolab.com ** ** This program is free software; you can redistribute it and/or @@ -16,7 +16,7 @@ ** ** Description: OpcUa Enum Type Parser ** -** This file was autogenerated on 8.5.2007 18:53:26. +** This file was autogenerated on 31.03.2009. ** DON'T MODIFY THIS FILE! ** ******************************************************************************/ @@ -30,60 +30,89 @@ #include "opcua_enumparser.h" - -/** NodeClass enum table */ -static const value_string g_NodeClassTable[] = { - { 0, "Node" }, - { 1, "Object" }, - { 2, "Variable" }, - { 4, "Method" }, - { 8, "ObjectType" }, - { 16, "VariableType" }, - { 32, "ReferenceType" }, - { 64, "DataType" }, - { 128, "View" }, +/** NodeIdType enum table */ +static const value_string g_NodeIdTypeTable[] = { + { 0, "TwoByte" }, + { 1, "FourByte" }, + { 2, "Numeric" }, + { 3, "String" }, + { 4, "Uri" }, + { 5, "Guid" }, + { 6, "ByteString" }, { 0, NULL } }; -static int hf_opcua_NodeClass = -1; +static int hf_opcua_NodeIdType = -1; -void parseNodeClass(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseNodeIdType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { - proto_tree_add_item(tree, hf_opcua_NodeClass, tvb, *pOffset, 4, TRUE); *pOffset+=4; + proto_tree_add_item(tree, hf_opcua_NodeIdType, tvb, *pOffset, 4, TRUE); *pOffset+=4; } +/** DialogConditionChoice enum table */ +static const value_string g_DialogConditionChoiceTable[] = { + { 0, "None" }, + { 1, "Ok" }, + { 2, "Cancel" }, + { 4, "Yes" }, + { 8, "No" }, + { 16, "Abort" }, + { 0, NULL } +}; +static int hf_opcua_DialogConditionChoice = -1; +void parseDialogConditionChoice(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +{ + proto_tree_add_item(tree, hf_opcua_DialogConditionChoice, tvb, *pOffset, 4, TRUE); *pOffset+=4; +} /** IdType enum table */ static const value_string g_IdTypeTable[] = { { 0, "Numeric" }, { 1, "String" }, - { 2, "Uri" }, - { 3, "Guid" }, - { 4, "Opaque" }, + { 2, "Guid" }, + { 3, "Opaque" }, { 0, NULL } }; static int hf_opcua_IdType = -1; void parseIdType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { - proto_tree_add_item(tree, hf_opcua_IdType, tvb, *pOffset, 4, TRUE); *pOffset+=4; + proto_tree_add_item(tree, hf_opcua_IdType, tvb, *pOffset, 4, TRUE); *pOffset+=4; } +/** NodeClass enum table */ +static const value_string g_NodeClassTable[] = { + { 0, "Unspecified" }, + { 1, "Object" }, + { 2, "Variable" }, + { 4, "Method" }, + { 8, "ObjectType" }, + { 16, "VariableType" }, + { 32, "ReferenceType" }, + { 64, "DataType" }, + { 128, "View" }, + { 0, NULL } +}; +static int hf_opcua_NodeClass = -1; +void parseNodeClass(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +{ + proto_tree_add_item(tree, hf_opcua_NodeClass, tvb, *pOffset, 4, TRUE); *pOffset+=4; +} /** MessageSecurityMode enum table */ static const value_string g_MessageSecurityModeTable[] = { - { 0, "None" }, - { 1, "Sign" }, - { 2, "SignAndEncrypt" }, + { 0, "Invalid" }, + { 1, "None" }, + { 2, "Sign" }, + { 3, "SignAndEncrypt" }, { 0, NULL } }; static int hf_opcua_MessageSecurityMode = -1; void parseMessageSecurityMode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { - proto_tree_add_item(tree, hf_opcua_MessageSecurityMode, tvb, *pOffset, 4, TRUE); *pOffset+=4; + proto_tree_add_item(tree, hf_opcua_MessageSecurityMode, tvb, *pOffset, 4, TRUE); *pOffset+=4; } - /** UserTokenType enum table */ static const value_string g_UserTokenTypeTable[] = { - { 0, "Default" }, + { 0, "Anonymous" }, { 1, "UserName" }, { 2, "Certificate" }, { 3, "IssuedToken" }, @@ -93,22 +122,22 @@ static int hf_opcua_UserTokenType = -1; void parseUserTokenType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { - proto_tree_add_item(tree, hf_opcua_UserTokenType, tvb, *pOffset, 4, TRUE); *pOffset+=4; + proto_tree_add_item(tree, hf_opcua_UserTokenType, tvb, *pOffset, 4, TRUE); *pOffset+=4; } - -/** ServerDescriptionType enum table */ -static const value_string g_ServerDescriptionTypeTable[] = { - { 0, "Standard" }, - { 1, "Discovery" }, +/** ApplicationType enum table */ +static const value_string g_ApplicationTypeTable[] = { + { 0, "Server" }, + { 1, "Client" }, + { 2, "ClientAndServer" }, + { 3, "DiscoveryServer" }, { 0, NULL } }; -static int hf_opcua_ServerDescriptionType = -1; +static int hf_opcua_ApplicationType = -1; -void parseServerDescriptionType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseApplicationType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { - proto_tree_add_item(tree, hf_opcua_ServerDescriptionType, tvb, *pOffset, 4, TRUE); *pOffset+=4; + proto_tree_add_item(tree, hf_opcua_ApplicationType, tvb, *pOffset, 4, TRUE); *pOffset+=4; } - /** SecurityTokenRequestType enum table */ static const value_string g_SecurityTokenRequestTypeTable[] = { { 0, "Issue" }, @@ -119,9 +148,8 @@ static int hf_opcua_SecurityTokenRequestType = -1; void parseSecurityTokenRequestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { - proto_tree_add_item(tree, hf_opcua_SecurityTokenRequestType, tvb, *pOffset, 4, TRUE); *pOffset+=4; + proto_tree_add_item(tree, hf_opcua_SecurityTokenRequestType, tvb, *pOffset, 4, TRUE); *pOffset+=4; } - /** ComplianceLevel enum table */ static const value_string g_ComplianceLevelTable[] = { { 0, "Untested" }, @@ -134,110 +162,80 @@ static int hf_opcua_ComplianceLevel = -1; void parseComplianceLevel(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { - proto_tree_add_item(tree, hf_opcua_ComplianceLevel, tvb, *pOffset, 4, TRUE); *pOffset+=4; -} - -/** RedundancySupport enum table */ -static const value_string g_RedundancySupportTable[] = { - { 1, "None" }, - { 2, "Cold" }, - { 3, "Warm" }, - { 4, "Hot" }, - { 0, NULL } -}; -static int hf_opcua_RedundancySupport = -1; - -void parseRedundancySupport(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) -{ - proto_tree_add_item(tree, hf_opcua_RedundancySupport, tvb, *pOffset, 4, TRUE); *pOffset+=4; + proto_tree_add_item(tree, hf_opcua_ComplianceLevel, tvb, *pOffset, 4, TRUE); *pOffset+=4; } - -/** ServerState enum table */ -static const value_string g_ServerStateTable[] = { - { 1, "Running" }, - { 2, "Failed" }, - { 3, "NoConfiguration" }, - { 4, "Suspended" }, - { 5, "Shutdown" }, - { 6, "Test" }, - { 7, "CommunicationFault" }, - { 8, "Unknown" }, - { 0, NULL } -}; -static int hf_opcua_ServerState = -1; - -void parseServerState(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) -{ - proto_tree_add_item(tree, hf_opcua_ServerState, tvb, *pOffset, 4, TRUE); *pOffset+=4; -} - -/** ExceptionDeviationType enum table */ -static const value_string g_ExceptionDeviationTypeTable[] = { - { 1, "AbsoluteValue" }, - { 2, "PercentOfRange" }, - { 3, "PercentOfValue" }, - { 0, NULL } -}; -static int hf_opcua_ExceptionDeviationType = -1; - -void parseExceptionDeviationType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) -{ - proto_tree_add_item(tree, hf_opcua_ExceptionDeviationType, tvb, *pOffset, 4, TRUE); *pOffset+=4; -} - -/** ColorsDataType enum table */ -static const value_string g_ColorsDataTypeTable[] = { - { 1, "Red" }, - { 2, "Orange" }, - { 3, "Yellow" }, - { 4, "Green" }, - { 5, "Blue" }, - { 6, "DarkBlue" }, - { 7, "Violet" }, +/** AttributeWriteMask enum table */ +static const value_string g_AttributeWriteMaskTable[] = { + { 0, "None" }, + { 1, "AccessLevel" }, + { 2, "ArrayDimensions" }, + { 4, "BrowseName" }, + { 8, "ContainsNoLoops" }, + { 16, "DataType" }, + { 32, "Description" }, + { 64, "DisplayName" }, + { 128, "EventNotifier" }, + { 256, "Executable" }, + { 512, "Historizing" }, + { 1024, "InverseName" }, + { 2048, "IsAbstract" }, + { 4096, "MinimumSamplingInterval" }, + { 8192, "NodeClass" }, + { 16384, "NodeId" }, + { 32768, "Symmetric" }, + { 65536, "UserAccessLevel" }, + { 131072, "UserExecutable" }, + { 262144, "UserWriteMask" }, + { 524288, "ValueRank" }, + { 1048576, "WriteMask" }, + { 2097152, "ValueForVariableType" }, { 0, NULL } }; -static int hf_opcua_ColorsDataType = -1; +static int hf_opcua_AttributeWriteMask = -1; -void parseColorsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseAttributeWriteMask(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { - proto_tree_add_item(tree, hf_opcua_ColorsDataType, tvb, *pOffset, 4, TRUE); *pOffset+=4; + proto_tree_add_item(tree, hf_opcua_AttributeWriteMask, tvb, *pOffset, 4, TRUE); *pOffset+=4; } - -/** DiagnosticsMasks enum table */ -static const value_string g_DiagnosticsMasksTable[] = { - { 1, "ServiceSymbolicId" }, - { 2, "ServiceLocalizedText" }, - { 4, "ServiceAdditionalInfo" }, - { 8, "ServiceInnerStatusCode" }, - { 16, "ServiceInnerDiagnostics" }, - { 3, "ServiceSymbolicIdAndText" }, - { 15, "ServiceNoInnerStatus" }, - { 31, "ServiceAll" }, - { 32, "OperationSymbolicId" }, - { 64, "OperationLocalizedText" }, - { 128, "OperationAdditionalInfo" }, - { 256, "OperationInnerStatusCode" }, - { 512, "OperationInnerDiagnostics" }, - { 96, "OperationSymbolicIdAndText" }, - { 224, "OperationNoInnerStatus" }, - { 992, "OperationAll" }, - { 33, "SymbolicId" }, - { 66, "LocalizedText" }, - { 132, "AdditionalInfo" }, - { 264, "InnerStatusCode" }, - { 528, "InnerDiagnostics" }, - { 99, "SymbolicIdAndText" }, - { 239, "NoInnerStatus" }, - { 1023, "All" }, +/** NodeAttributesMask enum table */ +static const value_string g_NodeAttributesMaskTable[] = { + { 0, "None" }, + { 1, "AccessLevel" }, + { 2, "ArrayDimensions" }, + { 8, "ContainsNoLoops" }, + { 16, "DataType" }, + { 32, "Description" }, + { 64, "DisplayName" }, + { 128, "EventNotifier" }, + { 256, "Executable" }, + { 512, "Historizing" }, + { 1024, "InverseName" }, + { 2048, "IsAbstract" }, + { 4096, "MinimumSamplingInterval" }, + { 32768, "Symmetric" }, + { 65536, "UserAccessLevel" }, + { 131072, "UserExecutable" }, + { 262144, "UserWriteMask" }, + { 524288, "ValueRank" }, + { 1048576, "WriteMask" }, + { 2097152, "Value" }, + { 4194303, "All" }, + { 1335396, "BaseNode" }, + { 1335524, "Object" }, + { 1337444, "ObjectTypeOrDataType" }, + { 4026999, "Variable" }, + { 3958902, "VariableType" }, + { 1466724, "Method" }, + { 1371236, "ReferenceType" }, + { 1335532, "View" }, { 0, NULL } }; -static int hf_opcua_DiagnosticsMasks = -1; +static int hf_opcua_NodeAttributesMask = -1; -void parseDiagnosticsMasks(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseNodeAttributesMask(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { - proto_tree_add_item(tree, hf_opcua_DiagnosticsMasks, tvb, *pOffset, 4, TRUE); *pOffset+=4; + proto_tree_add_item(tree, hf_opcua_NodeAttributesMask, tvb, *pOffset, 4, TRUE); *pOffset+=4; } - /** EnumeratedTestType enum table */ static const value_string g_EnumeratedTestTypeTable[] = { { 1, "Red" }, @@ -249,64 +247,96 @@ static int hf_opcua_EnumeratedTestType = -1; void parseEnumeratedTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { - proto_tree_add_item(tree, hf_opcua_EnumeratedTestType, tvb, *pOffset, 4, TRUE); *pOffset+=4; + proto_tree_add_item(tree, hf_opcua_EnumeratedTestType, tvb, *pOffset, 4, TRUE); *pOffset+=4; } - /** BrowseDirection enum table */ static const value_string g_BrowseDirectionTable[] = { - { 1, "Forward" }, - { 2, "Inverse" }, - { 3, "Both" }, + { 0, "Forward" }, + { 1, "Inverse" }, + { 2, "Both" }, { 0, NULL } }; static int hf_opcua_BrowseDirection = -1; void parseBrowseDirection(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { - proto_tree_add_item(tree, hf_opcua_BrowseDirection, tvb, *pOffset, 4, TRUE); *pOffset+=4; + proto_tree_add_item(tree, hf_opcua_BrowseDirection, tvb, *pOffset, 4, TRUE); *pOffset+=4; } +/** BrowseResultMask enum table */ +static const value_string g_BrowseResultMaskTable[] = { + { 0, "None" }, + { 1, "ReferenceTypeId" }, + { 2, "IsForward" }, + { 4, "NodeClass" }, + { 8, "BrowseName" }, + { 16, "DisplayName" }, + { 32, "TypeDefinition" }, + { 63, "All" }, + { 3, "ReferenceTypeInfo" }, + { 60, "TargetInfo" }, + { 0, NULL } +}; +static int hf_opcua_BrowseResultMask = -1; +void parseBrowseResultMask(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +{ + proto_tree_add_item(tree, hf_opcua_BrowseResultMask, tvb, *pOffset, 4, TRUE); *pOffset+=4; +} /** FilterOperator enum table */ static const value_string g_FilterOperatorTable[] = { - { 1, "Equals" }, - { 2, "IsNull" }, - { 3, "GreaterThan" }, - { 4, "LessThan" }, - { 5, "GreaterThanOrEqual" }, - { 6, "LessThanOrEqual" }, - { 7, "Like" }, - { 8, "Not" }, - { 9, "Between" }, - { 10, "InList" }, - { 11, "And" }, - { 12, "Or" }, + { 0, "Equals" }, + { 1, "IsNull" }, + { 2, "GreaterThan" }, + { 3, "LessThan" }, + { 4, "GreaterThanOrEqual" }, + { 5, "LessThanOrEqual" }, + { 6, "Like" }, + { 7, "Not" }, + { 8, "Between" }, + { 9, "InList" }, + { 10, "And" }, + { 11, "Or" }, + { 12, "Cast" }, { 13, "InView" }, { 14, "OfType" }, { 15, "RelatedTo" }, + { 16, "BitwiseAnd" }, + { 17, "BitwiseOr" }, { 0, NULL } }; static int hf_opcua_FilterOperator = -1; void parseFilterOperator(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { - proto_tree_add_item(tree, hf_opcua_FilterOperator, tvb, *pOffset, 4, TRUE); *pOffset+=4; + proto_tree_add_item(tree, hf_opcua_FilterOperator, tvb, *pOffset, 4, TRUE); *pOffset+=4; } - /** TimestampsToReturn enum table */ static const value_string g_TimestampsToReturnTable[] = { - { 1, "Source" }, - { 2, "Server" }, - { 3, "Both" }, - { 4, "Neither" }, + { 0, "Source" }, + { 1, "Server" }, + { 2, "Both" }, + { 3, "Neither" }, { 0, NULL } }; static int hf_opcua_TimestampsToReturn = -1; void parseTimestampsToReturn(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { - proto_tree_add_item(tree, hf_opcua_TimestampsToReturn, tvb, *pOffset, 4, TRUE); *pOffset+=4; + proto_tree_add_item(tree, hf_opcua_TimestampsToReturn, tvb, *pOffset, 4, TRUE); *pOffset+=4; } +/** HistoryUpdateMode enum table */ +static const value_string g_HistoryUpdateModeTable[] = { + { 1, "Insert" }, + { 2, "Replace" }, + { 3, "InsertReplace" }, + { 0, NULL } +}; +static int hf_opcua_HistoryUpdateMode = -1; +void parseHistoryUpdateMode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +{ + proto_tree_add_item(tree, hf_opcua_HistoryUpdateMode, tvb, *pOffset, 4, TRUE); *pOffset+=4; +} /** MonitoringMode enum table */ static const value_string g_MonitoringModeTable[] = { { 0, "Disabled" }, @@ -318,9 +348,8 @@ static int hf_opcua_MonitoringMode = -1; void parseMonitoringMode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { - proto_tree_add_item(tree, hf_opcua_MonitoringMode, tvb, *pOffset, 4, TRUE); *pOffset+=4; + proto_tree_add_item(tree, hf_opcua_MonitoringMode, tvb, *pOffset, 4, TRUE); *pOffset+=4; } - /** DataChangeTrigger enum table */ static const value_string g_DataChangeTriggerTable[] = { { 0, "Status" }, @@ -332,40 +361,108 @@ static int hf_opcua_DataChangeTrigger = -1; void parseDataChangeTrigger(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { - proto_tree_add_item(tree, hf_opcua_DataChangeTrigger, tvb, *pOffset, 4, TRUE); *pOffset+=4; + proto_tree_add_item(tree, hf_opcua_DataChangeTrigger, tvb, *pOffset, 4, TRUE); *pOffset+=4; } - /** DeadbandType enum table */ static const value_string g_DeadbandTypeTable[] = { { 0, "None" }, { 1, "Absolute" }, - { 2, "Percentage" }, + { 2, "Percent" }, { 0, NULL } }; static int hf_opcua_DeadbandType = -1; void parseDeadbandType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { - proto_tree_add_item(tree, hf_opcua_DeadbandType, tvb, *pOffset, 4, TRUE); *pOffset+=4; + proto_tree_add_item(tree, hf_opcua_DeadbandType, tvb, *pOffset, 4, TRUE); *pOffset+=4; +} +/** RedundancySupport enum table */ +static const value_string g_RedundancySupportTable[] = { + { 0, "None" }, + { 1, "Cold" }, + { 2, "Warm" }, + { 3, "Hot" }, + { 4, "Transparent" }, + { 0, NULL } +}; +static int hf_opcua_RedundancySupport = -1; + +void parseRedundancySupport(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +{ + proto_tree_add_item(tree, hf_opcua_RedundancySupport, tvb, *pOffset, 4, TRUE); *pOffset+=4; +} +/** ServerState enum table */ +static const value_string g_ServerStateTable[] = { + { 0, "Running" }, + { 1, "Failed" }, + { 2, "NoConfiguration" }, + { 3, "Suspended" }, + { 4, "Shutdown" }, + { 5, "Test" }, + { 6, "CommunicationFault" }, + { 7, "Unknown" }, + { 0, NULL } +}; +static int hf_opcua_ServerState = -1; + +void parseServerState(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +{ + proto_tree_add_item(tree, hf_opcua_ServerState, tvb, *pOffset, 4, TRUE); *pOffset+=4; +} +/** ModelChangeStructureVerbMask enum table */ +static const value_string g_ModelChangeStructureVerbMaskTable[] = { + { 1, "NodeAdded" }, + { 2, "NodeDeleted" }, + { 4, "ReferenceAdded" }, + { 8, "ReferenceDeleted" }, + { 16, "DataTypeChanged" }, + { 0, NULL } +}; +static int hf_opcua_ModelChangeStructureVerbMask = -1; + +void parseModelChangeStructureVerbMask(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +{ + proto_tree_add_item(tree, hf_opcua_ModelChangeStructureVerbMask, tvb, *pOffset, 4, TRUE); *pOffset+=4; +} +/** ExceptionDeviationFormat enum table */ +static const value_string g_ExceptionDeviationFormatTable[] = { + { 0, "AbsoluteValue" }, + { 1, "PercentOfRange" }, + { 2, "PercentOfValue" }, + { 3, "PercentOfEURange" }, + { 4, "Unknown" }, + { 0, NULL } +}; +static int hf_opcua_ExceptionDeviationFormat = -1; + +void parseExceptionDeviationFormat(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +{ + proto_tree_add_item(tree, hf_opcua_ExceptionDeviationFormat, tvb, *pOffset, 4, TRUE); *pOffset+=4; } /** header field definitions */ static hf_register_info hf[] = { - { &hf_opcua_NodeClass, - { "NodeClass", "", FT_UINT32, BASE_HEX, VALS(g_NodeClassTable), 0x0, "", HFILL } + { &hf_opcua_NodeIdType, + { "NodeIdType", "", FT_UINT32, BASE_HEX, VALS(g_NodeIdTypeTable), 0x0, "", HFILL } + }, + { &hf_opcua_DialogConditionChoice, + { "DialogConditionChoice", "", FT_UINT32, BASE_HEX, VALS(g_DialogConditionChoiceTable), 0x0, "", HFILL } }, { &hf_opcua_IdType, { "IdType", "", FT_UINT32, BASE_HEX, VALS(g_IdTypeTable), 0x0, "", HFILL } }, + { &hf_opcua_NodeClass, + { "NodeClass", "", FT_UINT32, BASE_HEX, VALS(g_NodeClassTable), 0x0, "", HFILL } + }, { &hf_opcua_MessageSecurityMode, { "MessageSecurityMode", "", FT_UINT32, BASE_HEX, VALS(g_MessageSecurityModeTable), 0x0, "", HFILL } }, { &hf_opcua_UserTokenType, { "UserTokenType", "", FT_UINT32, BASE_HEX, VALS(g_UserTokenTypeTable), 0x0, "", HFILL } }, - { &hf_opcua_ServerDescriptionType, - { "ServerDescriptionType", "", FT_UINT32, BASE_HEX, VALS(g_ServerDescriptionTypeTable), 0x0, "", HFILL } + { &hf_opcua_ApplicationType, + { "ApplicationType", "", FT_UINT32, BASE_HEX, VALS(g_ApplicationTypeTable), 0x0, "", HFILL } }, { &hf_opcua_SecurityTokenRequestType, { "SecurityTokenRequestType", "", FT_UINT32, BASE_HEX, VALS(g_SecurityTokenRequestTypeTable), 0x0, "", HFILL } @@ -373,20 +470,11 @@ static hf_register_info hf[] = { &hf_opcua_ComplianceLevel, { "ComplianceLevel", "", FT_UINT32, BASE_HEX, VALS(g_ComplianceLevelTable), 0x0, "", HFILL } }, - { &hf_opcua_RedundancySupport, - { "RedundancySupport", "", FT_UINT32, BASE_HEX, VALS(g_RedundancySupportTable), 0x0, "", HFILL } + { &hf_opcua_AttributeWriteMask, + { "AttributeWriteMask", "", FT_UINT32, BASE_HEX, VALS(g_AttributeWriteMaskTable), 0x0, "", HFILL } }, - { &hf_opcua_ServerState, - { "ServerState", "", FT_UINT32, BASE_HEX, VALS(g_ServerStateTable), 0x0, "", HFILL } - }, - { &hf_opcua_ExceptionDeviationType, - { "ExceptionDeviationType", "", FT_UINT32, BASE_HEX, VALS(g_ExceptionDeviationTypeTable), 0x0, "", HFILL } - }, - { &hf_opcua_ColorsDataType, - { "ColorsDataType", "", FT_UINT32, BASE_HEX, VALS(g_ColorsDataTypeTable), 0x0, "", HFILL } - }, - { &hf_opcua_DiagnosticsMasks, - { "DiagnosticsMasks", "", FT_UINT32, BASE_HEX, VALS(g_DiagnosticsMasksTable), 0x0, "", HFILL } + { &hf_opcua_NodeAttributesMask, + { "NodeAttributesMask", "", FT_UINT32, BASE_HEX, VALS(g_NodeAttributesMaskTable), 0x0, "", HFILL } }, { &hf_opcua_EnumeratedTestType, { "EnumeratedTestType", "", FT_UINT32, BASE_HEX, VALS(g_EnumeratedTestTypeTable), 0x0, "", HFILL } @@ -394,12 +482,18 @@ static hf_register_info hf[] = { &hf_opcua_BrowseDirection, { "BrowseDirection", "", FT_UINT32, BASE_HEX, VALS(g_BrowseDirectionTable), 0x0, "", HFILL } }, + { &hf_opcua_BrowseResultMask, + { "BrowseResultMask", "", FT_UINT32, BASE_HEX, VALS(g_BrowseResultMaskTable), 0x0, "", HFILL } + }, { &hf_opcua_FilterOperator, { "FilterOperator", "", FT_UINT32, BASE_HEX, VALS(g_FilterOperatorTable), 0x0, "", HFILL } }, { &hf_opcua_TimestampsToReturn, { "TimestampsToReturn", "", FT_UINT32, BASE_HEX, VALS(g_TimestampsToReturnTable), 0x0, "", HFILL } }, + { &hf_opcua_HistoryUpdateMode, + { "HistoryUpdateMode", "", FT_UINT32, BASE_HEX, VALS(g_HistoryUpdateModeTable), 0x0, "", HFILL } + }, { &hf_opcua_MonitoringMode, { "MonitoringMode", "", FT_UINT32, BASE_HEX, VALS(g_MonitoringModeTable), 0x0, "", HFILL } }, @@ -408,7 +502,19 @@ static hf_register_info hf[] = }, { &hf_opcua_DeadbandType, { "DeadbandType", "", FT_UINT32, BASE_HEX, VALS(g_DeadbandTypeTable), 0x0, "", HFILL } - } + }, + { &hf_opcua_RedundancySupport, + { "RedundancySupport", "", FT_UINT32, BASE_HEX, VALS(g_RedundancySupportTable), 0x0, "", HFILL } + }, + { &hf_opcua_ServerState, + { "ServerState", "", FT_UINT32, BASE_HEX, VALS(g_ServerStateTable), 0x0, "", HFILL } + }, + { &hf_opcua_ModelChangeStructureVerbMask, + { "ModelChangeStructureVerbMask", "", FT_UINT32, BASE_HEX, VALS(g_ModelChangeStructureVerbMaskTable), 0x0, "", HFILL } + }, + { &hf_opcua_ExceptionDeviationFormat, + { "ExceptionDeviationFormat", "", FT_UINT32, BASE_HEX, VALS(g_ExceptionDeviationFormatTable), 0x0, "", HFILL } + }, }; /** Register enum types. */ @@ -416,3 +522,4 @@ void registerEnumTypes(int proto) { proto_register_field_array(proto, hf, array_length(hf)); } + diff --git a/plugins/opcua/opcua_enumparser.h b/plugins/opcua/opcua_enumparser.h index f1518a6aeb..17bc3e8a9b 100644 --- a/plugins/opcua/opcua_enumparser.h +++ b/plugins/opcua/opcua_enumparser.h @@ -1,7 +1,7 @@ /****************************************************************************** ** $Id$ ** -** Copyright (C) 2006-2007 ascolab GmbH. All Rights Reserved. +** Copyright (C) 2006-2009 ascolab GmbH. All Rights Reserved. ** Web: http://www.ascolab.com ** ** This program is free software; you can redistribute it and/or @@ -16,7 +16,7 @@ ** ** Description: OpcUa Enum Type Parser ** -** This file was autogenerated on 8.5.2007 18:53:26. +** This file was autogenerated on 31.03.2009. ** DON'T MODIFY THIS FILE! ** ******************************************************************************/ @@ -28,24 +28,28 @@ #include <glib.h> #include <epan/packet.h> -void parseNodeClass(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); +void parseNodeIdType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); +void parseDialogConditionChoice(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void parseIdType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); +void parseNodeClass(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void parseMessageSecurityMode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void parseUserTokenType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); -void parseServerDescriptionType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); +void parseApplicationType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void parseSecurityTokenRequestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void parseComplianceLevel(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); -void parseRedundancySupport(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); -void parseServerState(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); -void parseExceptionDeviationType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); -void parseColorsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); -void parseDiagnosticsMasks(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); +void parseAttributeWriteMask(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); +void parseNodeAttributesMask(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void parseEnumeratedTestType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void parseBrowseDirection(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); +void parseBrowseResultMask(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void parseFilterOperator(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void parseTimestampsToReturn(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); +void parseHistoryUpdateMode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void parseMonitoringMode(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void parseDataChangeTrigger(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void parseDeadbandType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); +void parseRedundancySupport(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); +void parseServerState(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); +void parseModelChangeStructureVerbMask(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); +void parseExceptionDeviationFormat(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void registerEnumTypes(int proto); - diff --git a/plugins/opcua/opcua_hfindeces.c b/plugins/opcua/opcua_hfindeces.c index 40f5252456..5188a432ae 100644 --- a/plugins/opcua/opcua_hfindeces.c +++ b/plugins/opcua/opcua_hfindeces.c @@ -1,22 +1,22 @@ /****************************************************************************** ** $Id$ -** -** Copyright (C) 2006-2007 ascolab GmbH. All Rights Reserved. +** +** Copyright (C) 2006-2009 ascolab GmbH. All Rights Reserved. ** Web: http://www.ascolab.com -** +** ** This program is free software; you can redistribute it and/or ** modify it under the terms of the GNU General Public License ** as published by the Free Software Foundation; either version 2 ** of the License, or (at your option) any later version. -** +** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ** Project: OpcUa Wireshark Plugin ** -** Description: This file contains protocol field information. +** Description: This file contains protocol field handles. ** -** This file was autogenerated on 8.5.2007 18:53:26. +** This file was autogenerated on 31.03.2009. ** DON'T MODIFY THIS FILE! ** ******************************************************************************/ @@ -28,559 +28,768 @@ #include <glib.h> #include <epan/packet.h> -int hf_opcua_TestId = -1; -int hf_opcua_Iteration = -1; -int hf_opcua_ServerUris = -1; -int hf_opcua_ProfileUris = -1; +int hf_opcua_AccessLevel = -1; +int hf_opcua_ActualSessionTimeout = -1; +int hf_opcua_AddResults = -1; +int hf_opcua_Algorithm = -1; +int hf_opcua_Alias = -1; +int hf_opcua_AnnotationTime = -1; +int hf_opcua_ApplicationUri = -1; +int hf_opcua_ArrayDimensions = -1; +int hf_opcua_AttributeId = -1; +int hf_opcua_AuditEntryId = -1; +int hf_opcua_AuthenticationMechanism = -1; +int hf_opcua_AvailableSequenceNumbers = -1; +int hf_opcua_Boolean = -1; +int hf_opcua_Booleans = -1; +int hf_opcua_BuildDate = -1; +int hf_opcua_BuildNumber = -1; +int hf_opcua_Byte = -1; +int hf_opcua_ByteString = -1; +int hf_opcua_ByteStrings = -1; +int hf_opcua_CancelCount = -1; +int hf_opcua_CertificateData = -1; +int hf_opcua_ChannelId = -1; +int hf_opcua_ChannelLifetime = -1; int hf_opcua_ClientCertificate = -1; -int hf_opcua_SecureChannelId = -1; -int hf_opcua_SecurityPolicyUri = -1; +int hf_opcua_ClientConnectionTime = -1; +int hf_opcua_ClientHandle = -1; +int hf_opcua_ClientLastContactTime = -1; int hf_opcua_ClientNonce = -1; -int hf_opcua_RequestedLifetime = -1; -int hf_opcua_ServerCertificate = -1; -int hf_opcua_ServerNonce = -1; -int hf_opcua_ClientName = -1; -int hf_opcua_RequestedSessionTimeout = -1; -int hf_opcua_SessionId = -1; -int hf_opcua_RevisedSessionTimeout = -1; -int hf_opcua_LocaleIds = -1; -int hf_opcua_CertificateResults = -1; -int hf_opcua_SequenceNumber = -1; -int hf_opcua_Results = -1; -int hf_opcua_MaxResultsToReturn = -1; -int hf_opcua_IncludeSubtypes = -1; -int hf_opcua_NodeClassMask = -1; +int hf_opcua_ClientProtocolVersion = -1; +int hf_opcua_ClientUserIdHistory = -1; +int hf_opcua_ClientUserIdOfSession = -1; +int hf_opcua_ComplianceDate = -1; +int hf_opcua_ComplianceTool = -1; +int hf_opcua_ContainsNoLoops = -1; int hf_opcua_ContinuationPoint = -1; -int hf_opcua_ReleaseContinuationPoint = -1; -int hf_opcua_RevisedContinuationPoint = -1; -int hf_opcua_MaxDescriptionsToReturn = -1; -int hf_opcua_MaxReferencesToReturn = -1; -int hf_opcua_MaxReferencedNodesToReturn = -1; -int hf_opcua_MaxTime = -1; -int hf_opcua_MaxAge = -1; -int hf_opcua_ReleaseContinuationPoints = -1; -int hf_opcua_SubscriptionId = -1; -int hf_opcua_MonitoredItemIds = -1; -int hf_opcua_TriggeringItemId = -1; -int hf_opcua_LinksToAdd = -1; -int hf_opcua_LinksToRemove = -1; -int hf_opcua_AddResults = -1; -int hf_opcua_RemoveResults = -1; -int hf_opcua_RequestedPublishingInterval = -1; -int hf_opcua_RequestedLifetimeCounter = -1; -int hf_opcua_RequestedMaxKeepAliveCount = -1; -int hf_opcua_PublishingEnabled = -1; -int hf_opcua_Priority = -1; -int hf_opcua_RevisedPublishingInterval = -1; -int hf_opcua_RevisedLifetimeCounter = -1; -int hf_opcua_RevisedMaxKeepAliveCount = -1; -int hf_opcua_SubscriptionIds = -1; -int hf_opcua_AvailableSequenceNumbers = -1; -int hf_opcua_MoreNotifications = -1; -int hf_opcua_RetransmitSequenceNumber = -1; -int hf_opcua_IsInverse = -1; -int hf_opcua_ServerIndex = -1; -int hf_opcua_NodeClass = -1; +int hf_opcua_ContinuationPoints = -1; +int hf_opcua_CreateClientName = -1; +int hf_opcua_CreatedAt = -1; +int hf_opcua_CumulatedSessionCount = -1; +int hf_opcua_CumulatedSubscriptionCount = -1; +int hf_opcua_CurrentKeepAliveCount = -1; +int hf_opcua_CurrentLifetimeCount = -1; +int hf_opcua_CurrentMonitoredItemsCount = -1; +int hf_opcua_CurrentPublishRequestsInQueue = -1; +int hf_opcua_CurrentSessionCount = -1; +int hf_opcua_CurrentSubscriptionCount = -1; +int hf_opcua_CurrentSubscriptionsCount = -1; +int hf_opcua_CurrentTime = -1; +int hf_opcua_DataChangeNotificationsCount = -1; +int hf_opcua_DataStatusCodes = -1; +int hf_opcua_DateTime = -1; +int hf_opcua_DateTimes = -1; +int hf_opcua_DaylightSavingInOffset = -1; +int hf_opcua_DeadbandType = -1; +int hf_opcua_DeadbandValue = -1; +int hf_opcua_DeleteBidirectional = -1; +int hf_opcua_DeleteSubscriptions = -1; +int hf_opcua_DeleteTargetReferences = -1; +int hf_opcua_DisableCount = -1; +int hf_opcua_DisabledMonitoredItemCount = -1; +int hf_opcua_DiscardOldest = -1; +int hf_opcua_DiscardedMessageCount = -1; +int hf_opcua_DiscoveryProfileUri = -1; +int hf_opcua_DiscoveryUrls = -1; +int hf_opcua_Double = -1; +int hf_opcua_Doubles = -1; +int hf_opcua_EnableCount = -1; +int hf_opcua_Encoding = -1; +int hf_opcua_EncryptionAlgorithm = -1; +int hf_opcua_EndTime = -1; +int hf_opcua_EndpointUrl = -1; +int hf_opcua_ErrorCount = -1; +int hf_opcua_EventIds = -1; +int hf_opcua_EventNotificationsCount = -1; int hf_opcua_EventNotifier = -1; -int hf_opcua_IsAbstract = -1; -int hf_opcua_ArraySize = -1; -int hf_opcua_AccessLevel = -1; -int hf_opcua_UserAccessLevel = -1; -int hf_opcua_MinimumSamplingInterval = -1; -int hf_opcua_Historizing = -1; -int hf_opcua_Symmetric = -1; +int hf_opcua_EventQueueOverFlowCount = -1; int hf_opcua_Executable = -1; -int hf_opcua_UserExecutable = -1; -int hf_opcua_ContainsNoLoops = -1; +int hf_opcua_Float = -1; +int hf_opcua_Floats = -1; +int hf_opcua_GatewayServerUri = -1; +int hf_opcua_Guid = -1; +int hf_opcua_Guids = -1; +int hf_opcua_High = -1; +int hf_opcua_Historizing = -1; +int hf_opcua_IncludeSubTypes = -1; +int hf_opcua_IncludeSubtypes = -1; int hf_opcua_Index = -1; -int hf_opcua_Uri = -1; -int hf_opcua_Name = -1; -int hf_opcua_StatusCode = -1; -int hf_opcua_EventId = -1; -int hf_opcua_SourceName = -1; -int hf_opcua_Time = -1; -int hf_opcua_ReceiveTime = -1; -int hf_opcua_Severity = -1; -int hf_opcua_Digest = -1; -int hf_opcua_SymmetricSignature = -1; -int hf_opcua_SymmetricKeyWrap = -1; -int hf_opcua_SymmetricEncryption = -1; -int hf_opcua_SymmetricKeyLength = -1; -int hf_opcua_AsymmetricSignature = -1; -int hf_opcua_AsymmetricKeyWrap = -1; -int hf_opcua_AsymmetricEncryption = -1; -int hf_opcua_MinimumAsymmetricKeyLength = -1; -int hf_opcua_MaximumAsymmetricKeyLength = -1; -int hf_opcua_DerivedKey = -1; -int hf_opcua_DerivedEncryptionKeyLength = -1; -int hf_opcua_DerivedSignatureKeyLength = -1; -int hf_opcua_IssuerType = -1; -int hf_opcua_IssuerUrl = -1; -int hf_opcua_ServerUri = -1; -int hf_opcua_DiscoveryUrls = -1; -int hf_opcua_EndpointUrl = -1; -int hf_opcua_SupportedProfiles = -1; -int hf_opcua_SendTimeout = -1; -int hf_opcua_OperationTimeout = -1; -int hf_opcua_UseBinaryEncoding = -1; -int hf_opcua_MaxMessageSize = -1; +int hf_opcua_IndexRange = -1; +int hf_opcua_InputArgumentResults = -1; +int hf_opcua_Int16 = -1; +int hf_opcua_Int16s = -1; +int hf_opcua_Int32 = -1; +int hf_opcua_Int32s = -1; +int hf_opcua_Int64 = -1; +int hf_opcua_Int64s = -1; +int hf_opcua_InvocationCreationTime = -1; +int hf_opcua_IsAbstract = -1; +int hf_opcua_IsDeleteModified = -1; +int hf_opcua_IsForward = -1; +int hf_opcua_IsInverse = -1; +int hf_opcua_IsOnline = -1; +int hf_opcua_IsReadModified = -1; +int hf_opcua_IssueDate = -1; +int hf_opcua_IssuedBy = -1; +int hf_opcua_IssuedTokenType = -1; +int hf_opcua_IssuerEndpointUrl = -1; +int hf_opcua_Iteration = -1; +int hf_opcua_LastMethodCall = -1; +int hf_opcua_LastMethodCallTime = -1; +int hf_opcua_LastTransitionTime = -1; +int hf_opcua_LatePublishRequestCount = -1; +int hf_opcua_LinksToAdd = -1; +int hf_opcua_LinksToRemove = -1; +int hf_opcua_LocaleIds = -1; +int hf_opcua_Low = -1; +int hf_opcua_ManufacturerName = -1; +int hf_opcua_MaxAge = -1; int hf_opcua_MaxArrayLength = -1; +int hf_opcua_MaxBufferSize = -1; +int hf_opcua_MaxByteStringLength = -1; +int hf_opcua_MaxDataSetsToReturn = -1; +int hf_opcua_MaxKeepAliveCount = -1; +int hf_opcua_MaxLifetimeCount = -1; +int hf_opcua_MaxMessageSize = -1; +int hf_opcua_MaxMonitoredItemCount = -1; +int hf_opcua_MaxNotificationsPerPublish = -1; +int hf_opcua_MaxReferencesToReturn = -1; +int hf_opcua_MaxRequestMessageSize = -1; +int hf_opcua_MaxResponseMessageSize = -1; int hf_opcua_MaxStringLength = -1; -int hf_opcua_UserName = -1; +int hf_opcua_Message = -1; +int hf_opcua_MinimumSamplingInterval = -1; +int hf_opcua_ModifyCount = -1; +int hf_opcua_MonitoredItemCount = -1; +int hf_opcua_MonitoredItemId = -1; +int hf_opcua_MonitoredItemIds = -1; +int hf_opcua_MonitoringQueueOverflowCount = -1; +int hf_opcua_MoreNotifications = -1; +int hf_opcua_Name = -1; +int hf_opcua_NamespaceUri = -1; +int hf_opcua_NextSequenceNumber = -1; +int hf_opcua_NoOfAddDiagnosticInfos = -1; +int hf_opcua_NoOfAddResults = -1; +int hf_opcua_NoOfAggregateType = -1; +int hf_opcua_NoOfArrayDimensions = -1; +int hf_opcua_NoOfAvailableSequenceNumbers = -1; +int hf_opcua_NoOfBooleans = -1; +int hf_opcua_NoOfBrowsePath = -1; +int hf_opcua_NoOfBrowsePaths = -1; +int hf_opcua_NoOfByteStrings = -1; +int hf_opcua_NoOfClientSoftwareCertificates = -1; +int hf_opcua_NoOfClientUserIdHistory = -1; +int hf_opcua_NoOfContinuationPoints = -1; +int hf_opcua_NoOfDataDiagnosticInfos = -1; +int hf_opcua_NoOfDataStatusCodes = -1; +int hf_opcua_NoOfDataToReturn = -1; +int hf_opcua_NoOfDataValues = -1; +int hf_opcua_NoOfDateTimes = -1; +int hf_opcua_NoOfDiagnosticInfos = -1; +int hf_opcua_NoOfDiscoveryUrls = -1; +int hf_opcua_NoOfDoubles = -1; +int hf_opcua_NoOfElementDiagnosticInfos = -1; +int hf_opcua_NoOfElementResults = -1; +int hf_opcua_NoOfElements = -1; +int hf_opcua_NoOfEndpoints = -1; +int hf_opcua_NoOfEnumeratedValues = -1; +int hf_opcua_NoOfEventData = -1; +int hf_opcua_NoOfEventFields = -1; +int hf_opcua_NoOfEvents = -1; +int hf_opcua_NoOfExpandedNodeIds = -1; +int hf_opcua_NoOfExtensionObjects = -1; +int hf_opcua_NoOfFilterOperands = -1; +int hf_opcua_NoOfFloats = -1; +int hf_opcua_NoOfGuids = -1; +int hf_opcua_NoOfHistoryUpdateDetails = -1; +int hf_opcua_NoOfInputArgumentDiagnosticInfos = -1; +int hf_opcua_NoOfInputArgumentResults = -1; +int hf_opcua_NoOfInputArguments = -1; +int hf_opcua_NoOfInt16s = -1; +int hf_opcua_NoOfInt32s = -1; +int hf_opcua_NoOfInt64s = -1; +int hf_opcua_NoOfItemsToCreate = -1; +int hf_opcua_NoOfItemsToModify = -1; +int hf_opcua_NoOfLastMethodInputArguments = -1; +int hf_opcua_NoOfLastMethodOutputArguments = -1; +int hf_opcua_NoOfLinksToAdd = -1; +int hf_opcua_NoOfLinksToRemove = -1; +int hf_opcua_NoOfLocaleIds = -1; +int hf_opcua_NoOfLocalizedTexts = -1; +int hf_opcua_NoOfMethodsToCall = -1; +int hf_opcua_NoOfMonitoredItemIds = -1; +int hf_opcua_NoOfMonitoredItems = -1; +int hf_opcua_NoOfNodeIds = -1; +int hf_opcua_NoOfNodeTypes = -1; +int hf_opcua_NoOfNodesToAdd = -1; +int hf_opcua_NoOfNodesToBrowse = -1; +int hf_opcua_NoOfNodesToDelete = -1; +int hf_opcua_NoOfNodesToRead = -1; +int hf_opcua_NoOfNodesToRegister = -1; +int hf_opcua_NoOfNodesToUnregister = -1; +int hf_opcua_NoOfNodesToWrite = -1; +int hf_opcua_NoOfNotificationData = -1; +int hf_opcua_NoOfOperandDiagnosticInfos = -1; +int hf_opcua_NoOfOperandStatusCodes = -1; +int hf_opcua_NoOfOperationResults = -1; +int hf_opcua_NoOfOutputArguments = -1; +int hf_opcua_NoOfParsingResults = -1; +int hf_opcua_NoOfProfileUris = -1; +int hf_opcua_NoOfQualifiedNames = -1; +int hf_opcua_NoOfQueryDataSets = -1; +int hf_opcua_NoOfReferencedNodeIds = -1; +int hf_opcua_NoOfReferences = -1; +int hf_opcua_NoOfReferencesToAdd = -1; +int hf_opcua_NoOfReferencesToDelete = -1; +int hf_opcua_NoOfRegisteredNodeIds = -1; +int hf_opcua_NoOfRemoveDiagnosticInfos = -1; +int hf_opcua_NoOfRemoveResults = -1; +int hf_opcua_NoOfReqTimes = -1; +int hf_opcua_NoOfResults = -1; +int hf_opcua_NoOfSBytes = -1; +int hf_opcua_NoOfSelectClause = -1; +int hf_opcua_NoOfSelectClauseDiagnosticInfos = -1; +int hf_opcua_NoOfSelectClauseResults = -1; +int hf_opcua_NoOfSelectClauses = -1; +int hf_opcua_NoOfServerEndpoints = -1; +int hf_opcua_NoOfServerNames = -1; +int hf_opcua_NoOfServerSoftwareCertificates = -1; +int hf_opcua_NoOfServerUris = -1; +int hf_opcua_NoOfServers = -1; +int hf_opcua_NoOfStatusCodes = -1; +int hf_opcua_NoOfStringTable = -1; +int hf_opcua_NoOfStrings = -1; +int hf_opcua_NoOfSubscriptionAcknowledgements = -1; +int hf_opcua_NoOfSubscriptionIds = -1; +int hf_opcua_NoOfSupportedProfiles = -1; +int hf_opcua_NoOfTargets = -1; +int hf_opcua_NoOfUInt16s = -1; +int hf_opcua_NoOfUInt32s = -1; +int hf_opcua_NoOfUInt64s = -1; +int hf_opcua_NoOfUnsupportedUnitIds = -1; +int hf_opcua_NoOfUserIdentityTokens = -1; +int hf_opcua_NoOfValues = -1; +int hf_opcua_NoOfVariants = -1; +int hf_opcua_NoOfXmlElements = -1; +int hf_opcua_NodeClassMask = -1; +int hf_opcua_NotificationsCount = -1; +int hf_opcua_NumValuesPerNode = -1; +int hf_opcua_Offset = -1; +int hf_opcua_OperandStatusCodes = -1; +int hf_opcua_OperationResults = -1; +int hf_opcua_OperationTimeout = -1; +int hf_opcua_OrganizationUri = -1; int hf_opcua_Password = -1; -int hf_opcua_HashAlgorithm = -1; -int hf_opcua_CertificateData = -1; -int hf_opcua_TokenData = -1; -int hf_opcua_ProfileUri = -1; -int hf_opcua_ProfileName = -1; -int hf_opcua_ApplicationUri = -1; -int hf_opcua_ManufacturerName = -1; -int hf_opcua_ApplicationName = -1; -int hf_opcua_SoftwareVersion = -1; -int hf_opcua_BuildNumber = -1; -int hf_opcua_BuildDate = -1; -int hf_opcua_IssuedBy = -1; -int hf_opcua_IssuedDate = -1; -int hf_opcua_ExpirationDate = -1; -int hf_opcua_ApplicationCertificate = -1; -int hf_opcua_IssuerCertificateThumbprint = -1; -int hf_opcua_IssuerSignatureAlgorithm = -1; -int hf_opcua_IssuerSignature = -1; -int hf_opcua_IsForward = -1; -int hf_opcua_TargetServerUri = -1; -int hf_opcua_TargetNodeClass = -1; -int hf_opcua_DeleteTargetReferences = -1; +int hf_opcua_PercentDataBad = -1; +int hf_opcua_PercentDataGood = -1; +int hf_opcua_PolicyId = -1; +int hf_opcua_Priority = -1; +int hf_opcua_ProcessingInterval = -1; +int hf_opcua_ProductName = -1; +int hf_opcua_ProductUri = -1; +int hf_opcua_ProfileId = -1; +int hf_opcua_ProfileUris = -1; +int hf_opcua_PublishRequestCount = -1; +int hf_opcua_PublishTime = -1; +int hf_opcua_PublishingEnabled = -1; +int hf_opcua_PublishingInterval = -1; +int hf_opcua_PublishingIntervalCount = -1; +int hf_opcua_QueueSize = -1; +int hf_opcua_RejectedRequestsCount = -1; +int hf_opcua_RejectedSessionCount = -1; +int hf_opcua_ReleaseContinuationPoint = -1; +int hf_opcua_ReleaseContinuationPoints = -1; +int hf_opcua_RemainingPathIndex = -1; +int hf_opcua_RemoveResults = -1; +int hf_opcua_RepublishMessageCount = -1; +int hf_opcua_RepublishMessageRequestCount = -1; +int hf_opcua_RepublishRequestCount = -1; +int hf_opcua_ReqTimes = -1; +int hf_opcua_RequestHandle = -1; +int hf_opcua_RequestedLifetime = -1; +int hf_opcua_RequestedLifetimeCount = -1; +int hf_opcua_RequestedMaxKeepAliveCount = -1; +int hf_opcua_RequestedMaxReferencesPerNode = -1; +int hf_opcua_RequestedPublishingInterval = -1; +int hf_opcua_RequestedSessionTimeout = -1; +int hf_opcua_ResampleInterval = -1; +int hf_opcua_ResultMask = -1; +int hf_opcua_Results = -1; +int hf_opcua_RetransmitSequenceNumber = -1; +int hf_opcua_ReturnBounds = -1; +int hf_opcua_ReturnDiagnostics = -1; +int hf_opcua_RevisedContinuationPoint = -1; +int hf_opcua_RevisedLifetime = -1; +int hf_opcua_RevisedLifetimeCount = -1; +int hf_opcua_RevisedMaxKeepAliveCount = -1; +int hf_opcua_RevisedProcessingInterval = -1; +int hf_opcua_RevisedPublishingInterval = -1; +int hf_opcua_RevisedQueueSize = -1; +int hf_opcua_RevisedSamplingInterval = -1; +int hf_opcua_RevisedSessionTimeout = -1; +int hf_opcua_RevisedStartTime = -1; +int hf_opcua_SByte = -1; +int hf_opcua_SBytes = -1; +int hf_opcua_SamplingInterval = -1; +int hf_opcua_SecondsTillShutdown = -1; +int hf_opcua_SecurityLevel = -1; +int hf_opcua_SecurityPolicyUri = -1; +int hf_opcua_SecurityRejectedRequestsCount = -1; +int hf_opcua_SecurityRejectedSessionCount = -1; +int hf_opcua_SecurityTokenLifetime = -1; +int hf_opcua_SelectClauseResults = -1; +int hf_opcua_SemaphoreFilePath = -1; +int hf_opcua_SendInitialValues = -1; +int hf_opcua_SequenceNumber = -1; +int hf_opcua_ServerCertificate = -1; int hf_opcua_ServerId = -1; -int hf_opcua_ServiceLevel = -1; -int hf_opcua_SamplingRate = -1; -int hf_opcua_SamplingErrorCount = -1; -int hf_opcua_SampledMonitoredItemsCount = -1; -int hf_opcua_MaxSampledMonitoredItemsCount = -1; -int hf_opcua_DisabledMonitoredItemsSamplingCount = -1; +int hf_opcua_ServerNonce = -1; +int hf_opcua_ServerProtocolVersion = -1; +int hf_opcua_ServerUri = -1; +int hf_opcua_ServerUris = -1; int hf_opcua_ServerViewCount = -1; -int hf_opcua_CurrentSessionCount = -1; -int hf_opcua_CumulatedSessionCount = -1; -int hf_opcua_SecurityRejectedSessionCount = -1; -int hf_opcua_RejectSessionCount = -1; -int hf_opcua_SessionTimeoutCount = -1; +int hf_opcua_ServiceLevel = -1; +int hf_opcua_ServiceResult = -1; int hf_opcua_SessionAbortCount = -1; -int hf_opcua_SamplingRateCount = -1; -int hf_opcua_PublishingRateCount = -1; -int hf_opcua_CurrentSubscriptionCount = -1; -int hf_opcua_CumulatedSubscriptionCount = -1; -int hf_opcua_SecurityRejectedRequestsCount = -1; -int hf_opcua_RejectedRequestsCount = -1; +int hf_opcua_SessionName = -1; +int hf_opcua_SessionTimeoutCount = -1; +int hf_opcua_Signature = -1; +int hf_opcua_SoftwareVersion = -1; +int hf_opcua_SpecifiedAttributes = -1; int hf_opcua_StartTime = -1; -int hf_opcua_CurrentTime = -1; +int hf_opcua_Status = -1; +int hf_opcua_StatusCode = -1; +int hf_opcua_StatusCodes = -1; +int hf_opcua_SteppedSlopedExtrapolation = -1; +int hf_opcua_String = -1; +int hf_opcua_StringTable = -1; +int hf_opcua_Strings = -1; +int hf_opcua_SubscriptionId = -1; +int hf_opcua_SubscriptionIds = -1; +int hf_opcua_Symmetric = -1; +int hf_opcua_TargetServerUri = -1; +int hf_opcua_TestId = -1; +int hf_opcua_TimeoutHint = -1; +int hf_opcua_Timestamp = -1; +int hf_opcua_TokenData = -1; +int hf_opcua_TokenId = -1; int hf_opcua_TotalCount = -1; -int hf_opcua_UnauthorizedCount = -1; -int hf_opcua_ErrorCount = -1; -int hf_opcua_ActualSessionTimeout = -1; -int hf_opcua_ClientConnectionTime = -1; -int hf_opcua_ClientLastContactTime = -1; -int hf_opcua_CurrentSubscriptionsCount = -1; -int hf_opcua_CurrentMonitoredItemsCount = -1; -int hf_opcua_CurrentPublishRequestsInQueue = -1; -int hf_opcua_CurrentPublishTimerExpirations = -1; -int hf_opcua_KeepAliveCount = -1; -int hf_opcua_CurrentRepublishRequestsInQueue = -1; -int hf_opcua_MaxRepublishRequestsInQueue = -1; -int hf_opcua_RepublishCounter = -1; -int hf_opcua_PublishingCount = -1; -int hf_opcua_PublishingQueueOverflowCount = -1; -int hf_opcua_ClientUserIdOfSession = -1; -int hf_opcua_ClientUserIdHistory = -1; -int hf_opcua_AuthenticationMechanism = -1; -int hf_opcua_Encoding = -1; -int hf_opcua_TransportProtocol = -1; -int hf_opcua_SecurityPolicy = -1; -int hf_opcua_PublishingInterval = -1; -int hf_opcua_MaxKeepAliveCount = -1; -int hf_opcua_ModifyCount = -1; -int hf_opcua_EnableCount = -1; -int hf_opcua_DisableCount = -1; -int hf_opcua_RepublishRequestCount = -1; -int hf_opcua_RepublishMessageRequestCount = -1; -int hf_opcua_RepublishMessageCount = -1; int hf_opcua_TransferRequestCount = -1; int hf_opcua_TransferredToAltClientCount = -1; int hf_opcua_TransferredToSameClientCount = -1; -int hf_opcua_PublishRequestCount = -1; -int hf_opcua_DataChangeNotificationsCount = -1; -int hf_opcua_EventNotificationsCount = -1; -int hf_opcua_NotificationsCount = -1; -int hf_opcua_LateStateCount = -1; -int hf_opcua_KeepAliveStateCount = -1; -int hf_opcua_Low = -1; -int hf_opcua_High = -1; -int hf_opcua_NamespaceUri = -1; -int hf_opcua_UnitId = -1; -int hf_opcua_Message = -1; -int hf_opcua_AnnotationTime = -1; -int hf_opcua_Id = -1; -int hf_opcua_Description = -1; -int hf_opcua_Timestamp = -1; -int hf_opcua_Boolean = -1; -int hf_opcua_SByte = -1; -int hf_opcua_Byte = -1; -int hf_opcua_Int16 = -1; +int hf_opcua_TransportProfileUri = -1; +int hf_opcua_TransportProtocol = -1; +int hf_opcua_TreatUncertainAsBad = -1; +int hf_opcua_TriggeringItemId = -1; int hf_opcua_UInt16 = -1; -int hf_opcua_Int32 = -1; -int hf_opcua_UInt32 = -1; -int hf_opcua_Int64 = -1; -int hf_opcua_UInt64 = -1; -int hf_opcua_Float = -1; -int hf_opcua_Double = -1; -int hf_opcua_String = -1; -int hf_opcua_DateTime = -1; -int hf_opcua_Guid = -1; -int hf_opcua_ByteString = -1; -int hf_opcua_XmlElement = -1; -int hf_opcua_RequestId = -1; -int hf_opcua_ReturnDiagnostics = -1; -int hf_opcua_AuditLogEntryId = -1; -int hf_opcua_TimeoutHint = -1; -int hf_opcua_ServiceResult = -1; -int hf_opcua_StringTable = -1; -int hf_opcua_Value1 = -1; -int hf_opcua_Value2 = -1; -int hf_opcua_Booleans = -1; -int hf_opcua_SBytes = -1; -int hf_opcua_Int16s = -1; int hf_opcua_UInt16s = -1; -int hf_opcua_Int32s = -1; +int hf_opcua_UInt32 = -1; int hf_opcua_UInt32s = -1; -int hf_opcua_Int64s = -1; +int hf_opcua_UInt64 = -1; int hf_opcua_UInt64s = -1; -int hf_opcua_Floats = -1; -int hf_opcua_Doubles = -1; -int hf_opcua_Strings = -1; -int hf_opcua_DateTimes = -1; -int hf_opcua_Guids = -1; -int hf_opcua_ByteStrings = -1; -int hf_opcua_XmlElements = -1; -int hf_opcua_StatusCodes = -1; -int hf_opcua_SemaphoreFilePath = -1; -int hf_opcua_IsOnline = -1; -int hf_opcua_ChannelId = -1; -int hf_opcua_TokenId = -1; -int hf_opcua_CreatedAt = -1; -int hf_opcua_RevisedLifetime = -1; -int hf_opcua_Algorithm = -1; -int hf_opcua_Signature = -1; -int hf_opcua_PropertyStatusCode = -1; +int hf_opcua_UnacknowledgedMessageCount = -1; +int hf_opcua_UnauthorizedRequestCount = -1; +int hf_opcua_UnitId = -1; +int hf_opcua_UnsupportedUnitIds = -1; +int hf_opcua_UseBinaryEncoding = -1; +int hf_opcua_UseSeverCapabilitiesDefaults = -1; +int hf_opcua_UserAccessLevel = -1; +int hf_opcua_UserExecutable = -1; +int hf_opcua_UserName = -1; +int hf_opcua_UserWriteMask = -1; +int hf_opcua_Value = -1; +int hf_opcua_ValueRank = -1; +int hf_opcua_VendorName = -1; +int hf_opcua_VendorProductCertificate = -1; +int hf_opcua_Verb = -1; int hf_opcua_ViewVersion = -1; -int hf_opcua_RelativePath = -1; -int hf_opcua_AttributeId = -1; -int hf_opcua_IndexRange = -1; -int hf_opcua_IncludeSubTypes = -1; -int hf_opcua_Alias = -1; -int hf_opcua_Result = -1; -int hf_opcua_IndexOfInvalidElement = -1; -int hf_opcua_AttributeStatusCodes = -1; -int hf_opcua_NumValuesPerNode = -1; -int hf_opcua_EndTime = -1; -int hf_opcua_IsReadModified = -1; -int hf_opcua_ReturnBounds = -1; -int hf_opcua_ResampleInterval = -1; -int hf_opcua_ReqTimes = -1; -int hf_opcua_ClientHandle = -1; -int hf_opcua_PerformInsert = -1; -int hf_opcua_PerformReplace = -1; -int hf_opcua_IsDeleteModified = -1; -int hf_opcua_OperationResult = -1; -int hf_opcua_InputArgumentResults = -1; -int hf_opcua_DeadbandType = -1; -int hf_opcua_DeadbandValue = -1; -int hf_opcua_SelectClauseResults = -1; -int hf_opcua_SamplingInterval = -1; -int hf_opcua_QueueSize = -1; -int hf_opcua_DiscardOldest = -1; -int hf_opcua_MonitoredItemId = -1; -int hf_opcua_RevisedSamplingInterval = -1; -int hf_opcua_RevisedQueueSize = -1; -int hf_opcua_MonitorItemId = -1; -int hf_opcua_PublishTime = -1; -int hf_opcua_AvailableSequenceNumbersRanges = -1; +int hf_opcua_WriteMask = -1; +int hf_opcua_XmlElement = -1; +int hf_opcua_XmlElements = -1; /** header field definitions */ static hf_register_info hf[] = { - - { &hf_opcua_TestId, { "TestId", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Iteration, { "Iteration", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ServerUris, { "ServerUris", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ProfileUris, { "ProfileUris", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_AccessLevel, { "AccessLevel", "", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ActualSessionTimeout, { "ActualSessionTimeout", "", FT_DOUBLE, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_AddResults, { "AddResults", "", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Algorithm, { "Algorithm", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Alias, { "Alias", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_AnnotationTime, { "AnnotationTime", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ApplicationUri, { "ApplicationUri", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ArrayDimensions, { "ArrayDimensions", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_AttributeId, { "AttributeId", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_AuditEntryId, { "AuditEntryId", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_AuthenticationMechanism, { "AuthenticationMechanism", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_AvailableSequenceNumbers, { "AvailableSequenceNumbers", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Boolean, { "Boolean", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Booleans, { "Booleans", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_BuildDate, { "BuildDate", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_BuildNumber, { "BuildNumber", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Byte, { "Byte", "", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ByteString, { "ByteString", "", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ByteStrings, { "ByteStrings", "", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL } }, + { &hf_opcua_CancelCount, { "CancelCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_CertificateData, { "CertificateData", "", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ChannelId, { "ChannelId", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ChannelLifetime, { "ChannelLifetime", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, { &hf_opcua_ClientCertificate, { "ClientCertificate", "", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL } }, - { &hf_opcua_SecureChannelId, { "SecureChannelId", "", FT_GUID, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_SecurityPolicyUri, { "SecurityPolicyUri", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ClientConnectionTime, { "ClientConnectionTime", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ClientHandle, { "ClientHandle", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ClientLastContactTime, { "ClientLastContactTime", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, { &hf_opcua_ClientNonce, { "ClientNonce", "", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL } }, - { &hf_opcua_RequestedLifetime, { "RequestedLifetime", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ServerCertificate, { "ServerCertificate", "", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ServerNonce, { "ServerNonce", "", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ClientName, { "ClientName", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_RequestedSessionTimeout, { "RequestedSessionTimeout", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_SessionId, { "SessionId", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_RevisedSessionTimeout, { "RevisedSessionTimeout", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_LocaleIds, { "LocaleIds", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_CertificateResults, { "CertificateResults", "", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL } }, - { &hf_opcua_SequenceNumber, { "SequenceNumber", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Results, { "Results", "", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL } }, - { &hf_opcua_MaxResultsToReturn, { "MaxResultsToReturn", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_IncludeSubtypes, { "IncludeSubtypes", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_NodeClassMask, { "NodeClassMask", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ClientProtocolVersion, { "ClientProtocolVersion", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ClientUserIdHistory, { "ClientUserIdHistory", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ClientUserIdOfSession, { "ClientUserIdOfSession", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ComplianceDate, { "ComplianceDate", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ComplianceTool, { "ComplianceTool", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ContainsNoLoops, { "ContainsNoLoops", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, { &hf_opcua_ContinuationPoint, { "ContinuationPoint", "", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ReleaseContinuationPoint, { "ReleaseContinuationPoint", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_RevisedContinuationPoint, { "RevisedContinuationPoint", "", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL } }, - { &hf_opcua_MaxDescriptionsToReturn, { "MaxDescriptionsToReturn", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_MaxReferencesToReturn, { "MaxReferencesToReturn", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_MaxReferencedNodesToReturn, { "MaxReferencedNodesToReturn", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_MaxTime, { "MaxTime", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_MaxAge, { "MaxAge", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ReleaseContinuationPoints, { "ReleaseContinuationPoints", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_SubscriptionId, { "SubscriptionId", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_MonitoredItemIds, { "MonitoredItemIds", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_TriggeringItemId, { "TriggeringItemId", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_LinksToAdd, { "LinksToAdd", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_LinksToRemove, { "LinksToRemove", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_AddResults, { "AddResults", "", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL } }, - { &hf_opcua_RemoveResults, { "RemoveResults", "", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL } }, - { &hf_opcua_RequestedPublishingInterval, { "RequestedPublishingInterval", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_RequestedLifetimeCounter, { "RequestedLifetimeCounter", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_RequestedMaxKeepAliveCount, { "RequestedMaxKeepAliveCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_PublishingEnabled, { "PublishingEnabled", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Priority, { "Priority", "", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_RevisedPublishingInterval, { "RevisedPublishingInterval", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_RevisedLifetimeCounter, { "RevisedLifetimeCounter", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_RevisedMaxKeepAliveCount, { "RevisedMaxKeepAliveCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_SubscriptionIds, { "SubscriptionIds", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_AvailableSequenceNumbers, { "AvailableSequenceNumbers", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_MoreNotifications, { "MoreNotifications", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_RetransmitSequenceNumber, { "RetransmitSequenceNumber", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_IsInverse, { "IsInverse", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ServerIndex, { "ServerIndex", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_NodeClass, { "NodeClass", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ContinuationPoints, { "ContinuationPoints", "", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL } }, + { &hf_opcua_CreateClientName, { "CreateClientName", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_CreatedAt, { "CreatedAt", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_CumulatedSessionCount, { "CumulatedSessionCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_CumulatedSubscriptionCount, { "CumulatedSubscriptionCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_CurrentKeepAliveCount, { "CurrentKeepAliveCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_CurrentLifetimeCount, { "CurrentLifetimeCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_CurrentMonitoredItemsCount, { "CurrentMonitoredItemsCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_CurrentPublishRequestsInQueue, { "CurrentPublishRequestsInQueue", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_CurrentSessionCount, { "CurrentSessionCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_CurrentSubscriptionCount, { "CurrentSubscriptionCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_CurrentSubscriptionsCount, { "CurrentSubscriptionsCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_CurrentTime, { "CurrentTime", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_DataChangeNotificationsCount, { "DataChangeNotificationsCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_DataStatusCodes, { "DataStatusCodes", "", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL } }, + { &hf_opcua_DateTime, { "DateTime", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_DateTimes, { "DateTimes", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_DaylightSavingInOffset, { "DaylightSavingInOffset", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_DeadbandType, { "DeadbandType", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_DeadbandValue, { "DeadbandValue", "", FT_DOUBLE, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_DeleteBidirectional, { "DeleteBidirectional", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_DeleteSubscriptions, { "DeleteSubscriptions", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_DeleteTargetReferences, { "DeleteTargetReferences", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_DisableCount, { "DisableCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_DisabledMonitoredItemCount, { "DisabledMonitoredItemCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_DiscardOldest, { "DiscardOldest", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_DiscardedMessageCount, { "DiscardedMessageCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_DiscoveryProfileUri, { "DiscoveryProfileUri", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_DiscoveryUrls, { "DiscoveryUrls", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Double, { "Double", "", FT_DOUBLE, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Doubles, { "Doubles", "", FT_DOUBLE, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_EnableCount, { "EnableCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Encoding, { "Encoding", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_EncryptionAlgorithm, { "EncryptionAlgorithm", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_EndTime, { "EndTime", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_EndpointUrl, { "EndpointUrl", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ErrorCount, { "ErrorCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_EventIds, { "EventIds", "", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL } }, + { &hf_opcua_EventNotificationsCount, { "EventNotificationsCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, { &hf_opcua_EventNotifier, { "EventNotifier", "", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_IsAbstract, { "IsAbstract", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ArraySize, { "ArraySize", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_AccessLevel, { "AccessLevel", "", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_UserAccessLevel, { "UserAccessLevel", "", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_MinimumSamplingInterval, { "MinimumSamplingInterval", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Historizing, { "Historizing", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Symmetric, { "Symmetric", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_EventQueueOverFlowCount, { "EventQueueOverFlowCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, { &hf_opcua_Executable, { "Executable", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_UserExecutable, { "UserExecutable", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ContainsNoLoops, { "ContainsNoLoops", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Float, { "Float", "", FT_FLOAT, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Floats, { "Floats", "", FT_FLOAT, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_GatewayServerUri, { "GatewayServerUri", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Guid, { "Guid", "", FT_GUID, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Guids, { "Guids", "", FT_GUID, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_High, { "High", "", FT_DOUBLE, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Historizing, { "Historizing", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_IncludeSubTypes, { "IncludeSubTypes", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_IncludeSubtypes, { "IncludeSubtypes", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, { &hf_opcua_Index, { "Index", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Uri, { "Uri", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Name, { "Name", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_StatusCode, { "StatusCode", "", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL } }, - { &hf_opcua_EventId, { "EventId", "", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL } }, - { &hf_opcua_SourceName, { "SourceName", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Time, { "Time", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ReceiveTime, { "ReceiveTime", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Severity, { "Severity", "", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Digest, { "Digest", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_SymmetricSignature, { "SymmetricSignature", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_SymmetricKeyWrap, { "SymmetricKeyWrap", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_SymmetricEncryption, { "SymmetricEncryption", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_SymmetricKeyLength, { "SymmetricKeyLength", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_AsymmetricSignature, { "AsymmetricSignature", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_AsymmetricKeyWrap, { "AsymmetricKeyWrap", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_AsymmetricEncryption, { "AsymmetricEncryption", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_MinimumAsymmetricKeyLength, { "MinimumAsymmetricKeyLength", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_MaximumAsymmetricKeyLength, { "MaximumAsymmetricKeyLength", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_DerivedKey, { "DerivedKey", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_DerivedEncryptionKeyLength, { "DerivedEncryptionKeyLength", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_DerivedSignatureKeyLength, { "DerivedSignatureKeyLength", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_IssuerType, { "IssuerType", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_IssuerUrl, { "IssuerUrl", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ServerUri, { "ServerUri", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_DiscoveryUrls, { "DiscoveryUrls", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_EndpointUrl, { "EndpointUrl", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_SupportedProfiles, { "SupportedProfiles", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_SendTimeout, { "SendTimeout", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_OperationTimeout, { "OperationTimeout", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_UseBinaryEncoding, { "UseBinaryEncoding", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_MaxMessageSize, { "MaxMessageSize", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_IndexRange, { "IndexRange", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_InputArgumentResults, { "InputArgumentResults", "", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Int16, { "Int16", "", FT_INT16, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Int16s, { "Int16s", "", FT_INT16, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Int32, { "Int32", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Int32s, { "Int32s", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Int64, { "Int64", "", FT_INT64, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Int64s, { "Int64s", "", FT_INT64, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_InvocationCreationTime, { "InvocationCreationTime", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_IsAbstract, { "IsAbstract", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_IsDeleteModified, { "IsDeleteModified", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_IsForward, { "IsForward", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_IsInverse, { "IsInverse", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_IsOnline, { "IsOnline", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_IsReadModified, { "IsReadModified", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_IssueDate, { "IssueDate", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_IssuedBy, { "IssuedBy", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_IssuedTokenType, { "IssuedTokenType", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_IssuerEndpointUrl, { "IssuerEndpointUrl", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Iteration, { "Iteration", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_LastMethodCall, { "LastMethodCall", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_LastMethodCallTime, { "LastMethodCallTime", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_LastTransitionTime, { "LastTransitionTime", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_LatePublishRequestCount, { "LatePublishRequestCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_LinksToAdd, { "LinksToAdd", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_LinksToRemove, { "LinksToRemove", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_LocaleIds, { "LocaleIds", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Low, { "Low", "", FT_DOUBLE, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ManufacturerName, { "ManufacturerName", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_MaxAge, { "MaxAge", "", FT_DOUBLE, BASE_NONE, NULL, 0x0, "", HFILL } }, { &hf_opcua_MaxArrayLength, { "MaxArrayLength", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_MaxBufferSize, { "MaxBufferSize", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_MaxByteStringLength, { "MaxByteStringLength", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_MaxDataSetsToReturn, { "MaxDataSetsToReturn", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_MaxKeepAliveCount, { "MaxKeepAliveCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_MaxLifetimeCount, { "MaxLifetimeCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_MaxMessageSize, { "MaxMessageSize", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_MaxMonitoredItemCount, { "MaxMonitoredItemCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_MaxNotificationsPerPublish, { "MaxNotificationsPerPublish", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_MaxReferencesToReturn, { "MaxReferencesToReturn", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_MaxRequestMessageSize, { "MaxRequestMessageSize", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_MaxResponseMessageSize, { "MaxResponseMessageSize", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, { &hf_opcua_MaxStringLength, { "MaxStringLength", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_UserName, { "UserName", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Password, { "Password", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_HashAlgorithm, { "HashAlgorithm", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_CertificateData, { "CertificateData", "", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL } }, - { &hf_opcua_TokenData, { "TokenData", "", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ProfileUri, { "ProfileUri", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ProfileName, { "ProfileName", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ApplicationUri, { "ApplicationUri", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ManufacturerName, { "ManufacturerName", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ApplicationName, { "ApplicationName", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_SoftwareVersion, { "SoftwareVersion", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_BuildNumber, { "BuildNumber", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_BuildDate, { "BuildDate", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_IssuedBy, { "IssuedBy", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_IssuedDate, { "IssuedDate", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ExpirationDate, { "ExpirationDate", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ApplicationCertificate, { "ApplicationCertificate", "", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL } }, - { &hf_opcua_IssuerCertificateThumbprint, { "IssuerCertificateThumbprint", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_IssuerSignatureAlgorithm, { "IssuerSignatureAlgorithm", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_IssuerSignature, { "IssuerSignature", "", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL } }, - { &hf_opcua_IsForward, { "IsForward", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_TargetServerUri, { "TargetServerUri", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_TargetNodeClass, { "TargetNodeClass", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_DeleteTargetReferences, { "DeleteTargetReferences", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Message, { "Message", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_MinimumSamplingInterval, { "MinimumSamplingInterval", "", FT_DOUBLE, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ModifyCount, { "ModifyCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_MonitoredItemCount, { "MonitoredItemCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_MonitoredItemId, { "MonitoredItemId", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_MonitoredItemIds, { "MonitoredItemIds", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_MonitoringQueueOverflowCount, { "MonitoringQueueOverflowCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_MoreNotifications, { "MoreNotifications", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Name, { "Name", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NamespaceUri, { "NamespaceUri", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NextSequenceNumber, { "NextSequenceNumber", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfAddDiagnosticInfos, { "NoOfAddDiagnosticInfos", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfAddResults, { "NoOfAddResults", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfAggregateType, { "NoOfAggregateType", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfArrayDimensions, { "NoOfArrayDimensions", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfAvailableSequenceNumbers, { "NoOfAvailableSequenceNumbers", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfBooleans, { "NoOfBooleans", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfBrowsePath, { "NoOfBrowsePath", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfBrowsePaths, { "NoOfBrowsePaths", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfByteStrings, { "NoOfByteStrings", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfClientSoftwareCertificates, { "NoOfClientSoftwareCertificates", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfClientUserIdHistory, { "NoOfClientUserIdHistory", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfContinuationPoints, { "NoOfContinuationPoints", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfDataDiagnosticInfos, { "NoOfDataDiagnosticInfos", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfDataStatusCodes, { "NoOfDataStatusCodes", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfDataToReturn, { "NoOfDataToReturn", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfDataValues, { "NoOfDataValues", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfDateTimes, { "NoOfDateTimes", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfDiagnosticInfos, { "NoOfDiagnosticInfos", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfDiscoveryUrls, { "NoOfDiscoveryUrls", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfDoubles, { "NoOfDoubles", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfElementDiagnosticInfos, { "NoOfElementDiagnosticInfos", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfElementResults, { "NoOfElementResults", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfElements, { "NoOfElements", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfEndpoints, { "NoOfEndpoints", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfEnumeratedValues, { "NoOfEnumeratedValues", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfEventData, { "NoOfEventData", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfEventFields, { "NoOfEventFields", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfEvents, { "NoOfEvents", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfExpandedNodeIds, { "NoOfExpandedNodeIds", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfExtensionObjects, { "NoOfExtensionObjects", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfFilterOperands, { "NoOfFilterOperands", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfFloats, { "NoOfFloats", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfGuids, { "NoOfGuids", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfHistoryUpdateDetails, { "NoOfHistoryUpdateDetails", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfInputArgumentDiagnosticInfos, { "NoOfInputArgumentDiagnosticInfos", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfInputArgumentResults, { "NoOfInputArgumentResults", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfInputArguments, { "NoOfInputArguments", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfInt16s, { "NoOfInt16s", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfInt32s, { "NoOfInt32s", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfInt64s, { "NoOfInt64s", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfItemsToCreate, { "NoOfItemsToCreate", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfItemsToModify, { "NoOfItemsToModify", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfLastMethodInputArguments, { "NoOfLastMethodInputArguments", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfLastMethodOutputArguments, { "NoOfLastMethodOutputArguments", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfLinksToAdd, { "NoOfLinksToAdd", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfLinksToRemove, { "NoOfLinksToRemove", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfLocaleIds, { "NoOfLocaleIds", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfLocalizedTexts, { "NoOfLocalizedTexts", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfMethodsToCall, { "NoOfMethodsToCall", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfMonitoredItemIds, { "NoOfMonitoredItemIds", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfMonitoredItems, { "NoOfMonitoredItems", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfNodeIds, { "NoOfNodeIds", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfNodeTypes, { "NoOfNodeTypes", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfNodesToAdd, { "NoOfNodesToAdd", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfNodesToBrowse, { "NoOfNodesToBrowse", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfNodesToDelete, { "NoOfNodesToDelete", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfNodesToRead, { "NoOfNodesToRead", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfNodesToRegister, { "NoOfNodesToRegister", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfNodesToUnregister, { "NoOfNodesToUnregister", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfNodesToWrite, { "NoOfNodesToWrite", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfNotificationData, { "NoOfNotificationData", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfOperandDiagnosticInfos, { "NoOfOperandDiagnosticInfos", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfOperandStatusCodes, { "NoOfOperandStatusCodes", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfOperationResults, { "NoOfOperationResults", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfOutputArguments, { "NoOfOutputArguments", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfParsingResults, { "NoOfParsingResults", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfProfileUris, { "NoOfProfileUris", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfQualifiedNames, { "NoOfQualifiedNames", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfQueryDataSets, { "NoOfQueryDataSets", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfReferencedNodeIds, { "NoOfReferencedNodeIds", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfReferences, { "NoOfReferences", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfReferencesToAdd, { "NoOfReferencesToAdd", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfReferencesToDelete, { "NoOfReferencesToDelete", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfRegisteredNodeIds, { "NoOfRegisteredNodeIds", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfRemoveDiagnosticInfos, { "NoOfRemoveDiagnosticInfos", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfRemoveResults, { "NoOfRemoveResults", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfReqTimes, { "NoOfReqTimes", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfResults, { "NoOfResults", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfSBytes, { "NoOfSBytes", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfSelectClause, { "NoOfSelectClause", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfSelectClauseDiagnosticInfos, { "NoOfSelectClauseDiagnosticInfos", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfSelectClauseResults, { "NoOfSelectClauseResults", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfSelectClauses, { "NoOfSelectClauses", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfServerEndpoints, { "NoOfServerEndpoints", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfServerNames, { "NoOfServerNames", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfServerSoftwareCertificates, { "NoOfServerSoftwareCertificates", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfServerUris, { "NoOfServerUris", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfServers, { "NoOfServers", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfStatusCodes, { "NoOfStatusCodes", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfStringTable, { "NoOfStringTable", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfStrings, { "NoOfStrings", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfSubscriptionAcknowledgements, { "NoOfSubscriptionAcknowledgements", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfSubscriptionIds, { "NoOfSubscriptionIds", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfSupportedProfiles, { "NoOfSupportedProfiles", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfTargets, { "NoOfTargets", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfUInt16s, { "NoOfUInt16s", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfUInt32s, { "NoOfUInt32s", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfUInt64s, { "NoOfUInt64s", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfUnsupportedUnitIds, { "NoOfUnsupportedUnitIds", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfUserIdentityTokens, { "NoOfUserIdentityTokens", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfValues, { "NoOfValues", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfVariants, { "NoOfVariants", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NoOfXmlElements, { "NoOfXmlElements", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NodeClassMask, { "NodeClassMask", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NotificationsCount, { "NotificationsCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_NumValuesPerNode, { "NumValuesPerNode", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Offset, { "Offset", "", FT_INT16, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_OperandStatusCodes, { "OperandStatusCodes", "", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL } }, + { &hf_opcua_OperationResults, { "OperationResults", "", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL } }, + { &hf_opcua_OperationTimeout, { "OperationTimeout", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_OrganizationUri, { "OrganizationUri", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Password, { "Password", "", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL } }, + { &hf_opcua_PercentDataBad, { "PercentDataBad", "", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_PercentDataGood, { "PercentDataGood", "", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_PolicyId, { "PolicyId", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Priority, { "Priority", "", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ProcessingInterval, { "ProcessingInterval", "", FT_DOUBLE, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ProductName, { "ProductName", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ProductUri, { "ProductUri", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ProfileId, { "ProfileId", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ProfileUris, { "ProfileUris", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_PublishRequestCount, { "PublishRequestCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_PublishTime, { "PublishTime", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_PublishingEnabled, { "PublishingEnabled", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_PublishingInterval, { "PublishingInterval", "", FT_DOUBLE, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_PublishingIntervalCount, { "PublishingIntervalCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_QueueSize, { "QueueSize", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_RejectedRequestsCount, { "RejectedRequestsCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_RejectedSessionCount, { "RejectedSessionCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ReleaseContinuationPoint, { "ReleaseContinuationPoint", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ReleaseContinuationPoints, { "ReleaseContinuationPoints", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_RemainingPathIndex, { "RemainingPathIndex", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_RemoveResults, { "RemoveResults", "", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL } }, + { &hf_opcua_RepublishMessageCount, { "RepublishMessageCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_RepublishMessageRequestCount, { "RepublishMessageRequestCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_RepublishRequestCount, { "RepublishRequestCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ReqTimes, { "ReqTimes", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_RequestHandle, { "RequestHandle", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_RequestedLifetime, { "RequestedLifetime", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_RequestedLifetimeCount, { "RequestedLifetimeCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_RequestedMaxKeepAliveCount, { "RequestedMaxKeepAliveCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_RequestedMaxReferencesPerNode, { "RequestedMaxReferencesPerNode", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_RequestedPublishingInterval, { "RequestedPublishingInterval", "", FT_DOUBLE, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_RequestedSessionTimeout, { "RequestedSessionTimeout", "", FT_DOUBLE, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ResampleInterval, { "ResampleInterval", "", FT_DOUBLE, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ResultMask, { "ResultMask", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Results, { "Results", "", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL } }, + { &hf_opcua_RetransmitSequenceNumber, { "RetransmitSequenceNumber", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ReturnBounds, { "ReturnBounds", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ReturnDiagnostics, { "ReturnDiagnostics", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_RevisedContinuationPoint, { "RevisedContinuationPoint", "", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL } }, + { &hf_opcua_RevisedLifetime, { "RevisedLifetime", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_RevisedLifetimeCount, { "RevisedLifetimeCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_RevisedMaxKeepAliveCount, { "RevisedMaxKeepAliveCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_RevisedProcessingInterval, { "RevisedProcessingInterval", "", FT_DOUBLE, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_RevisedPublishingInterval, { "RevisedPublishingInterval", "", FT_DOUBLE, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_RevisedQueueSize, { "RevisedQueueSize", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_RevisedSamplingInterval, { "RevisedSamplingInterval", "", FT_DOUBLE, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_RevisedSessionTimeout, { "RevisedSessionTimeout", "", FT_DOUBLE, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_RevisedStartTime, { "RevisedStartTime", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_SByte, { "SByte", "", FT_INT8, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_SBytes, { "SBytes", "", FT_INT8, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_SamplingInterval, { "SamplingInterval", "", FT_DOUBLE, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_SecondsTillShutdown, { "SecondsTillShutdown", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_SecurityLevel, { "SecurityLevel", "", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_SecurityPolicyUri, { "SecurityPolicyUri", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_SecurityRejectedRequestsCount, { "SecurityRejectedRequestsCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_SecurityRejectedSessionCount, { "SecurityRejectedSessionCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_SecurityTokenLifetime, { "SecurityTokenLifetime", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_SelectClauseResults, { "SelectClauseResults", "", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL } }, + { &hf_opcua_SemaphoreFilePath, { "SemaphoreFilePath", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_SendInitialValues, { "SendInitialValues", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_SequenceNumber, { "SequenceNumber", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ServerCertificate, { "ServerCertificate", "", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL } }, { &hf_opcua_ServerId, { "ServerId", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ServiceLevel, { "ServiceLevel", "", FT_INT8, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_SamplingRate, { "SamplingRate", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_SamplingErrorCount, { "SamplingErrorCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_SampledMonitoredItemsCount, { "SampledMonitoredItemsCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_MaxSampledMonitoredItemsCount, { "MaxSampledMonitoredItemsCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_DisabledMonitoredItemsSamplingCount, { "DisabledMonitoredItemsSamplingCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ServerNonce, { "ServerNonce", "", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ServerProtocolVersion, { "ServerProtocolVersion", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ServerUri, { "ServerUri", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ServerUris, { "ServerUris", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, { &hf_opcua_ServerViewCount, { "ServerViewCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_CurrentSessionCount, { "CurrentSessionCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_CumulatedSessionCount, { "CumulatedSessionCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_SecurityRejectedSessionCount, { "SecurityRejectedSessionCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_RejectSessionCount, { "RejectSessionCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_SessionTimeoutCount, { "SessionTimeoutCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ServiceLevel, { "ServiceLevel", "", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ServiceResult, { "ServiceResult", "", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL } }, { &hf_opcua_SessionAbortCount, { "SessionAbortCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_SamplingRateCount, { "SamplingRateCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_PublishingRateCount, { "PublishingRateCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_CurrentSubscriptionCount, { "CurrentSubscriptionCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_CumulatedSubscriptionCount, { "CumulatedSubscriptionCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_SecurityRejectedRequestsCount, { "SecurityRejectedRequestsCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_RejectedRequestsCount, { "RejectedRequestsCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_SessionName, { "SessionName", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_SessionTimeoutCount, { "SessionTimeoutCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Signature, { "Signature", "", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL } }, + { &hf_opcua_SoftwareVersion, { "SoftwareVersion", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_SpecifiedAttributes, { "SpecifiedAttributes", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, { &hf_opcua_StartTime, { "StartTime", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_CurrentTime, { "CurrentTime", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Status, { "Status", "", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL } }, + { &hf_opcua_StatusCode, { "StatusCode", "", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL } }, + { &hf_opcua_StatusCodes, { "StatusCodes", "", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL } }, + { &hf_opcua_SteppedSlopedExtrapolation, { "SteppedSlopedExtrapolation", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_String, { "String", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_StringTable, { "StringTable", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Strings, { "Strings", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_SubscriptionId, { "SubscriptionId", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_SubscriptionIds, { "SubscriptionIds", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Symmetric, { "Symmetric", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_TargetServerUri, { "TargetServerUri", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_TestId, { "TestId", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_TimeoutHint, { "TimeoutHint", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Timestamp, { "Timestamp", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_TokenData, { "TokenData", "", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL } }, + { &hf_opcua_TokenId, { "TokenId", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, { &hf_opcua_TotalCount, { "TotalCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_UnauthorizedCount, { "UnauthorizedCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ErrorCount, { "ErrorCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ActualSessionTimeout, { "ActualSessionTimeout", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ClientConnectionTime, { "ClientConnectionTime", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ClientLastContactTime, { "ClientLastContactTime", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_CurrentSubscriptionsCount, { "CurrentSubscriptionsCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_CurrentMonitoredItemsCount, { "CurrentMonitoredItemsCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_CurrentPublishRequestsInQueue, { "CurrentPublishRequestsInQueue", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_CurrentPublishTimerExpirations, { "CurrentPublishTimerExpirations", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_KeepAliveCount, { "KeepAliveCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_CurrentRepublishRequestsInQueue, { "CurrentRepublishRequestsInQueue", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_MaxRepublishRequestsInQueue, { "MaxRepublishRequestsInQueue", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_RepublishCounter, { "RepublishCounter", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_PublishingCount, { "PublishingCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_PublishingQueueOverflowCount, { "PublishingQueueOverflowCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ClientUserIdOfSession, { "ClientUserIdOfSession", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ClientUserIdHistory, { "ClientUserIdHistory", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_AuthenticationMechanism, { "AuthenticationMechanism", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Encoding, { "Encoding", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_TransportProtocol, { "TransportProtocol", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_SecurityPolicy, { "SecurityPolicy", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_PublishingInterval, { "PublishingInterval", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_MaxKeepAliveCount, { "MaxKeepAliveCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ModifyCount, { "ModifyCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_EnableCount, { "EnableCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_DisableCount, { "DisableCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_RepublishRequestCount, { "RepublishRequestCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_RepublishMessageRequestCount, { "RepublishMessageRequestCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_RepublishMessageCount, { "RepublishMessageCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, { &hf_opcua_TransferRequestCount, { "TransferRequestCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, { &hf_opcua_TransferredToAltClientCount, { "TransferredToAltClientCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, { &hf_opcua_TransferredToSameClientCount, { "TransferredToSameClientCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_PublishRequestCount, { "PublishRequestCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_DataChangeNotificationsCount, { "DataChangeNotificationsCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_EventNotificationsCount, { "EventNotificationsCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_NotificationsCount, { "NotificationsCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_LateStateCount, { "LateStateCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_KeepAliveStateCount, { "KeepAliveStateCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Low, { "Low", "", FT_DOUBLE, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_High, { "High", "", FT_DOUBLE, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_NamespaceUri, { "NamespaceUri", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_UnitId, { "UnitId", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Message, { "Message", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_AnnotationTime, { "AnnotationTime", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Id, { "Id", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Description, { "Description", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Timestamp, { "Timestamp", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Boolean, { "Boolean", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_SByte, { "SByte", "", FT_INT8, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Byte, { "Byte", "", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Int16, { "Int16", "", FT_INT16, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_TransportProfileUri, { "TransportProfileUri", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_TransportProtocol, { "TransportProtocol", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_TreatUncertainAsBad, { "TreatUncertainAsBad", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_TriggeringItemId, { "TriggeringItemId", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, { &hf_opcua_UInt16, { "UInt16", "", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Int32, { "Int32", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_UInt32, { "UInt32", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Int64, { "Int64", "", FT_INT64, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_UInt64, { "UInt64", "", FT_UINT64, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Float, { "Float", "", FT_FLOAT, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Double, { "Double", "", FT_DOUBLE, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_String, { "String", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_DateTime, { "DateTime", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Guid, { "Guid", "", FT_GUID, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ByteString, { "ByteString", "", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL } }, - { &hf_opcua_XmlElement, { "XmlElement", "", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL } }, - { &hf_opcua_RequestId, { "RequestId", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ReturnDiagnostics, { "ReturnDiagnostics", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_AuditLogEntryId, { "AuditLogEntryId", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_TimeoutHint, { "TimeoutHint", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ServiceResult, { "ServiceResult", "", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL } }, - { &hf_opcua_StringTable, { "StringTable", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Value1, { "Value1", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Value2, { "Value2", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Booleans, { "Booleans", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_SBytes, { "SBytes", "", FT_INT8, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Int16s, { "Int16s", "", FT_INT16, BASE_DEC, NULL, 0x0, "", HFILL } }, { &hf_opcua_UInt16s, { "UInt16s", "", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Int32s, { "Int32s", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_UInt32, { "UInt32", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, { &hf_opcua_UInt32s, { "UInt32s", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Int64s, { "Int64s", "", FT_INT64, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_UInt64, { "UInt64", "", FT_UINT64, BASE_DEC, NULL, 0x0, "", HFILL } }, { &hf_opcua_UInt64s, { "UInt64s", "", FT_UINT64, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Floats, { "Floats", "", FT_FLOAT, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Doubles, { "Doubles", "", FT_DOUBLE, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Strings, { "Strings", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_DateTimes, { "DateTimes", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Guids, { "Guids", "", FT_GUID, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ByteStrings, { "ByteStrings", "", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL } }, + { &hf_opcua_UnacknowledgedMessageCount, { "UnacknowledgedMessageCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_UnauthorizedRequestCount, { "UnauthorizedRequestCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_UnitId, { "UnitId", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_UnsupportedUnitIds, { "UnsupportedUnitIds", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_UseBinaryEncoding, { "UseBinaryEncoding", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_UseSeverCapabilitiesDefaults, { "UseSeverCapabilitiesDefaults", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_UserAccessLevel, { "UserAccessLevel", "", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_UserExecutable, { "UserExecutable", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_UserName, { "UserName", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_UserWriteMask, { "UserWriteMask", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Value, { "Value", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ValueRank, { "ValueRank", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_VendorName, { "VendorName", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_VendorProductCertificate, { "VendorProductCertificate", "", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Verb, { "Verb", "", FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ViewVersion, { "ViewVersion", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_WriteMask, { "WriteMask", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_XmlElement, { "XmlElement", "", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL } }, { &hf_opcua_XmlElements, { "XmlElements", "", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL } }, - { &hf_opcua_StatusCodes, { "StatusCodes", "", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL } }, - { &hf_opcua_SemaphoreFilePath, { "SemaphoreFilePath", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_IsOnline, { "IsOnline", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ChannelId, { "ChannelId", "", FT_GUID, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_TokenId, { "TokenId", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_CreatedAt, { "CreatedAt", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_RevisedLifetime, { "RevisedLifetime", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Algorithm, { "Algorithm", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Signature, { "Signature", "", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL } }, - { &hf_opcua_PropertyStatusCode, { "PropertyStatusCode", "", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ViewVersion, { "ViewVersion", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_RelativePath, { "RelativePath", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_AttributeId, { "AttributeId", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_IndexRange, { "IndexRange", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_IncludeSubTypes, { "IncludeSubTypes", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Alias, { "Alias", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Result, { "Result", "", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL } }, - { &hf_opcua_IndexOfInvalidElement, { "IndexOfInvalidElement", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_AttributeStatusCodes, { "AttributeStatusCodes", "", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL } }, - { &hf_opcua_NumValuesPerNode, { "NumValuesPerNode", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_EndTime, { "EndTime", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_IsReadModified, { "IsReadModified", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ReturnBounds, { "ReturnBounds", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ResampleInterval, { "ResampleInterval", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ReqTimes, { "ReqTimes", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_ClientHandle, { "ClientHandle", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_PerformInsert, { "PerformInsert", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_PerformReplace, { "PerformReplace", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_IsDeleteModified, { "IsDeleteModified", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_OperationResult, { "OperationResult", "", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL } }, - { &hf_opcua_InputArgumentResults, { "InputArgumentResults", "", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL } }, - { &hf_opcua_DeadbandType, { "DeadbandType", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_DeadbandValue, { "DeadbandValue", "", FT_DOUBLE, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_SelectClauseResults, { "SelectClauseResults", "", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL } }, - { &hf_opcua_SamplingInterval, { "SamplingInterval", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_QueueSize, { "QueueSize", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_DiscardOldest, { "DiscardOldest", "", FT_BOOLEAN, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_MonitoredItemId, { "MonitoredItemId", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_RevisedSamplingInterval, { "RevisedSamplingInterval", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_RevisedQueueSize, { "RevisedQueueSize", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_MonitorItemId, { "MonitorItemId", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_PublishTime, { "PublishTime", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_AvailableSequenceNumbersRanges, { "AvailableSequenceNumbersRanges", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } } }; /** Register field types. */ @@ -588,3 +797,6 @@ void registerFieldTypes(int proto) { proto_register_field_array(proto, hf, array_length(hf)); } + + + diff --git a/plugins/opcua/opcua_hfindeces.h b/plugins/opcua/opcua_hfindeces.h index cd8a14038f..4e54a3001b 100644 --- a/plugins/opcua/opcua_hfindeces.h +++ b/plugins/opcua/opcua_hfindeces.h @@ -1,7 +1,7 @@ /****************************************************************************** ** $Id$ ** -** Copyright (C) 2006-2007 ascolab GmbH. All Rights Reserved. +** Copyright (C) 2006-2009 ascolab GmbH. All Rights Reserved. ** Web: http://www.ascolab.com ** ** This program is free software; you can redistribute it and/or @@ -16,7 +16,7 @@ ** ** Description: This file contains protocol field handles. ** -** This file was autogenerated on 8.5.2007 18:53:26. +** This file was autogenerated on 31.03.2009. ** DON'T MODIFY THIS FILE! ** ******************************************************************************/ @@ -28,280 +28,386 @@ #include <glib.h> #include <epan/packet.h> -extern int hf_opcua_TestId; -extern int hf_opcua_Iteration; -extern int hf_opcua_ServerUris; -extern int hf_opcua_ProfileUris; +extern int hf_opcua_AccessLevel; +extern int hf_opcua_ActualSessionTimeout; +extern int hf_opcua_AddResults; +extern int hf_opcua_Algorithm; +extern int hf_opcua_Alias; +extern int hf_opcua_AnnotationTime; +extern int hf_opcua_ApplicationUri; +extern int hf_opcua_ArrayDimensions; +extern int hf_opcua_AttributeId; +extern int hf_opcua_AuditEntryId; +extern int hf_opcua_AuthenticationMechanism; +extern int hf_opcua_AvailableSequenceNumbers; +extern int hf_opcua_Boolean; +extern int hf_opcua_Booleans; +extern int hf_opcua_BuildDate; +extern int hf_opcua_BuildNumber; +extern int hf_opcua_Byte; +extern int hf_opcua_ByteString; +extern int hf_opcua_ByteStrings; +extern int hf_opcua_CancelCount; +extern int hf_opcua_CertificateData; +extern int hf_opcua_ChannelId; +extern int hf_opcua_ChannelLifetime; extern int hf_opcua_ClientCertificate; -extern int hf_opcua_SecureChannelId; -extern int hf_opcua_SecurityPolicyUri; +extern int hf_opcua_ClientConnectionTime; +extern int hf_opcua_ClientHandle; +extern int hf_opcua_ClientLastContactTime; extern int hf_opcua_ClientNonce; -extern int hf_opcua_RequestedLifetime; -extern int hf_opcua_ServerCertificate; -extern int hf_opcua_ServerNonce; -extern int hf_opcua_ClientName; -extern int hf_opcua_RequestedSessionTimeout; -extern int hf_opcua_SessionId; -extern int hf_opcua_RevisedSessionTimeout; -extern int hf_opcua_LocaleIds; -extern int hf_opcua_CertificateResults; -extern int hf_opcua_SequenceNumber; -extern int hf_opcua_Results; -extern int hf_opcua_MaxResultsToReturn; -extern int hf_opcua_IncludeSubtypes; -extern int hf_opcua_NodeClassMask; +extern int hf_opcua_ClientProtocolVersion; +extern int hf_opcua_ClientUserIdHistory; +extern int hf_opcua_ClientUserIdOfSession; +extern int hf_opcua_ComplianceDate; +extern int hf_opcua_ComplianceTool; +extern int hf_opcua_ContainsNoLoops; extern int hf_opcua_ContinuationPoint; -extern int hf_opcua_ReleaseContinuationPoint; -extern int hf_opcua_RevisedContinuationPoint; -extern int hf_opcua_MaxDescriptionsToReturn; -extern int hf_opcua_MaxReferencesToReturn; -extern int hf_opcua_MaxReferencedNodesToReturn; -extern int hf_opcua_MaxTime; -extern int hf_opcua_MaxAge; -extern int hf_opcua_ReleaseContinuationPoints; -extern int hf_opcua_SubscriptionId; -extern int hf_opcua_MonitoredItemIds; -extern int hf_opcua_TriggeringItemId; -extern int hf_opcua_LinksToAdd; -extern int hf_opcua_LinksToRemove; -extern int hf_opcua_AddResults; -extern int hf_opcua_RemoveResults; -extern int hf_opcua_RequestedPublishingInterval; -extern int hf_opcua_RequestedLifetimeCounter; -extern int hf_opcua_RequestedMaxKeepAliveCount; -extern int hf_opcua_PublishingEnabled; -extern int hf_opcua_Priority; -extern int hf_opcua_RevisedPublishingInterval; -extern int hf_opcua_RevisedLifetimeCounter; -extern int hf_opcua_RevisedMaxKeepAliveCount; -extern int hf_opcua_SubscriptionIds; -extern int hf_opcua_AvailableSequenceNumbers; -extern int hf_opcua_MoreNotifications; -extern int hf_opcua_RetransmitSequenceNumber; -extern int hf_opcua_IsInverse; -extern int hf_opcua_ServerIndex; -extern int hf_opcua_NodeClass; +extern int hf_opcua_ContinuationPoints; +extern int hf_opcua_CreateClientName; +extern int hf_opcua_CreatedAt; +extern int hf_opcua_CumulatedSessionCount; +extern int hf_opcua_CumulatedSubscriptionCount; +extern int hf_opcua_CurrentKeepAliveCount; +extern int hf_opcua_CurrentLifetimeCount; +extern int hf_opcua_CurrentMonitoredItemsCount; +extern int hf_opcua_CurrentPublishRequestsInQueue; +extern int hf_opcua_CurrentSessionCount; +extern int hf_opcua_CurrentSubscriptionCount; +extern int hf_opcua_CurrentSubscriptionsCount; +extern int hf_opcua_CurrentTime; +extern int hf_opcua_DataChangeNotificationsCount; +extern int hf_opcua_DataStatusCodes; +extern int hf_opcua_DateTime; +extern int hf_opcua_DateTimes; +extern int hf_opcua_DaylightSavingInOffset; +extern int hf_opcua_DeadbandType; +extern int hf_opcua_DeadbandValue; +extern int hf_opcua_DeleteBidirectional; +extern int hf_opcua_DeleteSubscriptions; +extern int hf_opcua_DeleteTargetReferences; +extern int hf_opcua_DisableCount; +extern int hf_opcua_DisabledMonitoredItemCount; +extern int hf_opcua_DiscardOldest; +extern int hf_opcua_DiscardedMessageCount; +extern int hf_opcua_DiscoveryProfileUri; +extern int hf_opcua_DiscoveryUrls; +extern int hf_opcua_Double; +extern int hf_opcua_Doubles; +extern int hf_opcua_EnableCount; +extern int hf_opcua_Encoding; +extern int hf_opcua_EncryptionAlgorithm; +extern int hf_opcua_EndTime; +extern int hf_opcua_EndpointUrl; +extern int hf_opcua_ErrorCount; +extern int hf_opcua_EventIds; +extern int hf_opcua_EventNotificationsCount; extern int hf_opcua_EventNotifier; -extern int hf_opcua_IsAbstract; -extern int hf_opcua_ArraySize; -extern int hf_opcua_AccessLevel; -extern int hf_opcua_UserAccessLevel; -extern int hf_opcua_MinimumSamplingInterval; -extern int hf_opcua_Historizing; -extern int hf_opcua_Symmetric; +extern int hf_opcua_EventQueueOverFlowCount; extern int hf_opcua_Executable; -extern int hf_opcua_UserExecutable; -extern int hf_opcua_ContainsNoLoops; +extern int hf_opcua_Float; +extern int hf_opcua_Floats; +extern int hf_opcua_GatewayServerUri; +extern int hf_opcua_Guid; +extern int hf_opcua_Guids; +extern int hf_opcua_High; +extern int hf_opcua_Historizing; +extern int hf_opcua_IncludeSubTypes; +extern int hf_opcua_IncludeSubtypes; extern int hf_opcua_Index; -extern int hf_opcua_Uri; -extern int hf_opcua_Name; -extern int hf_opcua_StatusCode; -extern int hf_opcua_EventId; -extern int hf_opcua_SourceName; -extern int hf_opcua_Time; -extern int hf_opcua_ReceiveTime; -extern int hf_opcua_Severity; -extern int hf_opcua_Digest; -extern int hf_opcua_SymmetricSignature; -extern int hf_opcua_SymmetricKeyWrap; -extern int hf_opcua_SymmetricEncryption; -extern int hf_opcua_SymmetricKeyLength; -extern int hf_opcua_AsymmetricSignature; -extern int hf_opcua_AsymmetricKeyWrap; -extern int hf_opcua_AsymmetricEncryption; -extern int hf_opcua_MinimumAsymmetricKeyLength; -extern int hf_opcua_MaximumAsymmetricKeyLength; -extern int hf_opcua_DerivedKey; -extern int hf_opcua_DerivedEncryptionKeyLength; -extern int hf_opcua_DerivedSignatureKeyLength; -extern int hf_opcua_IssuerType; -extern int hf_opcua_IssuerUrl; -extern int hf_opcua_ServerUri; -extern int hf_opcua_DiscoveryUrls; -extern int hf_opcua_EndpointUrl; -extern int hf_opcua_SupportedProfiles; -extern int hf_opcua_SendTimeout; -extern int hf_opcua_OperationTimeout; -extern int hf_opcua_UseBinaryEncoding; -extern int hf_opcua_MaxMessageSize; +extern int hf_opcua_IndexRange; +extern int hf_opcua_InputArgumentResults; +extern int hf_opcua_Int16; +extern int hf_opcua_Int16s; +extern int hf_opcua_Int32; +extern int hf_opcua_Int32s; +extern int hf_opcua_Int64; +extern int hf_opcua_Int64s; +extern int hf_opcua_InvocationCreationTime; +extern int hf_opcua_IsAbstract; +extern int hf_opcua_IsDeleteModified; +extern int hf_opcua_IsForward; +extern int hf_opcua_IsInverse; +extern int hf_opcua_IsOnline; +extern int hf_opcua_IsReadModified; +extern int hf_opcua_IssueDate; +extern int hf_opcua_IssuedBy; +extern int hf_opcua_IssuedTokenType; +extern int hf_opcua_IssuerEndpointUrl; +extern int hf_opcua_Iteration; +extern int hf_opcua_LastMethodCall; +extern int hf_opcua_LastMethodCallTime; +extern int hf_opcua_LastTransitionTime; +extern int hf_opcua_LatePublishRequestCount; +extern int hf_opcua_LinksToAdd; +extern int hf_opcua_LinksToRemove; +extern int hf_opcua_LocaleIds; +extern int hf_opcua_Low; +extern int hf_opcua_ManufacturerName; +extern int hf_opcua_MaxAge; extern int hf_opcua_MaxArrayLength; +extern int hf_opcua_MaxBufferSize; +extern int hf_opcua_MaxByteStringLength; +extern int hf_opcua_MaxDataSetsToReturn; +extern int hf_opcua_MaxKeepAliveCount; +extern int hf_opcua_MaxLifetimeCount; +extern int hf_opcua_MaxMessageSize; +extern int hf_opcua_MaxMonitoredItemCount; +extern int hf_opcua_MaxNotificationsPerPublish; +extern int hf_opcua_MaxReferencesToReturn; +extern int hf_opcua_MaxRequestMessageSize; +extern int hf_opcua_MaxResponseMessageSize; extern int hf_opcua_MaxStringLength; -extern int hf_opcua_UserName; +extern int hf_opcua_Message; +extern int hf_opcua_MinimumSamplingInterval; +extern int hf_opcua_ModifyCount; +extern int hf_opcua_MonitoredItemCount; +extern int hf_opcua_MonitoredItemId; +extern int hf_opcua_MonitoredItemIds; +extern int hf_opcua_MonitoringQueueOverflowCount; +extern int hf_opcua_MoreNotifications; +extern int hf_opcua_Name; +extern int hf_opcua_NamespaceUri; +extern int hf_opcua_NextSequenceNumber; +extern int hf_opcua_NoOfAddDiagnosticInfos; +extern int hf_opcua_NoOfAddResults; +extern int hf_opcua_NoOfAggregateType; +extern int hf_opcua_NoOfArrayDimensions; +extern int hf_opcua_NoOfAvailableSequenceNumbers; +extern int hf_opcua_NoOfBooleans; +extern int hf_opcua_NoOfBrowsePath; +extern int hf_opcua_NoOfBrowsePaths; +extern int hf_opcua_NoOfByteStrings; +extern int hf_opcua_NoOfClientSoftwareCertificates; +extern int hf_opcua_NoOfClientUserIdHistory; +extern int hf_opcua_NoOfContinuationPoints; +extern int hf_opcua_NoOfDataDiagnosticInfos; +extern int hf_opcua_NoOfDataStatusCodes; +extern int hf_opcua_NoOfDataToReturn; +extern int hf_opcua_NoOfDataValues; +extern int hf_opcua_NoOfDateTimes; +extern int hf_opcua_NoOfDiagnosticInfos; +extern int hf_opcua_NoOfDiscoveryUrls; +extern int hf_opcua_NoOfDoubles; +extern int hf_opcua_NoOfElementDiagnosticInfos; +extern int hf_opcua_NoOfElementResults; +extern int hf_opcua_NoOfElements; +extern int hf_opcua_NoOfEndpoints; +extern int hf_opcua_NoOfEnumeratedValues; +extern int hf_opcua_NoOfEventData; +extern int hf_opcua_NoOfEventFields; +extern int hf_opcua_NoOfEvents; +extern int hf_opcua_NoOfExpandedNodeIds; +extern int hf_opcua_NoOfExtensionObjects; +extern int hf_opcua_NoOfFilterOperands; +extern int hf_opcua_NoOfFloats; +extern int hf_opcua_NoOfGuids; +extern int hf_opcua_NoOfHistoryUpdateDetails; +extern int hf_opcua_NoOfInputArgumentDiagnosticInfos; +extern int hf_opcua_NoOfInputArgumentResults; +extern int hf_opcua_NoOfInputArguments; +extern int hf_opcua_NoOfInt16s; +extern int hf_opcua_NoOfInt32s; +extern int hf_opcua_NoOfInt64s; +extern int hf_opcua_NoOfItemsToCreate; +extern int hf_opcua_NoOfItemsToModify; +extern int hf_opcua_NoOfLastMethodInputArguments; +extern int hf_opcua_NoOfLastMethodOutputArguments; +extern int hf_opcua_NoOfLinksToAdd; +extern int hf_opcua_NoOfLinksToRemove; +extern int hf_opcua_NoOfLocaleIds; +extern int hf_opcua_NoOfLocalizedTexts; +extern int hf_opcua_NoOfMethodsToCall; +extern int hf_opcua_NoOfMonitoredItemIds; +extern int hf_opcua_NoOfMonitoredItems; +extern int hf_opcua_NoOfNodeIds; +extern int hf_opcua_NoOfNodeTypes; +extern int hf_opcua_NoOfNodesToAdd; +extern int hf_opcua_NoOfNodesToBrowse; +extern int hf_opcua_NoOfNodesToDelete; +extern int hf_opcua_NoOfNodesToRead; +extern int hf_opcua_NoOfNodesToRegister; +extern int hf_opcua_NoOfNodesToUnregister; +extern int hf_opcua_NoOfNodesToWrite; +extern int hf_opcua_NoOfNotificationData; +extern int hf_opcua_NoOfOperandDiagnosticInfos; +extern int hf_opcua_NoOfOperandStatusCodes; +extern int hf_opcua_NoOfOperationResults; +extern int hf_opcua_NoOfOutputArguments; +extern int hf_opcua_NoOfParsingResults; +extern int hf_opcua_NoOfProfileUris; +extern int hf_opcua_NoOfQualifiedNames; +extern int hf_opcua_NoOfQueryDataSets; +extern int hf_opcua_NoOfReferencedNodeIds; +extern int hf_opcua_NoOfReferences; +extern int hf_opcua_NoOfReferencesToAdd; +extern int hf_opcua_NoOfReferencesToDelete; +extern int hf_opcua_NoOfRegisteredNodeIds; +extern int hf_opcua_NoOfRemoveDiagnosticInfos; +extern int hf_opcua_NoOfRemoveResults; +extern int hf_opcua_NoOfReqTimes; +extern int hf_opcua_NoOfResults; +extern int hf_opcua_NoOfSBytes; +extern int hf_opcua_NoOfSelectClause; +extern int hf_opcua_NoOfSelectClauseDiagnosticInfos; +extern int hf_opcua_NoOfSelectClauseResults; +extern int hf_opcua_NoOfSelectClauses; +extern int hf_opcua_NoOfServerEndpoints; +extern int hf_opcua_NoOfServerNames; +extern int hf_opcua_NoOfServerSoftwareCertificates; +extern int hf_opcua_NoOfServerUris; +extern int hf_opcua_NoOfServers; +extern int hf_opcua_NoOfStatusCodes; +extern int hf_opcua_NoOfStringTable; +extern int hf_opcua_NoOfStrings; +extern int hf_opcua_NoOfSubscriptionAcknowledgements; +extern int hf_opcua_NoOfSubscriptionIds; +extern int hf_opcua_NoOfSupportedProfiles; +extern int hf_opcua_NoOfTargets; +extern int hf_opcua_NoOfUInt16s; +extern int hf_opcua_NoOfUInt32s; +extern int hf_opcua_NoOfUInt64s; +extern int hf_opcua_NoOfUnsupportedUnitIds; +extern int hf_opcua_NoOfUserIdentityTokens; +extern int hf_opcua_NoOfValues; +extern int hf_opcua_NoOfVariants; +extern int hf_opcua_NoOfXmlElements; +extern int hf_opcua_NodeClassMask; +extern int hf_opcua_NotificationsCount; +extern int hf_opcua_NumValuesPerNode; +extern int hf_opcua_Offset; +extern int hf_opcua_OperandStatusCodes; +extern int hf_opcua_OperationResults; +extern int hf_opcua_OperationTimeout; +extern int hf_opcua_OrganizationUri; extern int hf_opcua_Password; -extern int hf_opcua_HashAlgorithm; -extern int hf_opcua_CertificateData; -extern int hf_opcua_TokenData; -extern int hf_opcua_ProfileUri; -extern int hf_opcua_ProfileName; -extern int hf_opcua_ApplicationUri; -extern int hf_opcua_ManufacturerName; -extern int hf_opcua_ApplicationName; -extern int hf_opcua_SoftwareVersion; -extern int hf_opcua_BuildNumber; -extern int hf_opcua_BuildDate; -extern int hf_opcua_IssuedBy; -extern int hf_opcua_IssuedDate; -extern int hf_opcua_ExpirationDate; -extern int hf_opcua_ApplicationCertificate; -extern int hf_opcua_IssuerCertificateThumbprint; -extern int hf_opcua_IssuerSignatureAlgorithm; -extern int hf_opcua_IssuerSignature; -extern int hf_opcua_IsForward; -extern int hf_opcua_TargetServerUri; -extern int hf_opcua_TargetNodeClass; -extern int hf_opcua_DeleteTargetReferences; +extern int hf_opcua_PercentDataBad; +extern int hf_opcua_PercentDataGood; +extern int hf_opcua_PolicyId; +extern int hf_opcua_Priority; +extern int hf_opcua_ProcessingInterval; +extern int hf_opcua_ProductName; +extern int hf_opcua_ProductUri; +extern int hf_opcua_ProfileId; +extern int hf_opcua_ProfileUris; +extern int hf_opcua_PublishRequestCount; +extern int hf_opcua_PublishTime; +extern int hf_opcua_PublishingEnabled; +extern int hf_opcua_PublishingInterval; +extern int hf_opcua_PublishingIntervalCount; +extern int hf_opcua_QueueSize; +extern int hf_opcua_RejectedRequestsCount; +extern int hf_opcua_RejectedSessionCount; +extern int hf_opcua_ReleaseContinuationPoint; +extern int hf_opcua_ReleaseContinuationPoints; +extern int hf_opcua_RemainingPathIndex; +extern int hf_opcua_RemoveResults; +extern int hf_opcua_RepublishMessageCount; +extern int hf_opcua_RepublishMessageRequestCount; +extern int hf_opcua_RepublishRequestCount; +extern int hf_opcua_ReqTimes; +extern int hf_opcua_RequestHandle; +extern int hf_opcua_RequestedLifetime; +extern int hf_opcua_RequestedLifetimeCount; +extern int hf_opcua_RequestedMaxKeepAliveCount; +extern int hf_opcua_RequestedMaxReferencesPerNode; +extern int hf_opcua_RequestedPublishingInterval; +extern int hf_opcua_RequestedSessionTimeout; +extern int hf_opcua_ResampleInterval; +extern int hf_opcua_ResultMask; +extern int hf_opcua_Results; +extern int hf_opcua_RetransmitSequenceNumber; +extern int hf_opcua_ReturnBounds; +extern int hf_opcua_ReturnDiagnostics; +extern int hf_opcua_RevisedContinuationPoint; +extern int hf_opcua_RevisedLifetime; +extern int hf_opcua_RevisedLifetimeCount; +extern int hf_opcua_RevisedMaxKeepAliveCount; +extern int hf_opcua_RevisedProcessingInterval; +extern int hf_opcua_RevisedPublishingInterval; +extern int hf_opcua_RevisedQueueSize; +extern int hf_opcua_RevisedSamplingInterval; +extern int hf_opcua_RevisedSessionTimeout; +extern int hf_opcua_RevisedStartTime; +extern int hf_opcua_SByte; +extern int hf_opcua_SBytes; +extern int hf_opcua_SamplingInterval; +extern int hf_opcua_SecondsTillShutdown; +extern int hf_opcua_SecurityLevel; +extern int hf_opcua_SecurityPolicyUri; +extern int hf_opcua_SecurityRejectedRequestsCount; +extern int hf_opcua_SecurityRejectedSessionCount; +extern int hf_opcua_SecurityTokenLifetime; +extern int hf_opcua_SelectClauseResults; +extern int hf_opcua_SemaphoreFilePath; +extern int hf_opcua_SendInitialValues; +extern int hf_opcua_SequenceNumber; +extern int hf_opcua_ServerCertificate; extern int hf_opcua_ServerId; -extern int hf_opcua_ServiceLevel; -extern int hf_opcua_SamplingRate; -extern int hf_opcua_SamplingErrorCount; -extern int hf_opcua_SampledMonitoredItemsCount; -extern int hf_opcua_MaxSampledMonitoredItemsCount; -extern int hf_opcua_DisabledMonitoredItemsSamplingCount; +extern int hf_opcua_ServerNonce; +extern int hf_opcua_ServerProtocolVersion; +extern int hf_opcua_ServerUri; +extern int hf_opcua_ServerUris; extern int hf_opcua_ServerViewCount; -extern int hf_opcua_CurrentSessionCount; -extern int hf_opcua_CumulatedSessionCount; -extern int hf_opcua_SecurityRejectedSessionCount; -extern int hf_opcua_RejectSessionCount; -extern int hf_opcua_SessionTimeoutCount; +extern int hf_opcua_ServiceLevel; +extern int hf_opcua_ServiceResult; extern int hf_opcua_SessionAbortCount; -extern int hf_opcua_SamplingRateCount; -extern int hf_opcua_PublishingRateCount; -extern int hf_opcua_CurrentSubscriptionCount; -extern int hf_opcua_CumulatedSubscriptionCount; -extern int hf_opcua_SecurityRejectedRequestsCount; -extern int hf_opcua_RejectedRequestsCount; +extern int hf_opcua_SessionName; +extern int hf_opcua_SessionTimeoutCount; +extern int hf_opcua_Signature; +extern int hf_opcua_SoftwareVersion; +extern int hf_opcua_SpecifiedAttributes; extern int hf_opcua_StartTime; -extern int hf_opcua_CurrentTime; +extern int hf_opcua_Status; +extern int hf_opcua_StatusCode; +extern int hf_opcua_StatusCodes; +extern int hf_opcua_SteppedSlopedExtrapolation; +extern int hf_opcua_String; +extern int hf_opcua_StringTable; +extern int hf_opcua_Strings; +extern int hf_opcua_SubscriptionId; +extern int hf_opcua_SubscriptionIds; +extern int hf_opcua_Symmetric; +extern int hf_opcua_TargetServerUri; +extern int hf_opcua_TestId; +extern int hf_opcua_TimeoutHint; +extern int hf_opcua_Timestamp; +extern int hf_opcua_TokenData; +extern int hf_opcua_TokenId; extern int hf_opcua_TotalCount; -extern int hf_opcua_UnauthorizedCount; -extern int hf_opcua_ErrorCount; -extern int hf_opcua_ActualSessionTimeout; -extern int hf_opcua_ClientConnectionTime; -extern int hf_opcua_ClientLastContactTime; -extern int hf_opcua_CurrentSubscriptionsCount; -extern int hf_opcua_CurrentMonitoredItemsCount; -extern int hf_opcua_CurrentPublishRequestsInQueue; -extern int hf_opcua_CurrentPublishTimerExpirations; -extern int hf_opcua_KeepAliveCount; -extern int hf_opcua_CurrentRepublishRequestsInQueue; -extern int hf_opcua_MaxRepublishRequestsInQueue; -extern int hf_opcua_RepublishCounter; -extern int hf_opcua_PublishingCount; -extern int hf_opcua_PublishingQueueOverflowCount; -extern int hf_opcua_ClientUserIdOfSession; -extern int hf_opcua_ClientUserIdHistory; -extern int hf_opcua_AuthenticationMechanism; -extern int hf_opcua_Encoding; -extern int hf_opcua_TransportProtocol; -extern int hf_opcua_SecurityPolicy; -extern int hf_opcua_PublishingInterval; -extern int hf_opcua_MaxKeepAliveCount; -extern int hf_opcua_ModifyCount; -extern int hf_opcua_EnableCount; -extern int hf_opcua_DisableCount; -extern int hf_opcua_RepublishRequestCount; -extern int hf_opcua_RepublishMessageRequestCount; -extern int hf_opcua_RepublishMessageCount; extern int hf_opcua_TransferRequestCount; extern int hf_opcua_TransferredToAltClientCount; extern int hf_opcua_TransferredToSameClientCount; -extern int hf_opcua_PublishRequestCount; -extern int hf_opcua_DataChangeNotificationsCount; -extern int hf_opcua_EventNotificationsCount; -extern int hf_opcua_NotificationsCount; -extern int hf_opcua_LateStateCount; -extern int hf_opcua_KeepAliveStateCount; -extern int hf_opcua_Low; -extern int hf_opcua_High; -extern int hf_opcua_NamespaceUri; -extern int hf_opcua_UnitId; -extern int hf_opcua_Message; -extern int hf_opcua_AnnotationTime; -extern int hf_opcua_Id; -extern int hf_opcua_Description; -extern int hf_opcua_Timestamp; -extern int hf_opcua_Boolean; -extern int hf_opcua_SByte; -extern int hf_opcua_Byte; -extern int hf_opcua_Int16; +extern int hf_opcua_TransportProfileUri; +extern int hf_opcua_TransportProtocol; +extern int hf_opcua_TreatUncertainAsBad; +extern int hf_opcua_TriggeringItemId; extern int hf_opcua_UInt16; -extern int hf_opcua_Int32; -extern int hf_opcua_UInt32; -extern int hf_opcua_Int64; -extern int hf_opcua_UInt64; -extern int hf_opcua_Float; -extern int hf_opcua_Double; -extern int hf_opcua_String; -extern int hf_opcua_DateTime; -extern int hf_opcua_Guid; -extern int hf_opcua_ByteString; -extern int hf_opcua_XmlElement; -extern int hf_opcua_RequestId; -extern int hf_opcua_ReturnDiagnostics; -extern int hf_opcua_AuditLogEntryId; -extern int hf_opcua_TimeoutHint; -extern int hf_opcua_ServiceResult; -extern int hf_opcua_StringTable; -extern int hf_opcua_Value1; -extern int hf_opcua_Value2; -extern int hf_opcua_Booleans; -extern int hf_opcua_SBytes; -extern int hf_opcua_Int16s; extern int hf_opcua_UInt16s; -extern int hf_opcua_Int32s; +extern int hf_opcua_UInt32; extern int hf_opcua_UInt32s; -extern int hf_opcua_Int64s; +extern int hf_opcua_UInt64; extern int hf_opcua_UInt64s; -extern int hf_opcua_Floats; -extern int hf_opcua_Doubles; -extern int hf_opcua_Strings; -extern int hf_opcua_DateTimes; -extern int hf_opcua_Guids; -extern int hf_opcua_ByteStrings; -extern int hf_opcua_XmlElements; -extern int hf_opcua_StatusCodes; -extern int hf_opcua_SemaphoreFilePath; -extern int hf_opcua_IsOnline; -extern int hf_opcua_ChannelId; -extern int hf_opcua_TokenId; -extern int hf_opcua_CreatedAt; -extern int hf_opcua_RevisedLifetime; -extern int hf_opcua_Algorithm; -extern int hf_opcua_Signature; -extern int hf_opcua_PropertyStatusCode; +extern int hf_opcua_UnacknowledgedMessageCount; +extern int hf_opcua_UnauthorizedRequestCount; +extern int hf_opcua_UnitId; +extern int hf_opcua_UnsupportedUnitIds; +extern int hf_opcua_UseBinaryEncoding; +extern int hf_opcua_UseSeverCapabilitiesDefaults; +extern int hf_opcua_UserAccessLevel; +extern int hf_opcua_UserExecutable; +extern int hf_opcua_UserName; +extern int hf_opcua_UserWriteMask; +extern int hf_opcua_Value; +extern int hf_opcua_ValueRank; +extern int hf_opcua_VendorName; +extern int hf_opcua_VendorProductCertificate; +extern int hf_opcua_Verb; extern int hf_opcua_ViewVersion; -extern int hf_opcua_RelativePath; -extern int hf_opcua_AttributeId; -extern int hf_opcua_IndexRange; -extern int hf_opcua_IncludeSubTypes; -extern int hf_opcua_Alias; -extern int hf_opcua_Result; -extern int hf_opcua_IndexOfInvalidElement; -extern int hf_opcua_AttributeStatusCodes; -extern int hf_opcua_NumValuesPerNode; -extern int hf_opcua_EndTime; -extern int hf_opcua_IsReadModified; -extern int hf_opcua_ReturnBounds; -extern int hf_opcua_ResampleInterval; -extern int hf_opcua_ReqTimes; -extern int hf_opcua_ClientHandle; -extern int hf_opcua_PerformInsert; -extern int hf_opcua_PerformReplace; -extern int hf_opcua_IsDeleteModified; -extern int hf_opcua_OperationResult; -extern int hf_opcua_InputArgumentResults; -extern int hf_opcua_DeadbandType; -extern int hf_opcua_DeadbandValue; -extern int hf_opcua_SelectClauseResults; -extern int hf_opcua_SamplingInterval; -extern int hf_opcua_QueueSize; -extern int hf_opcua_DiscardOldest; -extern int hf_opcua_MonitoredItemId; -extern int hf_opcua_RevisedSamplingInterval; -extern int hf_opcua_RevisedQueueSize; -extern int hf_opcua_MonitorItemId; -extern int hf_opcua_PublishTime; -extern int hf_opcua_AvailableSequenceNumbersRanges; +extern int hf_opcua_WriteMask; +extern int hf_opcua_XmlElement; +extern int hf_opcua_XmlElements; /** Register field types. */ void registerFieldTypes(int proto); + diff --git a/plugins/opcua/opcua_identifiers.h b/plugins/opcua/opcua_identifiers.h index d3d66962a6..c63db7b0b6 100644 --- a/plugins/opcua/opcua_identifiers.h +++ b/plugins/opcua/opcua_identifiers.h @@ -16,7 +16,7 @@ ** ** Description: Parser type definitions. ** -** This file was autogenerated on 8.5.2007 18:53:26. +** This file was autogenerated on 6/10/2007 2:35:22 AM. ** DON'T MODIFY THIS FILE! ** ******************************************************************************/ diff --git a/plugins/opcua/opcua_security_layer.c b/plugins/opcua/opcua_security_layer.c index 44da344b9a..65e82b7e1b 100644 --- a/plugins/opcua/opcua_security_layer.c +++ b/plugins/opcua/opcua_security_layer.c @@ -39,24 +39,20 @@ static const value_string g_SecSigTable[] = { { 0, NULL } }; -static int hf_opcua_security_sig = -1; -static int hf_opcua_security_policy = -1; -static int hf_opcua_security_channel = -1; -static int hf_opcua_security_token = -1; +static int hf_opcua_security_tokenid = -1; +static int hf_opcua_security_seq = -1; +static int hf_opcua_security_rqid = -1; static hf_register_info hf[] = { - { &hf_opcua_security_sig, - { "Security Signature", "security.sig", FT_UINT16, BASE_HEX, VALS(g_SecSigTable), 0x0, "", HFILL } + { &hf_opcua_security_tokenid, + { "Security Token Id", "security.tokenid", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_security_policy, - { "Security Policy", "security.policy", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } + { &hf_opcua_security_seq, + { "Security Sequence Number", "security.seq", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_security_channel, - { "Secure Channel Id", "security.channel", FT_GUID, BASE_NONE, NULL, 0x0, "", HFILL } - }, - { &hf_opcua_security_token, - { "Security Token Id", "security.token", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } + { &hf_opcua_security_rqid, + { "Security RequestId", "security.rqid", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } } }; @@ -66,34 +62,14 @@ void registerSecurityLayerTypes(int proto) proto_register_field_array(proto, hf, array_length(hf)); } - /* Security Layer: message parsers * Only works for Security Policy "NoSecurity" at the moment. */ void parseSecurityLayer(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { - guint16 Sig; - - Sig = tvb_get_letohs(tvb, pOffset[0]); - proto_tree_add_item(tree, hf_opcua_security_sig, tvb, *pOffset, 2, TRUE); *pOffset+=2; - - switch (Sig) - { - case 0: /* GetSecurityPolicies */ - break; - case 1: /* OpenSecureChannel */ - parseGuid(tree, tvb, pOffset, hf_opcua_security_channel); - parseString(tree, tvb, pOffset, hf_opcua_security_policy); - break; - case 2: /* CloseSecureChannel */ - parseGuid(tree, tvb, pOffset, hf_opcua_security_channel); - parseString(tree, tvb, pOffset, hf_opcua_security_token); - break; - case 3: /* Other Services Messages */ - parseGuid(tree, tvb, pOffset, hf_opcua_security_channel); - parseString(tree, tvb, pOffset, hf_opcua_security_token); - break; - } + proto_tree_add_item(tree, hf_opcua_security_tokenid, tvb, *pOffset, 4, TRUE); *pOffset+=4; + proto_tree_add_item(tree, hf_opcua_security_seq, tvb, *pOffset, 4, TRUE); *pOffset+=4; + proto_tree_add_item(tree, hf_opcua_security_rqid, tvb, *pOffset, 4, TRUE); *pOffset+=4; } diff --git a/plugins/opcua/opcua_serviceparser.c b/plugins/opcua/opcua_serviceparser.c index 4efba325a8..aa54b02ee1 100644 --- a/plugins/opcua/opcua_serviceparser.c +++ b/plugins/opcua/opcua_serviceparser.c @@ -1,7 +1,7 @@ /****************************************************************************** ** $Id$ ** -** Copyright (C) 2006-2007 ascolab GmbH. All Rights Reserved. +** Copyright (C) 2006-2009 ascolab GmbH. All Rights Reserved. ** Web: http://www.ascolab.com ** ** This program is free software; you can redistribute it and/or @@ -14,9 +14,9 @@ ** ** Project: OpcUa Wireshark Plugin ** -** Description: OpcUa Service Type Parser +** Description: OpcUa Complex Type Parser ** -** This file was autogenerated on 8.5.2007 18:53:26. +** This file was autogenerated on 01.04.2009. ** DON'T MODIFY THIS FILE! ** ******************************************************************************/ @@ -27,13 +27,11 @@ #include <glib.h> #include <epan/packet.h> -#include "opcua_serviceparser.h" #include "opcua_complextypeparser.h" #include "opcua_enumparser.h" #include "opcua_simpletypes.h" #include "opcua_hfindeces.h" - gint ett_opcua_TestStackRequest = -1; void parseTestStackRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -45,7 +43,6 @@ void parseTestStackRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseInt32(subtree, tvb, pOffset, hf_opcua_Iteration); parseVariant(subtree, tvb, pOffset, "Input"); } - gint ett_opcua_TestStackResponse = -1; void parseTestStackResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -55,7 +52,6 @@ void parseTestStackResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); parseVariant(subtree, tvb, pOffset, "Output"); } - gint ett_opcua_TestStackExRequest = -1; void parseTestStackExRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -65,9 +61,8 @@ void parseTestStackExRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); parseUInt32(subtree, tvb, pOffset, hf_opcua_TestId); parseInt32(subtree, tvb, pOffset, hf_opcua_Iteration); - parseExtensionObject(subtree, tvb, pOffset, "Input"); + parseCompositeTestType(subtree, tvb, pOffset, "Input"); } - gint ett_opcua_TestStackExResponse = -1; void parseTestStackExResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -75,9 +70,8 @@ void parseTestStackExResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TestStackExResponse); parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); - parseExtensionObject(subtree, tvb, pOffset, "Output"); + parseCompositeTestType(subtree, tvb, pOffset, "Output"); } - gint ett_opcua_FindServersRequest = -1; void parseFindServersRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -85,10 +79,12 @@ void parseFindServersRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_FindServersRequest); parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseArrayComplex(subtree, tvb, pOffset, "LocaleIds", parseLocalizedText); + parseString(subtree, tvb, pOffset, hf_opcua_EndpointUrl); + /* Array length field ignored: NoOfLocaleIds */ + parseArraySimple(subtree, tvb, pOffset, hf_opcua_LocaleIds, parseString); + /* Array length field ignored: NoOfServerUris */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_ServerUris, parseString); } - gint ett_opcua_FindServersResponse = -1; void parseFindServersResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -96,9 +92,9 @@ void parseFindServersResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_FindServersResponse); parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); - parseArrayComplex(subtree, tvb, pOffset, "Servers", parseServerDescription); + /* Array length field ignored: NoOfServers */ + parseArrayComplex(subtree, tvb, pOffset, "Servers", parseApplicationDescription); } - gint ett_opcua_GetEndpointsRequest = -1; void parseGetEndpointsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -106,10 +102,12 @@ void parseGetEndpointsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_GetEndpointsRequest); parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseArrayComplex(subtree, tvb, pOffset, "LocaleIds", parseLocalizedText); + parseString(subtree, tvb, pOffset, hf_opcua_EndpointUrl); + /* Array length field ignored: NoOfLocaleIds */ + parseArraySimple(subtree, tvb, pOffset, hf_opcua_LocaleIds, parseString); + /* Array length field ignored: NoOfProfileUris */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_ProfileUris, parseString); } - gint ett_opcua_GetEndpointsResponse = -1; void parseGetEndpointsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -117,9 +115,9 @@ void parseGetEndpointsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_GetEndpointsResponse); parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + /* Array length field ignored: NoOfEndpoints */ parseArrayComplex(subtree, tvb, pOffset, "Endpoints", parseEndpointDescription); } - gint ett_opcua_RegisterServerRequest = -1; void parseRegisterServerRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -129,7 +127,6 @@ void parseRegisterServerRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); parseRegisteredServer(subtree, tvb, pOffset, "Server"); } - gint ett_opcua_RegisterServerResponse = -1; void parseRegisterServerResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -138,7 +135,6 @@ void parseRegisterServerResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); } - gint ett_opcua_OpenSecureChannelRequest = -1; void parseOpenSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -146,16 +142,12 @@ void parseOpenSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffse proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_OpenSecureChannelRequest); parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseByteString(subtree, tvb, pOffset, hf_opcua_ClientCertificate); + parseUInt32(subtree, tvb, pOffset, hf_opcua_ClientProtocolVersion); parseSecurityTokenRequestType(subtree, tvb, pOffset); - parseGuid(subtree, tvb, pOffset, hf_opcua_SecureChannelId); parseMessageSecurityMode(subtree, tvb, pOffset); - parseString(subtree, tvb, pOffset, hf_opcua_SecurityPolicyUri); - parseSecurityPolicy(subtree, tvb, pOffset, "SecurityPolicy"); parseByteString(subtree, tvb, pOffset, hf_opcua_ClientNonce); - parseInt32(subtree, tvb, pOffset, hf_opcua_RequestedLifetime); + parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedLifetime); } - gint ett_opcua_OpenSecureChannelResponse = -1; void parseOpenSecureChannelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -163,11 +155,10 @@ void parseOpenSecureChannelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffs proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_OpenSecureChannelResponse); parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); - parseByteString(subtree, tvb, pOffset, hf_opcua_ServerCertificate); + parseUInt32(subtree, tvb, pOffset, hf_opcua_ServerProtocolVersion); parseChannelSecurityToken(subtree, tvb, pOffset, "SecurityToken"); parseByteString(subtree, tvb, pOffset, hf_opcua_ServerNonce); } - gint ett_opcua_CloseSecureChannelRequest = -1; void parseCloseSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -175,9 +166,7 @@ void parseCloseSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffs proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CloseSecureChannelRequest); parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseGuid(subtree, tvb, pOffset, hf_opcua_SecureChannelId); } - gint ett_opcua_CloseSecureChannelResponse = -1; void parseCloseSecureChannelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -186,7 +175,6 @@ void parseCloseSecureChannelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOff parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); } - gint ett_opcua_CreateSessionRequest = -1; void parseCreateSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -194,12 +182,15 @@ void parseCreateSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CreateSessionRequest); parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseString(subtree, tvb, pOffset, hf_opcua_ClientName); + parseApplicationDescription(subtree, tvb, pOffset, "ClientDescription"); + parseString(subtree, tvb, pOffset, hf_opcua_ServerUri); + parseString(subtree, tvb, pOffset, hf_opcua_EndpointUrl); + parseString(subtree, tvb, pOffset, hf_opcua_SessionName); parseByteString(subtree, tvb, pOffset, hf_opcua_ClientNonce); parseByteString(subtree, tvb, pOffset, hf_opcua_ClientCertificate); - parseInt32(subtree, tvb, pOffset, hf_opcua_RequestedSessionTimeout); + parseDouble(subtree, tvb, pOffset, hf_opcua_RequestedSessionTimeout); + parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxResponseMessageSize); } - gint ett_opcua_CreateSessionResponse = -1; void parseCreateSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -207,14 +198,18 @@ void parseCreateSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CreateSessionResponse); parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); - parseUInt32(subtree, tvb, pOffset, hf_opcua_SessionId); - parseInt32(subtree, tvb, pOffset, hf_opcua_RevisedSessionTimeout); + parseNodeId(subtree, tvb, pOffset, "SessionId"); + parseNodeId(subtree, tvb, pOffset, "AuthenticationToken"); + parseDouble(subtree, tvb, pOffset, hf_opcua_RevisedSessionTimeout); parseByteString(subtree, tvb, pOffset, hf_opcua_ServerNonce); parseByteString(subtree, tvb, pOffset, hf_opcua_ServerCertificate); + /* Array length field ignored: NoOfServerEndpoints */ + parseArrayComplex(subtree, tvb, pOffset, "ServerEndpoints", parseEndpointDescription); + /* Array length field ignored: NoOfServerSoftwareCertificates */ parseArrayComplex(subtree, tvb, pOffset, "ServerSoftwareCertificates", parseSignedSoftwareCertificate); parseSignatureData(subtree, tvb, pOffset, "ServerSignature"); + parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxRequestMessageSize); } - gint ett_opcua_ActivateSessionRequest = -1; void parseActivateSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -223,12 +218,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", parseSignedSoftwareCertificate); + /* Array length field ignored: NoOfLocaleIds */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_LocaleIds, parseString); parseExtensionObject(subtree, tvb, pOffset, "UserIdentityToken"); parseSignatureData(subtree, tvb, pOffset, "UserTokenSignature"); } - gint ett_opcua_ActivateSessionResponse = -1; void parseActivateSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -237,10 +233,11 @@ void parseActivateSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); parseByteString(subtree, tvb, pOffset, hf_opcua_ServerNonce); - parseArraySimple(subtree, tvb, pOffset, hf_opcua_CertificateResults, parseStatusCode); - parseArrayComplex(subtree, tvb, pOffset, "CertificateDiagnosticInfos", parseDiagnosticInfo); + /* Array length field ignored: NoOfResults */ + parseArraySimple(subtree, tvb, pOffset, hf_opcua_Results, parseStatusCode); + /* Array length field ignored: NoOfDiagnosticInfos */ + parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo); } - gint ett_opcua_CloseSessionRequest = -1; void parseCloseSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -248,8 +245,8 @@ void parseCloseSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CloseSessionRequest); parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); + parseBoolean(subtree, tvb, pOffset, hf_opcua_DeleteSubscriptions); } - gint ett_opcua_CloseSessionResponse = -1; void parseCloseSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -258,7 +255,6 @@ void parseCloseSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); } - gint ett_opcua_CancelRequest = -1; void parseCancelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -266,9 +262,8 @@ void parseCancelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CancelRequest); parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseUInt32(subtree, tvb, pOffset, hf_opcua_SequenceNumber); + parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestHandle); } - gint ett_opcua_CancelResponse = -1; void parseCancelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -276,8 +271,8 @@ void parseCancelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CancelResponse); parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + parseUInt32(subtree, tvb, pOffset, hf_opcua_CancelCount); } - gint ett_opcua_AddNodesRequest = -1; void parseAddNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -285,9 +280,9 @@ void parseAddNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AddNodesRequest); parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); + /* Array length field ignored: NoOfNodesToAdd */ parseArrayComplex(subtree, tvb, pOffset, "NodesToAdd", parseAddNodesItem); } - gint ett_opcua_AddNodesResponse = -1; void parseAddNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -295,10 +290,11 @@ void parseAddNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AddNodesResponse); parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + /* Array length field ignored: NoOfResults */ parseArrayComplex(subtree, tvb, pOffset, "Results", parseAddNodesResult); + /* Array length field ignored: NoOfDiagnosticInfos */ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo); } - gint ett_opcua_AddReferencesRequest = -1; void parseAddReferencesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -306,9 +302,9 @@ void parseAddReferencesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AddReferencesRequest); parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); + /* Array length field ignored: NoOfReferencesToAdd */ parseArrayComplex(subtree, tvb, pOffset, "ReferencesToAdd", parseAddReferencesItem); } - gint ett_opcua_AddReferencesResponse = -1; void parseAddReferencesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -316,10 +312,11 @@ void parseAddReferencesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AddReferencesResponse); parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + /* Array length field ignored: NoOfResults */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_Results, parseStatusCode); + /* Array length field ignored: NoOfDiagnosticInfos */ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo); } - gint ett_opcua_DeleteNodesRequest = -1; void parseDeleteNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -327,9 +324,9 @@ void parseDeleteNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteNodesRequest); parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); + /* Array length field ignored: NoOfNodesToDelete */ parseArrayComplex(subtree, tvb, pOffset, "NodesToDelete", parseDeleteNodesItem); } - gint ett_opcua_DeleteNodesResponse = -1; void parseDeleteNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -337,10 +334,11 @@ void parseDeleteNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteNodesResponse); parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + /* Array length field ignored: NoOfResults */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_Results, parseStatusCode); - parseArrayComplex(subtree, tvb, pOffset, "Diagnostics", parseDiagnosticInfo); + /* Array length field ignored: NoOfDiagnosticInfos */ + parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo); } - gint ett_opcua_DeleteReferencesRequest = -1; void parseDeleteReferencesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -348,9 +346,9 @@ void parseDeleteReferencesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteReferencesRequest); parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); + /* Array length field ignored: NoOfReferencesToDelete */ parseArrayComplex(subtree, tvb, pOffset, "ReferencesToDelete", parseDeleteReferencesItem); } - gint ett_opcua_DeleteReferencesResponse = -1; void parseDeleteReferencesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -358,32 +356,11 @@ void parseDeleteReferencesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffse proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteReferencesResponse); parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + /* Array length field ignored: NoOfResults */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_Results, parseStatusCode); + /* Array length field ignored: NoOfDiagnosticInfos */ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo); } - -gint ett_opcua_BrowsePropertiesRequest = -1; -void parseBrowsePropertiesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) -{ - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "BrowsePropertiesRequest"); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowsePropertiesRequest); - - parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseArrayComplex(subtree, tvb, pOffset, "NodesToAccess", parseNodeId); - parseArrayComplex(subtree, tvb, pOffset, "Properties", parseQualifiedName); -} - -gint ett_opcua_BrowsePropertiesResponse = -1; -void parseBrowsePropertiesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) -{ - proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "BrowsePropertiesResponse"); - proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowsePropertiesResponse); - - parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); - parseArrayComplex(subtree, tvb, pOffset, "NodeResults", parseBrowsePropertiesResult); - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo); -} - gint ett_opcua_BrowseRequest = -1; void parseBrowseRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -392,14 +369,10 @@ void parseBrowseRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); parseViewDescription(subtree, tvb, pOffset, "View"); - parseNodeId(subtree, tvb, pOffset, "NodeToBrowse"); - parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxResultsToReturn); - parseBrowseDirection(subtree, tvb, pOffset); - parseNodeId(subtree, tvb, pOffset, "ReferenceTypeId"); - parseBoolean(subtree, tvb, pOffset, hf_opcua_IncludeSubtypes); - parseInt32(subtree, tvb, pOffset, hf_opcua_NodeClassMask); + parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedMaxReferencesPerNode); + /* Array length field ignored: NoOfNodesToBrowse */ + parseArrayComplex(subtree, tvb, pOffset, "NodesToBrowse", parseBrowseDescription); } - gint ett_opcua_BrowseResponse = -1; void parseBrowseResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -407,10 +380,11 @@ void parseBrowseResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowseResponse); parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); - parseByteString(subtree, tvb, pOffset, hf_opcua_ContinuationPoint); - parseArrayComplex(subtree, tvb, pOffset, "References", parseReferenceDescription); + /* Array length field ignored: NoOfResults */ + parseArrayComplex(subtree, tvb, pOffset, "Results", parseBrowseResult); + /* Array length field ignored: NoOfDiagnosticInfos */ + parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo); } - gint ett_opcua_BrowseNextRequest = -1; void parseBrowseNextRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -418,10 +392,10 @@ void parseBrowseNextRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowseNextRequest); parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseBoolean(subtree, tvb, pOffset, hf_opcua_ReleaseContinuationPoint); - parseByteString(subtree, tvb, pOffset, hf_opcua_ContinuationPoint); + parseBoolean(subtree, tvb, pOffset, hf_opcua_ReleaseContinuationPoints); + /* Array length field ignored: NoOfContinuationPoints */ + parseArraySimple(subtree, tvb, pOffset, hf_opcua_ContinuationPoints, parseByteString); } - gint ett_opcua_BrowseNextResponse = -1; void parseBrowseNextResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -429,10 +403,11 @@ void parseBrowseNextResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowseNextResponse); parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); - parseByteString(subtree, tvb, pOffset, hf_opcua_RevisedContinuationPoint); - parseArrayComplex(subtree, tvb, pOffset, "References", parseReferenceDescription); + /* Array length field ignored: NoOfResults */ + parseArrayComplex(subtree, tvb, pOffset, "Results", parseBrowseResult); + /* Array length field ignored: NoOfDiagnosticInfos */ + parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo); } - gint ett_opcua_TranslateBrowsePathsToNodeIdsRequest = -1; void parseTranslateBrowsePathsToNodeIdsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -440,9 +415,9 @@ void parseTranslateBrowsePathsToNodeIdsRequest(proto_tree *tree, tvbuff_t *tvb, proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TranslateBrowsePathsToNodeIdsRequest); parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); + /* Array length field ignored: NoOfBrowsePaths */ parseArrayComplex(subtree, tvb, pOffset, "BrowsePaths", parseBrowsePath); } - gint ett_opcua_TranslateBrowsePathsToNodeIdsResponse = -1; void parseTranslateBrowsePathsToNodeIdsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -450,10 +425,49 @@ void parseTranslateBrowsePathsToNodeIdsResponse(proto_tree *tree, tvbuff_t *tvb, proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TranslateBrowsePathsToNodeIdsResponse); parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); - parseArrayComplex(subtree, tvb, pOffset, "Results", parseTranslateBrowsePathResult); + /* Array length field ignored: NoOfResults */ + parseArrayComplex(subtree, tvb, pOffset, "Results", parseBrowsePathResult); + /* Array length field ignored: NoOfDiagnosticInfos */ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo); } +gint ett_opcua_RegisterNodesRequest = -1; +void parseRegisterNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "RegisterNodesRequest"); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RegisterNodesRequest); + parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); + /* Array length field ignored: NoOfNodesToRegister */ + parseArrayComplex(subtree, tvb, pOffset, "NodesToRegister", parseNodeId); +} +gint ett_opcua_RegisterNodesResponse = -1; +void parseRegisterNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "RegisterNodesResponse"); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RegisterNodesResponse); + + parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + /* Array length field ignored: NoOfRegisteredNodeIds */ + parseArrayComplex(subtree, tvb, pOffset, "RegisteredNodeIds", parseNodeId); +} +gint ett_opcua_UnregisterNodesRequest = -1; +void parseUnregisterNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "UnregisterNodesRequest"); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_UnregisterNodesRequest); + + parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); + /* Array length field ignored: NoOfNodesToUnregister */ + parseArrayComplex(subtree, tvb, pOffset, "NodesToUnregister", parseNodeId); +} +gint ett_opcua_UnregisterNodesResponse = -1; +void parseUnregisterNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +{ + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "UnregisterNodesResponse"); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_UnregisterNodesResponse); + + parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); +} gint ett_opcua_QueryFirstRequest = -1; void parseQueryFirstRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -462,14 +476,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", parseNodeTypeDescription); parseContentFilter(subtree, tvb, pOffset, "Filter"); - parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxDescriptionsToReturn); + parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxDataSetsToReturn); parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxReferencesToReturn); - parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxReferencedNodesToReturn); - parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxTime); } - gint ett_opcua_QueryFirstResponse = -1; void parseQueryFirstResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -477,13 +489,15 @@ void parseQueryFirstResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_QueryFirstResponse); parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + /* Array length field ignored: NoOfQueryDataSets */ parseArrayComplex(subtree, tvb, pOffset, "QueryDataSets", parseQueryDataSet); parseByteString(subtree, tvb, pOffset, hf_opcua_ContinuationPoint); - parseArrayComplex(subtree, tvb, pOffset, "Results", parseQueryResult); - parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfo", parseDiagnosticInfo); - parseContentFilterResult(subtree, tvb, pOffset, "ContentFilterResult"); + /* Array length field ignored: NoOfParsingResults */ + parseArrayComplex(subtree, tvb, pOffset, "ParsingResults", parseParsingResult); + /* Array length field ignored: NoOfDiagnosticInfos */ + parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo); + parseContentFilterResult(subtree, tvb, pOffset, "FilterResult"); } - gint ett_opcua_QueryNextRequest = -1; void parseQueryNextRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -494,7 +508,6 @@ void parseQueryNextRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseBoolean(subtree, tvb, pOffset, hf_opcua_ReleaseContinuationPoint); parseByteString(subtree, tvb, pOffset, hf_opcua_ContinuationPoint); } - gint ett_opcua_QueryNextResponse = -1; void parseQueryNextResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -502,10 +515,10 @@ void parseQueryNextResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_QueryNextResponse); parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + /* Array length field ignored: NoOfQueryDataSets */ parseArrayComplex(subtree, tvb, pOffset, "QueryDataSets", parseQueryDataSet); parseByteString(subtree, tvb, pOffset, hf_opcua_RevisedContinuationPoint); } - gint ett_opcua_ReadRequest = -1; void parseReadRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -513,11 +526,11 @@ void parseReadRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReadRequest); parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseInt32(subtree, tvb, pOffset, hf_opcua_MaxAge); + parseDouble(subtree, tvb, pOffset, hf_opcua_MaxAge); parseTimestampsToReturn(subtree, tvb, pOffset); + /* Array length field ignored: NoOfNodesToRead */ parseArrayComplex(subtree, tvb, pOffset, "NodesToRead", parseReadValueId); } - gint ett_opcua_ReadResponse = -1; void parseReadResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -525,10 +538,11 @@ void parseReadResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReadResponse); parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + /* Array length field ignored: NoOfResults */ parseArrayComplex(subtree, tvb, pOffset, "Results", parseDataValue); + /* Array length field ignored: NoOfDiagnosticInfos */ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo); } - gint ett_opcua_HistoryReadRequest = -1; void parseHistoryReadRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -539,9 +553,9 @@ void parseHistoryReadRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseExtensionObject(subtree, tvb, pOffset, "HistoryReadDetails"); parseTimestampsToReturn(subtree, tvb, pOffset); parseBoolean(subtree, tvb, pOffset, hf_opcua_ReleaseContinuationPoints); + /* Array length field ignored: NoOfNodesToRead */ parseArrayComplex(subtree, tvb, pOffset, "NodesToRead", parseHistoryReadValueId); } - gint ett_opcua_HistoryReadResponse = -1; void parseHistoryReadResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -549,10 +563,11 @@ void parseHistoryReadResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryReadResponse); parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + /* Array length field ignored: NoOfResults */ parseArrayComplex(subtree, tvb, pOffset, "Results", parseHistoryReadResult); + /* Array length field ignored: NoOfDiagnosticInfos */ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo); } - gint ett_opcua_WriteRequest = -1; void parseWriteRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -560,9 +575,9 @@ void parseWriteRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_WriteRequest); parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); + /* Array length field ignored: NoOfNodesToWrite */ parseArrayComplex(subtree, tvb, pOffset, "NodesToWrite", parseWriteValue); } - gint ett_opcua_WriteResponse = -1; void parseWriteResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -570,10 +585,11 @@ void parseWriteResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_WriteResponse); parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + /* Array length field ignored: NoOfResults */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_Results, parseStatusCode); + /* Array length field ignored: NoOfDiagnosticInfos */ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo); } - gint ett_opcua_HistoryUpdateRequest = -1; void parseHistoryUpdateRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -581,9 +597,9 @@ void parseHistoryUpdateRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryUpdateRequest); parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); + /* Array length field ignored: NoOfHistoryUpdateDetails */ parseArrayComplex(subtree, tvb, pOffset, "HistoryUpdateDetails", parseExtensionObject); } - gint ett_opcua_HistoryUpdateResponse = -1; void parseHistoryUpdateResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -591,10 +607,11 @@ void parseHistoryUpdateResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryUpdateResponse); parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + /* Array length field ignored: NoOfResults */ parseArrayComplex(subtree, tvb, pOffset, "Results", parseHistoryUpdateResult); + /* Array length field ignored: NoOfDiagnosticInfos */ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo); } - gint ett_opcua_CallRequest = -1; void parseCallRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -602,9 +619,9 @@ void parseCallRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CallRequest); parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseArrayComplex(subtree, tvb, pOffset, "MethodsToCall", parseCallRequestItem); + /* Array length field ignored: NoOfMethodsToCall */ + parseArrayComplex(subtree, tvb, pOffset, "MethodsToCall", parseCallMethodRequest); } - gint ett_opcua_CallResponse = -1; void parseCallResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -612,10 +629,11 @@ void parseCallResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CallResponse); parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); - parseArrayComplex(subtree, tvb, pOffset, "Results", parseCallResultItem); + /* Array length field ignored: NoOfResults */ + parseArrayComplex(subtree, tvb, pOffset, "Results", parseCallMethodResult); + /* Array length field ignored: NoOfDiagnosticInfos */ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo); } - gint ett_opcua_CreateMonitoredItemsRequest = -1; void parseCreateMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -625,9 +643,9 @@ void parseCreateMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOf parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId); parseTimestampsToReturn(subtree, tvb, pOffset); + /* Array length field ignored: NoOfItemsToCreate */ parseArrayComplex(subtree, tvb, pOffset, "ItemsToCreate", parseMonitoredItemCreateRequest); } - gint ett_opcua_CreateMonitoredItemsResponse = -1; void parseCreateMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -635,10 +653,11 @@ void parseCreateMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pO proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CreateMonitoredItemsResponse); parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + /* Array length field ignored: NoOfResults */ parseArrayComplex(subtree, tvb, pOffset, "Results", parseMonitoredItemCreateResult); + /* Array length field ignored: NoOfDiagnosticInfos */ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo); } - gint ett_opcua_ModifyMonitoredItemsRequest = -1; void parseModifyMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -648,9 +667,9 @@ void parseModifyMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOf parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId); parseTimestampsToReturn(subtree, tvb, pOffset); + /* Array length field ignored: NoOfItemsToModify */ parseArrayComplex(subtree, tvb, pOffset, "ItemsToModify", parseMonitoredItemModifyRequest); } - gint ett_opcua_ModifyMonitoredItemsResponse = -1; void parseModifyMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -658,10 +677,11 @@ void parseModifyMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pO proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ModifyMonitoredItemsResponse); parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + /* Array length field ignored: NoOfResults */ parseArrayComplex(subtree, tvb, pOffset, "Results", parseMonitoredItemModifyResult); + /* Array length field ignored: NoOfDiagnosticInfos */ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo); } - gint ett_opcua_SetMonitoringModeRequest = -1; void parseSetMonitoringModeRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -671,9 +691,9 @@ void parseSetMonitoringModeRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffse parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId); parseMonitoringMode(subtree, tvb, pOffset); + /* Array length field ignored: NoOfMonitoredItemIds */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_MonitoredItemIds, parseUInt32); } - gint ett_opcua_SetMonitoringModeResponse = -1; void parseSetMonitoringModeResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -681,10 +701,11 @@ void parseSetMonitoringModeResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffs proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SetMonitoringModeResponse); parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + /* Array length field ignored: NoOfResults */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_Results, parseStatusCode); + /* Array length field ignored: NoOfDiagnosticInfos */ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo); } - gint ett_opcua_SetTriggeringRequest = -1; void parseSetTriggeringRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -694,10 +715,11 @@ void parseSetTriggeringRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId); parseUInt32(subtree, tvb, pOffset, hf_opcua_TriggeringItemId); + /* Array length field ignored: NoOfLinksToAdd */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_LinksToAdd, parseUInt32); + /* Array length field ignored: NoOfLinksToRemove */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_LinksToRemove, parseUInt32); } - gint ett_opcua_SetTriggeringResponse = -1; void parseSetTriggeringResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -705,12 +727,15 @@ void parseSetTriggeringResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SetTriggeringResponse); parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + /* Array length field ignored: NoOfAddResults */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_AddResults, parseStatusCode); + /* Array length field ignored: NoOfAddDiagnosticInfos */ parseArrayComplex(subtree, tvb, pOffset, "AddDiagnosticInfos", parseDiagnosticInfo); + /* Array length field ignored: NoOfRemoveResults */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_RemoveResults, parseStatusCode); + /* Array length field ignored: NoOfRemoveDiagnosticInfos */ parseArrayComplex(subtree, tvb, pOffset, "RemoveDiagnosticInfos", parseDiagnosticInfo); } - gint ett_opcua_DeleteMonitoredItemsRequest = -1; void parseDeleteMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -719,9 +744,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, hf_opcua_MonitoredItemIds, parseUInt32); } - gint ett_opcua_DeleteMonitoredItemsResponse = -1; void parseDeleteMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -729,10 +754,11 @@ void parseDeleteMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pO proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteMonitoredItemsResponse); parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + /* Array length field ignored: NoOfResults */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_Results, parseStatusCode); + /* Array length field ignored: NoOfDiagnosticInfos */ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo); } - gint ett_opcua_CreateSubscriptionRequest = -1; void parseCreateSubscriptionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -740,13 +766,13 @@ void parseCreateSubscriptionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffs proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CreateSubscriptionRequest); parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); - parseInt32(subtree, tvb, pOffset, hf_opcua_RequestedPublishingInterval); - parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedLifetimeCounter); + parseDouble(subtree, tvb, pOffset, hf_opcua_RequestedPublishingInterval); + parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedLifetimeCount); parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedMaxKeepAliveCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxNotificationsPerPublish); parseBoolean(subtree, tvb, pOffset, hf_opcua_PublishingEnabled); parseByte(subtree, tvb, pOffset, hf_opcua_Priority); } - gint ett_opcua_CreateSubscriptionResponse = -1; void parseCreateSubscriptionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -755,11 +781,10 @@ void parseCreateSubscriptionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOff parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId); - parseInt32(subtree, tvb, pOffset, hf_opcua_RevisedPublishingInterval); - parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedLifetimeCounter); + parseDouble(subtree, tvb, pOffset, hf_opcua_RevisedPublishingInterval); + parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedLifetimeCount); parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedMaxKeepAliveCount); } - gint ett_opcua_ModifySubscriptionRequest = -1; void parseModifySubscriptionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -768,12 +793,12 @@ void parseModifySubscriptionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffs parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId); - parseInt32(subtree, tvb, pOffset, hf_opcua_RequestedPublishingInterval); - parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedLifetimeCounter); + parseDouble(subtree, tvb, pOffset, hf_opcua_RequestedPublishingInterval); + parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedLifetimeCount); parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedMaxKeepAliveCount); + parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxNotificationsPerPublish); parseByte(subtree, tvb, pOffset, hf_opcua_Priority); } - gint ett_opcua_ModifySubscriptionResponse = -1; void parseModifySubscriptionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -781,11 +806,10 @@ void parseModifySubscriptionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOff proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ModifySubscriptionResponse); parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); - parseInt32(subtree, tvb, pOffset, hf_opcua_RevisedPublishingInterval); - parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedLifetimeCounter); + parseDouble(subtree, tvb, pOffset, hf_opcua_RevisedPublishingInterval); + parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedLifetimeCount); parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedMaxKeepAliveCount); } - gint ett_opcua_SetPublishingModeRequest = -1; void parseSetPublishingModeRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -794,9 +818,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, hf_opcua_SubscriptionIds, parseUInt32); } - gint ett_opcua_SetPublishingModeResponse = -1; void parseSetPublishingModeResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -804,10 +828,11 @@ void parseSetPublishingModeResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffs proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SetPublishingModeResponse); parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + /* Array length field ignored: NoOfResults */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_Results, parseStatusCode); + /* Array length field ignored: NoOfDiagnosticInfos */ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo); } - gint ett_opcua_PublishRequest = -1; void parsePublishRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -815,9 +840,9 @@ void parsePublishRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_PublishRequest); parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); + /* Array length field ignored: NoOfSubscriptionAcknowledgements */ parseArrayComplex(subtree, tvb, pOffset, "SubscriptionAcknowledgements", parseSubscriptionAcknowledgement); } - gint ett_opcua_PublishResponse = -1; void parsePublishResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -826,13 +851,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, hf_opcua_AvailableSequenceNumbers, parseUInt32); parseBoolean(subtree, tvb, pOffset, hf_opcua_MoreNotifications); parseNotificationMessage(subtree, tvb, pOffset, "NotificationMessage"); + /* Array length field ignored: NoOfResults */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_Results, parseStatusCode); + /* Array length field ignored: NoOfDiagnosticInfos */ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo); } - gint ett_opcua_RepublishRequest = -1; void parseRepublishRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -843,7 +870,6 @@ void parseRepublishRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId); parseUInt32(subtree, tvb, pOffset, hf_opcua_RetransmitSequenceNumber); } - gint ett_opcua_RepublishResponse = -1; void parseRepublishResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -853,7 +879,6 @@ void parseRepublishResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); parseNotificationMessage(subtree, tvb, pOffset, "NotificationMessage"); } - gint ett_opcua_TransferSubscriptionsRequest = -1; void parseTransferSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -861,9 +886,10 @@ void parseTransferSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pO proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TransferSubscriptionsRequest); parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); + /* Array length field ignored: NoOfSubscriptionIds */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_SubscriptionIds, parseUInt32); + parseBoolean(subtree, tvb, pOffset, hf_opcua_SendInitialValues); } - gint ett_opcua_TransferSubscriptionsResponse = -1; void parseTransferSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -871,10 +897,11 @@ void parseTransferSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, gint *p proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TransferSubscriptionsResponse); parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + /* Array length field ignored: NoOfResults */ parseArrayComplex(subtree, tvb, pOffset, "Results", parseTransferResult); + /* Array length field ignored: NoOfDiagnosticInfos */ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo); } - gint ett_opcua_DeleteSubscriptionsRequest = -1; void parseDeleteSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -882,9 +909,9 @@ void parseDeleteSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOff proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteSubscriptionsRequest); parseRequestHeader(subtree, tvb, pOffset, "RequestHeader"); + /* Array length field ignored: NoOfSubscriptionIds */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_SubscriptionIds, parseUInt32); } - gint ett_opcua_DeleteSubscriptionsResponse = -1; void parseDeleteSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -892,7 +919,9 @@ void parseDeleteSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOf proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteSubscriptionsResponse); parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); + /* Array length field ignored: NoOfResults */ parseArraySimple(subtree, tvb, pOffset, hf_opcua_Results, parseStatusCode); + /* Array length field ignored: NoOfDiagnosticInfos */ parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo); } @@ -929,14 +958,16 @@ static gint *ett[] = &ett_opcua_DeleteNodesResponse, &ett_opcua_DeleteReferencesRequest, &ett_opcua_DeleteReferencesResponse, - &ett_opcua_BrowsePropertiesRequest, - &ett_opcua_BrowsePropertiesResponse, &ett_opcua_BrowseRequest, &ett_opcua_BrowseResponse, &ett_opcua_BrowseNextRequest, &ett_opcua_BrowseNextResponse, &ett_opcua_TranslateBrowsePathsToNodeIdsRequest, &ett_opcua_TranslateBrowsePathsToNodeIdsResponse, + &ett_opcua_RegisterNodesRequest, + &ett_opcua_RegisterNodesResponse, + &ett_opcua_UnregisterNodesRequest, + &ett_opcua_UnregisterNodesResponse, &ett_opcua_QueryFirstRequest, &ett_opcua_QueryFirstResponse, &ett_opcua_QueryNextRequest, diff --git a/plugins/opcua/opcua_serviceparser.h b/plugins/opcua/opcua_serviceparser.h index b6b57d1f75..a71ecfd96c 100644 --- a/plugins/opcua/opcua_serviceparser.h +++ b/plugins/opcua/opcua_serviceparser.h @@ -1,7 +1,7 @@ /****************************************************************************** ** $Id$ ** -** Copyright (C) 2006-2007 ascolab GmbH. All Rights Reserved. +** Copyright (C) 2006-2009 ascolab GmbH. All Rights Reserved. ** Web: http://www.ascolab.com ** ** This program is free software; you can redistribute it and/or @@ -16,7 +16,7 @@ ** ** Description: OpcUa Service Type Parser ** -** This file was autogenerated on 8.5.2007 18:53:26. +** This file was autogenerated on 31.03.2009. ** DON'T MODIFY THIS FILE! ** ******************************************************************************/ @@ -58,14 +58,16 @@ void parseDeleteNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void parseDeleteNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void parseDeleteReferencesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void parseDeleteReferencesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); -void parseBrowsePropertiesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); -void parseBrowsePropertiesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void parseBrowseRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void parseBrowseResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void parseBrowseNextRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void parseBrowseNextResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void parseTranslateBrowsePathsToNodeIdsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void parseTranslateBrowsePathsToNodeIdsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); +void parseRegisterNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); +void parseRegisterNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); +void parseUnregisterNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); +void parseUnregisterNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void parseQueryFirstRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void parseQueryFirstResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void parseQueryNextRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); @@ -104,4 +106,4 @@ void parseTransferSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pO void parseTransferSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void parseDeleteSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void parseDeleteSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); -void registerServiceTypes(void); +void registerServiceTypes(); diff --git a/plugins/opcua/opcua_servicetable.c b/plugins/opcua/opcua_servicetable.c index bf42699c13..784e78a3c1 100644 --- a/plugins/opcua/opcua_servicetable.c +++ b/plugins/opcua/opcua_servicetable.c @@ -1,7 +1,7 @@ /****************************************************************************** ** $Id$ ** -** Copyright (C) 2006-2007 ascolab GmbH. All Rights Reserved. +** Copyright (C) 2006-2009 ascolab GmbH. All Rights Reserved. ** Web: http://www.ascolab.com ** ** This program is free software; you can redistribute it and/or @@ -16,7 +16,7 @@ ** ** Description: Service table and service dispatcher. ** -** This file was autogenerated on 8.5.2007 18:53:26. +** This file was autogenerated on 31.03.2009. ** DON'T MODIFY THIS FILE! ** ******************************************************************************/ @@ -29,167 +29,171 @@ #include <epan/packet.h> #include "opcua_identifiers.h" #include "opcua_serviceparser.h" +#include "opcua_serviceids.h" ParserEntry g_arParserTable[] = { - { 1358, parseTestStackRequest }, - { 1363, parseTestStackResponse }, - { 1368, parseTestStackExRequest }, - { 1373, parseTestStackExResponse }, - { 1414, parseFindServersRequest }, - { 1419, parseFindServersResponse }, - { 1424, parseGetEndpointsRequest }, - { 1429, parseGetEndpointsResponse }, - { 1439, parseRegisterServerRequest }, - { 1444, parseRegisterServerResponse }, - { 1454, parseOpenSecureChannelRequest }, - { 1459, parseOpenSecureChannelResponse }, - { 1464, parseCloseSecureChannelRequest }, - { 1469, parseCloseSecureChannelResponse }, - { 1479, parseCreateSessionRequest }, - { 1484, parseCreateSessionResponse }, - { 1489, parseActivateSessionRequest }, - { 1494, parseActivateSessionResponse }, - { 1499, parseCloseSessionRequest }, - { 1504, parseCloseSessionResponse }, - { 1509, parseCancelRequest }, - { 1514, parseCancelResponse }, - { 1524, parseAddNodesRequest }, - { 1529, parseAddNodesResponse }, - { 1534, parseAddReferencesRequest }, - { 1539, parseAddReferencesResponse }, - { 1544, parseDeleteNodesRequest }, - { 1549, parseDeleteNodesResponse }, - { 1554, parseDeleteReferencesRequest }, - { 1559, parseDeleteReferencesResponse }, - { 1574, parseBrowsePropertiesRequest }, - { 1579, parseBrowsePropertiesResponse }, - { 1599, parseBrowseRequest }, - { 1604, parseBrowseResponse }, - { 1609, parseBrowseNextRequest }, - { 1614, parseBrowseNextResponse }, - { 1630, parseTranslateBrowsePathsToNodeIdsRequest }, - { 1635, parseTranslateBrowsePathsToNodeIdsResponse }, - { 1710, parseQueryFirstRequest }, - { 1715, parseQueryFirstResponse }, - { 1720, parseQueryNextRequest }, - { 1725, parseQueryNextResponse }, - { 1740, parseReadRequest }, - { 1745, parseReadResponse }, - { 1790, parseHistoryReadRequest }, - { 1795, parseHistoryReadResponse }, - { 1805, parseWriteRequest }, - { 1810, parseWriteResponse }, - { 1845, parseHistoryUpdateRequest }, - { 1850, parseHistoryUpdateResponse }, - { 1865, parseCallRequest }, - { 1870, parseCallResponse }, - { 1930, parseCreateMonitoredItemsRequest }, - { 1935, parseCreateMonitoredItemsResponse }, - { 1950, parseModifyMonitoredItemsRequest }, - { 1955, parseModifyMonitoredItemsResponse }, - { 1960, parseSetMonitoringModeRequest }, - { 1965, parseSetMonitoringModeResponse }, - { 1970, parseSetTriggeringRequest }, - { 1975, parseSetTriggeringResponse }, - { 1980, parseDeleteMonitoredItemsRequest }, - { 1985, parseDeleteMonitoredItemsResponse }, - { 1990, parseCreateSubscriptionRequest }, - { 1995, parseCreateSubscriptionResponse }, - { 2000, parseModifySubscriptionRequest }, - { 2005, parseModifySubscriptionResponse }, - { 2010, parseSetPublishingModeRequest }, - { 2015, parseSetPublishingModeResponse }, - { 2050, parsePublishRequest }, - { 2055, parsePublishResponse }, - { 2060, parseRepublishRequest }, - { 2065, parseRepublishResponse }, - { 2075, parseTransferSubscriptionsRequest }, - { 2080, parseTransferSubscriptionsResponse }, - { 2085, parseDeleteSubscriptionsRequest }, - { 2090, parseDeleteSubscriptionsResponse } - + { OpcUaId_TestStackRequest_Encoding_DefaultBinary, parseTestStackRequest }, + { OpcUaId_TestStackResponse_Encoding_DefaultBinary, parseTestStackResponse }, + { OpcUaId_TestStackExRequest_Encoding_DefaultBinary, parseTestStackExRequest }, + { OpcUaId_TestStackExResponse_Encoding_DefaultBinary, parseTestStackExResponse }, + { OpcUaId_FindServersRequest_Encoding_DefaultBinary, parseFindServersRequest }, + { OpcUaId_FindServersResponse_Encoding_DefaultBinary, parseFindServersResponse }, + { OpcUaId_GetEndpointsRequest_Encoding_DefaultBinary, parseGetEndpointsRequest }, + { OpcUaId_GetEndpointsResponse_Encoding_DefaultBinary, parseGetEndpointsResponse }, + { OpcUaId_RegisterServerRequest_Encoding_DefaultBinary, parseRegisterServerRequest }, + { OpcUaId_RegisterServerResponse_Encoding_DefaultBinary, parseRegisterServerResponse }, + { OpcUaId_OpenSecureChannelRequest_Encoding_DefaultBinary, parseOpenSecureChannelRequest }, + { OpcUaId_OpenSecureChannelResponse_Encoding_DefaultBinary, parseOpenSecureChannelResponse }, + { OpcUaId_CloseSecureChannelRequest_Encoding_DefaultBinary, parseCloseSecureChannelRequest }, + { OpcUaId_CloseSecureChannelResponse_Encoding_DefaultBinary, parseCloseSecureChannelResponse }, + { OpcUaId_CreateSessionRequest_Encoding_DefaultBinary, parseCreateSessionRequest }, + { OpcUaId_CreateSessionResponse_Encoding_DefaultBinary, parseCreateSessionResponse }, + { OpcUaId_ActivateSessionRequest_Encoding_DefaultBinary, parseActivateSessionRequest }, + { OpcUaId_ActivateSessionResponse_Encoding_DefaultBinary, parseActivateSessionResponse }, + { OpcUaId_CloseSessionRequest_Encoding_DefaultBinary, parseCloseSessionRequest }, + { OpcUaId_CloseSessionResponse_Encoding_DefaultBinary, parseCloseSessionResponse }, + { OpcUaId_CancelRequest_Encoding_DefaultBinary, parseCancelRequest }, + { OpcUaId_CancelResponse_Encoding_DefaultBinary, parseCancelResponse }, + { OpcUaId_AddNodesRequest_Encoding_DefaultBinary, parseAddNodesRequest }, + { OpcUaId_AddNodesResponse_Encoding_DefaultBinary, parseAddNodesResponse }, + { OpcUaId_AddReferencesRequest_Encoding_DefaultBinary, parseAddReferencesRequest }, + { OpcUaId_AddReferencesResponse_Encoding_DefaultBinary, parseAddReferencesResponse }, + { OpcUaId_DeleteNodesRequest_Encoding_DefaultBinary, parseDeleteNodesRequest }, + { OpcUaId_DeleteNodesResponse_Encoding_DefaultBinary, parseDeleteNodesResponse }, + { OpcUaId_DeleteReferencesRequest_Encoding_DefaultBinary, parseDeleteReferencesRequest }, + { OpcUaId_DeleteReferencesResponse_Encoding_DefaultBinary, parseDeleteReferencesResponse }, + { OpcUaId_BrowseRequest_Encoding_DefaultBinary, parseBrowseRequest }, + { OpcUaId_BrowseResponse_Encoding_DefaultBinary, parseBrowseResponse }, + { OpcUaId_BrowseNextRequest_Encoding_DefaultBinary, parseBrowseNextRequest }, + { OpcUaId_BrowseNextResponse_Encoding_DefaultBinary, parseBrowseNextResponse }, + { OpcUaId_TranslateBrowsePathsToNodeIdsRequest_Encoding_DefaultBinary, parseTranslateBrowsePathsToNodeIdsRequest }, + { OpcUaId_TranslateBrowsePathsToNodeIdsResponse_Encoding_DefaultBinary, parseTranslateBrowsePathsToNodeIdsResponse }, + { OpcUaId_RegisterNodesRequest_Encoding_DefaultBinary, parseRegisterNodesRequest }, + { OpcUaId_RegisterNodesResponse_Encoding_DefaultBinary, parseRegisterNodesResponse }, + { OpcUaId_UnregisterNodesRequest_Encoding_DefaultBinary, parseUnregisterNodesRequest }, + { OpcUaId_UnregisterNodesResponse_Encoding_DefaultBinary, parseUnregisterNodesResponse }, + { OpcUaId_QueryFirstRequest_Encoding_DefaultBinary, parseQueryFirstRequest }, + { OpcUaId_QueryFirstResponse_Encoding_DefaultBinary, parseQueryFirstResponse }, + { OpcUaId_QueryNextRequest_Encoding_DefaultBinary, parseQueryNextRequest }, + { OpcUaId_QueryNextResponse_Encoding_DefaultBinary, parseQueryNextResponse }, + { OpcUaId_ReadRequest_Encoding_DefaultBinary, parseReadRequest }, + { OpcUaId_ReadResponse_Encoding_DefaultBinary, parseReadResponse }, + { OpcUaId_HistoryReadRequest_Encoding_DefaultBinary, parseHistoryReadRequest }, + { OpcUaId_HistoryReadResponse_Encoding_DefaultBinary, parseHistoryReadResponse }, + { OpcUaId_WriteRequest_Encoding_DefaultBinary, parseWriteRequest }, + { OpcUaId_WriteResponse_Encoding_DefaultBinary, parseWriteResponse }, + { OpcUaId_HistoryUpdateRequest_Encoding_DefaultBinary, parseHistoryUpdateRequest }, + { OpcUaId_HistoryUpdateResponse_Encoding_DefaultBinary, parseHistoryUpdateResponse }, + { OpcUaId_CallRequest_Encoding_DefaultBinary, parseCallRequest }, + { OpcUaId_CallResponse_Encoding_DefaultBinary, parseCallResponse }, + { OpcUaId_CreateMonitoredItemsRequest_Encoding_DefaultBinary, parseCreateMonitoredItemsRequest }, + { OpcUaId_CreateMonitoredItemsResponse_Encoding_DefaultBinary, parseCreateMonitoredItemsResponse }, + { OpcUaId_ModifyMonitoredItemsRequest_Encoding_DefaultBinary, parseModifyMonitoredItemsRequest }, + { OpcUaId_ModifyMonitoredItemsResponse_Encoding_DefaultBinary, parseModifyMonitoredItemsResponse }, + { OpcUaId_SetMonitoringModeRequest_Encoding_DefaultBinary, parseSetMonitoringModeRequest }, + { OpcUaId_SetMonitoringModeResponse_Encoding_DefaultBinary, parseSetMonitoringModeResponse }, + { OpcUaId_SetTriggeringRequest_Encoding_DefaultBinary, parseSetTriggeringRequest }, + { OpcUaId_SetTriggeringResponse_Encoding_DefaultBinary, parseSetTriggeringResponse }, + { OpcUaId_DeleteMonitoredItemsRequest_Encoding_DefaultBinary, parseDeleteMonitoredItemsRequest }, + { OpcUaId_DeleteMonitoredItemsResponse_Encoding_DefaultBinary, parseDeleteMonitoredItemsResponse }, + { OpcUaId_CreateSubscriptionRequest_Encoding_DefaultBinary, parseCreateSubscriptionRequest }, + { OpcUaId_CreateSubscriptionResponse_Encoding_DefaultBinary, parseCreateSubscriptionResponse }, + { OpcUaId_ModifySubscriptionRequest_Encoding_DefaultBinary, parseModifySubscriptionRequest }, + { OpcUaId_ModifySubscriptionResponse_Encoding_DefaultBinary, parseModifySubscriptionResponse }, + { OpcUaId_SetPublishingModeRequest_Encoding_DefaultBinary, parseSetPublishingModeRequest }, + { OpcUaId_SetPublishingModeResponse_Encoding_DefaultBinary, parseSetPublishingModeResponse }, + { OpcUaId_PublishRequest_Encoding_DefaultBinary, parsePublishRequest }, + { OpcUaId_PublishResponse_Encoding_DefaultBinary, parsePublishResponse }, + { OpcUaId_RepublishRequest_Encoding_DefaultBinary, parseRepublishRequest }, + { OpcUaId_RepublishResponse_Encoding_DefaultBinary, parseRepublishResponse }, + { OpcUaId_TransferSubscriptionsRequest_Encoding_DefaultBinary, parseTransferSubscriptionsRequest }, + { OpcUaId_TransferSubscriptionsResponse_Encoding_DefaultBinary, parseTransferSubscriptionsResponse }, + { OpcUaId_DeleteSubscriptionsRequest_Encoding_DefaultBinary, parseDeleteSubscriptionsRequest }, + { OpcUaId_DeleteSubscriptionsResponse_Encoding_DefaultBinary, parseDeleteSubscriptionsResponse }, }; const int g_NumServices = sizeof(g_arParserTable) / sizeof(ParserEntry); /** Service type table */ const value_string g_requesttypes[] = { - { 1358, "TestStackRequest" }, - { 1363, "TestStackResponse" }, - { 1368, "TestStackExRequest" }, - { 1373, "TestStackExResponse" }, - { 1414, "FindServersRequest" }, - { 1419, "FindServersResponse" }, - { 1424, "GetEndpointsRequest" }, - { 1429, "GetEndpointsResponse" }, - { 1439, "RegisterServerRequest" }, - { 1444, "RegisterServerResponse" }, - { 1454, "OpenSecureChannelRequest" }, - { 1459, "OpenSecureChannelResponse" }, - { 1464, "CloseSecureChannelRequest" }, - { 1469, "CloseSecureChannelResponse" }, - { 1479, "CreateSessionRequest" }, - { 1484, "CreateSessionResponse" }, - { 1489, "ActivateSessionRequest" }, - { 1494, "ActivateSessionResponse" }, - { 1499, "CloseSessionRequest" }, - { 1504, "CloseSessionResponse" }, - { 1509, "CancelRequest" }, - { 1514, "CancelResponse" }, - { 1524, "AddNodesRequest" }, - { 1529, "AddNodesResponse" }, - { 1534, "AddReferencesRequest" }, - { 1539, "AddReferencesResponse" }, - { 1544, "DeleteNodesRequest" }, - { 1549, "DeleteNodesResponse" }, - { 1554, "DeleteReferencesRequest" }, - { 1559, "DeleteReferencesResponse" }, - { 1574, "BrowsePropertiesRequest" }, - { 1579, "BrowsePropertiesResponse" }, - { 1599, "BrowseRequest" }, - { 1604, "BrowseResponse" }, - { 1609, "BrowseNextRequest" }, - { 1614, "BrowseNextResponse" }, - { 1630, "TranslateBrowsePathsToNodeIdsRequest" }, - { 1635, "TranslateBrowsePathsToNodeIdsResponse" }, - { 1710, "QueryFirstRequest" }, - { 1715, "QueryFirstResponse" }, - { 1720, "QueryNextRequest" }, - { 1725, "QueryNextResponse" }, - { 1740, "ReadRequest" }, - { 1745, "ReadResponse" }, - { 1790, "HistoryReadRequest" }, - { 1795, "HistoryReadResponse" }, - { 1805, "WriteRequest" }, - { 1810, "WriteResponse" }, - { 1845, "HistoryUpdateRequest" }, - { 1850, "HistoryUpdateResponse" }, - { 1865, "CallRequest" }, - { 1870, "CallResponse" }, - { 1930, "CreateMonitoredItemsRequest" }, - { 1935, "CreateMonitoredItemsResponse" }, - { 1950, "ModifyMonitoredItemsRequest" }, - { 1955, "ModifyMonitoredItemsResponse" }, - { 1960, "SetMonitoringModeRequest" }, - { 1965, "SetMonitoringModeResponse" }, - { 1970, "SetTriggeringRequest" }, - { 1975, "SetTriggeringResponse" }, - { 1980, "DeleteMonitoredItemsRequest" }, - { 1985, "DeleteMonitoredItemsResponse" }, - { 1990, "CreateSubscriptionRequest" }, - { 1995, "CreateSubscriptionResponse" }, - { 2000, "ModifySubscriptionRequest" }, - { 2005, "ModifySubscriptionResponse" }, - { 2010, "SetPublishingModeRequest" }, - { 2015, "SetPublishingModeResponse" }, - { 2050, "PublishRequest" }, - { 2055, "PublishResponse" }, - { 2060, "RepublishRequest" }, - { 2065, "RepublishResponse" }, - { 2075, "TransferSubscriptionsRequest" }, - { 2080, "TransferSubscriptionsResponse" }, - { 2085, "DeleteSubscriptionsRequest" }, - { 2090, "DeleteSubscriptionsResponse" }, - { 0, NULL } + { OpcUaId_TestStackRequest_Encoding_DefaultBinary, "TestStackRequest" }, + { OpcUaId_TestStackResponse_Encoding_DefaultBinary, "TestStackResponse" }, + { OpcUaId_TestStackExRequest_Encoding_DefaultBinary, "TestStackExRequest" }, + { OpcUaId_TestStackExResponse_Encoding_DefaultBinary, "TestStackExResponse" }, + { OpcUaId_FindServersRequest_Encoding_DefaultBinary, "FindServersRequest" }, + { OpcUaId_FindServersResponse_Encoding_DefaultBinary, "FindServersResponse" }, + { OpcUaId_GetEndpointsRequest_Encoding_DefaultBinary, "GetEndpointsRequest" }, + { OpcUaId_GetEndpointsResponse_Encoding_DefaultBinary, "GetEndpointsResponse" }, + { OpcUaId_RegisterServerRequest_Encoding_DefaultBinary, "RegisterServerRequest" }, + { OpcUaId_RegisterServerResponse_Encoding_DefaultBinary, "RegisterServerResponse" }, + { OpcUaId_OpenSecureChannelRequest_Encoding_DefaultBinary, "OpenSecureChannelRequest" }, + { OpcUaId_OpenSecureChannelResponse_Encoding_DefaultBinary, "OpenSecureChannelResponse" }, + { OpcUaId_CloseSecureChannelRequest_Encoding_DefaultBinary, "CloseSecureChannelRequest" }, + { OpcUaId_CloseSecureChannelResponse_Encoding_DefaultBinary, "CloseSecureChannelResponse" }, + { OpcUaId_CreateSessionRequest_Encoding_DefaultBinary, "CreateSessionRequest" }, + { OpcUaId_CreateSessionResponse_Encoding_DefaultBinary, "CreateSessionResponse" }, + { OpcUaId_ActivateSessionRequest_Encoding_DefaultBinary, "ActivateSessionRequest" }, + { OpcUaId_ActivateSessionResponse_Encoding_DefaultBinary, "ActivateSessionResponse" }, + { OpcUaId_CloseSessionRequest_Encoding_DefaultBinary, "CloseSessionRequest" }, + { OpcUaId_CloseSessionResponse_Encoding_DefaultBinary, "CloseSessionResponse" }, + { OpcUaId_CancelRequest_Encoding_DefaultBinary, "CancelRequest" }, + { OpcUaId_CancelResponse_Encoding_DefaultBinary, "CancelResponse" }, + { OpcUaId_AddNodesRequest_Encoding_DefaultBinary, "AddNodesRequest" }, + { OpcUaId_AddNodesResponse_Encoding_DefaultBinary, "AddNodesResponse" }, + { OpcUaId_AddReferencesRequest_Encoding_DefaultBinary, "AddReferencesRequest" }, + { OpcUaId_AddReferencesResponse_Encoding_DefaultBinary, "AddReferencesResponse" }, + { OpcUaId_DeleteNodesRequest_Encoding_DefaultBinary, "DeleteNodesRequest" }, + { OpcUaId_DeleteNodesResponse_Encoding_DefaultBinary, "DeleteNodesResponse" }, + { OpcUaId_DeleteReferencesRequest_Encoding_DefaultBinary, "DeleteReferencesRequest" }, + { OpcUaId_DeleteReferencesResponse_Encoding_DefaultBinary, "DeleteReferencesResponse" }, + { OpcUaId_BrowseRequest_Encoding_DefaultBinary, "BrowseRequest" }, + { OpcUaId_BrowseResponse_Encoding_DefaultBinary, "BrowseResponse" }, + { OpcUaId_BrowseNextRequest_Encoding_DefaultBinary, "BrowseNextRequest" }, + { OpcUaId_BrowseNextResponse_Encoding_DefaultBinary, "BrowseNextResponse" }, + { OpcUaId_TranslateBrowsePathsToNodeIdsRequest_Encoding_DefaultBinary, "TranslateBrowsePathsToNodeIdsRequest" }, + { OpcUaId_TranslateBrowsePathsToNodeIdsResponse_Encoding_DefaultBinary, "TranslateBrowsePathsToNodeIdsResponse" }, + { OpcUaId_RegisterNodesRequest_Encoding_DefaultBinary, "RegisterNodesRequest" }, + { OpcUaId_RegisterNodesResponse_Encoding_DefaultBinary, "RegisterNodesResponse" }, + { OpcUaId_UnregisterNodesRequest_Encoding_DefaultBinary, "UnregisterNodesRequest" }, + { OpcUaId_UnregisterNodesResponse_Encoding_DefaultBinary, "UnregisterNodesResponse" }, + { OpcUaId_QueryFirstRequest_Encoding_DefaultBinary, "QueryFirstRequest" }, + { OpcUaId_QueryFirstResponse_Encoding_DefaultBinary, "QueryFirstResponse" }, + { OpcUaId_QueryNextRequest_Encoding_DefaultBinary, "QueryNextRequest" }, + { OpcUaId_QueryNextResponse_Encoding_DefaultBinary, "QueryNextResponse" }, + { OpcUaId_ReadRequest_Encoding_DefaultBinary, "ReadRequest" }, + { OpcUaId_ReadResponse_Encoding_DefaultBinary, "ReadResponse" }, + { OpcUaId_HistoryReadRequest_Encoding_DefaultBinary, "HistoryReadRequest" }, + { OpcUaId_HistoryReadResponse_Encoding_DefaultBinary, "HistoryReadResponse" }, + { OpcUaId_WriteRequest_Encoding_DefaultBinary, "WriteRequest" }, + { OpcUaId_WriteResponse_Encoding_DefaultBinary, "WriteResponse" }, + { OpcUaId_HistoryUpdateRequest_Encoding_DefaultBinary, "HistoryUpdateRequest" }, + { OpcUaId_HistoryUpdateResponse_Encoding_DefaultBinary, "HistoryUpdateResponse" }, + { OpcUaId_CallRequest_Encoding_DefaultBinary, "CallRequest" }, + { OpcUaId_CallResponse_Encoding_DefaultBinary, "CallResponse" }, + { OpcUaId_CreateMonitoredItemsRequest_Encoding_DefaultBinary, "CreateMonitoredItemsRequest" }, + { OpcUaId_CreateMonitoredItemsResponse_Encoding_DefaultBinary, "CreateMonitoredItemsResponse" }, + { OpcUaId_ModifyMonitoredItemsRequest_Encoding_DefaultBinary, "ModifyMonitoredItemsRequest" }, + { OpcUaId_ModifyMonitoredItemsResponse_Encoding_DefaultBinary, "ModifyMonitoredItemsResponse" }, + { OpcUaId_SetMonitoringModeRequest_Encoding_DefaultBinary, "SetMonitoringModeRequest" }, + { OpcUaId_SetMonitoringModeResponse_Encoding_DefaultBinary, "SetMonitoringModeResponse" }, + { OpcUaId_SetTriggeringRequest_Encoding_DefaultBinary, "SetTriggeringRequest" }, + { OpcUaId_SetTriggeringResponse_Encoding_DefaultBinary, "SetTriggeringResponse" }, + { OpcUaId_DeleteMonitoredItemsRequest_Encoding_DefaultBinary, "DeleteMonitoredItemsRequest" }, + { OpcUaId_DeleteMonitoredItemsResponse_Encoding_DefaultBinary, "DeleteMonitoredItemsResponse" }, + { OpcUaId_CreateSubscriptionRequest_Encoding_DefaultBinary, "CreateSubscriptionRequest" }, + { OpcUaId_CreateSubscriptionResponse_Encoding_DefaultBinary, "CreateSubscriptionResponse" }, + { OpcUaId_ModifySubscriptionRequest_Encoding_DefaultBinary, "ModifySubscriptionRequest" }, + { OpcUaId_ModifySubscriptionResponse_Encoding_DefaultBinary, "ModifySubscriptionResponse" }, + { OpcUaId_SetPublishingModeRequest_Encoding_DefaultBinary, "SetPublishingModeRequest" }, + { OpcUaId_SetPublishingModeResponse_Encoding_DefaultBinary, "SetPublishingModeResponse" }, + { OpcUaId_PublishRequest_Encoding_DefaultBinary, "PublishRequest" }, + { OpcUaId_PublishResponse_Encoding_DefaultBinary, "PublishResponse" }, + { OpcUaId_RepublishRequest_Encoding_DefaultBinary, "RepublishRequest" }, + { OpcUaId_RepublishResponse_Encoding_DefaultBinary, "RepublishResponse" }, + { OpcUaId_TransferSubscriptionsRequest_Encoding_DefaultBinary, "TransferSubscriptionsRequest" }, + { OpcUaId_TransferSubscriptionsResponse_Encoding_DefaultBinary, "TransferSubscriptionsResponse" }, + { OpcUaId_DeleteSubscriptionsRequest_Encoding_DefaultBinary, "DeleteSubscriptionsRequest" }, + { OpcUaId_DeleteSubscriptionsResponse_Encoding_DefaultBinary, "DeleteSubscriptionsResponse" }, + { 0, NULL } }; /** Dispatch all services to a special parser function. */ @@ -207,3 +211,4 @@ void dispatchService(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int Service index++; } } + diff --git a/plugins/opcua/opcua_simpletypes.c b/plugins/opcua/opcua_simpletypes.c index 5863ca3db4..3549734cc2 100644 --- a/plugins/opcua/opcua_simpletypes.c +++ b/plugins/opcua/opcua_simpletypes.c @@ -46,10 +46,13 @@ #define LOCALIZEDTEXT_ENCODINGBYTE_LOCALE 0x01 #define LOCALIZEDTEXT_ENCODINGBYTE_TEXT 0x02 #define NODEID_URIMASK 0x80 +#define NODEID_SERVERINDEXFLAG 0x40 #define DATAVALUE_ENCODINGBYTE_VALUE 0x01 #define DATAVALUE_ENCODINGBYTE_STATUSCODE 0x02 #define DATAVALUE_ENCODINGBYTE_SOURCETIMESTAMP 0x04 #define DATAVALUE_ENCODINGBYTE_SERVERTIMESTAMP 0x08 +#define DATAVALUE_ENCODINGBYTE_SOURCEPICOSECONDS 0x10 +#define DATAVALUE_ENCODINGBYTE_SERVERPICOSECONDS 0x20 #define EXTOBJ_ENCODINGMASK_BINBODY_FLAG 0x01 #define EXTOBJ_ENCODINGMASK_XMLBODY_FLAG 0x02 @@ -65,14 +68,20 @@ static int hf_opcua_datavalue_mask_valueflag = -1; static int hf_opcua_datavalue_mask_statuscodeflag = -1; static int hf_opcua_datavalue_mask_sourcetimestampflag = -1; static int hf_opcua_datavalue_mask_servertimestampflag = -1; +static int hf_opcua_datavalue_mask_sourcepicoseconds = -1; +static int hf_opcua_datavalue_mask_serverpicoseconds = -1; static int hf_opcua_nodeid_encodingmask = -1; static int hf_opcua_variant_encodingmask = -1; static int hf_opcua_nodeid_nsid = -1; static int hf_opcua_nodeid_numeric = -1; -static int hf_opcua_Locale = -1; -static int hf_opcua_Text = -1; +static int hf_opcua_localizedtext_locale = -1; +static int hf_opcua_localizedtext_text = -1; +static int hf_opcua_qualifiedname_id = -1; +static int hf_opcua_qualifiedname_name = -1; static int hf_opcua_SourceTimestamp = -1; +static int hf_opcua_SourcePicoseconds = -1; static int hf_opcua_ServerTimestamp = -1; +static int hf_opcua_ServerPicoseconds = -1; static int hf_opcua_diag_symbolicid = -1; static int hf_opcua_diag_namespace = -1; static int hf_opcua_diag_localizedtext = -1; @@ -80,6 +89,9 @@ static int hf_opcua_diag_additionalinfo = -1; static int hf_opcua_diag_innerstatuscode = -1; static int hf_opcua_extobj_mask_binbodyflag = -1; static int hf_opcua_extobj_mask_xmlbodyflag = -1; +static int hf_opcua_ArraySize = -1; +static int hf_opcua_Uri = -1; +static int hf_opcua_ServerIndex = -1; /** NodeId encoding mask table */ static const value_string g_nodeidmasks[] = { @@ -117,12 +129,12 @@ typedef enum _OpcUa_BuiltInType OpcUaType_NodeId = 17, OpcUaType_ExpandedNodeId = 18, OpcUaType_StatusCode = 19, - OpcUaType_DiagnosticInfo = 20, - OpcUaType_QualifiedName = 21, - OpcUaType_LocalizedText = 22, - OpcUaType_ExtensionObject = 23, - OpcUaType_DataValue = 24, - OpcUaType_Variant = 25 + OpcUaType_QualifiedName = 20, + OpcUaType_LocalizedText = 21, + OpcUaType_ExtensionObject = 22, + OpcUaType_DataValue = 23, + OpcUaType_Variant = 24, + OpcUaType_DiagnosticInfo = 25 } OpcUa_BuiltInType; @@ -182,6 +194,7 @@ static const value_string g_VariantTypes[] = { { 0x80+25, "Array of Variant" }, { 0, NULL } }; +#define VARIANT_ARRAYDIMENSIONS 0x40 #define VARIANT_ARRAYMASK 0x80 /* trees */ @@ -241,27 +254,36 @@ static hf_register_info hf[] = { "NodeId EncodingMask", "application.nodeid.encodingmask", FT_UINT8, BASE_HEX, VALS(g_nodeidmasks), 0x0, "", HFILL } }, { &hf_opcua_nodeid_nsid, - { "NodeId Namespace Id", "application.nodeid.nsid", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } + { "NodeId Namespace Id", "application.nodeid.nsid", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL } }, { &hf_opcua_nodeid_numeric, { "NodeId Identifier Numeric", "application.nodeid.numeric", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Locale, { "Locale", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Text, { "Text", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_localizedtext_locale, { "Locale", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_localizedtext_text, { "Text", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_qualifiedname_id, { "Id", "", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_qualifiedname_name, { "Name", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, { &hf_opcua_datavalue_mask_valueflag, { "has value", "", FT_BOOLEAN, 8, NULL, DATAVALUE_ENCODINGBYTE_VALUE, "", HFILL } }, { &hf_opcua_datavalue_mask_statuscodeflag, { "has statuscode", "", FT_BOOLEAN, 8, NULL, DATAVALUE_ENCODINGBYTE_STATUSCODE, "", HFILL } }, { &hf_opcua_datavalue_mask_sourcetimestampflag, { "has source timestamp", "", FT_BOOLEAN, 8, NULL, DATAVALUE_ENCODINGBYTE_SOURCETIMESTAMP, "", HFILL } }, { &hf_opcua_datavalue_mask_servertimestampflag, { "has server timestamp", "", FT_BOOLEAN, 8, NULL, DATAVALUE_ENCODINGBYTE_SERVERTIMESTAMP, "", HFILL } }, + { &hf_opcua_datavalue_mask_sourcepicoseconds, { "has source picoseconds", "", FT_BOOLEAN, 8, NULL, DATAVALUE_ENCODINGBYTE_SOURCEPICOSECONDS, "", HFILL } }, + { &hf_opcua_datavalue_mask_serverpicoseconds, { "has server picoseconds", "", FT_BOOLEAN, 8, NULL, DATAVALUE_ENCODINGBYTE_SERVERPICOSECONDS, "", HFILL } }, { &hf_opcua_variant_encodingmask, { "Variant Type", "", FT_UINT8, BASE_HEX, VALS(g_VariantTypes), 0x0, "", HFILL } }, { &hf_opcua_SourceTimestamp, { "SourceTimestamp", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_SourcePicoseconds, { "SourcePicoseconds", "", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL } }, { &hf_opcua_ServerTimestamp, { "ServerTimestamp", "", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ServerPicoseconds, { "ServerPicoseconds", "", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL } }, { &hf_opcua_diag_symbolicid, { "SymbolicId", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, { &hf_opcua_diag_namespace, { "Namespace", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, { &hf_opcua_diag_localizedtext, { "LocaliezdText", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, { &hf_opcua_diag_additionalinfo, { "AdditionalInfo", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, { &hf_opcua_diag_innerstatuscode, { "InnerStatusCode", "", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL } }, { &hf_opcua_extobj_mask_binbodyflag, { "has binary body", "", FT_BOOLEAN, 8, NULL, EXTOBJ_ENCODINGMASK_BINBODY_FLAG, "", HFILL } }, - { &hf_opcua_extobj_mask_xmlbodyflag, { "has xml body", "", FT_BOOLEAN, 8, NULL, EXTOBJ_ENCODINGMASK_XMLBODY_FLAG, "", HFILL } } + { &hf_opcua_extobj_mask_xmlbodyflag, { "has xml body", "", FT_BOOLEAN, 8, NULL, EXTOBJ_ENCODINGMASK_XMLBODY_FLAG, "", HFILL } }, + { &hf_opcua_ArraySize, { "ArraySize", "", FT_INT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Uri, { "Uri", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, + { &hf_opcua_ServerIndex, { "ServerIndex", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } } }; void registerSimpleTypes(int proto) @@ -375,12 +397,12 @@ void parseLocalizedText(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *sz if (EncodingMask & LOCALIZEDTEXT_ENCODINGBYTE_LOCALE) { - parseString(subtree, tvb, &iOffset, hf_opcua_Locale); + parseString(subtree, tvb, &iOffset, hf_opcua_localizedtext_locale); } if (EncodingMask & LOCALIZEDTEXT_ENCODINGBYTE_TEXT) { - parseString(subtree, tvb, &iOffset, hf_opcua_Text); + parseString(subtree, tvb, &iOffset, hf_opcua_localizedtext_text); } *pOffset = iOffset; @@ -486,8 +508,8 @@ void parseQualifiedName(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *sz proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "%s: QualifiedName", szFieldName); proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_qualifiedname); - parseInt32(subtree, tvb, pOffset, hf_opcua_Id); - parseString(subtree, tvb, pOffset, hf_opcua_Name); + parseUInt16(subtree, tvb, pOffset, hf_opcua_qualifiedname_id); + parseString(subtree, tvb, pOffset, hf_opcua_qualifiedname_name); } void parseDataValue(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldName) @@ -505,6 +527,8 @@ void parseDataValue(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFiel proto_tree_add_item(mask_tree, hf_opcua_datavalue_mask_statuscodeflag, tvb, iOffset, 1, TRUE); proto_tree_add_item(mask_tree, hf_opcua_datavalue_mask_sourcetimestampflag, tvb, iOffset, 1, TRUE); proto_tree_add_item(mask_tree, hf_opcua_datavalue_mask_servertimestampflag, tvb, iOffset, 1, TRUE); + proto_tree_add_item(mask_tree, hf_opcua_datavalue_mask_sourcepicoseconds, tvb, iOffset, 1, TRUE); + proto_tree_add_item(mask_tree, hf_opcua_datavalue_mask_serverpicoseconds, tvb, iOffset, 1, TRUE); iOffset++; if (EncodingMask & DATAVALUE_ENCODINGBYTE_VALUE) @@ -519,10 +543,18 @@ void parseDataValue(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFiel { parseDateTime(subtree, tvb, &iOffset, hf_opcua_SourceTimestamp); } + if (EncodingMask & DATAVALUE_ENCODINGBYTE_SOURCEPICOSECONDS) + { + parseUInt16(subtree, tvb, &iOffset, hf_opcua_SourcePicoseconds); + } if (EncodingMask & DATAVALUE_ENCODINGBYTE_SERVERTIMESTAMP) { parseDateTime(subtree, tvb, &iOffset, hf_opcua_ServerTimestamp); } + if (EncodingMask & DATAVALUE_ENCODINGBYTE_SERVERPICOSECONDS) + { + parseUInt16(subtree, tvb, &iOffset, hf_opcua_ServerPicoseconds); + } *pOffset = iOffset; } @@ -533,16 +565,17 @@ void parseVariant(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldN proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_variant); gint iOffset = *pOffset; guint8 EncodingMask; + gint32 ArrayLength; EncodingMask = tvb_get_guint8(tvb, iOffset); proto_tree_add_item(subtree, hf_opcua_variant_encodingmask, tvb, iOffset, 1, TRUE); iOffset++; + ArrayLength = tvb_get_letohl(tvb, iOffset); if (EncodingMask & VARIANT_ARRAYMASK) { - EncodingMask &= ~VARIANT_ARRAYMASK; - - switch(EncodingMask) + /* type is encoded in bits 0-5 */ + switch(EncodingMask & 0x3f) { case OpcUaType_Null: break; case OpcUaType_Boolean: parseArraySimple(subtree, tvb, &iOffset, hf_opcua_Boolean, parseBoolean); break; @@ -574,7 +607,8 @@ void parseVariant(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldN } else { - switch(EncodingMask) + /* type is encoded in bits 0-5 */ + switch(EncodingMask & 0x3f) { case OpcUaType_Null: break; case OpcUaType_Boolean: parseBoolean(subtree, tvb, &iOffset, hf_opcua_Boolean); break; @@ -604,6 +638,18 @@ void parseVariant(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldN case OpcUaType_Variant: parseVariant(subtree, tvb, &iOffset, "Value"); break; } } + + if (EncodingMask & VARIANT_ARRAYDIMENSIONS) + { + proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "Array Dimensions"); + proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_array); + int i; + + for (i=0; i<ArrayLength; i++) + { + parseInt32(subtree, tvb, pOffset, hf_opcua_Int32); + } + } *pOffset = iOffset; } @@ -711,23 +757,22 @@ void parseNodeId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *szFieldNa iOffset+=2; break; case 0x02: /* numeric, that does not fit into four bytes */ - proto_tree_add_item(subtree, hf_opcua_nodeid_nsid, tvb, iOffset, 4, TRUE); - iOffset+=4; + proto_tree_add_item(subtree, hf_opcua_nodeid_nsid, tvb, iOffset, 2, TRUE); + iOffset+=2; proto_tree_add_item(subtree, hf_opcua_nodeid_numeric, tvb, iOffset, 4, TRUE); iOffset+=4; break; case 0x03: /* string */ - proto_tree_add_item(subtree, hf_opcua_nodeid_nsid, tvb, iOffset, 4, TRUE); - iOffset+=4; + proto_tree_add_item(subtree, hf_opcua_nodeid_nsid, tvb, iOffset, 2, TRUE); + iOffset+=2; parseString(subtree, tvb, &iOffset, hf_opcua_String); break; - case 0x04: /* uri */ - parseString(subtree, tvb, &iOffset, hf_opcua_Uri); - break; - case 0x05: /* guid */ + case 0x04: /* guid */ + proto_tree_add_item(subtree, hf_opcua_nodeid_nsid, tvb, iOffset, 2, TRUE); + iOffset+=2; parseGuid(subtree, tvb, &iOffset, hf_opcua_Guid); break; - case 0x06: /* byte string */ + case 0x05: /* byte string */ proto_tree_add_item(subtree, hf_opcua_nodeid_nsid, tvb, iOffset, 4, TRUE); iOffset+=4; parseByteString(subtree, tvb, &iOffset, hf_opcua_ByteString); @@ -792,25 +837,24 @@ void parseExpandedNodeId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *s iOffset+=2; break; case 0x02: /* numeric, that does not fit into four bytes */ - proto_tree_add_item(subtree, hf_opcua_nodeid_nsid, tvb, iOffset, 4, TRUE); - iOffset+=4; + proto_tree_add_item(subtree, hf_opcua_nodeid_nsid, tvb, iOffset, 2, TRUE); + iOffset+=2; proto_tree_add_item(subtree, hf_opcua_nodeid_numeric, tvb, iOffset, 4, TRUE); iOffset+=4; break; case 0x03: /* string */ - proto_tree_add_item(subtree, hf_opcua_nodeid_nsid, tvb, iOffset, 4, TRUE); - iOffset+=4; + proto_tree_add_item(subtree, hf_opcua_nodeid_nsid, tvb, iOffset, 2, TRUE); + iOffset+=2; parseString(subtree, tvb, &iOffset, hf_opcua_String); break; - case 0x04: /* uri */ - parseString(subtree, tvb, &iOffset, hf_opcua_Uri); - break; - case 0x05: /* guid */ + case 0x04: /* guid */ + proto_tree_add_item(subtree, hf_opcua_nodeid_nsid, tvb, iOffset, 2, TRUE); + iOffset+=2; parseGuid(subtree, tvb, &iOffset, hf_opcua_Guid); break; - case 0x06: /* byte string */ - proto_tree_add_item(subtree, hf_opcua_nodeid_nsid, tvb, iOffset, 4, TRUE); - iOffset+=4; + case 0x05: /* byte string */ + proto_tree_add_item(subtree, hf_opcua_nodeid_nsid, tvb, iOffset, 2, TRUE); + iOffset+=2; parseByteString(subtree, tvb, &iOffset, hf_opcua_ByteString); break; }; @@ -819,6 +863,10 @@ void parseExpandedNodeId(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, char *s { parseString(subtree, tvb, &iOffset, hf_opcua_Uri); } + if (EncodingMask & NODEID_SERVERINDEXFLAG) + { + parseUInt32(subtree, tvb, &iOffset, hf_opcua_ServerIndex); + } *pOffset = iOffset; } diff --git a/plugins/opcua/opcua_transport_layer.c b/plugins/opcua/opcua_transport_layer.c index 6327d8e929..386b51fc91 100644 --- a/plugins/opcua/opcua_transport_layer.c +++ b/plugins/opcua/opcua_transport_layer.c @@ -1,7 +1,7 @@ /****************************************************************************** ** $Id$ ** -** Copyright (C) 2006-2007 ascolab GmbH. All Rights Reserved. +** Copyright (C) 2006-2009 ascolab GmbH. All Rights Reserved. ** Web: http://www.ascolab.com ** ** This program is free software; you can redistribute it and/or @@ -35,67 +35,86 @@ void dispatchService(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int ServiceId); -static int hf_opcua_transport_sig = -1; -static int hf_opcua_transport_len = -1; +static int hf_opcua_transport_type = -1; +static int hf_opcua_transport_chunk = -1; +static int hf_opcua_transport_size = -1; static int hf_opcua_transport_ver = -1; -static int hf_opcua_transport_cid = -1; +static int hf_opcua_transport_scid = -1; static int hf_opcua_transport_lifetime = -1; -static int hf_opcua_transport_sbl = -1; -static int hf_opcua_transport_rbl = -1; +static int hf_opcua_transport_rbs = -1; +static int hf_opcua_transport_sbs = -1; +static int hf_opcua_transport_mms = -1; +static int hf_opcua_transport_mcc = -1; static int hf_opcua_transport_endpoint = -1; -static int hf_opcua_transport_rlifetime = -1; -static int hf_opcua_transport_rsbl = -1; -static int hf_opcua_transport_rrbl = -1; -static int hf_opcua_transport_altendpoint = -1; +static int hf_opcua_transport_error = -1; +static int hf_opcua_transport_reason = -1; +static int hf_opcua_transport_spu = -1; +static int hf_opcua_transport_scert = -1; +static int hf_opcua_transport_rcthumb = -1; +static int hf_opcua_transport_seq = -1; static int hf_opcua_transport_rqid = -1; -static int hf_opcua_transport_status = -1; extern gint ett_opcua_nodeid; static hf_register_info hf[] = { - { &hf_opcua_transport_sig, + { &hf_opcua_transport_type, /* full name , abbreviation , type , display , strings, bitmask, blurb, id, parent, ref_count, bitshift */ - { "Signature", "transport.sig", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } + { "Message Type", "transport.type", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, - { &hf_opcua_transport_len, - { "Message Length", "transport.len", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } + { &hf_opcua_transport_chunk, + { "Chunk Type", "transport.chunk", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } + }, + { &hf_opcua_transport_size, + { "Message Size", "transport.size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, { &hf_opcua_transport_ver, { "Version", "transport.ver", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_transport_cid, - { "ConnectionId", "transport.cid", FT_GUID, BASE_NONE, NULL, 0x0, "", HFILL } + { &hf_opcua_transport_scid, + { "SecureChannelId", "transport.scid", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, { &hf_opcua_transport_lifetime, { "Lifetime", "transport.lifetime", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_transport_sbl, - { "SendBufferLength", "transport.sbl", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } + { &hf_opcua_transport_rbs, + { "ReceiveBufferSize", "transport.rbs", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } + }, + { &hf_opcua_transport_sbs, + { "SendBufferSize", "transport.sbs", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_transport_rbl, - { "ReceiveBufferLength", "transport.rbl", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } + { &hf_opcua_transport_mms, + { "MaxMessageSize", "transport.mms", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } + }, + { &hf_opcua_transport_mcc, + { "MaxChunkCount", "transport.mcc", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, { &hf_opcua_transport_endpoint, - { "EndPoint", "transport.endpoint", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } + { "EndPointUrl", "transport.endpoint", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } + }, + { &hf_opcua_transport_error, + { "Error", "transport.error", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL } }, - { &hf_opcua_transport_rlifetime, - { "Revised Lifetime", "transport.rlifetime", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } + { &hf_opcua_transport_reason, + { "Reason", "transport.reason", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_transport_rsbl, - { "Revised SendBufferLength", "transport.rsbl", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } +/* { &hf_opcua_transport_spul, + { "SecurityPolicyUriLength", "transport.spul", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } + },*/ + { &hf_opcua_transport_spu, + { "SecurityPolicyUri", "security.spu", FT_STRING, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_transport_rrbl, - { "Revised ReceiveBufferLength", "transport.rrbl", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } + { &hf_opcua_transport_scert, + { "SenderCertificate", "security.scert", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL } }, - { &hf_opcua_transport_altendpoint, - { "Alternate EndPoint", "transport.altendpoint", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } + { &hf_opcua_transport_rcthumb, + { "ReceiverCertificateThumbprint", "security.rcthumb", FT_BYTES, BASE_HEX, NULL, 0x0, "", HFILL } + }, + { &hf_opcua_transport_seq, + { "SequenceNumber", "security.seq", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, { &hf_opcua_transport_rqid, - { "RequestId", "transport.rqid", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } + { "RequestId", "security.rqid", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_transport_status, - { "StatusCode", "transport.status", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } - } }; /** subtree types */ @@ -134,45 +153,49 @@ void addString(proto_tree *tree, /* Transport Layer: message parsers */ void parseHello(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { - addString(tree, hf_opcua_transport_sig, tvb, *pOffset, 4, tvb->real_data); *pOffset+=4; - proto_tree_add_item(tree, hf_opcua_transport_len, tvb, *pOffset, 4, TRUE); *pOffset+=4; + addString(tree, hf_opcua_transport_type, tvb, *pOffset, 3, tvb->real_data); *pOffset+=3; + addString(tree, hf_opcua_transport_chunk, tvb, *pOffset, 1, &tvb->real_data[*pOffset]); *pOffset+=1; + proto_tree_add_item(tree, hf_opcua_transport_size, tvb, *pOffset, 4, TRUE); *pOffset+=4; proto_tree_add_item(tree, hf_opcua_transport_ver, tvb, *pOffset, 4, TRUE); *pOffset+=4; - proto_tree_add_item(tree, hf_opcua_transport_cid, tvb, *pOffset, 16, TRUE); *pOffset+=16; - proto_tree_add_item(tree, hf_opcua_transport_lifetime, tvb, *pOffset, 4, TRUE); *pOffset+=4; - proto_tree_add_item(tree, hf_opcua_transport_sbl, tvb, *pOffset, 4, TRUE); *pOffset+=4; - proto_tree_add_item(tree, hf_opcua_transport_rbl, tvb, *pOffset, 4, TRUE); *pOffset+=4; + proto_tree_add_item(tree, hf_opcua_transport_rbs, tvb, *pOffset, 4, TRUE); *pOffset+=4; + proto_tree_add_item(tree, hf_opcua_transport_sbs, tvb, *pOffset, 4, TRUE); *pOffset+=4; + proto_tree_add_item(tree, hf_opcua_transport_mms, tvb, *pOffset, 4, TRUE); *pOffset+=4; + proto_tree_add_item(tree, hf_opcua_transport_mcc, tvb, *pOffset, 4, TRUE); *pOffset+=4; parseString(tree, tvb, pOffset, hf_opcua_transport_endpoint); } void parseAcknowledge(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { - addString(tree, hf_opcua_transport_sig, tvb, *pOffset, 4, tvb->real_data); *pOffset+=4; - proto_tree_add_item(tree, hf_opcua_transport_len, tvb, *pOffset, 4, TRUE); *pOffset+=4; - proto_tree_add_item(tree, hf_opcua_transport_cid, tvb, *pOffset, 16, TRUE); *pOffset+=16; - proto_tree_add_item(tree, hf_opcua_transport_rlifetime, tvb, *pOffset, 4, TRUE); *pOffset+=4; - proto_tree_add_item(tree, hf_opcua_transport_rsbl, tvb, *pOffset, 4, TRUE); *pOffset+=4; - proto_tree_add_item(tree, hf_opcua_transport_rrbl, tvb, *pOffset, 4, TRUE); *pOffset+=4; - parseString(tree, tvb, pOffset, hf_opcua_transport_altendpoint); + addString(tree, hf_opcua_transport_type, tvb, *pOffset, 3, tvb->real_data); *pOffset+=3; + addString(tree, hf_opcua_transport_chunk, tvb, *pOffset, 1, &tvb->real_data[*pOffset]); *pOffset+=1; + proto_tree_add_item(tree, hf_opcua_transport_size, tvb, *pOffset, 4, TRUE); *pOffset+=4; + proto_tree_add_item(tree, hf_opcua_transport_ver, tvb, *pOffset, 4, TRUE); *pOffset+=4; + proto_tree_add_item(tree, hf_opcua_transport_rbs, tvb, *pOffset, 4, TRUE); *pOffset+=4; + proto_tree_add_item(tree, hf_opcua_transport_sbs, tvb, *pOffset, 4, TRUE); *pOffset+=4; + proto_tree_add_item(tree, hf_opcua_transport_mms, tvb, *pOffset, 4, TRUE); *pOffset+=4; + proto_tree_add_item(tree, hf_opcua_transport_mcc, tvb, *pOffset, 4, TRUE); *pOffset+=4; } -void parseDisconnect(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseError(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { - addString(tree, hf_opcua_transport_sig, tvb, *pOffset, 4, tvb->real_data); *pOffset+=4; - proto_tree_add_item(tree, hf_opcua_transport_len, tvb, *pOffset, 4, TRUE); *pOffset+=4; - proto_tree_add_item(tree, hf_opcua_transport_cid, tvb, *pOffset, 16, TRUE); *pOffset+=16; + addString(tree, hf_opcua_transport_type, tvb, *pOffset, 3, tvb->real_data); *pOffset+=3; + addString(tree, hf_opcua_transport_chunk, tvb, *pOffset, 1, &tvb->real_data[*pOffset]); *pOffset+=1; + proto_tree_add_item(tree, hf_opcua_transport_size, tvb, *pOffset, 4, TRUE); *pOffset+=4; + proto_tree_add_item(tree, hf_opcua_transport_error, tvb, *pOffset, 4, TRUE); *pOffset+=4; + parseString(tree, tvb, pOffset, hf_opcua_transport_reason); } -void parseData(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseMessage(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { proto_item *ti; proto_tree *encobj_tree; proto_tree *nodeid_tree; int ServiceId = 0; - addString(tree, hf_opcua_transport_sig, tvb, *pOffset, 4, tvb->real_data); *pOffset+=4; - proto_tree_add_item(tree, hf_opcua_transport_len, tvb, *pOffset, 4, TRUE); *pOffset+=4; - proto_tree_add_item(tree, hf_opcua_transport_cid, tvb, *pOffset, 16, TRUE); *pOffset+=16; - proto_tree_add_item(tree, hf_opcua_transport_rqid, tvb, *pOffset, 4, TRUE); *pOffset+=4; + addString(tree, hf_opcua_transport_type, tvb, *pOffset, 3, tvb->real_data); *pOffset+=3; + addString(tree, hf_opcua_transport_chunk, tvb, *pOffset, 1, &tvb->real_data[*pOffset]); *pOffset+=1; + proto_tree_add_item(tree, hf_opcua_transport_size, tvb, *pOffset, 4, TRUE); *pOffset+=4; + proto_tree_add_item(tree, hf_opcua_transport_scid, tvb, *pOffset, 4, TRUE); *pOffset+=4; /* message data contains the security layer */ parseSecurityLayer(tree, tvb, pOffset); @@ -188,24 +211,45 @@ void parseData(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) /* add nodeid subtree */ ti = proto_tree_add_text(encobj_tree, tvb, 0, -1, "TypeId : ExpandedNodeId"); nodeid_tree = proto_item_add_subtree(ti, ett_opcua_nodeid); - ServiceId = parseServiceNodeId(nodeid_tree, tvb, pOffset, "NodeId") - 1; + ServiceId = parseServiceNodeId(nodeid_tree, tvb, pOffset, "NodeId"); dispatchService(encobj_tree, tvb, pOffset, ServiceId); } -void parseAbort(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseOpenSecureChannel(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { - addString(tree, hf_opcua_transport_sig, tvb, *pOffset, 4, tvb->real_data); *pOffset+=4; - proto_tree_add_item(tree, hf_opcua_transport_len, tvb, *pOffset, 4, TRUE); *pOffset+=4; - proto_tree_add_item(tree, hf_opcua_transport_cid, tvb, *pOffset, 16, TRUE); *pOffset+=16; + proto_item *ti; + proto_tree *encobj_tree; + proto_tree *nodeid_tree; + int ServiceId = 0; + + addString(tree, hf_opcua_transport_type, tvb, *pOffset, 3, tvb->real_data); *pOffset+=3; + addString(tree, hf_opcua_transport_chunk, tvb, *pOffset, 1, &tvb->real_data[*pOffset]); *pOffset+=1; + proto_tree_add_item(tree, hf_opcua_transport_size, tvb, *pOffset, 4, TRUE); *pOffset+=4; + proto_tree_add_item(tree, hf_opcua_transport_scid, tvb, *pOffset, 4, TRUE); *pOffset+=4; + parseString(tree, tvb, pOffset, hf_opcua_transport_spu); + parseByteString(tree, tvb, pOffset, hf_opcua_transport_scert); + parseByteString(tree, tvb, pOffset, hf_opcua_transport_rcthumb); + proto_tree_add_item(tree, hf_opcua_transport_seq, tvb, *pOffset, 4, TRUE); *pOffset+=4; proto_tree_add_item(tree, hf_opcua_transport_rqid, tvb, *pOffset, 4, TRUE); *pOffset+=4; + + /* add encodeable object subtree */ + ti = proto_tree_add_text(tree, tvb, 0, -1, "Message : Encodeable Object"); + encobj_tree = proto_item_add_subtree(ti, ett_opcua_extensionobject); + + /* add nodeid subtree */ + ti = proto_tree_add_text(encobj_tree, tvb, 0, -1, "TypeId : ExpandedNodeId"); + nodeid_tree = proto_item_add_subtree(ti, ett_opcua_nodeid); + ServiceId = parseServiceNodeId(nodeid_tree, tvb, pOffset, "NodeId"); + + dispatchService(encobj_tree, tvb, pOffset, ServiceId); } -void parseError(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +void parseCloseSecureChannel(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { - addString(tree, hf_opcua_transport_sig, tvb, *pOffset, 4, tvb->real_data); *pOffset+=4; - proto_tree_add_item(tree, hf_opcua_transport_len, tvb, *pOffset, 4, TRUE); *pOffset+=4; - proto_tree_add_item(tree, hf_opcua_transport_cid, tvb, *pOffset, 16, TRUE); *pOffset+=16; - proto_tree_add_item(tree, hf_opcua_transport_rqid, tvb, *pOffset, 4, TRUE); *pOffset+=4; - proto_tree_add_item(tree, hf_opcua_transport_status, tvb, *pOffset, 4, TRUE); *pOffset+=4; + addString(tree, hf_opcua_transport_type, tvb, *pOffset, 3, tvb->real_data); *pOffset+=3; + addString(tree, hf_opcua_transport_chunk, tvb, *pOffset, 1, &tvb->real_data[*pOffset]); *pOffset+=1; + proto_tree_add_item(tree, hf_opcua_transport_size, tvb, *pOffset, 4, TRUE); *pOffset+=4; + proto_tree_add_item(tree, hf_opcua_transport_scid, tvb, *pOffset, 4, TRUE); *pOffset+=4; } + diff --git a/plugins/opcua/opcua_transport_layer.h b/plugins/opcua/opcua_transport_layer.h index 3ee1efe78f..4fc2a02817 100644 --- a/plugins/opcua/opcua_transport_layer.h +++ b/plugins/opcua/opcua_transport_layer.h @@ -1,7 +1,7 @@ /****************************************************************************** ** $Id$ ** -** Copyright (C) 2006-2007 ascolab GmbH. All Rights Reserved. +** Copyright (C) 2006-2009 ascolab GmbH. All Rights Reserved. ** Web: http://www.ascolab.com ** ** This program is free software; you can redistribute it and/or @@ -24,9 +24,9 @@ /* Transport Layer: message parsers */ void parseHello(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void parseAcknowledge(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); -void parseDisconnect(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); -void parseData(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); -void parseAbort(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void parseError(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); +void parseMessage(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); +void parseOpenSecureChannel(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); +void parseCloseSecureChannel(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); void registerTransportLayerTypes(int proto); |