Wireshark-dev: [Wireshark-dev] OPCUA Update
From: Gerhard Gappmeier <gerhard.gappmeier@xxxxxxxxxxx>
Date: Wed, 1 Apr 2009 18:32:45 +0200
Hi all, Also Part 6 which describes the protocol. So it was overdue to update the wireshark opcua plugin. It's only tested on Linux, but buildbot while verify the other platforms anyway. where you can configure the port. Default is port 4840, which is also the registered port for OPCUA. But a lot of servers will run on other ports, so a configuration option would be nice. wireshark GUI stuff. mit freundlichen Grüßen / best regards ascolab GmbH - automation systems communication laboratory Tel.: +49 9131 691 123 Fax: +49 9131 691 128 Web: http://www.ascolab.com GPG-Key: http://www.ascolab.com/gpg/gg.asc |
Attachment:
cppserver.cap
Description: Binary data
Index: opcua_simpletypes.c =================================================================== --- opcua_simpletypes.c (Revision 27851) +++ opcua_simpletypes.c (Arbeitskopie) @@ -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_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_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 @@ 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 @@ { 0x80+25, "Array of Variant" }, { 0, NULL } }; +#define VARIANT_ARRAYDIMENSIONS 0x40 #define VARIANT_ARRAYMASK 0x80 /* trees */ @@ -241,27 +254,36 @@ { "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 @@ 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 @@ 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 @@ 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 @@ { 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 @@ 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 @@ } 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,7 +638,19 @@ 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 @@ 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 @@ 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 @@ { parseString(subtree, tvb, &iOffset, hf_opcua_Uri); } + if (EncodingMask & NODEID_SERVERINDEXFLAG) + { + parseUInt32(subtree, tvb, &iOffset, hf_opcua_ServerIndex); + } *pOffset = iOffset; } Index: opcua.c =================================================================== --- opcua.c (Revision 27851) +++ opcua.c (Arbeitskopie) @@ -46,7 +46,7 @@ static int proto_opcua = -1; /** Official IANA registered port for OPC UA Binary Protocol. */ -#define OPCUA_PORT 4840 +#define OPCUA_PORT 4841 /** subtree types */ gint ett_opcua_transport = -1; @@ -58,13 +58,11 @@ { 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 +70,11 @@ { "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" }; @@ -168,51 +164,41 @@ } /* 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') { - 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_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') + { + 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,7 +218,6 @@ /* call the transport message dissector */ (*pfctParse)(transport_tree, tvb, &offset); - } } Index: opcua_enumparser.c =================================================================== --- opcua_enumparser.c (Revision 27851) +++ opcua_enumparser.c (Arbeitskopie) @@ -1,7 +1,5 @@ /****************************************************************************** -** $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 +14,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,10 +28,56 @@ #include "opcua_enumparser.h" +/** 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_NodeIdType = -1; +void parseNodeIdType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) +{ + 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, "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; +} /** NodeClass enum table */ static const value_string g_NodeClassTable[] = { - { 0, "Node" }, + { 0, "Unspecified" }, { 1, "Object" }, { 2, "Variable" }, { 4, "Method" }, @@ -48,42 +92,25 @@ void parseNodeClass(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_NodeClass, 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" }, - { 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; -} - /** 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 +120,22 @@ 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 +146,8 @@ 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 +160,80 @@ void parseComplianceLevel(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { - proto_tree_add_item(tree, hf_opcua_ComplianceLevel, tvb, *pOffset, 4, TRUE); *pOffset+=4; + 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" }, +/** 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_RedundancySupport = -1; +static int hf_opcua_AttributeWriteMask = -1; -void parseRedundancySupport(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_RedundancySupport, tvb, *pOffset, 4, TRUE); *pOffset+=4; + proto_tree_add_item(tree, hf_opcua_AttributeWriteMask, 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" }, +/** 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_ServerState = -1; +static int hf_opcua_NodeAttributesMask = -1; -void parseServerState(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_ServerState, tvb, *pOffset, 4, TRUE); *pOffset+=4; + proto_tree_add_item(tree, hf_opcua_NodeAttributesMask, 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" }, - { 0, NULL } -}; -static int hf_opcua_ColorsDataType = -1; - -void parseColorsDataType(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) -{ - proto_tree_add_item(tree, hf_opcua_ColorsDataType, 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" }, - { 0, NULL } -}; -static int hf_opcua_DiagnosticsMasks = -1; - -void parseDiagnosticsMasks(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) -{ - proto_tree_add_item(tree, hf_opcua_DiagnosticsMasks, tvb, *pOffset, 4, TRUE); *pOffset+=4; -} - /** EnumeratedTestType enum table */ static const value_string g_EnumeratedTestTypeTable[] = { { 1, "Red" }, @@ -249,64 +245,96 @@ 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 +346,8 @@ 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 +359,108 @@ 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,33 +468,30 @@ { &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_NodeAttributesMask, + { "NodeAttributesMask", "", FT_UINT32, BASE_HEX, VALS(g_NodeAttributesMaskTable), 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_EnumeratedTestType, { "EnumeratedTestType", "", FT_UINT32, BASE_HEX, VALS(g_EnumeratedTestTypeTable), 0x0, "", HFILL } }, { &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 +500,19 @@ }, { &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 +520,4 @@ { proto_register_field_array(proto, hf, array_length(hf)); } + Index: opcua_enumparser.h =================================================================== --- opcua_enumparser.h (Revision 27851) +++ opcua_enumparser.h (Arbeitskopie) @@ -1,7 +1,5 @@ /****************************************************************************** -** $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 +14,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 +26,28 @@ #include <glib.h> #include <epan/packet.h> +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 parseIdType(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); - Index: opcua_transport_layer.c =================================================================== --- opcua_transport_layer.c (Revision 27851) +++ opcua_transport_layer.c (Arbeitskopie) @@ -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_rbl, - { "ReceiveBufferLength", "transport.rbl", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } + { &hf_opcua_transport_sbs, + { "SendBufferSize", "transport.sbs", 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_rlifetime, - { "Revised Lifetime", "transport.rlifetime", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } + { &hf_opcua_transport_error, + { "Error", "transport.error", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL } }, - { &hf_opcua_transport_rsbl, - { "Revised SendBufferLength", "transport.rsbl", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } + { &hf_opcua_transport_reason, + { "Reason", "transport.reason", 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_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_altendpoint, - { "Alternate EndPoint", "transport.altendpoint", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } + { &hf_opcua_transport_scert, + { "SenderCertificate", "security.scert", FT_BYTES, BASE_HEX, 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 @@ /* 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 @@ /* 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; } + Index: opcua_transport_layer.h =================================================================== --- opcua_transport_layer.h (Revision 27851) +++ opcua_transport_layer.h (Arbeitskopie) @@ -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); Index: opcua_servicetable.c =================================================================== --- opcua_servicetable.c (Revision 27851) +++ opcua_servicetable.c (Arbeitskopie) @@ -1,7 +1,5 @@ /****************************************************************************** -** $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 +14,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! ** ******************************************************************************/ @@ -25,171 +23,175 @@ # include "config.h" #endif -#include <glib.h> +#include <gmodule.h> #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 +209,4 @@ index++; } } + Index: opcua_identifiers.h =================================================================== --- opcua_identifiers.h (Revision 27851) +++ opcua_identifiers.h (Arbeitskopie) @@ -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! ** ******************************************************************************/ @@ -25,7 +25,7 @@ # include "config.h" #endif -#include <glib.h> +#include <gmodule.h> #include <epan/packet.h> /* declare service parser function prototype */ Index: opcua_serviceparser.c =================================================================== --- opcua_serviceparser.c (Revision 27851) +++ opcua_serviceparser.c (Arbeitskopie) @@ -1,7 +1,5 @@ /****************************************************************************** -** $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 +12,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! ** ******************************************************************************/ @@ -25,15 +23,13 @@ # include "config.h" #endif -#include <glib.h> +#include <gmodule.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 +41,6 @@ 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 +50,6 @@ 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 +59,8 @@ 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 +68,8 @@ 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 +77,12 @@ 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 +90,9 @@ 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 +100,12 @@ 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 +113,9 @@ 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 +125,6 @@ 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 +133,6 @@ parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); } - gint ett_opcua_OpenSecureChannelRequest = -1; void parseOpenSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -146,16 +140,12 @@ 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 +153,10 @@ 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 +164,7 @@ 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 +173,6 @@ parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); } - gint ett_opcua_CreateSessionRequest = -1; void parseCreateSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -194,12 +180,15 @@ 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 +196,18 @@ 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 +216,13 @@ 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 +231,11 @@ 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 +243,8 @@ 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 +253,6 @@ parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader"); } - gint ett_opcua_CancelRequest = -1; void parseCancelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset) { @@ -266,9 +260,8 @@ 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 +269,8 @@ 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 +278,9 @@ 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 +288,11 @@ 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 +300,9 @@ 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 +310,11 @@ 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 +322,9 @@ 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 +332,11 @@ 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 +344,9 @@ 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 +354,11 @@ 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 +367,10 @@ 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 +378,11 @@ 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 +390,10 @@ 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 +401,11 @@ 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 +413,9 @@ 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 +423,49 @@ 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 +474,12 @@ 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 +487,15 @@ 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 +506,6 @@ 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 +513,10 @@ 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 +524,11 @@ 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 +536,11 @@ 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 +551,9 @@ 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 +561,11 @@ 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 +573,9 @@ 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 +583,11 @@ 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 +595,9 @@ 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 +605,11 @@ 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 +617,9 @@ 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 +627,11 @@ 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 +641,9 @@ 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 +651,11 @@ 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 +665,9 @@ 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 +675,11 @@ 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 +689,9 @@ 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 +699,11 @@ 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 +713,11 @@ 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 +725,15 @@ 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 +742,9 @@ 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 +752,11 @@ 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 +764,13 @@ 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 +779,10 @@ 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 +791,12 @@ 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 +804,10 @@ 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 +816,9 @@ 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 +826,11 @@ 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 +838,9 @@ 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 +849,15 @@ 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 +868,6 @@ 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 +877,6 @@ 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 +884,10 @@ 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 +895,11 @@ 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 +907,9 @@ 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 +917,9 @@ 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 +956,16 @@ &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, Index: opcua_serviceparser.h =================================================================== --- opcua_serviceparser.h (Revision 27851) +++ opcua_serviceparser.h (Arbeitskopie) @@ -1,7 +1,5 @@ /****************************************************************************** -** $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 +14,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! ** ******************************************************************************/ @@ -25,7 +23,7 @@ # include "config.h" #endif -#include <glib.h> +#include <gmodule.h> #include <epan/packet.h> void parseTestStackRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset); @@ -58,14 +56,16 @@ 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 +104,4 @@ 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(); Index: README =================================================================== --- README (Revision 27851) +++ README (Arbeitskopie) @@ -50,9 +50,6 @@ 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. Index: opcua_complextypeparser.c =================================================================== --- opcua_complextypeparser.c (Revision 27851) +++ opcua_complextypeparser.c (Arbeitskopie) @@ -1,7 +1,5 @@ /****************************************************************************** -** $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 +14,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! ** ******************************************************************************/ @@ -25,882 +23,448 @@ # include "config.h" #endif -#include <glib.h> +#include <gmodule.h> #include <epan/packet.h> #include "opcua_complextypeparser.h" #include "opcua_enumparser.h" #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) +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 : 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); + 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_NodeSet = -1; -void parseNodeSet(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); -} - 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 +489,935 @@ 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) +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 : 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"); + 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 +1427,39 @@ &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 +1467,83 @@ &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 +1551,3 @@ proto_register_subtree_array(ett, array_length(ett)); } - Index: opcua_hfindeces.c =================================================================== --- opcua_hfindeces.c (Revision 27851) +++ opcua_hfindeces.c (Arbeitskopie) @@ -1,22 +1,20 @@ /****************************************************************************** -** $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! ** ******************************************************************************/ @@ -25,562 +23,771 @@ # include "config.h" #endif -#include <glib.h> +#include <gmodule.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_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_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_EventQueueOverFlowCount = -1; +int hf_opcua_Executable = -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_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_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_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_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_ContinuationPoint = -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_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_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_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_RequestedLifetimeCounter = -1; -int hf_opcua_RequestedMaxKeepAliveCount = -1; -int hf_opcua_PublishingEnabled = -1; -int hf_opcua_Priority = -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_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_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_Executable = -1; -int hf_opcua_UserExecutable = -1; -int hf_opcua_ContainsNoLoops = -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_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_ServerNonce = -1; +int hf_opcua_ServerProtocolVersion = -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_MaxArrayLength = -1; -int hf_opcua_MaxStringLength = -1; -int hf_opcua_UserName = -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_ServerId = -1; +int hf_opcua_ServerUris = -1; +int hf_opcua_ServerViewCount = -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_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_ServiceResult = -1; +int hf_opcua_SessionAbortCount = -1; +int hf_opcua_SessionName = -1; int hf_opcua_SessionTimeoutCount = -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_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_UInt16s = -1; int hf_opcua_UInt32 = -1; -int hf_opcua_Int64 = -1; +int hf_opcua_UInt32s = -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_UInt64s = -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_WriteMask = -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_UInt32s = -1; -int hf_opcua_Int64s = -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_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; /** 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_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_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_EventQueueOverFlowCount, { "EventQueueOverFlowCount", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, + { &hf_opcua_Executable, { "Executable", "", 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_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_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_ContinuationPoint, { "ContinuationPoint", "", FT_BYTES, BASE_HEX, 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_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_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_RemainingPathIndex, { "RemainingPathIndex", "", FT_UINT32, BASE_DEC, 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_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_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_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_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_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_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_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_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_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_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_MaxArrayLength, { "MaxArrayLength", "", FT_INT32, 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_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_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_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_SessionName, { "SessionName", "", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL } }, { &hf_opcua_SessionTimeoutCount, { "SessionTimeoutCount", "", FT_UINT32, BASE_DEC, 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_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_UInt16s, { "UInt16s", "", FT_UINT16, 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_UInt32s, { "UInt32s", "", FT_UINT32, 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_UInt64s, { "UInt64s", "", FT_UINT64, BASE_DEC, 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_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_UInt32s, { "UInt32s", "", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL } }, - { &hf_opcua_Int64s, { "Int64s", "", FT_INT64, 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_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 +795,6 @@ { proto_register_field_array(proto, hf, array_length(hf)); } + + + Index: opcua_complextypeparser.h =================================================================== --- opcua_complextypeparser.h (Revision 27851) +++ opcua_complextypeparser.h (Arbeitskopie) @@ -1,7 +1,5 @@ /****************************************************************************** -** $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 +14,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! ** ******************************************************************************/ @@ -25,10 +23,10 @@ # include "config.h" #endif -#include <glib.h> +#include <gmodule.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 +36,39 @@ 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 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 parseVariableAttributes(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 +76,82 @@ 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 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 parseViewDescription(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 parseDataChangeNotification(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 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(); Index: opcua_hfindeces.h =================================================================== --- opcua_hfindeces.h (Revision 27851) +++ opcua_hfindeces.h (Arbeitskopie) @@ -1,7 +1,5 @@ /****************************************************************************** -** $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 +14,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! ** ******************************************************************************/ @@ -25,283 +23,389 @@ # include "config.h" #endif -#include <glib.h> +#include <gmodule.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_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_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_EventQueueOverFlowCount; +extern int hf_opcua_Executable; +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_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_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_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_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_ContinuationPoint; +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_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_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_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_RequestedLifetimeCounter; -extern int hf_opcua_RequestedMaxKeepAliveCount; -extern int hf_opcua_PublishingEnabled; -extern int hf_opcua_Priority; +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_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_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_Executable; -extern int hf_opcua_UserExecutable; -extern int hf_opcua_ContainsNoLoops; -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_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_ServerNonce; +extern int hf_opcua_ServerProtocolVersion; 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_MaxArrayLength; -extern int hf_opcua_MaxStringLength; -extern int hf_opcua_UserName; -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_ServerId; +extern int hf_opcua_ServerUris; +extern int hf_opcua_ServerViewCount; 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_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_ServiceResult; +extern int hf_opcua_SessionAbortCount; +extern int hf_opcua_SessionName; extern int hf_opcua_SessionTimeoutCount; -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_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_UInt16s; extern int hf_opcua_UInt32; -extern int hf_opcua_Int64; +extern int hf_opcua_UInt32s; 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_UInt64s; +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_WriteMask; 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_UInt32s; -extern int hf_opcua_Int64s; -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_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; /** Register field types. */ void registerFieldTypes(int proto); + Index: opcua_security_layer.c =================================================================== --- opcua_security_layer.c (Revision 27851) +++ opcua_security_layer.c (Arbeitskopie) @@ -39,24 +39,20 @@ { 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 @@ 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; } Index: opcua_serviceids.h =================================================================== --- opcua_serviceids.h (Revision 0) +++ opcua_serviceids.h (Revision 0) @@ -0,0 +1,81 @@ +#define OpcUaId_TestStackRequest_Encoding_DefaultBinary 410 +#define OpcUaId_TestStackResponse_Encoding_DefaultBinary 413 +#define OpcUaId_TestStackExRequest_Encoding_DefaultBinary 416 +#define OpcUaId_TestStackExResponse_Encoding_DefaultBinary 419 +#define OpcUaId_FindServersRequest_Encoding_DefaultBinary 422 +#define OpcUaId_FindServersResponse_Encoding_DefaultBinary 425 +#define OpcUaId_GetEndpointsRequest_Encoding_DefaultBinary 428 +#define OpcUaId_GetEndpointsResponse_Encoding_DefaultBinary 431 +#define OpcUaId_RegisterServerRequest_Encoding_DefaultBinary 437 +#define OpcUaId_RegisterServerResponse_Encoding_DefaultBinary 440 +#define OpcUaId_OpenSecureChannelRequest_Encoding_DefaultBinary 446 +#define OpcUaId_OpenSecureChannelResponse_Encoding_DefaultBinary 449 +#define OpcUaId_CloseSecureChannelRequest_Encoding_DefaultBinary 452 +#define OpcUaId_CloseSecureChannelResponse_Encoding_DefaultBinary 455 +#define OpcUaId_CreateSessionRequest_Encoding_DefaultBinary 461 +#define OpcUaId_CreateSessionResponse_Encoding_DefaultBinary 464 +#define OpcUaId_ActivateSessionRequest_Encoding_DefaultBinary 467 +#define OpcUaId_ActivateSessionResponse_Encoding_DefaultBinary 470 +#define OpcUaId_CloseSessionRequest_Encoding_DefaultBinary 473 +#define OpcUaId_CloseSessionResponse_Encoding_DefaultBinary 476 +#define OpcUaId_CancelRequest_Encoding_DefaultBinary 479 +#define OpcUaId_CancelResponse_Encoding_DefaultBinary 482 +#define OpcUaId_AddNodesRequest_Encoding_DefaultBinary 488 +#define OpcUaId_AddNodesResponse_Encoding_DefaultBinary 491 +#define OpcUaId_AddReferencesRequest_Encoding_DefaultBinary 494 +#define OpcUaId_AddReferencesResponse_Encoding_DefaultBinary 497 +#define OpcUaId_DeleteNodesRequest_Encoding_DefaultBinary 500 +#define OpcUaId_DeleteNodesResponse_Encoding_DefaultBinary 503 +#define OpcUaId_DeleteReferencesRequest_Encoding_DefaultBinary 506 +#define OpcUaId_DeleteReferencesResponse_Encoding_DefaultBinary 509 +#define OpcUaId_BrowseRequest_Encoding_DefaultBinary 527 +#define OpcUaId_BrowseResponse_Encoding_DefaultBinary 530 +#define OpcUaId_BrowseNextRequest_Encoding_DefaultBinary 533 +#define OpcUaId_BrowseNextResponse_Encoding_DefaultBinary 536 +#define OpcUaId_TranslateBrowsePathsToNodeIdsRequest_Encoding_DefaultBinary 554 +#define OpcUaId_TranslateBrowsePathsToNodeIdsResponse_Encoding_DefaultBinary 557 +#define OpcUaId_RegisterNodesRequest_Encoding_DefaultBinary 560 +#define OpcUaId_RegisterNodesResponse_Encoding_DefaultBinary 563 +#define OpcUaId_UnregisterNodesRequest_Encoding_DefaultBinary 566 +#define OpcUaId_UnregisterNodesResponse_Encoding_DefaultBinary 569 +#define OpcUaId_QueryFirstRequest_Encoding_DefaultBinary 615 +#define OpcUaId_QueryFirstResponse_Encoding_DefaultBinary 618 +#define OpcUaId_QueryNextRequest_Encoding_DefaultBinary 621 +#define OpcUaId_QueryNextResponse_Encoding_DefaultBinary 624 +#define OpcUaId_ReadRequest_Encoding_DefaultBinary 631 +#define OpcUaId_ReadResponse_Encoding_DefaultBinary 634 +#define OpcUaId_HistoryReadRequest_Encoding_DefaultBinary 664 +#define OpcUaId_HistoryReadResponse_Encoding_DefaultBinary 667 +#define OpcUaId_WriteRequest_Encoding_DefaultBinary 673 +#define OpcUaId_WriteResponse_Encoding_DefaultBinary 676 +#define OpcUaId_HistoryUpdateRequest_Encoding_DefaultBinary 700 +#define OpcUaId_HistoryUpdateResponse_Encoding_DefaultBinary 703 +#define OpcUaId_CallMethodRequest_Encoding_DefaultBinary 706 +#define OpcUaId_CallRequest_Encoding_DefaultBinary 712 +#define OpcUaId_CallResponse_Encoding_DefaultBinary 715 +#define OpcUaId_MonitoredItemCreateRequest_Encoding_DefaultBinary 745 +#define OpcUaId_CreateMonitoredItemsRequest_Encoding_DefaultBinary 751 +#define OpcUaId_CreateMonitoredItemsResponse_Encoding_DefaultBinary 754 +#define OpcUaId_MonitoredItemModifyRequest_Encoding_DefaultBinary 757 +#define OpcUaId_ModifyMonitoredItemsRequest_Encoding_DefaultBinary 763 +#define OpcUaId_ModifyMonitoredItemsResponse_Encoding_DefaultBinary 766 +#define OpcUaId_SetMonitoringModeRequest_Encoding_DefaultBinary 769 +#define OpcUaId_SetMonitoringModeResponse_Encoding_DefaultBinary 772 +#define OpcUaId_SetTriggeringRequest_Encoding_DefaultBinary 775 +#define OpcUaId_SetTriggeringResponse_Encoding_DefaultBinary 778 +#define OpcUaId_DeleteMonitoredItemsRequest_Encoding_DefaultBinary 781 +#define OpcUaId_DeleteMonitoredItemsResponse_Encoding_DefaultBinary 784 +#define OpcUaId_CreateSubscriptionRequest_Encoding_DefaultBinary 787 +#define OpcUaId_CreateSubscriptionResponse_Encoding_DefaultBinary 790 +#define OpcUaId_ModifySubscriptionRequest_Encoding_DefaultBinary 793 +#define OpcUaId_ModifySubscriptionResponse_Encoding_DefaultBinary 796 +#define OpcUaId_SetPublishingModeRequest_Encoding_DefaultBinary 799 +#define OpcUaId_SetPublishingModeResponse_Encoding_DefaultBinary 802 +#define OpcUaId_PublishRequest_Encoding_DefaultBinary 826 +#define OpcUaId_PublishResponse_Encoding_DefaultBinary 829 +#define OpcUaId_RepublishRequest_Encoding_DefaultBinary 832 +#define OpcUaId_RepublishResponse_Encoding_DefaultBinary 835 +#define OpcUaId_TransferSubscriptionsRequest_Encoding_DefaultBinary 841 +#define OpcUaId_TransferSubscriptionsResponse_Encoding_DefaultBinary 844 +#define OpcUaId_DeleteSubscriptionsRequest_Encoding_DefaultBinary 847 +#define OpcUaId_DeleteSubscriptionsResponse_Encoding_DefaultBinary 850 Eigenschaftsänderungen: opcua_serviceids.h ___________________________________________________________________ Hinzugefügt: svn:eol-style + native
- Follow-Ups:
- Re: [Wireshark-dev] OPCUA Update
- From: Stephen Fisher
- Re: [Wireshark-dev] OPCUA Update
- From: philippe alarcon
- Re: [Wireshark-dev] OPCUA Update
- Prev by Date: Re: [Wireshark-dev] Filtering
- Next by Date: [Wireshark-dev] buildbot failure in Wireshark (development) on Ubuntu-7.10-x86-64
- Previous by thread: Re: [Wireshark-dev] Filtering
- Next by thread: Re: [Wireshark-dev] OPCUA Update
- Index(es):