nexmon – Blame information for rev 1

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