1 /******************************************************************************
4 ** Copyright (C) 2006-2009 ascolab GmbH. All Rights Reserved.
5 ** Web: http://www.ascolab.com
7 ** This program is free software; you can redistribute it and/or
8 ** modify it under the terms of the GNU General Public License
9 ** as published by the Free Software Foundation; either version 2
10 ** of the License, or (at your option) any later version.
12 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
13 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
15 ** Project: OpcUa Wireshark Plugin
17 ** Description: OpcUa Complex Type Parser
19 ** This file was autogenerated on 01.04.2009.
20 ** DON'T MODIFY THIS FILE!
22 ******************************************************************************/
29 #include <epan/packet.h>
30 #include "opcua_complextypeparser.h"
31 #include "opcua_enumparser.h"
32 #include "opcua_simpletypes.h"
33 #include "opcua_hfindeces.h"
35 gint ett_opcua_TestStackRequest = -1;
36 void parseTestStackRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
38 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "TestStackRequest");
39 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TestStackRequest);
41 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
42 parseUInt32(subtree, tvb, pOffset, hf_opcua_TestId);
43 parseInt32(subtree, tvb, pOffset, hf_opcua_Iteration);
44 parseVariant(subtree, tvb, pOffset, "Input");
46 gint ett_opcua_TestStackResponse = -1;
47 void parseTestStackResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
49 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "TestStackResponse");
50 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TestStackResponse);
52 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
53 parseVariant(subtree, tvb, pOffset, "Output");
55 gint ett_opcua_TestStackExRequest = -1;
56 void parseTestStackExRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
58 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "TestStackExRequest");
59 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TestStackExRequest);
61 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
62 parseUInt32(subtree, tvb, pOffset, hf_opcua_TestId);
63 parseInt32(subtree, tvb, pOffset, hf_opcua_Iteration);
64 parseCompositeTestType(subtree, tvb, pOffset, "Input");
66 gint ett_opcua_TestStackExResponse = -1;
67 void parseTestStackExResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
69 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "TestStackExResponse");
70 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TestStackExResponse);
72 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
73 parseCompositeTestType(subtree, tvb, pOffset, "Output");
75 gint ett_opcua_FindServersRequest = -1;
76 void parseFindServersRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
78 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "FindServersRequest");
79 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_FindServersRequest);
81 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
82 parseString(subtree, tvb, pOffset, hf_opcua_EndpointUrl);
83 /* Array length field ignored: NoOfLocaleIds */
84 parseArraySimple(subtree, tvb, pOffset, hf_opcua_LocaleIds, parseString);
85 /* Array length field ignored: NoOfServerUris */
86 parseArraySimple(subtree, tvb, pOffset, hf_opcua_ServerUris, parseString);
88 gint ett_opcua_FindServersResponse = -1;
89 void parseFindServersResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
91 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "FindServersResponse");
92 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_FindServersResponse);
94 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
95 /* Array length field ignored: NoOfServers */
96 parseArrayComplex(subtree, tvb, pOffset, "Servers", parseApplicationDescription);
98 gint ett_opcua_GetEndpointsRequest = -1;
99 void parseGetEndpointsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
101 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "GetEndpointsRequest");
102 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_GetEndpointsRequest);
104 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
105 parseString(subtree, tvb, pOffset, hf_opcua_EndpointUrl);
106 /* Array length field ignored: NoOfLocaleIds */
107 parseArraySimple(subtree, tvb, pOffset, hf_opcua_LocaleIds, parseString);
108 /* Array length field ignored: NoOfProfileUris */
109 parseArraySimple(subtree, tvb, pOffset, hf_opcua_ProfileUris, parseString);
111 gint ett_opcua_GetEndpointsResponse = -1;
112 void parseGetEndpointsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
114 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "GetEndpointsResponse");
115 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_GetEndpointsResponse);
117 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
118 /* Array length field ignored: NoOfEndpoints */
119 parseArrayComplex(subtree, tvb, pOffset, "Endpoints", parseEndpointDescription);
121 gint ett_opcua_RegisterServerRequest = -1;
122 void parseRegisterServerRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
124 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "RegisterServerRequest");
125 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RegisterServerRequest);
127 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
128 parseRegisteredServer(subtree, tvb, pOffset, "Server");
130 gint ett_opcua_RegisterServerResponse = -1;
131 void parseRegisterServerResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
133 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "RegisterServerResponse");
134 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RegisterServerResponse);
136 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
138 gint ett_opcua_OpenSecureChannelRequest = -1;
139 void parseOpenSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
141 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "OpenSecureChannelRequest");
142 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_OpenSecureChannelRequest);
144 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
145 parseUInt32(subtree, tvb, pOffset, hf_opcua_ClientProtocolVersion);
146 parseSecurityTokenRequestType(subtree, tvb, pOffset);
147 parseMessageSecurityMode(subtree, tvb, pOffset);
148 parseByteString(subtree, tvb, pOffset, hf_opcua_ClientNonce);
149 parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedLifetime);
151 gint ett_opcua_OpenSecureChannelResponse = -1;
152 void parseOpenSecureChannelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
154 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "OpenSecureChannelResponse");
155 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_OpenSecureChannelResponse);
157 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
158 parseUInt32(subtree, tvb, pOffset, hf_opcua_ServerProtocolVersion);
159 parseChannelSecurityToken(subtree, tvb, pOffset, "SecurityToken");
160 parseByteString(subtree, tvb, pOffset, hf_opcua_ServerNonce);
162 gint ett_opcua_CloseSecureChannelRequest = -1;
163 void parseCloseSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
165 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CloseSecureChannelRequest");
166 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CloseSecureChannelRequest);
168 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
170 gint ett_opcua_CloseSecureChannelResponse = -1;
171 void parseCloseSecureChannelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
173 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CloseSecureChannelResponse");
174 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CloseSecureChannelResponse);
176 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
178 gint ett_opcua_CreateSessionRequest = -1;
179 void parseCreateSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
181 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CreateSessionRequest");
182 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CreateSessionRequest);
184 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
185 parseApplicationDescription(subtree, tvb, pOffset, "ClientDescription");
186 parseString(subtree, tvb, pOffset, hf_opcua_ServerUri);
187 parseString(subtree, tvb, pOffset, hf_opcua_EndpointUrl);
188 parseString(subtree, tvb, pOffset, hf_opcua_SessionName);
189 parseByteString(subtree, tvb, pOffset, hf_opcua_ClientNonce);
190 parseByteString(subtree, tvb, pOffset, hf_opcua_ClientCertificate);
191 parseDouble(subtree, tvb, pOffset, hf_opcua_RequestedSessionTimeout);
192 parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxResponseMessageSize);
194 gint ett_opcua_CreateSessionResponse = -1;
195 void parseCreateSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
197 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CreateSessionResponse");
198 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CreateSessionResponse);
200 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
201 parseNodeId(subtree, tvb, pOffset, "SessionId");
202 parseNodeId(subtree, tvb, pOffset, "AuthenticationToken");
203 parseDouble(subtree, tvb, pOffset, hf_opcua_RevisedSessionTimeout);
204 parseByteString(subtree, tvb, pOffset, hf_opcua_ServerNonce);
205 parseByteString(subtree, tvb, pOffset, hf_opcua_ServerCertificate);
206 /* Array length field ignored: NoOfServerEndpoints */
207 parseArrayComplex(subtree, tvb, pOffset, "ServerEndpoints", parseEndpointDescription);
208 /* Array length field ignored: NoOfServerSoftwareCertificates */
209 parseArrayComplex(subtree, tvb, pOffset, "ServerSoftwareCertificates", parseSignedSoftwareCertificate);
210 parseSignatureData(subtree, tvb, pOffset, "ServerSignature");
211 parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxRequestMessageSize);
213 gint ett_opcua_ActivateSessionRequest = -1;
214 void parseActivateSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
216 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "ActivateSessionRequest");
217 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ActivateSessionRequest);
219 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
220 parseSignatureData(subtree, tvb, pOffset, "ClientSignature");
221 /* Array length field ignored: NoOfClientSoftwareCertificates */
222 parseArrayComplex(subtree, tvb, pOffset, "ClientSoftwareCertificates", parseSignedSoftwareCertificate);
223 /* Array length field ignored: NoOfLocaleIds */
224 parseArraySimple(subtree, tvb, pOffset, hf_opcua_LocaleIds, parseString);
225 parseExtensionObject(subtree, tvb, pOffset, "UserIdentityToken");
226 parseSignatureData(subtree, tvb, pOffset, "UserTokenSignature");
228 gint ett_opcua_ActivateSessionResponse = -1;
229 void parseActivateSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
231 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "ActivateSessionResponse");
232 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ActivateSessionResponse);
234 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
235 parseByteString(subtree, tvb, pOffset, hf_opcua_ServerNonce);
236 /* Array length field ignored: NoOfResults */
237 parseArraySimple(subtree, tvb, pOffset, hf_opcua_Results, parseStatusCode);
238 /* Array length field ignored: NoOfDiagnosticInfos */
239 parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
241 gint ett_opcua_CloseSessionRequest = -1;
242 void parseCloseSessionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
244 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CloseSessionRequest");
245 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CloseSessionRequest);
247 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
248 parseBoolean(subtree, tvb, pOffset, hf_opcua_DeleteSubscriptions);
250 gint ett_opcua_CloseSessionResponse = -1;
251 void parseCloseSessionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
253 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CloseSessionResponse");
254 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CloseSessionResponse);
256 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
258 gint ett_opcua_CancelRequest = -1;
259 void parseCancelRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
261 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CancelRequest");
262 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CancelRequest);
264 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
265 parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestHandle);
267 gint ett_opcua_CancelResponse = -1;
268 void parseCancelResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
270 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CancelResponse");
271 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CancelResponse);
273 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
274 parseUInt32(subtree, tvb, pOffset, hf_opcua_CancelCount);
276 gint ett_opcua_AddNodesRequest = -1;
277 void parseAddNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
279 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "AddNodesRequest");
280 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AddNodesRequest);
282 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
283 /* Array length field ignored: NoOfNodesToAdd */
284 parseArrayComplex(subtree, tvb, pOffset, "NodesToAdd", parseAddNodesItem);
286 gint ett_opcua_AddNodesResponse = -1;
287 void parseAddNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
289 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "AddNodesResponse");
290 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AddNodesResponse);
292 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
293 /* Array length field ignored: NoOfResults */
294 parseArrayComplex(subtree, tvb, pOffset, "Results", parseAddNodesResult);
295 /* Array length field ignored: NoOfDiagnosticInfos */
296 parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
298 gint ett_opcua_AddReferencesRequest = -1;
299 void parseAddReferencesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
301 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "AddReferencesRequest");
302 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AddReferencesRequest);
304 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
305 /* Array length field ignored: NoOfReferencesToAdd */
306 parseArrayComplex(subtree, tvb, pOffset, "ReferencesToAdd", parseAddReferencesItem);
308 gint ett_opcua_AddReferencesResponse = -1;
309 void parseAddReferencesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
311 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "AddReferencesResponse");
312 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_AddReferencesResponse);
314 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
315 /* Array length field ignored: NoOfResults */
316 parseArraySimple(subtree, tvb, pOffset, hf_opcua_Results, parseStatusCode);
317 /* Array length field ignored: NoOfDiagnosticInfos */
318 parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
320 gint ett_opcua_DeleteNodesRequest = -1;
321 void parseDeleteNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
323 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "DeleteNodesRequest");
324 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteNodesRequest);
326 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
327 /* Array length field ignored: NoOfNodesToDelete */
328 parseArrayComplex(subtree, tvb, pOffset, "NodesToDelete", parseDeleteNodesItem);
330 gint ett_opcua_DeleteNodesResponse = -1;
331 void parseDeleteNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
333 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "DeleteNodesResponse");
334 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteNodesResponse);
336 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
337 /* Array length field ignored: NoOfResults */
338 parseArraySimple(subtree, tvb, pOffset, hf_opcua_Results, parseStatusCode);
339 /* Array length field ignored: NoOfDiagnosticInfos */
340 parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
342 gint ett_opcua_DeleteReferencesRequest = -1;
343 void parseDeleteReferencesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
345 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "DeleteReferencesRequest");
346 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteReferencesRequest);
348 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
349 /* Array length field ignored: NoOfReferencesToDelete */
350 parseArrayComplex(subtree, tvb, pOffset, "ReferencesToDelete", parseDeleteReferencesItem);
352 gint ett_opcua_DeleteReferencesResponse = -1;
353 void parseDeleteReferencesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
355 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "DeleteReferencesResponse");
356 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteReferencesResponse);
358 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
359 /* Array length field ignored: NoOfResults */
360 parseArraySimple(subtree, tvb, pOffset, hf_opcua_Results, parseStatusCode);
361 /* Array length field ignored: NoOfDiagnosticInfos */
362 parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
364 gint ett_opcua_BrowseRequest = -1;
365 void parseBrowseRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
367 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "BrowseRequest");
368 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowseRequest);
370 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
371 parseViewDescription(subtree, tvb, pOffset, "View");
372 parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedMaxReferencesPerNode);
373 /* Array length field ignored: NoOfNodesToBrowse */
374 parseArrayComplex(subtree, tvb, pOffset, "NodesToBrowse", parseBrowseDescription);
376 gint ett_opcua_BrowseResponse = -1;
377 void parseBrowseResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
379 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "BrowseResponse");
380 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowseResponse);
382 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
383 /* Array length field ignored: NoOfResults */
384 parseArrayComplex(subtree, tvb, pOffset, "Results", parseBrowseResult);
385 /* Array length field ignored: NoOfDiagnosticInfos */
386 parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
388 gint ett_opcua_BrowseNextRequest = -1;
389 void parseBrowseNextRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
391 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "BrowseNextRequest");
392 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowseNextRequest);
394 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
395 parseBoolean(subtree, tvb, pOffset, hf_opcua_ReleaseContinuationPoints);
396 /* Array length field ignored: NoOfContinuationPoints */
397 parseArraySimple(subtree, tvb, pOffset, hf_opcua_ContinuationPoints, parseByteString);
399 gint ett_opcua_BrowseNextResponse = -1;
400 void parseBrowseNextResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
402 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "BrowseNextResponse");
403 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_BrowseNextResponse);
405 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
406 /* Array length field ignored: NoOfResults */
407 parseArrayComplex(subtree, tvb, pOffset, "Results", parseBrowseResult);
408 /* Array length field ignored: NoOfDiagnosticInfos */
409 parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
411 gint ett_opcua_TranslateBrowsePathsToNodeIdsRequest = -1;
412 void parseTranslateBrowsePathsToNodeIdsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
414 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "TranslateBrowsePathsToNodeIdsRequest");
415 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TranslateBrowsePathsToNodeIdsRequest);
417 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
418 /* Array length field ignored: NoOfBrowsePaths */
419 parseArrayComplex(subtree, tvb, pOffset, "BrowsePaths", parseBrowsePath);
421 gint ett_opcua_TranslateBrowsePathsToNodeIdsResponse = -1;
422 void parseTranslateBrowsePathsToNodeIdsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
424 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "TranslateBrowsePathsToNodeIdsResponse");
425 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TranslateBrowsePathsToNodeIdsResponse);
427 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
428 /* Array length field ignored: NoOfResults */
429 parseArrayComplex(subtree, tvb, pOffset, "Results", parseBrowsePathResult);
430 /* Array length field ignored: NoOfDiagnosticInfos */
431 parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
433 gint ett_opcua_RegisterNodesRequest = -1;
434 void parseRegisterNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
436 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "RegisterNodesRequest");
437 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RegisterNodesRequest);
439 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
440 /* Array length field ignored: NoOfNodesToRegister */
441 parseArrayComplex(subtree, tvb, pOffset, "NodesToRegister", parseNodeId);
443 gint ett_opcua_RegisterNodesResponse = -1;
444 void parseRegisterNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
446 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "RegisterNodesResponse");
447 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RegisterNodesResponse);
449 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
450 /* Array length field ignored: NoOfRegisteredNodeIds */
451 parseArrayComplex(subtree, tvb, pOffset, "RegisteredNodeIds", parseNodeId);
453 gint ett_opcua_UnregisterNodesRequest = -1;
454 void parseUnregisterNodesRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
456 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "UnregisterNodesRequest");
457 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_UnregisterNodesRequest);
459 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
460 /* Array length field ignored: NoOfNodesToUnregister */
461 parseArrayComplex(subtree, tvb, pOffset, "NodesToUnregister", parseNodeId);
463 gint ett_opcua_UnregisterNodesResponse = -1;
464 void parseUnregisterNodesResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
466 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "UnregisterNodesResponse");
467 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_UnregisterNodesResponse);
469 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
471 gint ett_opcua_QueryFirstRequest = -1;
472 void parseQueryFirstRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
474 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "QueryFirstRequest");
475 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_QueryFirstRequest);
477 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
478 parseViewDescription(subtree, tvb, pOffset, "View");
479 /* Array length field ignored: NoOfNodeTypes */
480 parseArrayComplex(subtree, tvb, pOffset, "NodeTypes", parseNodeTypeDescription);
481 parseContentFilter(subtree, tvb, pOffset, "Filter");
482 parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxDataSetsToReturn);
483 parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxReferencesToReturn);
485 gint ett_opcua_QueryFirstResponse = -1;
486 void parseQueryFirstResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
488 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "QueryFirstResponse");
489 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_QueryFirstResponse);
491 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
492 /* Array length field ignored: NoOfQueryDataSets */
493 parseArrayComplex(subtree, tvb, pOffset, "QueryDataSets", parseQueryDataSet);
494 parseByteString(subtree, tvb, pOffset, hf_opcua_ContinuationPoint);
495 /* Array length field ignored: NoOfParsingResults */
496 parseArrayComplex(subtree, tvb, pOffset, "ParsingResults", parseParsingResult);
497 /* Array length field ignored: NoOfDiagnosticInfos */
498 parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
499 parseContentFilterResult(subtree, tvb, pOffset, "FilterResult");
501 gint ett_opcua_QueryNextRequest = -1;
502 void parseQueryNextRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
504 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "QueryNextRequest");
505 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_QueryNextRequest);
507 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
508 parseBoolean(subtree, tvb, pOffset, hf_opcua_ReleaseContinuationPoint);
509 parseByteString(subtree, tvb, pOffset, hf_opcua_ContinuationPoint);
511 gint ett_opcua_QueryNextResponse = -1;
512 void parseQueryNextResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
514 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "QueryNextResponse");
515 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_QueryNextResponse);
517 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
518 /* Array length field ignored: NoOfQueryDataSets */
519 parseArrayComplex(subtree, tvb, pOffset, "QueryDataSets", parseQueryDataSet);
520 parseByteString(subtree, tvb, pOffset, hf_opcua_RevisedContinuationPoint);
522 gint ett_opcua_ReadRequest = -1;
523 void parseReadRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
525 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "ReadRequest");
526 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReadRequest);
528 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
529 parseDouble(subtree, tvb, pOffset, hf_opcua_MaxAge);
530 parseTimestampsToReturn(subtree, tvb, pOffset);
531 /* Array length field ignored: NoOfNodesToRead */
532 parseArrayComplex(subtree, tvb, pOffset, "NodesToRead", parseReadValueId);
534 gint ett_opcua_ReadResponse = -1;
535 void parseReadResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
537 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "ReadResponse");
538 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ReadResponse);
540 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
541 /* Array length field ignored: NoOfResults */
542 parseArrayComplex(subtree, tvb, pOffset, "Results", parseDataValue);
543 /* Array length field ignored: NoOfDiagnosticInfos */
544 parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
546 gint ett_opcua_HistoryReadRequest = -1;
547 void parseHistoryReadRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
549 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "HistoryReadRequest");
550 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryReadRequest);
552 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
553 parseExtensionObject(subtree, tvb, pOffset, "HistoryReadDetails");
554 parseTimestampsToReturn(subtree, tvb, pOffset);
555 parseBoolean(subtree, tvb, pOffset, hf_opcua_ReleaseContinuationPoints);
556 /* Array length field ignored: NoOfNodesToRead */
557 parseArrayComplex(subtree, tvb, pOffset, "NodesToRead", parseHistoryReadValueId);
559 gint ett_opcua_HistoryReadResponse = -1;
560 void parseHistoryReadResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
562 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "HistoryReadResponse");
563 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryReadResponse);
565 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
566 /* Array length field ignored: NoOfResults */
567 parseArrayComplex(subtree, tvb, pOffset, "Results", parseHistoryReadResult);
568 /* Array length field ignored: NoOfDiagnosticInfos */
569 parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
571 gint ett_opcua_WriteRequest = -1;
572 void parseWriteRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
574 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "WriteRequest");
575 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_WriteRequest);
577 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
578 /* Array length field ignored: NoOfNodesToWrite */
579 parseArrayComplex(subtree, tvb, pOffset, "NodesToWrite", parseWriteValue);
581 gint ett_opcua_WriteResponse = -1;
582 void parseWriteResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
584 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "WriteResponse");
585 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_WriteResponse);
587 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
588 /* Array length field ignored: NoOfResults */
589 parseArraySimple(subtree, tvb, pOffset, hf_opcua_Results, parseStatusCode);
590 /* Array length field ignored: NoOfDiagnosticInfos */
591 parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
593 gint ett_opcua_HistoryUpdateRequest = -1;
594 void parseHistoryUpdateRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
596 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "HistoryUpdateRequest");
597 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryUpdateRequest);
599 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
600 /* Array length field ignored: NoOfHistoryUpdateDetails */
601 parseArrayComplex(subtree, tvb, pOffset, "HistoryUpdateDetails", parseExtensionObject);
603 gint ett_opcua_HistoryUpdateResponse = -1;
604 void parseHistoryUpdateResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
606 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "HistoryUpdateResponse");
607 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_HistoryUpdateResponse);
609 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
610 /* Array length field ignored: NoOfResults */
611 parseArrayComplex(subtree, tvb, pOffset, "Results", parseHistoryUpdateResult);
612 /* Array length field ignored: NoOfDiagnosticInfos */
613 parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
615 gint ett_opcua_CallRequest = -1;
616 void parseCallRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
618 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CallRequest");
619 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CallRequest);
621 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
622 /* Array length field ignored: NoOfMethodsToCall */
623 parseArrayComplex(subtree, tvb, pOffset, "MethodsToCall", parseCallMethodRequest);
625 gint ett_opcua_CallResponse = -1;
626 void parseCallResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
628 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CallResponse");
629 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CallResponse);
631 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
632 /* Array length field ignored: NoOfResults */
633 parseArrayComplex(subtree, tvb, pOffset, "Results", parseCallMethodResult);
634 /* Array length field ignored: NoOfDiagnosticInfos */
635 parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
637 gint ett_opcua_CreateMonitoredItemsRequest = -1;
638 void parseCreateMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
640 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CreateMonitoredItemsRequest");
641 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CreateMonitoredItemsRequest);
643 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
644 parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
645 parseTimestampsToReturn(subtree, tvb, pOffset);
646 /* Array length field ignored: NoOfItemsToCreate */
647 parseArrayComplex(subtree, tvb, pOffset, "ItemsToCreate", parseMonitoredItemCreateRequest);
649 gint ett_opcua_CreateMonitoredItemsResponse = -1;
650 void parseCreateMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
652 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CreateMonitoredItemsResponse");
653 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CreateMonitoredItemsResponse);
655 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
656 /* Array length field ignored: NoOfResults */
657 parseArrayComplex(subtree, tvb, pOffset, "Results", parseMonitoredItemCreateResult);
658 /* Array length field ignored: NoOfDiagnosticInfos */
659 parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
661 gint ett_opcua_ModifyMonitoredItemsRequest = -1;
662 void parseModifyMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
664 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "ModifyMonitoredItemsRequest");
665 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ModifyMonitoredItemsRequest);
667 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
668 parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
669 parseTimestampsToReturn(subtree, tvb, pOffset);
670 /* Array length field ignored: NoOfItemsToModify */
671 parseArrayComplex(subtree, tvb, pOffset, "ItemsToModify", parseMonitoredItemModifyRequest);
673 gint ett_opcua_ModifyMonitoredItemsResponse = -1;
674 void parseModifyMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
676 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "ModifyMonitoredItemsResponse");
677 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ModifyMonitoredItemsResponse);
679 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
680 /* Array length field ignored: NoOfResults */
681 parseArrayComplex(subtree, tvb, pOffset, "Results", parseMonitoredItemModifyResult);
682 /* Array length field ignored: NoOfDiagnosticInfos */
683 parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
685 gint ett_opcua_SetMonitoringModeRequest = -1;
686 void parseSetMonitoringModeRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
688 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "SetMonitoringModeRequest");
689 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SetMonitoringModeRequest);
691 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
692 parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
693 parseMonitoringMode(subtree, tvb, pOffset);
694 /* Array length field ignored: NoOfMonitoredItemIds */
695 parseArraySimple(subtree, tvb, pOffset, hf_opcua_MonitoredItemIds, parseUInt32);
697 gint ett_opcua_SetMonitoringModeResponse = -1;
698 void parseSetMonitoringModeResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
700 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "SetMonitoringModeResponse");
701 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SetMonitoringModeResponse);
703 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
704 /* Array length field ignored: NoOfResults */
705 parseArraySimple(subtree, tvb, pOffset, hf_opcua_Results, parseStatusCode);
706 /* Array length field ignored: NoOfDiagnosticInfos */
707 parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
709 gint ett_opcua_SetTriggeringRequest = -1;
710 void parseSetTriggeringRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
712 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "SetTriggeringRequest");
713 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SetTriggeringRequest);
715 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
716 parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
717 parseUInt32(subtree, tvb, pOffset, hf_opcua_TriggeringItemId);
718 /* Array length field ignored: NoOfLinksToAdd */
719 parseArraySimple(subtree, tvb, pOffset, hf_opcua_LinksToAdd, parseUInt32);
720 /* Array length field ignored: NoOfLinksToRemove */
721 parseArraySimple(subtree, tvb, pOffset, hf_opcua_LinksToRemove, parseUInt32);
723 gint ett_opcua_SetTriggeringResponse = -1;
724 void parseSetTriggeringResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
726 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "SetTriggeringResponse");
727 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SetTriggeringResponse);
729 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
730 /* Array length field ignored: NoOfAddResults */
731 parseArraySimple(subtree, tvb, pOffset, hf_opcua_AddResults, parseStatusCode);
732 /* Array length field ignored: NoOfAddDiagnosticInfos */
733 parseArrayComplex(subtree, tvb, pOffset, "AddDiagnosticInfos", parseDiagnosticInfo);
734 /* Array length field ignored: NoOfRemoveResults */
735 parseArraySimple(subtree, tvb, pOffset, hf_opcua_RemoveResults, parseStatusCode);
736 /* Array length field ignored: NoOfRemoveDiagnosticInfos */
737 parseArrayComplex(subtree, tvb, pOffset, "RemoveDiagnosticInfos", parseDiagnosticInfo);
739 gint ett_opcua_DeleteMonitoredItemsRequest = -1;
740 void parseDeleteMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
742 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "DeleteMonitoredItemsRequest");
743 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteMonitoredItemsRequest);
745 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
746 parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
747 /* Array length field ignored: NoOfMonitoredItemIds */
748 parseArraySimple(subtree, tvb, pOffset, hf_opcua_MonitoredItemIds, parseUInt32);
750 gint ett_opcua_DeleteMonitoredItemsResponse = -1;
751 void parseDeleteMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
753 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "DeleteMonitoredItemsResponse");
754 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteMonitoredItemsResponse);
756 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
757 /* Array length field ignored: NoOfResults */
758 parseArraySimple(subtree, tvb, pOffset, hf_opcua_Results, parseStatusCode);
759 /* Array length field ignored: NoOfDiagnosticInfos */
760 parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
762 gint ett_opcua_CreateSubscriptionRequest = -1;
763 void parseCreateSubscriptionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
765 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CreateSubscriptionRequest");
766 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CreateSubscriptionRequest);
768 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
769 parseDouble(subtree, tvb, pOffset, hf_opcua_RequestedPublishingInterval);
770 parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedLifetimeCount);
771 parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedMaxKeepAliveCount);
772 parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxNotificationsPerPublish);
773 parseBoolean(subtree, tvb, pOffset, hf_opcua_PublishingEnabled);
774 parseByte(subtree, tvb, pOffset, hf_opcua_Priority);
776 gint ett_opcua_CreateSubscriptionResponse = -1;
777 void parseCreateSubscriptionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
779 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "CreateSubscriptionResponse");
780 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_CreateSubscriptionResponse);
782 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
783 parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
784 parseDouble(subtree, tvb, pOffset, hf_opcua_RevisedPublishingInterval);
785 parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedLifetimeCount);
786 parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedMaxKeepAliveCount);
788 gint ett_opcua_ModifySubscriptionRequest = -1;
789 void parseModifySubscriptionRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
791 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "ModifySubscriptionRequest");
792 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ModifySubscriptionRequest);
794 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
795 parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
796 parseDouble(subtree, tvb, pOffset, hf_opcua_RequestedPublishingInterval);
797 parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedLifetimeCount);
798 parseUInt32(subtree, tvb, pOffset, hf_opcua_RequestedMaxKeepAliveCount);
799 parseUInt32(subtree, tvb, pOffset, hf_opcua_MaxNotificationsPerPublish);
800 parseByte(subtree, tvb, pOffset, hf_opcua_Priority);
802 gint ett_opcua_ModifySubscriptionResponse = -1;
803 void parseModifySubscriptionResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
805 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "ModifySubscriptionResponse");
806 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_ModifySubscriptionResponse);
808 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
809 parseDouble(subtree, tvb, pOffset, hf_opcua_RevisedPublishingInterval);
810 parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedLifetimeCount);
811 parseUInt32(subtree, tvb, pOffset, hf_opcua_RevisedMaxKeepAliveCount);
813 gint ett_opcua_SetPublishingModeRequest = -1;
814 void parseSetPublishingModeRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
816 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "SetPublishingModeRequest");
817 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SetPublishingModeRequest);
819 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
820 parseBoolean(subtree, tvb, pOffset, hf_opcua_PublishingEnabled);
821 /* Array length field ignored: NoOfSubscriptionIds */
822 parseArraySimple(subtree, tvb, pOffset, hf_opcua_SubscriptionIds, parseUInt32);
824 gint ett_opcua_SetPublishingModeResponse = -1;
825 void parseSetPublishingModeResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
827 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "SetPublishingModeResponse");
828 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_SetPublishingModeResponse);
830 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
831 /* Array length field ignored: NoOfResults */
832 parseArraySimple(subtree, tvb, pOffset, hf_opcua_Results, parseStatusCode);
833 /* Array length field ignored: NoOfDiagnosticInfos */
834 parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
836 gint ett_opcua_PublishRequest = -1;
837 void parsePublishRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
839 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "PublishRequest");
840 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_PublishRequest);
842 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
843 /* Array length field ignored: NoOfSubscriptionAcknowledgements */
844 parseArrayComplex(subtree, tvb, pOffset, "SubscriptionAcknowledgements", parseSubscriptionAcknowledgement);
846 gint ett_opcua_PublishResponse = -1;
847 void parsePublishResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
849 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "PublishResponse");
850 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_PublishResponse);
852 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
853 parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
854 /* Array length field ignored: NoOfAvailableSequenceNumbers */
855 parseArraySimple(subtree, tvb, pOffset, hf_opcua_AvailableSequenceNumbers, parseUInt32);
856 parseBoolean(subtree, tvb, pOffset, hf_opcua_MoreNotifications);
857 parseNotificationMessage(subtree, tvb, pOffset, "NotificationMessage");
858 /* Array length field ignored: NoOfResults */
859 parseArraySimple(subtree, tvb, pOffset, hf_opcua_Results, parseStatusCode);
860 /* Array length field ignored: NoOfDiagnosticInfos */
861 parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
863 gint ett_opcua_RepublishRequest = -1;
864 void parseRepublishRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
866 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "RepublishRequest");
867 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RepublishRequest);
869 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
870 parseUInt32(subtree, tvb, pOffset, hf_opcua_SubscriptionId);
871 parseUInt32(subtree, tvb, pOffset, hf_opcua_RetransmitSequenceNumber);
873 gint ett_opcua_RepublishResponse = -1;
874 void parseRepublishResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
876 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "RepublishResponse");
877 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_RepublishResponse);
879 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
880 parseNotificationMessage(subtree, tvb, pOffset, "NotificationMessage");
882 gint ett_opcua_TransferSubscriptionsRequest = -1;
883 void parseTransferSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
885 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "TransferSubscriptionsRequest");
886 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TransferSubscriptionsRequest);
888 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
889 /* Array length field ignored: NoOfSubscriptionIds */
890 parseArraySimple(subtree, tvb, pOffset, hf_opcua_SubscriptionIds, parseUInt32);
891 parseBoolean(subtree, tvb, pOffset, hf_opcua_SendInitialValues);
893 gint ett_opcua_TransferSubscriptionsResponse = -1;
894 void parseTransferSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
896 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "TransferSubscriptionsResponse");
897 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_TransferSubscriptionsResponse);
899 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
900 /* Array length field ignored: NoOfResults */
901 parseArrayComplex(subtree, tvb, pOffset, "Results", parseTransferResult);
902 /* Array length field ignored: NoOfDiagnosticInfos */
903 parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
905 gint ett_opcua_DeleteSubscriptionsRequest = -1;
906 void parseDeleteSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
908 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "DeleteSubscriptionsRequest");
909 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteSubscriptionsRequest);
911 parseRequestHeader(subtree, tvb, pOffset, "RequestHeader");
912 /* Array length field ignored: NoOfSubscriptionIds */
913 parseArraySimple(subtree, tvb, pOffset, hf_opcua_SubscriptionIds, parseUInt32);
915 gint ett_opcua_DeleteSubscriptionsResponse = -1;
916 void parseDeleteSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, gint *pOffset)
918 proto_item *ti = proto_tree_add_text(tree, tvb, 0, -1, "DeleteSubscriptionsResponse");
919 proto_tree *subtree = proto_item_add_subtree(ti, ett_opcua_DeleteSubscriptionsResponse);
921 parseResponseHeader(subtree, tvb, pOffset, "ResponseHeader");
922 /* Array length field ignored: NoOfResults */
923 parseArraySimple(subtree, tvb, pOffset, hf_opcua_Results, parseStatusCode);
924 /* Array length field ignored: NoOfDiagnosticInfos */
925 parseArrayComplex(subtree, tvb, pOffset, "DiagnosticInfos", parseDiagnosticInfo);
928 /** Setup protocol subtree array */
931 &ett_opcua_TestStackRequest,
932 &ett_opcua_TestStackResponse,
933 &ett_opcua_TestStackExRequest,
934 &ett_opcua_TestStackExResponse,
935 &ett_opcua_FindServersRequest,
936 &ett_opcua_FindServersResponse,
937 &ett_opcua_GetEndpointsRequest,
938 &ett_opcua_GetEndpointsResponse,
939 &ett_opcua_RegisterServerRequest,
940 &ett_opcua_RegisterServerResponse,
941 &ett_opcua_OpenSecureChannelRequest,
942 &ett_opcua_OpenSecureChannelResponse,
943 &ett_opcua_CloseSecureChannelRequest,
944 &ett_opcua_CloseSecureChannelResponse,
945 &ett_opcua_CreateSessionRequest,
946 &ett_opcua_CreateSessionResponse,
947 &ett_opcua_ActivateSessionRequest,
948 &ett_opcua_ActivateSessionResponse,
949 &ett_opcua_CloseSessionRequest,
950 &ett_opcua_CloseSessionResponse,
951 &ett_opcua_CancelRequest,
952 &ett_opcua_CancelResponse,
953 &ett_opcua_AddNodesRequest,
954 &ett_opcua_AddNodesResponse,
955 &ett_opcua_AddReferencesRequest,
956 &ett_opcua_AddReferencesResponse,
957 &ett_opcua_DeleteNodesRequest,
958 &ett_opcua_DeleteNodesResponse,
959 &ett_opcua_DeleteReferencesRequest,
960 &ett_opcua_DeleteReferencesResponse,
961 &ett_opcua_BrowseRequest,
962 &ett_opcua_BrowseResponse,
963 &ett_opcua_BrowseNextRequest,
964 &ett_opcua_BrowseNextResponse,
965 &ett_opcua_TranslateBrowsePathsToNodeIdsRequest,
966 &ett_opcua_TranslateBrowsePathsToNodeIdsResponse,
967 &ett_opcua_RegisterNodesRequest,
968 &ett_opcua_RegisterNodesResponse,
969 &ett_opcua_UnregisterNodesRequest,
970 &ett_opcua_UnregisterNodesResponse,
971 &ett_opcua_QueryFirstRequest,
972 &ett_opcua_QueryFirstResponse,
973 &ett_opcua_QueryNextRequest,
974 &ett_opcua_QueryNextResponse,
975 &ett_opcua_ReadRequest,
976 &ett_opcua_ReadResponse,
977 &ett_opcua_HistoryReadRequest,
978 &ett_opcua_HistoryReadResponse,
979 &ett_opcua_WriteRequest,
980 &ett_opcua_WriteResponse,
981 &ett_opcua_HistoryUpdateRequest,
982 &ett_opcua_HistoryUpdateResponse,
983 &ett_opcua_CallRequest,
984 &ett_opcua_CallResponse,
985 &ett_opcua_CreateMonitoredItemsRequest,
986 &ett_opcua_CreateMonitoredItemsResponse,
987 &ett_opcua_ModifyMonitoredItemsRequest,
988 &ett_opcua_ModifyMonitoredItemsResponse,
989 &ett_opcua_SetMonitoringModeRequest,
990 &ett_opcua_SetMonitoringModeResponse,
991 &ett_opcua_SetTriggeringRequest,
992 &ett_opcua_SetTriggeringResponse,
993 &ett_opcua_DeleteMonitoredItemsRequest,
994 &ett_opcua_DeleteMonitoredItemsResponse,
995 &ett_opcua_CreateSubscriptionRequest,
996 &ett_opcua_CreateSubscriptionResponse,
997 &ett_opcua_ModifySubscriptionRequest,
998 &ett_opcua_ModifySubscriptionResponse,
999 &ett_opcua_SetPublishingModeRequest,
1000 &ett_opcua_SetPublishingModeResponse,
1001 &ett_opcua_PublishRequest,
1002 &ett_opcua_PublishResponse,
1003 &ett_opcua_RepublishRequest,
1004 &ett_opcua_RepublishResponse,
1005 &ett_opcua_TransferSubscriptionsRequest,
1006 &ett_opcua_TransferSubscriptionsResponse,
1007 &ett_opcua_DeleteSubscriptionsRequest,
1008 &ett_opcua_DeleteSubscriptionsResponse,
1011 void registerServiceTypes(void)
1013 proto_register_subtree_array(ett, array_length(ett));