1 /******************************************************************************
2 ** Copyright (C) 2006-2015 ascolab GmbH. All Rights Reserved.
3 ** Web: http://www.ascolab.com
5 ** SPDX-License-Identifier: GPL-2.0-or-later
7 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
8 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
10 ** Project: OpcUa Wireshark Plugin
12 ** Description: OpcUa Complex Type Parser
14 ** This file was autogenerated on 13.10.2015.
15 ** DON'T MODIFY THIS FILE!
17 ******************************************************************************/
21 #include <epan/packet.h>
22 #include "opcua_complextypeparser.h"
23 #include "opcua_enumparser.h"
24 #include "opcua_simpletypes.h"
25 #include "opcua_hfindeces.h"
26 #include "opcua_serviceparser.h"
28 int ett_opcua_ServiceFault
;
29 int ett_opcua_array_ServiceFault
;
30 int ett_opcua_FindServersRequest
;
31 int ett_opcua_array_FindServersRequest
;
32 int ett_opcua_FindServersResponse
;
33 int ett_opcua_array_FindServersResponse
;
34 int ett_opcua_FindServersOnNetworkRequest
;
35 int ett_opcua_array_FindServersOnNetworkRequest
;
36 int ett_opcua_FindServersOnNetworkResponse
;
37 int ett_opcua_array_FindServersOnNetworkResponse
;
38 int ett_opcua_GetEndpointsRequest
;
39 int ett_opcua_array_GetEndpointsRequest
;
40 int ett_opcua_GetEndpointsResponse
;
41 int ett_opcua_array_GetEndpointsResponse
;
42 int ett_opcua_RegisterServerRequest
;
43 int ett_opcua_array_RegisterServerRequest
;
44 int ett_opcua_RegisterServerResponse
;
45 int ett_opcua_array_RegisterServerResponse
;
46 int ett_opcua_RegisterServer2Request
;
47 int ett_opcua_array_RegisterServer2Request
;
48 int ett_opcua_RegisterServer2Response
;
49 int ett_opcua_array_RegisterServer2Response
;
50 int ett_opcua_OpenSecureChannelRequest
;
51 int ett_opcua_array_OpenSecureChannelRequest
;
52 int ett_opcua_OpenSecureChannelResponse
;
53 int ett_opcua_array_OpenSecureChannelResponse
;
54 int ett_opcua_CloseSecureChannelRequest
;
55 int ett_opcua_array_CloseSecureChannelRequest
;
56 int ett_opcua_CloseSecureChannelResponse
;
57 int ett_opcua_array_CloseSecureChannelResponse
;
58 int ett_opcua_CreateSessionRequest
;
59 int ett_opcua_array_CreateSessionRequest
;
60 int ett_opcua_CreateSessionResponse
;
61 int ett_opcua_array_CreateSessionResponse
;
62 int ett_opcua_ActivateSessionRequest
;
63 int ett_opcua_array_ActivateSessionRequest
;
64 int ett_opcua_ActivateSessionResponse
;
65 int ett_opcua_array_ActivateSessionResponse
;
66 int ett_opcua_CloseSessionRequest
;
67 int ett_opcua_array_CloseSessionRequest
;
68 int ett_opcua_CloseSessionResponse
;
69 int ett_opcua_array_CloseSessionResponse
;
70 int ett_opcua_CancelRequest
;
71 int ett_opcua_array_CancelRequest
;
72 int ett_opcua_CancelResponse
;
73 int ett_opcua_array_CancelResponse
;
74 int ett_opcua_AddNodesRequest
;
75 int ett_opcua_array_AddNodesRequest
;
76 int ett_opcua_AddNodesResponse
;
77 int ett_opcua_array_AddNodesResponse
;
78 int ett_opcua_AddReferencesRequest
;
79 int ett_opcua_array_AddReferencesRequest
;
80 int ett_opcua_AddReferencesResponse
;
81 int ett_opcua_array_AddReferencesResponse
;
82 int ett_opcua_DeleteNodesRequest
;
83 int ett_opcua_array_DeleteNodesRequest
;
84 int ett_opcua_DeleteNodesResponse
;
85 int ett_opcua_array_DeleteNodesResponse
;
86 int ett_opcua_DeleteReferencesRequest
;
87 int ett_opcua_array_DeleteReferencesRequest
;
88 int ett_opcua_DeleteReferencesResponse
;
89 int ett_opcua_array_DeleteReferencesResponse
;
90 int ett_opcua_BrowseRequest
;
91 int ett_opcua_array_BrowseRequest
;
92 int ett_opcua_BrowseResponse
;
93 int ett_opcua_array_BrowseResponse
;
94 int ett_opcua_BrowseNextRequest
;
95 int ett_opcua_array_BrowseNextRequest
;
96 int ett_opcua_BrowseNextResponse
;
97 int ett_opcua_array_BrowseNextResponse
;
98 int ett_opcua_TranslateBrowsePathsToNodeIdsRequest
;
99 int ett_opcua_array_TranslateBrowsePathsToNodeIdsRequest
;
100 int ett_opcua_TranslateBrowsePathsToNodeIdsResponse
;
101 int ett_opcua_array_TranslateBrowsePathsToNodeIdsResponse
;
102 int ett_opcua_RegisterNodesRequest
;
103 int ett_opcua_array_RegisterNodesRequest
;
104 int ett_opcua_RegisterNodesResponse
;
105 int ett_opcua_array_RegisterNodesResponse
;
106 int ett_opcua_UnregisterNodesRequest
;
107 int ett_opcua_array_UnregisterNodesRequest
;
108 int ett_opcua_UnregisterNodesResponse
;
109 int ett_opcua_array_UnregisterNodesResponse
;
110 int ett_opcua_QueryFirstRequest
;
111 int ett_opcua_array_QueryFirstRequest
;
112 int ett_opcua_QueryFirstResponse
;
113 int ett_opcua_array_QueryFirstResponse
;
114 int ett_opcua_QueryNextRequest
;
115 int ett_opcua_array_QueryNextRequest
;
116 int ett_opcua_QueryNextResponse
;
117 int ett_opcua_array_QueryNextResponse
;
118 int ett_opcua_ReadRequest
;
119 int ett_opcua_array_ReadRequest
;
120 int ett_opcua_ReadResponse
;
121 int ett_opcua_array_ReadResponse
;
122 int ett_opcua_HistoryReadRequest
;
123 int ett_opcua_array_HistoryReadRequest
;
124 int ett_opcua_HistoryReadResponse
;
125 int ett_opcua_array_HistoryReadResponse
;
126 int ett_opcua_WriteRequest
;
127 int ett_opcua_array_WriteRequest
;
128 int ett_opcua_WriteResponse
;
129 int ett_opcua_array_WriteResponse
;
130 int ett_opcua_HistoryUpdateRequest
;
131 int ett_opcua_array_HistoryUpdateRequest
;
132 int ett_opcua_HistoryUpdateResponse
;
133 int ett_opcua_array_HistoryUpdateResponse
;
134 int ett_opcua_CallRequest
;
135 int ett_opcua_array_CallRequest
;
136 int ett_opcua_CallResponse
;
137 int ett_opcua_array_CallResponse
;
138 int ett_opcua_CreateMonitoredItemsRequest
;
139 int ett_opcua_array_CreateMonitoredItemsRequest
;
140 int ett_opcua_CreateMonitoredItemsResponse
;
141 int ett_opcua_array_CreateMonitoredItemsResponse
;
142 int ett_opcua_ModifyMonitoredItemsRequest
;
143 int ett_opcua_array_ModifyMonitoredItemsRequest
;
144 int ett_opcua_ModifyMonitoredItemsResponse
;
145 int ett_opcua_array_ModifyMonitoredItemsResponse
;
146 int ett_opcua_SetMonitoringModeRequest
;
147 int ett_opcua_array_SetMonitoringModeRequest
;
148 int ett_opcua_SetMonitoringModeResponse
;
149 int ett_opcua_array_SetMonitoringModeResponse
;
150 int ett_opcua_SetTriggeringRequest
;
151 int ett_opcua_array_SetTriggeringRequest
;
152 int ett_opcua_SetTriggeringResponse
;
153 int ett_opcua_array_SetTriggeringResponse
;
154 int ett_opcua_DeleteMonitoredItemsRequest
;
155 int ett_opcua_array_DeleteMonitoredItemsRequest
;
156 int ett_opcua_DeleteMonitoredItemsResponse
;
157 int ett_opcua_array_DeleteMonitoredItemsResponse
;
158 int ett_opcua_CreateSubscriptionRequest
;
159 int ett_opcua_array_CreateSubscriptionRequest
;
160 int ett_opcua_CreateSubscriptionResponse
;
161 int ett_opcua_array_CreateSubscriptionResponse
;
162 int ett_opcua_ModifySubscriptionRequest
;
163 int ett_opcua_array_ModifySubscriptionRequest
;
164 int ett_opcua_ModifySubscriptionResponse
;
165 int ett_opcua_array_ModifySubscriptionResponse
;
166 int ett_opcua_SetPublishingModeRequest
;
167 int ett_opcua_array_SetPublishingModeRequest
;
168 int ett_opcua_SetPublishingModeResponse
;
169 int ett_opcua_array_SetPublishingModeResponse
;
170 int ett_opcua_PublishRequest
;
171 int ett_opcua_array_PublishRequest
;
172 int ett_opcua_PublishResponse
;
173 int ett_opcua_array_PublishResponse
;
174 int ett_opcua_RepublishRequest
;
175 int ett_opcua_array_RepublishRequest
;
176 int ett_opcua_RepublishResponse
;
177 int ett_opcua_array_RepublishResponse
;
178 int ett_opcua_TransferSubscriptionsRequest
;
179 int ett_opcua_array_TransferSubscriptionsRequest
;
180 int ett_opcua_TransferSubscriptionsResponse
;
181 int ett_opcua_array_TransferSubscriptionsResponse
;
182 int ett_opcua_DeleteSubscriptionsRequest
;
183 int ett_opcua_array_DeleteSubscriptionsRequest
;
184 int ett_opcua_DeleteSubscriptionsResponse
;
185 int ett_opcua_array_DeleteSubscriptionsResponse
;
186 int ett_opcua_TestStackRequest
;
187 int ett_opcua_array_TestStackRequest
;
188 int ett_opcua_TestStackResponse
;
189 int ett_opcua_array_TestStackResponse
;
190 int ett_opcua_TestStackExRequest
;
191 int ett_opcua_array_TestStackExRequest
;
192 int ett_opcua_TestStackExResponse
;
193 int ett_opcua_array_TestStackExResponse
;
195 void parseServiceFault(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
198 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_ServiceFault
, &ti
, "ServiceFault");
200 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
201 proto_item_set_end(ti
, tvb
, *pOffset
);
203 void parseFindServersRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
206 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_FindServersRequest
, &ti
, "FindServersRequest");
208 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
209 parseString(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_EndpointUrl
);
210 /* Array length field ignored: NoOfLocaleIds */
211 parseArraySimple(subtree
, tvb
, pinfo
, pOffset
, "LocaleIds", "String", hf_opcua_LocaleIds
, parseString
, ett_opcua_array_String
);
212 /* Array length field ignored: NoOfServerUris */
213 parseArraySimple(subtree
, tvb
, pinfo
, pOffset
, "ServerUris", "String", hf_opcua_ServerUris
, parseString
, ett_opcua_array_String
);
214 proto_item_set_end(ti
, tvb
, *pOffset
);
216 void parseFindServersResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
219 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_FindServersResponse
, &ti
, "FindServersResponse");
221 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
222 /* Array length field ignored: NoOfServers */
223 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "Servers", "ApplicationDescription", parseApplicationDescription
, ett_opcua_array_ApplicationDescription
);
224 proto_item_set_end(ti
, tvb
, *pOffset
);
226 void parseFindServersOnNetworkRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
229 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_FindServersOnNetworkRequest
, &ti
, "FindServersOnNetworkRequest");
231 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
232 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_StartingRecordId
);
233 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_MaxRecordsToReturn
);
234 /* Array length field ignored: NoOfServerCapabilityFilter */
235 parseArraySimple(subtree
, tvb
, pinfo
, pOffset
, "ServerCapabilityFilter", "String", hf_opcua_ServerCapabilityFilter
, parseString
, ett_opcua_array_String
);
236 proto_item_set_end(ti
, tvb
, *pOffset
);
238 void parseFindServersOnNetworkResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
241 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_FindServersOnNetworkResponse
, &ti
, "FindServersOnNetworkResponse");
243 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
244 parseDateTime(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_LastCounterResetTime
);
245 /* Array length field ignored: NoOfServers */
246 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "Servers", "ServerOnNetwork", parseServerOnNetwork
, ett_opcua_array_ServerOnNetwork
);
247 proto_item_set_end(ti
, tvb
, *pOffset
);
249 void parseGetEndpointsRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
252 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_GetEndpointsRequest
, &ti
, "GetEndpointsRequest");
254 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
255 parseString(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_EndpointUrl
);
256 /* Array length field ignored: NoOfLocaleIds */
257 parseArraySimple(subtree
, tvb
, pinfo
, pOffset
, "LocaleIds", "String", hf_opcua_LocaleIds
, parseString
, ett_opcua_array_String
);
258 /* Array length field ignored: NoOfProfileUris */
259 parseArraySimple(subtree
, tvb
, pinfo
, pOffset
, "ProfileUris", "String", hf_opcua_ProfileUris
, parseString
, ett_opcua_array_String
);
260 proto_item_set_end(ti
, tvb
, *pOffset
);
262 void parseGetEndpointsResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
265 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_GetEndpointsResponse
, &ti
, "GetEndpointsResponse");
267 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
268 /* Array length field ignored: NoOfEndpoints */
269 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "Endpoints", "EndpointDescription", parseEndpointDescription
, ett_opcua_array_EndpointDescription
);
270 proto_item_set_end(ti
, tvb
, *pOffset
);
272 void parseRegisterServerRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
275 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_RegisterServerRequest
, &ti
, "RegisterServerRequest");
277 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
278 parseRegisteredServer(subtree
, tvb
, pinfo
, pOffset
, "Server");
279 proto_item_set_end(ti
, tvb
, *pOffset
);
281 void parseRegisterServerResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
284 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_RegisterServerResponse
, &ti
, "RegisterServerResponse");
286 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
287 proto_item_set_end(ti
, tvb
, *pOffset
);
289 void parseRegisterServer2Request(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
292 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_RegisterServer2Request
, &ti
, "RegisterServer2Request");
294 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
295 parseRegisteredServer(subtree
, tvb
, pinfo
, pOffset
, "Server");
296 /* Array length field ignored: NoOfDiscoveryConfiguration */
297 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "DiscoveryConfiguration", "ExtensionObject", parseExtensionObject
, ett_opcua_array_ExtensionObject
);
298 proto_item_set_end(ti
, tvb
, *pOffset
);
300 void parseRegisterServer2Response(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
303 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_RegisterServer2Response
, &ti
, "RegisterServer2Response");
305 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
306 /* Array length field ignored: NoOfConfigurationResults */
307 parseArraySimple(subtree
, tvb
, pinfo
, pOffset
, "ConfigurationResults", "StatusCode", hf_opcua_ConfigurationResults
, parseStatusCode
, ett_opcua_array_StatusCode
);
308 /* Array length field ignored: NoOfDiagnosticInfos */
309 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo
, ett_opcua_array_DiagnosticInfo
);
310 proto_item_set_end(ti
, tvb
, *pOffset
);
312 void parseOpenSecureChannelRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
315 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_OpenSecureChannelRequest
, &ti
, "OpenSecureChannelRequest");
317 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
318 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_ClientProtocolVersion
);
319 parseSecurityTokenRequestType(subtree
, tvb
, pinfo
, pOffset
);
320 parseMessageSecurityMode(subtree
, tvb
, pinfo
, pOffset
);
321 parseByteString(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_ClientNonce
);
322 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_RequestedLifetime
);
323 proto_item_set_end(ti
, tvb
, *pOffset
);
325 void parseOpenSecureChannelResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
328 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_OpenSecureChannelResponse
, &ti
, "OpenSecureChannelResponse");
330 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
331 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_ServerProtocolVersion
);
332 parseChannelSecurityToken(subtree
, tvb
, pinfo
, pOffset
, "SecurityToken");
333 parseByteString(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_ServerNonce
);
334 proto_item_set_end(ti
, tvb
, *pOffset
);
336 void parseCloseSecureChannelRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
339 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_CloseSecureChannelRequest
, &ti
, "CloseSecureChannelRequest");
341 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
342 proto_item_set_end(ti
, tvb
, *pOffset
);
344 void parseCloseSecureChannelResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
347 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_CloseSecureChannelResponse
, &ti
, "CloseSecureChannelResponse");
349 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
350 proto_item_set_end(ti
, tvb
, *pOffset
);
352 void parseCreateSessionRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
355 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_CreateSessionRequest
, &ti
, "CreateSessionRequest");
357 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
358 parseApplicationDescription(subtree
, tvb
, pinfo
, pOffset
, "ClientDescription");
359 parseString(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_ServerUri
);
360 parseString(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_EndpointUrl
);
361 parseString(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_SessionName
);
362 parseByteString(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_ClientNonce
);
363 parseCertificate(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_ClientCertificate
);
364 parseDouble(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_RequestedSessionTimeout
);
365 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_MaxResponseMessageSize
);
366 proto_item_set_end(ti
, tvb
, *pOffset
);
368 void parseCreateSessionResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
371 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_CreateSessionResponse
, &ti
, "CreateSessionResponse");
373 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
374 parseNodeId(subtree
, tvb
, pinfo
, pOffset
, "SessionId");
375 parseNodeId(subtree
, tvb
, pinfo
, pOffset
, "AuthenticationToken");
376 parseDouble(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_RevisedSessionTimeout
);
377 parseByteString(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_ServerNonce
);
378 parseCertificate(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_ServerCertificate
);
379 /* Array length field ignored: NoOfServerEndpoints */
380 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "ServerEndpoints", "EndpointDescription", parseEndpointDescription
, ett_opcua_array_EndpointDescription
);
381 /* Array length field ignored: NoOfServerSoftwareCertificates */
382 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "ServerSoftwareCertificates", "SignedSoftwareCertificate", parseSignedSoftwareCertificate
, ett_opcua_array_SignedSoftwareCertificate
);
383 parseSignatureData(subtree
, tvb
, pinfo
, pOffset
, "ServerSignature");
384 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_MaxRequestMessageSize
);
385 proto_item_set_end(ti
, tvb
, *pOffset
);
387 void parseActivateSessionRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
390 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_ActivateSessionRequest
, &ti
, "ActivateSessionRequest");
392 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
393 parseSignatureData(subtree
, tvb
, pinfo
, pOffset
, "ClientSignature");
394 /* Array length field ignored: NoOfClientSoftwareCertificates */
395 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "ClientSoftwareCertificates", "SignedSoftwareCertificate", parseSignedSoftwareCertificate
, ett_opcua_array_SignedSoftwareCertificate
);
396 /* Array length field ignored: NoOfLocaleIds */
397 parseArraySimple(subtree
, tvb
, pinfo
, pOffset
, "LocaleIds", "String", hf_opcua_LocaleIds
, parseString
, ett_opcua_array_String
);
398 parseExtensionObject(subtree
, tvb
, pinfo
, pOffset
, "UserIdentityToken");
399 parseSignatureData(subtree
, tvb
, pinfo
, pOffset
, "UserTokenSignature");
400 proto_item_set_end(ti
, tvb
, *pOffset
);
402 void parseActivateSessionResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
405 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_ActivateSessionResponse
, &ti
, "ActivateSessionResponse");
407 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
408 parseByteString(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_ServerNonce
);
409 /* Array length field ignored: NoOfResults */
410 parseArraySimple(subtree
, tvb
, pinfo
, pOffset
, "Results", "StatusCode", hf_opcua_Results
, parseStatusCode
, ett_opcua_array_StatusCode
);
411 /* Array length field ignored: NoOfDiagnosticInfos */
412 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo
, ett_opcua_array_DiagnosticInfo
);
413 proto_item_set_end(ti
, tvb
, *pOffset
);
415 void parseCloseSessionRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
418 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_CloseSessionRequest
, &ti
, "CloseSessionRequest");
420 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
421 parseBoolean(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_DeleteSubscriptions
);
422 proto_item_set_end(ti
, tvb
, *pOffset
);
424 void parseCloseSessionResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
427 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_CloseSessionResponse
, &ti
, "CloseSessionResponse");
429 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
430 proto_item_set_end(ti
, tvb
, *pOffset
);
432 void parseCancelRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
435 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_CancelRequest
, &ti
, "CancelRequest");
437 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
438 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_RequestHandle
);
439 proto_item_set_end(ti
, tvb
, *pOffset
);
441 void parseCancelResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
444 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_CancelResponse
, &ti
, "CancelResponse");
446 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
447 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_CancelCount
);
448 proto_item_set_end(ti
, tvb
, *pOffset
);
450 void parseAddNodesRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
453 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_AddNodesRequest
, &ti
, "AddNodesRequest");
455 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
456 /* Array length field ignored: NoOfNodesToAdd */
457 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "NodesToAdd", "AddNodesItem", parseAddNodesItem
, ett_opcua_array_AddNodesItem
);
458 proto_item_set_end(ti
, tvb
, *pOffset
);
460 void parseAddNodesResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
463 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_AddNodesResponse
, &ti
, "AddNodesResponse");
465 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
466 /* Array length field ignored: NoOfResults */
467 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "Results", "AddNodesResult", parseAddNodesResult
, ett_opcua_array_AddNodesResult
);
468 /* Array length field ignored: NoOfDiagnosticInfos */
469 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo
, ett_opcua_array_DiagnosticInfo
);
470 proto_item_set_end(ti
, tvb
, *pOffset
);
472 void parseAddReferencesRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
475 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_AddReferencesRequest
, &ti
, "AddReferencesRequest");
477 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
478 /* Array length field ignored: NoOfReferencesToAdd */
479 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "ReferencesToAdd", "AddReferencesItem", parseAddReferencesItem
, ett_opcua_array_AddReferencesItem
);
480 proto_item_set_end(ti
, tvb
, *pOffset
);
482 void parseAddReferencesResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
485 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_AddReferencesResponse
, &ti
, "AddReferencesResponse");
487 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
488 /* Array length field ignored: NoOfResults */
489 parseArraySimple(subtree
, tvb
, pinfo
, pOffset
, "Results", "StatusCode", hf_opcua_Results
, parseStatusCode
, ett_opcua_array_StatusCode
);
490 /* Array length field ignored: NoOfDiagnosticInfos */
491 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo
, ett_opcua_array_DiagnosticInfo
);
492 proto_item_set_end(ti
, tvb
, *pOffset
);
494 void parseDeleteNodesRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
497 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_DeleteNodesRequest
, &ti
, "DeleteNodesRequest");
499 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
500 /* Array length field ignored: NoOfNodesToDelete */
501 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "NodesToDelete", "DeleteNodesItem", parseDeleteNodesItem
, ett_opcua_array_DeleteNodesItem
);
502 proto_item_set_end(ti
, tvb
, *pOffset
);
504 void parseDeleteNodesResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
507 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_DeleteNodesResponse
, &ti
, "DeleteNodesResponse");
509 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
510 /* Array length field ignored: NoOfResults */
511 parseArraySimple(subtree
, tvb
, pinfo
, pOffset
, "Results", "StatusCode", hf_opcua_Results
, parseStatusCode
, ett_opcua_array_StatusCode
);
512 /* Array length field ignored: NoOfDiagnosticInfos */
513 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo
, ett_opcua_array_DiagnosticInfo
);
514 proto_item_set_end(ti
, tvb
, *pOffset
);
516 void parseDeleteReferencesRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
519 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_DeleteReferencesRequest
, &ti
, "DeleteReferencesRequest");
521 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
522 /* Array length field ignored: NoOfReferencesToDelete */
523 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "ReferencesToDelete", "DeleteReferencesItem", parseDeleteReferencesItem
, ett_opcua_array_DeleteReferencesItem
);
524 proto_item_set_end(ti
, tvb
, *pOffset
);
526 void parseDeleteReferencesResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
529 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_DeleteReferencesResponse
, &ti
, "DeleteReferencesResponse");
531 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
532 /* Array length field ignored: NoOfResults */
533 parseArraySimple(subtree
, tvb
, pinfo
, pOffset
, "Results", "StatusCode", hf_opcua_Results
, parseStatusCode
, ett_opcua_array_StatusCode
);
534 /* Array length field ignored: NoOfDiagnosticInfos */
535 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo
, ett_opcua_array_DiagnosticInfo
);
536 proto_item_set_end(ti
, tvb
, *pOffset
);
538 void parseBrowseRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
541 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_BrowseRequest
, &ti
, "BrowseRequest");
543 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
544 parseViewDescription(subtree
, tvb
, pinfo
, pOffset
, "View");
545 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_RequestedMaxReferencesPerNode
);
546 /* Array length field ignored: NoOfNodesToBrowse */
547 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "NodesToBrowse", "BrowseDescription", parseBrowseDescription
, ett_opcua_array_BrowseDescription
);
548 proto_item_set_end(ti
, tvb
, *pOffset
);
550 void parseBrowseResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
553 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_BrowseResponse
, &ti
, "BrowseResponse");
555 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
556 /* Array length field ignored: NoOfResults */
557 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "Results", "BrowseResult", parseBrowseResult
, ett_opcua_array_BrowseResult
);
558 /* Array length field ignored: NoOfDiagnosticInfos */
559 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo
, ett_opcua_array_DiagnosticInfo
);
560 proto_item_set_end(ti
, tvb
, *pOffset
);
562 void parseBrowseNextRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
565 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_BrowseNextRequest
, &ti
, "BrowseNextRequest");
567 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
568 parseBoolean(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_ReleaseContinuationPoints
);
569 /* Array length field ignored: NoOfContinuationPoints */
570 parseArraySimple(subtree
, tvb
, pinfo
, pOffset
, "ContinuationPoints", "ByteString", hf_opcua_ContinuationPoints
, parseByteString
, ett_opcua_array_ByteString
);
571 proto_item_set_end(ti
, tvb
, *pOffset
);
573 void parseBrowseNextResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
576 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_BrowseNextResponse
, &ti
, "BrowseNextResponse");
578 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
579 /* Array length field ignored: NoOfResults */
580 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "Results", "BrowseResult", parseBrowseResult
, ett_opcua_array_BrowseResult
);
581 /* Array length field ignored: NoOfDiagnosticInfos */
582 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo
, ett_opcua_array_DiagnosticInfo
);
583 proto_item_set_end(ti
, tvb
, *pOffset
);
585 void parseTranslateBrowsePathsToNodeIdsRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
588 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_TranslateBrowsePathsToNodeIdsRequest
, &ti
, "TranslateBrowsePathsToNodeIdsRequest");
590 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
591 /* Array length field ignored: NoOfBrowsePaths */
592 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "BrowsePaths", "BrowsePath", parseBrowsePath
, ett_opcua_array_BrowsePath
);
593 proto_item_set_end(ti
, tvb
, *pOffset
);
595 void parseTranslateBrowsePathsToNodeIdsResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
598 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_TranslateBrowsePathsToNodeIdsResponse
, &ti
, "TranslateBrowsePathsToNodeIdsResponse");
600 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
601 /* Array length field ignored: NoOfResults */
602 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "Results", "BrowsePathResult", parseBrowsePathResult
, ett_opcua_array_BrowsePathResult
);
603 /* Array length field ignored: NoOfDiagnosticInfos */
604 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo
, ett_opcua_array_DiagnosticInfo
);
605 proto_item_set_end(ti
, tvb
, *pOffset
);
607 void parseRegisterNodesRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
610 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_RegisterNodesRequest
, &ti
, "RegisterNodesRequest");
612 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
613 /* Array length field ignored: NoOfNodesToRegister */
614 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "NodesToRegister", "NodeId", parseNodeId
, ett_opcua_array_NodeId
);
615 proto_item_set_end(ti
, tvb
, *pOffset
);
617 void parseRegisterNodesResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
620 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_RegisterNodesResponse
, &ti
, "RegisterNodesResponse");
622 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
623 /* Array length field ignored: NoOfRegisteredNodeIds */
624 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "RegisteredNodeIds", "NodeId", parseNodeId
, ett_opcua_array_NodeId
);
625 proto_item_set_end(ti
, tvb
, *pOffset
);
627 void parseUnregisterNodesRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
630 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_UnregisterNodesRequest
, &ti
, "UnregisterNodesRequest");
632 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
633 /* Array length field ignored: NoOfNodesToUnregister */
634 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "NodesToUnregister", "NodeId", parseNodeId
, ett_opcua_array_NodeId
);
635 proto_item_set_end(ti
, tvb
, *pOffset
);
637 void parseUnregisterNodesResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
640 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_UnregisterNodesResponse
, &ti
, "UnregisterNodesResponse");
642 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
643 proto_item_set_end(ti
, tvb
, *pOffset
);
645 void parseQueryFirstRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
648 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_QueryFirstRequest
, &ti
, "QueryFirstRequest");
650 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
651 parseViewDescription(subtree
, tvb
, pinfo
, pOffset
, "View");
652 /* Array length field ignored: NoOfNodeTypes */
653 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "NodeTypes", "NodeTypeDescription", parseNodeTypeDescription
, ett_opcua_array_NodeTypeDescription
);
654 parseContentFilter(subtree
, tvb
, pinfo
, pOffset
, "Filter");
655 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_MaxDataSetsToReturn
);
656 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_MaxReferencesToReturn
);
657 proto_item_set_end(ti
, tvb
, *pOffset
);
659 void parseQueryFirstResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
662 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_QueryFirstResponse
, &ti
, "QueryFirstResponse");
664 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
665 /* Array length field ignored: NoOfQueryDataSets */
666 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "QueryDataSets", "QueryDataSet", parseQueryDataSet
, ett_opcua_array_QueryDataSet
);
667 parseByteString(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_ContinuationPoint
);
668 /* Array length field ignored: NoOfParsingResults */
669 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "ParsingResults", "ParsingResult", parseParsingResult
, ett_opcua_array_ParsingResult
);
670 /* Array length field ignored: NoOfDiagnosticInfos */
671 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo
, ett_opcua_array_DiagnosticInfo
);
672 parseContentFilterResult(subtree
, tvb
, pinfo
, pOffset
, "FilterResult");
673 proto_item_set_end(ti
, tvb
, *pOffset
);
675 void parseQueryNextRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
678 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_QueryNextRequest
, &ti
, "QueryNextRequest");
680 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
681 parseBoolean(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_ReleaseContinuationPoint
);
682 parseByteString(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_ContinuationPoint
);
683 proto_item_set_end(ti
, tvb
, *pOffset
);
685 void parseQueryNextResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
688 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_QueryNextResponse
, &ti
, "QueryNextResponse");
690 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
691 /* Array length field ignored: NoOfQueryDataSets */
692 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "QueryDataSets", "QueryDataSet", parseQueryDataSet
, ett_opcua_array_QueryDataSet
);
693 parseByteString(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_RevisedContinuationPoint
);
694 proto_item_set_end(ti
, tvb
, *pOffset
);
696 void parseReadRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
699 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_ReadRequest
, &ti
, "ReadRequest");
701 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
702 parseDouble(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_MaxAge
);
703 parseTimestampsToReturn(subtree
, tvb
, pinfo
, pOffset
);
704 /* Array length field ignored: NoOfNodesToRead */
705 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "NodesToRead", "ReadValueId", parseReadValueId
, ett_opcua_array_ReadValueId
);
706 proto_item_set_end(ti
, tvb
, *pOffset
);
708 void parseReadResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
711 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_ReadResponse
, &ti
, "ReadResponse");
713 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
714 /* Array length field ignored: NoOfResults */
715 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "Results", "DataValue", parseDataValue
, ett_opcua_array_DataValue
);
716 /* Array length field ignored: NoOfDiagnosticInfos */
717 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo
, ett_opcua_array_DiagnosticInfo
);
718 proto_item_set_end(ti
, tvb
, *pOffset
);
720 void parseHistoryReadRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
723 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_HistoryReadRequest
, &ti
, "HistoryReadRequest");
725 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
726 parseExtensionObject(subtree
, tvb
, pinfo
, pOffset
, "HistoryReadDetails");
727 parseTimestampsToReturn(subtree
, tvb
, pinfo
, pOffset
);
728 parseBoolean(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_ReleaseContinuationPoints
);
729 /* Array length field ignored: NoOfNodesToRead */
730 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "NodesToRead", "HistoryReadValueId", parseHistoryReadValueId
, ett_opcua_array_HistoryReadValueId
);
731 proto_item_set_end(ti
, tvb
, *pOffset
);
733 void parseHistoryReadResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
736 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_HistoryReadResponse
, &ti
, "HistoryReadResponse");
738 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
739 /* Array length field ignored: NoOfResults */
740 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "Results", "HistoryReadResult", parseHistoryReadResult
, ett_opcua_array_HistoryReadResult
);
741 /* Array length field ignored: NoOfDiagnosticInfos */
742 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo
, ett_opcua_array_DiagnosticInfo
);
743 proto_item_set_end(ti
, tvb
, *pOffset
);
745 void parseWriteRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
748 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_WriteRequest
, &ti
, "WriteRequest");
750 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
751 /* Array length field ignored: NoOfNodesToWrite */
752 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "NodesToWrite", "WriteValue", parseWriteValue
, ett_opcua_array_WriteValue
);
753 proto_item_set_end(ti
, tvb
, *pOffset
);
755 void parseWriteResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
758 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_WriteResponse
, &ti
, "WriteResponse");
760 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
761 /* Array length field ignored: NoOfResults */
762 parseArraySimple(subtree
, tvb
, pinfo
, pOffset
, "Results", "StatusCode", hf_opcua_Results
, parseStatusCode
, ett_opcua_array_StatusCode
);
763 /* Array length field ignored: NoOfDiagnosticInfos */
764 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo
, ett_opcua_array_DiagnosticInfo
);
765 proto_item_set_end(ti
, tvb
, *pOffset
);
767 void parseHistoryUpdateRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
770 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_HistoryUpdateRequest
, &ti
, "HistoryUpdateRequest");
772 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
773 /* Array length field ignored: NoOfHistoryUpdateDetails */
774 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "HistoryUpdateDetails", "ExtensionObject", parseExtensionObject
, ett_opcua_array_ExtensionObject
);
775 proto_item_set_end(ti
, tvb
, *pOffset
);
777 void parseHistoryUpdateResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
780 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_HistoryUpdateResponse
, &ti
, "HistoryUpdateResponse");
782 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
783 /* Array length field ignored: NoOfResults */
784 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "Results", "HistoryUpdateResult", parseHistoryUpdateResult
, ett_opcua_array_HistoryUpdateResult
);
785 /* Array length field ignored: NoOfDiagnosticInfos */
786 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo
, ett_opcua_array_DiagnosticInfo
);
787 proto_item_set_end(ti
, tvb
, *pOffset
);
789 void parseCallRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
792 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_CallRequest
, &ti
, "CallRequest");
794 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
795 /* Array length field ignored: NoOfMethodsToCall */
796 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "MethodsToCall", "CallMethodRequest", parseCallMethodRequest
, ett_opcua_array_CallMethodRequest
);
797 proto_item_set_end(ti
, tvb
, *pOffset
);
799 void parseCallResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
802 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_CallResponse
, &ti
, "CallResponse");
804 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
805 /* Array length field ignored: NoOfResults */
806 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "Results", "CallMethodResult", parseCallMethodResult
, ett_opcua_array_CallMethodResult
);
807 /* Array length field ignored: NoOfDiagnosticInfos */
808 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo
, ett_opcua_array_DiagnosticInfo
);
809 proto_item_set_end(ti
, tvb
, *pOffset
);
811 void parseCreateMonitoredItemsRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
814 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_CreateMonitoredItemsRequest
, &ti
, "CreateMonitoredItemsRequest");
816 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
817 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_SubscriptionId
);
818 parseTimestampsToReturn(subtree
, tvb
, pinfo
, pOffset
);
819 /* Array length field ignored: NoOfItemsToCreate */
820 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "ItemsToCreate", "MonitoredItemCreateRequest", parseMonitoredItemCreateRequest
, ett_opcua_array_MonitoredItemCreateRequest
);
821 proto_item_set_end(ti
, tvb
, *pOffset
);
823 void parseCreateMonitoredItemsResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
826 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_CreateMonitoredItemsResponse
, &ti
, "CreateMonitoredItemsResponse");
828 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
829 /* Array length field ignored: NoOfResults */
830 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "Results", "MonitoredItemCreateResult", parseMonitoredItemCreateResult
, ett_opcua_array_MonitoredItemCreateResult
);
831 /* Array length field ignored: NoOfDiagnosticInfos */
832 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo
, ett_opcua_array_DiagnosticInfo
);
833 proto_item_set_end(ti
, tvb
, *pOffset
);
835 void parseModifyMonitoredItemsRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
838 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_ModifyMonitoredItemsRequest
, &ti
, "ModifyMonitoredItemsRequest");
840 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
841 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_SubscriptionId
);
842 parseTimestampsToReturn(subtree
, tvb
, pinfo
, pOffset
);
843 /* Array length field ignored: NoOfItemsToModify */
844 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "ItemsToModify", "MonitoredItemModifyRequest", parseMonitoredItemModifyRequest
, ett_opcua_array_MonitoredItemModifyRequest
);
845 proto_item_set_end(ti
, tvb
, *pOffset
);
847 void parseModifyMonitoredItemsResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
850 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_ModifyMonitoredItemsResponse
, &ti
, "ModifyMonitoredItemsResponse");
852 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
853 /* Array length field ignored: NoOfResults */
854 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "Results", "MonitoredItemModifyResult", parseMonitoredItemModifyResult
, ett_opcua_array_MonitoredItemModifyResult
);
855 /* Array length field ignored: NoOfDiagnosticInfos */
856 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo
, ett_opcua_array_DiagnosticInfo
);
857 proto_item_set_end(ti
, tvb
, *pOffset
);
859 void parseSetMonitoringModeRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
862 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_SetMonitoringModeRequest
, &ti
, "SetMonitoringModeRequest");
864 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
865 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_SubscriptionId
);
866 parseMonitoringMode(subtree
, tvb
, pinfo
, pOffset
);
867 /* Array length field ignored: NoOfMonitoredItemIds */
868 parseArraySimple(subtree
, tvb
, pinfo
, pOffset
, "MonitoredItemIds", "UInt32", hf_opcua_MonitoredItemIds
, parseUInt32
, ett_opcua_array_UInt32
);
869 proto_item_set_end(ti
, tvb
, *pOffset
);
871 void parseSetMonitoringModeResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
874 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_SetMonitoringModeResponse
, &ti
, "SetMonitoringModeResponse");
876 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
877 /* Array length field ignored: NoOfResults */
878 parseArraySimple(subtree
, tvb
, pinfo
, pOffset
, "Results", "StatusCode", hf_opcua_Results
, parseStatusCode
, ett_opcua_array_StatusCode
);
879 /* Array length field ignored: NoOfDiagnosticInfos */
880 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo
, ett_opcua_array_DiagnosticInfo
);
881 proto_item_set_end(ti
, tvb
, *pOffset
);
883 void parseSetTriggeringRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
886 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_SetTriggeringRequest
, &ti
, "SetTriggeringRequest");
888 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
889 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_SubscriptionId
);
890 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_TriggeringItemId
);
891 /* Array length field ignored: NoOfLinksToAdd */
892 parseArraySimple(subtree
, tvb
, pinfo
, pOffset
, "LinksToAdd", "UInt32", hf_opcua_LinksToAdd
, parseUInt32
, ett_opcua_array_UInt32
);
893 /* Array length field ignored: NoOfLinksToRemove */
894 parseArraySimple(subtree
, tvb
, pinfo
, pOffset
, "LinksToRemove", "UInt32", hf_opcua_LinksToRemove
, parseUInt32
, ett_opcua_array_UInt32
);
895 proto_item_set_end(ti
, tvb
, *pOffset
);
897 void parseSetTriggeringResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
900 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_SetTriggeringResponse
, &ti
, "SetTriggeringResponse");
902 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
903 /* Array length field ignored: NoOfAddResults */
904 parseArraySimple(subtree
, tvb
, pinfo
, pOffset
, "AddResults", "StatusCode", hf_opcua_AddResults
, parseStatusCode
, ett_opcua_array_StatusCode
);
905 /* Array length field ignored: NoOfAddDiagnosticInfos */
906 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "AddDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo
, ett_opcua_array_DiagnosticInfo
);
907 /* Array length field ignored: NoOfRemoveResults */
908 parseArraySimple(subtree
, tvb
, pinfo
, pOffset
, "RemoveResults", "StatusCode", hf_opcua_RemoveResults
, parseStatusCode
, ett_opcua_array_StatusCode
);
909 /* Array length field ignored: NoOfRemoveDiagnosticInfos */
910 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "RemoveDiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo
, ett_opcua_array_DiagnosticInfo
);
911 proto_item_set_end(ti
, tvb
, *pOffset
);
913 void parseDeleteMonitoredItemsRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
916 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_DeleteMonitoredItemsRequest
, &ti
, "DeleteMonitoredItemsRequest");
918 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
919 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_SubscriptionId
);
920 /* Array length field ignored: NoOfMonitoredItemIds */
921 parseArraySimple(subtree
, tvb
, pinfo
, pOffset
, "MonitoredItemIds", "UInt32", hf_opcua_MonitoredItemIds
, parseUInt32
, ett_opcua_array_UInt32
);
922 proto_item_set_end(ti
, tvb
, *pOffset
);
924 void parseDeleteMonitoredItemsResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
927 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_DeleteMonitoredItemsResponse
, &ti
, "DeleteMonitoredItemsResponse");
929 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
930 /* Array length field ignored: NoOfResults */
931 parseArraySimple(subtree
, tvb
, pinfo
, pOffset
, "Results", "StatusCode", hf_opcua_Results
, parseStatusCode
, ett_opcua_array_StatusCode
);
932 /* Array length field ignored: NoOfDiagnosticInfos */
933 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo
, ett_opcua_array_DiagnosticInfo
);
934 proto_item_set_end(ti
, tvb
, *pOffset
);
936 void parseCreateSubscriptionRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
939 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_CreateSubscriptionRequest
, &ti
, "CreateSubscriptionRequest");
941 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
942 parseDouble(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_RequestedPublishingInterval
);
943 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_RequestedLifetimeCount
);
944 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_RequestedMaxKeepAliveCount
);
945 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_MaxNotificationsPerPublish
);
946 parseBoolean(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_PublishingEnabled
);
947 parseByte(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_Priority
);
948 proto_item_set_end(ti
, tvb
, *pOffset
);
950 void parseCreateSubscriptionResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
953 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_CreateSubscriptionResponse
, &ti
, "CreateSubscriptionResponse");
955 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
956 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_SubscriptionId
);
957 parseDouble(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_RevisedPublishingInterval
);
958 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_RevisedLifetimeCount
);
959 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_RevisedMaxKeepAliveCount
);
960 proto_item_set_end(ti
, tvb
, *pOffset
);
962 void parseModifySubscriptionRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
965 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_ModifySubscriptionRequest
, &ti
, "ModifySubscriptionRequest");
967 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
968 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_SubscriptionId
);
969 parseDouble(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_RequestedPublishingInterval
);
970 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_RequestedLifetimeCount
);
971 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_RequestedMaxKeepAliveCount
);
972 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_MaxNotificationsPerPublish
);
973 parseByte(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_Priority
);
974 proto_item_set_end(ti
, tvb
, *pOffset
);
976 void parseModifySubscriptionResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
979 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_ModifySubscriptionResponse
, &ti
, "ModifySubscriptionResponse");
981 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
982 parseDouble(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_RevisedPublishingInterval
);
983 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_RevisedLifetimeCount
);
984 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_RevisedMaxKeepAliveCount
);
985 proto_item_set_end(ti
, tvb
, *pOffset
);
987 void parseSetPublishingModeRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
990 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_SetPublishingModeRequest
, &ti
, "SetPublishingModeRequest");
992 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
993 parseBoolean(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_PublishingEnabled
);
994 /* Array length field ignored: NoOfSubscriptionIds */
995 parseArraySimple(subtree
, tvb
, pinfo
, pOffset
, "SubscriptionIds", "UInt32", hf_opcua_SubscriptionIds
, parseUInt32
, ett_opcua_array_UInt32
);
996 proto_item_set_end(ti
, tvb
, *pOffset
);
998 void parseSetPublishingModeResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
1001 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_SetPublishingModeResponse
, &ti
, "SetPublishingModeResponse");
1003 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
1004 /* Array length field ignored: NoOfResults */
1005 parseArraySimple(subtree
, tvb
, pinfo
, pOffset
, "Results", "StatusCode", hf_opcua_Results
, parseStatusCode
, ett_opcua_array_StatusCode
);
1006 /* Array length field ignored: NoOfDiagnosticInfos */
1007 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo
, ett_opcua_array_DiagnosticInfo
);
1008 proto_item_set_end(ti
, tvb
, *pOffset
);
1010 void parsePublishRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
1013 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_PublishRequest
, &ti
, "PublishRequest");
1015 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
1016 /* Array length field ignored: NoOfSubscriptionAcknowledgements */
1017 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "SubscriptionAcknowledgements", "SubscriptionAcknowledgement", parseSubscriptionAcknowledgement
, ett_opcua_array_SubscriptionAcknowledgement
);
1018 proto_item_set_end(ti
, tvb
, *pOffset
);
1020 void parsePublishResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
1023 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_PublishResponse
, &ti
, "PublishResponse");
1025 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
1026 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_SubscriptionId
);
1027 /* Array length field ignored: NoOfAvailableSequenceNumbers */
1028 parseArraySimple(subtree
, tvb
, pinfo
, pOffset
, "AvailableSequenceNumbers", "UInt32", hf_opcua_AvailableSequenceNumbers
, parseUInt32
, ett_opcua_array_UInt32
);
1029 parseBoolean(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_MoreNotifications
);
1030 parseNotificationMessage(subtree
, tvb
, pinfo
, pOffset
, "NotificationMessage");
1031 /* Array length field ignored: NoOfResults */
1032 parseArraySimple(subtree
, tvb
, pinfo
, pOffset
, "Results", "StatusCode", hf_opcua_Results
, parseStatusCode
, ett_opcua_array_StatusCode
);
1033 /* Array length field ignored: NoOfDiagnosticInfos */
1034 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo
, ett_opcua_array_DiagnosticInfo
);
1035 proto_item_set_end(ti
, tvb
, *pOffset
);
1037 void parseRepublishRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
1040 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_RepublishRequest
, &ti
, "RepublishRequest");
1042 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
1043 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_SubscriptionId
);
1044 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_RetransmitSequenceNumber
);
1045 proto_item_set_end(ti
, tvb
, *pOffset
);
1047 void parseRepublishResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
1050 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_RepublishResponse
, &ti
, "RepublishResponse");
1052 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
1053 parseNotificationMessage(subtree
, tvb
, pinfo
, pOffset
, "NotificationMessage");
1054 proto_item_set_end(ti
, tvb
, *pOffset
);
1056 void parseTransferSubscriptionsRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
1059 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_TransferSubscriptionsRequest
, &ti
, "TransferSubscriptionsRequest");
1061 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
1062 /* Array length field ignored: NoOfSubscriptionIds */
1063 parseArraySimple(subtree
, tvb
, pinfo
, pOffset
, "SubscriptionIds", "UInt32", hf_opcua_SubscriptionIds
, parseUInt32
, ett_opcua_array_UInt32
);
1064 parseBoolean(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_SendInitialValues
);
1065 proto_item_set_end(ti
, tvb
, *pOffset
);
1067 void parseTransferSubscriptionsResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
1070 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_TransferSubscriptionsResponse
, &ti
, "TransferSubscriptionsResponse");
1072 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
1073 /* Array length field ignored: NoOfResults */
1074 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "Results", "TransferResult", parseTransferResult
, ett_opcua_array_TransferResult
);
1075 /* Array length field ignored: NoOfDiagnosticInfos */
1076 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo
, ett_opcua_array_DiagnosticInfo
);
1077 proto_item_set_end(ti
, tvb
, *pOffset
);
1079 void parseDeleteSubscriptionsRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
1082 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_DeleteSubscriptionsRequest
, &ti
, "DeleteSubscriptionsRequest");
1084 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
1085 /* Array length field ignored: NoOfSubscriptionIds */
1086 parseArraySimple(subtree
, tvb
, pinfo
, pOffset
, "SubscriptionIds", "UInt32", hf_opcua_SubscriptionIds
, parseUInt32
, ett_opcua_array_UInt32
);
1087 proto_item_set_end(ti
, tvb
, *pOffset
);
1089 void parseDeleteSubscriptionsResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
1092 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_DeleteSubscriptionsResponse
, &ti
, "DeleteSubscriptionsResponse");
1094 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
1095 /* Array length field ignored: NoOfResults */
1096 parseArraySimple(subtree
, tvb
, pinfo
, pOffset
, "Results", "StatusCode", hf_opcua_Results
, parseStatusCode
, ett_opcua_array_StatusCode
);
1097 /* Array length field ignored: NoOfDiagnosticInfos */
1098 parseArrayComplex(subtree
, tvb
, pinfo
, pOffset
, "DiagnosticInfos", "DiagnosticInfo", parseDiagnosticInfo
, ett_opcua_array_DiagnosticInfo
);
1099 proto_item_set_end(ti
, tvb
, *pOffset
);
1101 void parseTestStackRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
1104 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_TestStackRequest
, &ti
, "TestStackRequest");
1106 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
1107 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_TestId
);
1108 parseInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_Iteration
);
1109 parseVariant(subtree
, tvb
, pinfo
, pOffset
, "Input");
1110 proto_item_set_end(ti
, tvb
, *pOffset
);
1112 void parseTestStackResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
1115 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_TestStackResponse
, &ti
, "TestStackResponse");
1117 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
1118 parseVariant(subtree
, tvb
, pinfo
, pOffset
, "Output");
1119 proto_item_set_end(ti
, tvb
, *pOffset
);
1121 void parseTestStackExRequest(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
1124 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_TestStackExRequest
, &ti
, "TestStackExRequest");
1126 parseRequestHeader(subtree
, tvb
, pinfo
, pOffset
, "RequestHeader");
1127 parseUInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_TestId
);
1128 parseInt32(subtree
, tvb
, pinfo
, pOffset
, hf_opcua_Iteration
);
1129 parseCompositeTestType(subtree
, tvb
, pinfo
, pOffset
, "Input");
1130 proto_item_set_end(ti
, tvb
, *pOffset
);
1132 void parseTestStackExResponse(proto_tree
*tree
, tvbuff_t
*tvb
, packet_info
*pinfo
, int *pOffset
)
1135 proto_tree
*subtree
= proto_tree_add_subtree(tree
, tvb
, *pOffset
, -1, ett_opcua_TestStackExResponse
, &ti
, "TestStackExResponse");
1137 parseResponseHeader(subtree
, tvb
, pinfo
, pOffset
, "ResponseHeader");
1138 parseCompositeTestType(subtree
, tvb
, pinfo
, pOffset
, "Output");
1139 proto_item_set_end(ti
, tvb
, *pOffset
);
1142 /** Setup protocol subtree array */
1145 &ett_opcua_ServiceFault
,
1146 &ett_opcua_array_ServiceFault
,
1147 &ett_opcua_FindServersRequest
,
1148 &ett_opcua_array_FindServersRequest
,
1149 &ett_opcua_FindServersResponse
,
1150 &ett_opcua_array_FindServersResponse
,
1151 &ett_opcua_FindServersOnNetworkRequest
,
1152 &ett_opcua_array_FindServersOnNetworkRequest
,
1153 &ett_opcua_FindServersOnNetworkResponse
,
1154 &ett_opcua_array_FindServersOnNetworkResponse
,
1155 &ett_opcua_GetEndpointsRequest
,
1156 &ett_opcua_array_GetEndpointsRequest
,
1157 &ett_opcua_GetEndpointsResponse
,
1158 &ett_opcua_array_GetEndpointsResponse
,
1159 &ett_opcua_RegisterServerRequest
,
1160 &ett_opcua_array_RegisterServerRequest
,
1161 &ett_opcua_RegisterServerResponse
,
1162 &ett_opcua_array_RegisterServerResponse
,
1163 &ett_opcua_RegisterServer2Request
,
1164 &ett_opcua_array_RegisterServer2Request
,
1165 &ett_opcua_RegisterServer2Response
,
1166 &ett_opcua_array_RegisterServer2Response
,
1167 &ett_opcua_OpenSecureChannelRequest
,
1168 &ett_opcua_array_OpenSecureChannelRequest
,
1169 &ett_opcua_OpenSecureChannelResponse
,
1170 &ett_opcua_array_OpenSecureChannelResponse
,
1171 &ett_opcua_CloseSecureChannelRequest
,
1172 &ett_opcua_array_CloseSecureChannelRequest
,
1173 &ett_opcua_CloseSecureChannelResponse
,
1174 &ett_opcua_array_CloseSecureChannelResponse
,
1175 &ett_opcua_CreateSessionRequest
,
1176 &ett_opcua_array_CreateSessionRequest
,
1177 &ett_opcua_CreateSessionResponse
,
1178 &ett_opcua_array_CreateSessionResponse
,
1179 &ett_opcua_ActivateSessionRequest
,
1180 &ett_opcua_array_ActivateSessionRequest
,
1181 &ett_opcua_ActivateSessionResponse
,
1182 &ett_opcua_array_ActivateSessionResponse
,
1183 &ett_opcua_CloseSessionRequest
,
1184 &ett_opcua_array_CloseSessionRequest
,
1185 &ett_opcua_CloseSessionResponse
,
1186 &ett_opcua_array_CloseSessionResponse
,
1187 &ett_opcua_CancelRequest
,
1188 &ett_opcua_array_CancelRequest
,
1189 &ett_opcua_CancelResponse
,
1190 &ett_opcua_array_CancelResponse
,
1191 &ett_opcua_AddNodesRequest
,
1192 &ett_opcua_array_AddNodesRequest
,
1193 &ett_opcua_AddNodesResponse
,
1194 &ett_opcua_array_AddNodesResponse
,
1195 &ett_opcua_AddReferencesRequest
,
1196 &ett_opcua_array_AddReferencesRequest
,
1197 &ett_opcua_AddReferencesResponse
,
1198 &ett_opcua_array_AddReferencesResponse
,
1199 &ett_opcua_DeleteNodesRequest
,
1200 &ett_opcua_array_DeleteNodesRequest
,
1201 &ett_opcua_DeleteNodesResponse
,
1202 &ett_opcua_array_DeleteNodesResponse
,
1203 &ett_opcua_DeleteReferencesRequest
,
1204 &ett_opcua_array_DeleteReferencesRequest
,
1205 &ett_opcua_DeleteReferencesResponse
,
1206 &ett_opcua_array_DeleteReferencesResponse
,
1207 &ett_opcua_BrowseRequest
,
1208 &ett_opcua_array_BrowseRequest
,
1209 &ett_opcua_BrowseResponse
,
1210 &ett_opcua_array_BrowseResponse
,
1211 &ett_opcua_BrowseNextRequest
,
1212 &ett_opcua_array_BrowseNextRequest
,
1213 &ett_opcua_BrowseNextResponse
,
1214 &ett_opcua_array_BrowseNextResponse
,
1215 &ett_opcua_TranslateBrowsePathsToNodeIdsRequest
,
1216 &ett_opcua_array_TranslateBrowsePathsToNodeIdsRequest
,
1217 &ett_opcua_TranslateBrowsePathsToNodeIdsResponse
,
1218 &ett_opcua_array_TranslateBrowsePathsToNodeIdsResponse
,
1219 &ett_opcua_RegisterNodesRequest
,
1220 &ett_opcua_array_RegisterNodesRequest
,
1221 &ett_opcua_RegisterNodesResponse
,
1222 &ett_opcua_array_RegisterNodesResponse
,
1223 &ett_opcua_UnregisterNodesRequest
,
1224 &ett_opcua_array_UnregisterNodesRequest
,
1225 &ett_opcua_UnregisterNodesResponse
,
1226 &ett_opcua_array_UnregisterNodesResponse
,
1227 &ett_opcua_QueryFirstRequest
,
1228 &ett_opcua_array_QueryFirstRequest
,
1229 &ett_opcua_QueryFirstResponse
,
1230 &ett_opcua_array_QueryFirstResponse
,
1231 &ett_opcua_QueryNextRequest
,
1232 &ett_opcua_array_QueryNextRequest
,
1233 &ett_opcua_QueryNextResponse
,
1234 &ett_opcua_array_QueryNextResponse
,
1235 &ett_opcua_ReadRequest
,
1236 &ett_opcua_array_ReadRequest
,
1237 &ett_opcua_ReadResponse
,
1238 &ett_opcua_array_ReadResponse
,
1239 &ett_opcua_HistoryReadRequest
,
1240 &ett_opcua_array_HistoryReadRequest
,
1241 &ett_opcua_HistoryReadResponse
,
1242 &ett_opcua_array_HistoryReadResponse
,
1243 &ett_opcua_WriteRequest
,
1244 &ett_opcua_array_WriteRequest
,
1245 &ett_opcua_WriteResponse
,
1246 &ett_opcua_array_WriteResponse
,
1247 &ett_opcua_HistoryUpdateRequest
,
1248 &ett_opcua_array_HistoryUpdateRequest
,
1249 &ett_opcua_HistoryUpdateResponse
,
1250 &ett_opcua_array_HistoryUpdateResponse
,
1251 &ett_opcua_CallRequest
,
1252 &ett_opcua_array_CallRequest
,
1253 &ett_opcua_CallResponse
,
1254 &ett_opcua_array_CallResponse
,
1255 &ett_opcua_CreateMonitoredItemsRequest
,
1256 &ett_opcua_array_CreateMonitoredItemsRequest
,
1257 &ett_opcua_CreateMonitoredItemsResponse
,
1258 &ett_opcua_array_CreateMonitoredItemsResponse
,
1259 &ett_opcua_ModifyMonitoredItemsRequest
,
1260 &ett_opcua_array_ModifyMonitoredItemsRequest
,
1261 &ett_opcua_ModifyMonitoredItemsResponse
,
1262 &ett_opcua_array_ModifyMonitoredItemsResponse
,
1263 &ett_opcua_SetMonitoringModeRequest
,
1264 &ett_opcua_array_SetMonitoringModeRequest
,
1265 &ett_opcua_SetMonitoringModeResponse
,
1266 &ett_opcua_array_SetMonitoringModeResponse
,
1267 &ett_opcua_SetTriggeringRequest
,
1268 &ett_opcua_array_SetTriggeringRequest
,
1269 &ett_opcua_SetTriggeringResponse
,
1270 &ett_opcua_array_SetTriggeringResponse
,
1271 &ett_opcua_DeleteMonitoredItemsRequest
,
1272 &ett_opcua_array_DeleteMonitoredItemsRequest
,
1273 &ett_opcua_DeleteMonitoredItemsResponse
,
1274 &ett_opcua_array_DeleteMonitoredItemsResponse
,
1275 &ett_opcua_CreateSubscriptionRequest
,
1276 &ett_opcua_array_CreateSubscriptionRequest
,
1277 &ett_opcua_CreateSubscriptionResponse
,
1278 &ett_opcua_array_CreateSubscriptionResponse
,
1279 &ett_opcua_ModifySubscriptionRequest
,
1280 &ett_opcua_array_ModifySubscriptionRequest
,
1281 &ett_opcua_ModifySubscriptionResponse
,
1282 &ett_opcua_array_ModifySubscriptionResponse
,
1283 &ett_opcua_SetPublishingModeRequest
,
1284 &ett_opcua_array_SetPublishingModeRequest
,
1285 &ett_opcua_SetPublishingModeResponse
,
1286 &ett_opcua_array_SetPublishingModeResponse
,
1287 &ett_opcua_PublishRequest
,
1288 &ett_opcua_array_PublishRequest
,
1289 &ett_opcua_PublishResponse
,
1290 &ett_opcua_array_PublishResponse
,
1291 &ett_opcua_RepublishRequest
,
1292 &ett_opcua_array_RepublishRequest
,
1293 &ett_opcua_RepublishResponse
,
1294 &ett_opcua_array_RepublishResponse
,
1295 &ett_opcua_TransferSubscriptionsRequest
,
1296 &ett_opcua_array_TransferSubscriptionsRequest
,
1297 &ett_opcua_TransferSubscriptionsResponse
,
1298 &ett_opcua_array_TransferSubscriptionsResponse
,
1299 &ett_opcua_DeleteSubscriptionsRequest
,
1300 &ett_opcua_array_DeleteSubscriptionsRequest
,
1301 &ett_opcua_DeleteSubscriptionsResponse
,
1302 &ett_opcua_array_DeleteSubscriptionsResponse
,
1303 &ett_opcua_TestStackRequest
,
1304 &ett_opcua_array_TestStackRequest
,
1305 &ett_opcua_TestStackResponse
,
1306 &ett_opcua_array_TestStackResponse
,
1307 &ett_opcua_TestStackExRequest
,
1308 &ett_opcua_array_TestStackExRequest
,
1309 &ett_opcua_TestStackExResponse
,
1310 &ett_opcua_array_TestStackExResponse
,
1313 void registerServiceTypes(void)
1315 proto_register_subtree_array(ett
, array_length(ett
));