/******************************************************************************
** Copyright (C) 2006-2015 ascolab GmbH. All Rights Reserved.
** Web: http://www.ascolab.com
**
** SPDX-License-Identifier: GPL-2.0-or-later
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** Project: OpcUa Wireshark Plugin
**
** Description: OpcUa Service Type Parser
**
** This file was autogenerated on 13.10.2015.
** DON'T MODIFY THIS FILE!
** XXX - well, except that you may have to.  See the README.
**
******************************************************************************/

#include <glib.h>
#include <epan/packet.h>

/**
 * @brief Wireshark ett (expert tree type) registration indices for OPC UA service message subtrees.
 *
 * Each pair of variables covers the singular struct dissection tree and its
 * corresponding array-wrapper tree.  These are declared extern so that the
 * registration arrays can live in the generated source file while the
 * dissector entry-points reference them from other translation units.
 */

/* ── ServiceFault ─────────────────────────────────────────────────────────── */
/** @brief ett index for the ServiceFault structure subtree. */
extern int ett_opcua_ServiceFault;
/** @brief ett index for an array-of-ServiceFault subtree. */
extern int ett_opcua_array_ServiceFault;

/* ── FindServers ──────────────────────────────────────────────────────────── */
/** @brief ett index for the FindServersRequest structure subtree. */
extern int ett_opcua_FindServersRequest;
/** @brief ett index for an array-of-FindServersRequest subtree. */
extern int ett_opcua_array_FindServersRequest;
/** @brief ett index for the FindServersResponse structure subtree. */
extern int ett_opcua_FindServersResponse;
/** @brief ett index for an array-of-FindServersResponse subtree. */
extern int ett_opcua_array_FindServersResponse;

/* ── FindServersOnNetwork ─────────────────────────────────────────────────── */
/** @brief ett index for the FindServersOnNetworkRequest structure subtree. */
extern int ett_opcua_FindServersOnNetworkRequest;
/** @brief ett index for an array-of-FindServersOnNetworkRequest subtree. */
extern int ett_opcua_array_FindServersOnNetworkRequest;
/** @brief ett index for the FindServersOnNetworkResponse structure subtree. */
extern int ett_opcua_FindServersOnNetworkResponse;
/** @brief ett index for an array-of-FindServersOnNetworkResponse subtree. */
extern int ett_opcua_array_FindServersOnNetworkResponse;

/* ── GetEndpoints ─────────────────────────────────────────────────────────── */
/** @brief ett index for the GetEndpointsRequest structure subtree. */
extern int ett_opcua_GetEndpointsRequest;
/** @brief ett index for an array-of-GetEndpointsRequest subtree. */
extern int ett_opcua_array_GetEndpointsRequest;
/** @brief ett index for the GetEndpointsResponse structure subtree. */
extern int ett_opcua_GetEndpointsResponse;
/** @brief ett index for an array-of-GetEndpointsResponse subtree. */
extern int ett_opcua_array_GetEndpointsResponse;

/* ── RegisterServer ───────────────────────────────────────────────────────── */
/** @brief ett index for the RegisterServerRequest structure subtree. */
extern int ett_opcua_RegisterServerRequest;
/** @brief ett index for an array-of-RegisterServerRequest subtree. */
extern int ett_opcua_array_RegisterServerRequest;
/** @brief ett index for the RegisterServerResponse structure subtree. */
extern int ett_opcua_RegisterServerResponse;
/** @brief ett index for an array-of-RegisterServerResponse subtree. */
extern int ett_opcua_array_RegisterServerResponse;

/* ── RegisterServer2 ──────────────────────────────────────────────────────── */
/** @brief ett index for the RegisterServer2Request structure subtree. */
extern int ett_opcua_RegisterServer2Request;
/** @brief ett index for an array-of-RegisterServer2Request subtree. */
extern int ett_opcua_array_RegisterServer2Request;
/** @brief ett index for the RegisterServer2Response structure subtree. */
extern int ett_opcua_RegisterServer2Response;
/** @brief ett index for an array-of-RegisterServer2Response subtree. */
extern int ett_opcua_array_RegisterServer2Response;

/* ── OpenSecureChannel ────────────────────────────────────────────────────── */
/** @brief ett index for the OpenSecureChannelRequest structure subtree. */
extern int ett_opcua_OpenSecureChannelRequest;
/** @brief ett index for an array-of-OpenSecureChannelRequest subtree. */
extern int ett_opcua_array_OpenSecureChannelRequest;
/** @brief ett index for the OpenSecureChannelResponse structure subtree. */
extern int ett_opcua_OpenSecureChannelResponse;
/** @brief ett index for an array-of-OpenSecureChannelResponse subtree. */
extern int ett_opcua_array_OpenSecureChannelResponse;

/* ── CloseSecureChannel ───────────────────────────────────────────────────── */
/** @brief ett index for the CloseSecureChannelRequest structure subtree. */
extern int ett_opcua_CloseSecureChannelRequest;
/** @brief ett index for an array-of-CloseSecureChannelRequest subtree. */
extern int ett_opcua_array_CloseSecureChannelRequest;
/** @brief ett index for the CloseSecureChannelResponse structure subtree. */
extern int ett_opcua_CloseSecureChannelResponse;
/** @brief ett index for an array-of-CloseSecureChannelResponse subtree. */
extern int ett_opcua_array_CloseSecureChannelResponse;

/* ── CreateSession ────────────────────────────────────────────────────────── */
/** @brief ett index for the CreateSessionRequest structure subtree. */
extern int ett_opcua_CreateSessionRequest;
/** @brief ett index for an array-of-CreateSessionRequest subtree. */
extern int ett_opcua_array_CreateSessionRequest;
/** @brief ett index for the CreateSessionResponse structure subtree. */
extern int ett_opcua_CreateSessionResponse;
/** @brief ett index for an array-of-CreateSessionResponse subtree. */
extern int ett_opcua_array_CreateSessionResponse;

/* ── ActivateSession ──────────────────────────────────────────────────────── */
/** @brief ett index for the ActivateSessionRequest structure subtree. */
extern int ett_opcua_ActivateSessionRequest;
/** @brief ett index for an array-of-ActivateSessionRequest subtree. */
extern int ett_opcua_array_ActivateSessionRequest;
/** @brief ett index for the ActivateSessionResponse structure subtree. */
extern int ett_opcua_ActivateSessionResponse;
/** @brief ett index for an array-of-ActivateSessionResponse subtree. */
extern int ett_opcua_array_ActivateSessionResponse;

/* ── CloseSession ─────────────────────────────────────────────────────────── */
/** @brief ett index for the CloseSessionRequest structure subtree. */
extern int ett_opcua_CloseSessionRequest;
/** @brief ett index for an array-of-CloseSessionRequest subtree. */
extern int ett_opcua_array_CloseSessionRequest;
/** @brief ett index for the CloseSessionResponse structure subtree. */
extern int ett_opcua_CloseSessionResponse;
/** @brief ett index for an array-of-CloseSessionResponse subtree. */
extern int ett_opcua_array_CloseSessionResponse;

/* ── Cancel ───────────────────────────────────────────────────────────────── */
/** @brief ett index for the CancelRequest structure subtree. */
extern int ett_opcua_CancelRequest;
/** @brief ett index for an array-of-CancelRequest subtree. */
extern int ett_opcua_array_CancelRequest;
/** @brief ett index for the CancelResponse structure subtree. */
extern int ett_opcua_CancelResponse;
/** @brief ett index for an array-of-CancelResponse subtree. */
extern int ett_opcua_array_CancelResponse;

/* ── AddNodes ─────────────────────────────────────────────────────────────── */
/** @brief ett index for the AddNodesRequest structure subtree. */
extern int ett_opcua_AddNodesRequest;
/** @brief ett index for an array-of-AddNodesRequest subtree. */
extern int ett_opcua_array_AddNodesRequest;
/** @brief ett index for the AddNodesResponse structure subtree. */
extern int ett_opcua_AddNodesResponse;
/** @brief ett index for an array-of-AddNodesResponse subtree. */
extern int ett_opcua_array_AddNodesResponse;

/* ── AddReferences ────────────────────────────────────────────────────────── */
/** @brief ett index for the AddReferencesRequest structure subtree. */
extern int ett_opcua_AddReferencesRequest;
/** @brief ett index for an array-of-AddReferencesRequest subtree. */
extern int ett_opcua_array_AddReferencesRequest;
/** @brief ett index for the AddReferencesResponse structure subtree. */
extern int ett_opcua_AddReferencesResponse;
/** @brief ett index for an array-of-AddReferencesResponse subtree. */
extern int ett_opcua_array_AddReferencesResponse;

/* ── DeleteNodes ──────────────────────────────────────────────────────────── */
/** @brief ett index for the DeleteNodesRequest structure subtree. */
extern int ett_opcua_DeleteNodesRequest;
/** @brief ett index for an array-of-DeleteNodesRequest subtree. */
extern int ett_opcua_array_DeleteNodesRequest;
/** @brief ett index for the DeleteNodesResponse structure subtree. */
extern int ett_opcua_DeleteNodesResponse;
/** @brief ett index for an array-of-DeleteNodesResponse subtree. */
extern int ett_opcua_array_DeleteNodesResponse;

/* ── DeleteReferences ────────────────────────────────────────────────────── */
/** @brief ett index for the DeleteReferencesRequest structure subtree. */
extern int ett_opcua_DeleteReferencesRequest;
/** @brief ett index for an array-of-DeleteReferencesRequest subtree. */
extern int ett_opcua_array_DeleteReferencesRequest;
/** @brief ett index for the DeleteReferencesResponse structure subtree. */
extern int ett_opcua_DeleteReferencesResponse;
/** @brief ett index for an array-of-DeleteReferencesResponse subtree. */
extern int ett_opcua_array_DeleteReferencesResponse;

/* ── Browse ───────────────────────────────────────────────────────────────── */
/** @brief ett index for the BrowseRequest structure subtree. */
extern int ett_opcua_BrowseRequest;
/** @brief ett index for an array-of-BrowseRequest subtree. */
extern int ett_opcua_array_BrowseRequest;
/** @brief ett index for the BrowseResponse structure subtree. */
extern int ett_opcua_BrowseResponse;
/** @brief ett index for an array-of-BrowseResponse subtree. */
extern int ett_opcua_array_BrowseResponse;

/* ── BrowseNext ───────────────────────────────────────────────────────────── */
/** @brief ett index for the BrowseNextRequest structure subtree. */
extern int ett_opcua_BrowseNextRequest;
/** @brief ett index for an array-of-BrowseNextRequest subtree. */
extern int ett_opcua_array_BrowseNextRequest;
/** @brief ett index for the BrowseNextResponse structure subtree. */
extern int ett_opcua_BrowseNextResponse;
/** @brief ett index for an array-of-BrowseNextResponse subtree. */
extern int ett_opcua_array_BrowseNextResponse;

/* ── TranslateBrowsePathsToNodeIds ────────────────────────────────────────── */
/** @brief ett index for the TranslateBrowsePathsToNodeIdsRequest structure subtree. */
extern int ett_opcua_TranslateBrowsePathsToNodeIdsRequest;
/** @brief ett index for an array-of-TranslateBrowsePathsToNodeIdsRequest subtree. */
extern int ett_opcua_array_TranslateBrowsePathsToNodeIdsRequest;
/** @brief ett index for the TranslateBrowsePathsToNodeIdsResponse structure subtree. */
extern int ett_opcua_TranslateBrowsePathsToNodeIdsResponse;
/** @brief ett index for an array-of-TranslateBrowsePathsToNodeIdsResponse subtree. */
extern int ett_opcua_array_TranslateBrowsePathsToNodeIdsResponse;

/* ── RegisterNodes ────────────────────────────────────────────────────────── */
/** @brief ett index for the RegisterNodesRequest structure subtree. */
extern int ett_opcua_RegisterNodesRequest;
/** @brief ett index for an array-of-RegisterNodesRequest subtree. */
extern int ett_opcua_array_RegisterNodesRequest;
/** @brief ett index for the RegisterNodesResponse structure subtree. */
extern int ett_opcua_RegisterNodesResponse;
/** @brief ett index for an array-of-RegisterNodesResponse subtree. */
extern int ett_opcua_array_RegisterNodesResponse;

/* ── UnregisterNodes ──────────────────────────────────────────────────────── */
/** @brief ett index for the UnregisterNodesRequest structure subtree. */
extern int ett_opcua_UnregisterNodesRequest;
/** @brief ett index for an array-of-UnregisterNodesRequest subtree. */
extern int ett_opcua_array_UnregisterNodesRequest;
/** @brief ett index for the UnregisterNodesResponse structure subtree. */
extern int ett_opcua_UnregisterNodesResponse;
/** @brief ett index for an array-of-UnregisterNodesResponse subtree. */
extern int ett_opcua_array_UnregisterNodesResponse;

/* ── QueryFirst ───────────────────────────────────────────────────────────── */
/** @brief ett index for the QueryFirstRequest structure subtree. */
extern int ett_opcua_QueryFirstRequest;
/** @brief ett index for an array-of-QueryFirstRequest subtree. */
extern int ett_opcua_array_QueryFirstRequest;
/** @brief ett index for the QueryFirstResponse structure subtree. */
extern int ett_opcua_QueryFirstResponse;
/** @brief ett index for an array-of-QueryFirstResponse subtree. */
extern int ett_opcua_array_QueryFirstResponse;

/* ── QueryNext ────────────────────────────────────────────────────────────── */
/** @brief ett index for the QueryNextRequest structure subtree. */
extern int ett_opcua_QueryNextRequest;
/** @brief ett index for an array-of-QueryNextRequest subtree. */
extern int ett_opcua_array_QueryNextRequest;
/** @brief ett index for the QueryNextResponse structure subtree. */
extern int ett_opcua_QueryNextResponse;
/** @brief ett index for an array-of-QueryNextResponse subtree. */
extern int ett_opcua_array_QueryNextResponse;

/* ── Read ─────────────────────────────────────────────────────────────────── */
/** @brief ett index for the ReadRequest structure subtree. */
extern int ett_opcua_ReadRequest;
/** @brief ett index for an array-of-ReadRequest subtree. */
extern int ett_opcua_array_ReadRequest;
/** @brief ett index for the ReadResponse structure subtree. */
extern int ett_opcua_ReadResponse;
/** @brief ett index for an array-of-ReadResponse subtree. */
extern int ett_opcua_array_ReadResponse;

/* ── HistoryRead ──────────────────────────────────────────────────────────── */
/** @brief ett index for the HistoryReadRequest structure subtree. */
extern int ett_opcua_HistoryReadRequest;
/** @brief ett index for an array-of-HistoryReadRequest subtree. */
extern int ett_opcua_array_HistoryReadRequest;
/** @brief ett index for the HistoryReadResponse structure subtree. */
extern int ett_opcua_HistoryReadResponse;
/** @brief ett index for an array-of-HistoryReadResponse subtree. */
extern int ett_opcua_array_HistoryReadResponse;

/* ── Write ────────────────────────────────────────────────────────────────── */
/** @brief ett index for the WriteRequest structure subtree. */
extern int ett_opcua_WriteRequest;
/** @brief ett index for an array-of-WriteRequest subtree. */
extern int ett_opcua_array_WriteRequest;
/** @brief ett index for the WriteResponse structure subtree. */
extern int ett_opcua_WriteResponse;
/** @brief ett index for an array-of-WriteResponse subtree. */
extern int ett_opcua_array_WriteResponse;

/* ── HistoryUpdate ────────────────────────────────────────────────────────── */
/** @brief ett index for the HistoryUpdateRequest structure subtree. */
extern int ett_opcua_HistoryUpdateRequest;
/** @brief ett index for an array-of-HistoryUpdateRequest subtree. */
extern int ett_opcua_array_HistoryUpdateRequest;
/** @brief ett index for the HistoryUpdateResponse structure subtree. */
extern int ett_opcua_HistoryUpdateResponse;
/** @brief ett index for an array-of-HistoryUpdateResponse subtree. */
extern int ett_opcua_array_HistoryUpdateResponse;

/* ── Call ─────────────────────────────────────────────────────────────────── */
/** @brief ett index for the CallRequest structure subtree. */
extern int ett_opcua_CallRequest;
/** @brief ett index for an array-of-CallRequest subtree. */
extern int ett_opcua_array_CallRequest;
/** @brief ett index for the CallResponse structure subtree. */
extern int ett_opcua_CallResponse;
/** @brief ett index for an array-of-CallResponse subtree. */
extern int ett_opcua_array_CallResponse;

/* ── CreateMonitoredItems ─────────────────────────────────────────────────── */
/** @brief ett index for the CreateMonitoredItemsRequest structure subtree. */
extern int ett_opcua_CreateMonitoredItemsRequest;
/** @brief ett index for an array-of-CreateMonitoredItemsRequest subtree. */
extern int ett_opcua_array_CreateMonitoredItemsRequest;
/** @brief ett index for the CreateMonitoredItemsResponse structure subtree. */
extern int ett_opcua_CreateMonitoredItemsResponse;
/** @brief ett index for an array-of-CreateMonitoredItemsResponse subtree. */
extern int ett_opcua_array_CreateMonitoredItemsResponse;

/* ── ModifyMonitoredItems ─────────────────────────────────────────────────── */
/** @brief ett index for the ModifyMonitoredItemsRequest structure subtree. */
extern int ett_opcua_ModifyMonitoredItemsRequest;
/** @brief ett index for an array-of-ModifyMonitoredItemsRequest subtree. */
extern int ett_opcua_array_ModifyMonitoredItemsRequest;
/** @brief ett index for the ModifyMonitoredItemsResponse structure subtree. */
extern int ett_opcua_ModifyMonitoredItemsResponse;
/** @brief ett index for an array-of-ModifyMonitoredItemsResponse subtree. */
extern int ett_opcua_array_ModifyMonitoredItemsResponse;

/* ── SetMonitoringMode ────────────────────────────────────────────────────── */
/** @brief ett index for the SetMonitoringModeRequest structure subtree. */
extern int ett_opcua_SetMonitoringModeRequest;
/** @brief ett index for an array-of-SetMonitoringModeRequest subtree. */
extern int ett_opcua_array_SetMonitoringModeRequest;
/** @brief ett index for the SetMonitoringModeResponse structure subtree. */
extern int ett_opcua_SetMonitoringModeResponse;
/** @brief ett index for an array-of-SetMonitoringModeResponse subtree. */
extern int ett_opcua_array_SetMonitoringModeResponse;

/* ── SetTriggering ────────────────────────────────────────────────────────── */
/** @brief ett index for the SetTriggeringRequest structure subtree. */
extern int ett_opcua_SetTriggeringRequest;
/** @brief ett index for an array-of-SetTriggeringRequest subtree. */
extern int ett_opcua_array_SetTriggeringRequest;
/** @brief ett index for the SetTriggeringResponse structure subtree. */
extern int ett_opcua_SetTriggeringResponse;
/** @brief ett index for an array-of-SetTriggeringResponse subtree. */
extern int ett_opcua_array_SetTriggeringResponse;

/* ── DeleteMonitoredItems ─────────────────────────────────────────────────── */
/** @brief ett index for the DeleteMonitoredItemsRequest structure subtree. */
extern int ett_opcua_DeleteMonitoredItemsRequest;
/** @brief ett index for an array-of-DeleteMonitoredItemsRequest subtree. */
extern int ett_opcua_array_DeleteMonitoredItemsRequest;
/** @brief ett index for the DeleteMonitoredItemsResponse structure subtree. */
extern int ett_opcua_DeleteMonitoredItemsResponse;
/** @brief ett index for an array-of-DeleteMonitoredItemsResponse subtree. */
extern int ett_opcua_array_DeleteMonitoredItemsResponse;

/* ── CreateSubscription ───────────────────────────────────────────────────── */
/** @brief ett index for the CreateSubscriptionRequest structure subtree. */
extern int ett_opcua_CreateSubscriptionRequest;
/** @brief ett index for an array-of-CreateSubscriptionRequest subtree. */
extern int ett_opcua_array_CreateSubscriptionRequest;
/** @brief ett index for the CreateSubscriptionResponse structure subtree. */
extern int ett_opcua_CreateSubscriptionResponse;
/** @brief ett index for an array-of-CreateSubscriptionResponse subtree. */
extern int ett_opcua_array_CreateSubscriptionResponse;

/* ── ModifySubscription ───────────────────────────────────────────────────── */
/** @brief ett index for the ModifySubscriptionRequest structure subtree. */
extern int ett_opcua_ModifySubscriptionRequest;
/** @brief ett index for an array-of-ModifySubscriptionRequest subtree. */
extern int ett_opcua_array_ModifySubscriptionRequest;
/** @brief ett index for the ModifySubscriptionResponse structure subtree. */
extern int ett_opcua_ModifySubscriptionResponse;
/** @brief ett index for an array-of-ModifySubscriptionResponse subtree. */
extern int ett_opcua_array_ModifySubscriptionResponse;

/* ── SetPublishingMode ────────────────────────────────────────────────────── */
/** @brief ett index for the SetPublishingModeRequest structure subtree. */
extern int ett_opcua_SetPublishingModeRequest;
/** @brief ett index for an array-of-SetPublishingModeRequest subtree. */
extern int ett_opcua_array_SetPublishingModeRequest;
/** @brief ett index for the SetPublishingModeResponse structure subtree. */
extern int ett_opcua_SetPublishingModeResponse;
/** @brief ett index for an array-of-SetPublishingModeResponse subtree. */
extern int ett_opcua_array_SetPublishingModeResponse;

/* ── Publish ──────────────────────────────────────────────────────────────── */
/** @brief ett index for the PublishRequest structure subtree. */
extern int ett_opcua_PublishRequest;
/** @brief ett index for an array-of-PublishRequest subtree. */
extern int ett_opcua_array_PublishRequest;
/** @brief ett index for the PublishResponse structure subtree. */
extern int ett_opcua_PublishResponse;
/** @brief ett index for an array-of-PublishResponse subtree. */
extern int ett_opcua_array_PublishResponse;

/* ── Republish ────────────────────────────────────────────────────────────── */
/** @brief ett index for the RepublishRequest structure subtree. */
extern int ett_opcua_RepublishRequest;
/** @brief ett index for an array-of-RepublishRequest subtree. */
extern int ett_opcua_array_RepublishRequest;
/** @brief ett index for the RepublishResponse structure subtree. */
extern int ett_opcua_RepublishResponse;
/** @brief ett index for an array-of-RepublishResponse subtree. */
extern int ett_opcua_array_RepublishResponse;

/* ── TransferSubscriptions ────────────────────────────────────────────────── */
/** @brief ett index for the TransferSubscriptionsRequest structure subtree. */
extern int ett_opcua_TransferSubscriptionsRequest;
/** @brief ett index for an array-of-TransferSubscriptionsRequest subtree. */
extern int ett_opcua_array_TransferSubscriptionsRequest;
/** @brief ett index for the TransferSubscriptionsResponse structure subtree. */
extern int ett_opcua_TransferSubscriptionsResponse;
/** @brief ett index for an array-of-TransferSubscriptionsResponse subtree. */
extern int ett_opcua_array_TransferSubscriptionsResponse;

/* ── DeleteSubscriptions ──────────────────────────────────────────────────── */
/** @brief ett index for the DeleteSubscriptionsRequest structure subtree. */
extern int ett_opcua_DeleteSubscriptionsRequest;
/** @brief ett index for an array-of-DeleteSubscriptionsRequest subtree. */
extern int ett_opcua_array_DeleteSubscriptionsRequest;
/** @brief ett index for the DeleteSubscriptionsResponse structure subtree. */
extern int ett_opcua_DeleteSubscriptionsResponse;
/** @brief ett index for an array-of-DeleteSubscriptionsResponse subtree. */
extern int ett_opcua_array_DeleteSubscriptionsResponse;

/* ── TestStack ────────────────────────────────────────────────────────────── */
/** @brief ett index for the TestStackRequest structure subtree. */
extern int ett_opcua_TestStackRequest;
/** @brief ett index for an array-of-TestStackRequest subtree. */
extern int ett_opcua_array_TestStackRequest;
/** @brief ett index for the TestStackResponse structure subtree. */
extern int ett_opcua_TestStackResponse;
/** @brief ett index for an array-of-TestStackResponse subtree. */
extern int ett_opcua_array_TestStackResponse;

/* ── TestStackEx ──────────────────────────────────────────────────────────── */
/** @brief ett index for the TestStackExRequest structure subtree. */
extern int ett_opcua_TestStackExRequest;
/** @brief ett index for an array-of-TestStackExRequest subtree. */
extern int ett_opcua_array_TestStackExRequest;
/** @brief ett index for the TestStackExResponse structure subtree. */
extern int ett_opcua_TestStackExResponse;
/** @brief ett index for an array-of-TestStackExResponse subtree. */
extern int ett_opcua_array_TestStackExResponse;

/** @brief Parse a ServiceFault message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseServiceFault(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a FindServersRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseFindServersRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a FindServersResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseFindServersResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a FindServersOnNetworkRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseFindServersOnNetworkRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a FindServersOnNetworkResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseFindServersOnNetworkResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a GetEndpointsRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseGetEndpointsRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a GetEndpointsResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseGetEndpointsResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a RegisterServerRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseRegisterServerRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a RegisterServerResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseRegisterServerResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a RegisterServer2Request message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseRegisterServer2Request(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a RegisterServer2Response message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseRegisterServer2Response(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse an OpenSecureChannelRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseOpenSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse an OpenSecureChannelResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseOpenSecureChannelResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a CloseSecureChannelRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseCloseSecureChannelRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a CloseSecureChannelResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseCloseSecureChannelResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a CreateSessionRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseCreateSessionRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a CreateSessionResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseCreateSessionResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse an ActivateSessionRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseActivateSessionRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse an ActivateSessionResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseActivateSessionResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a CloseSessionRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseCloseSessionRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a CloseSessionResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseCloseSessionResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a CancelRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseCancelRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a CancelResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseCancelResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse an AddNodesRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseAddNodesRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse an AddNodesResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseAddNodesResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse an AddReferencesRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseAddReferencesRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse an AddReferencesResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseAddReferencesResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a DeleteNodesRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseDeleteNodesRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a DeleteNodesResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseDeleteNodesResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a DeleteReferencesRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseDeleteReferencesRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a DeleteReferencesResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseDeleteReferencesResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a BrowseRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseBrowseRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a BrowseResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseBrowseResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a BrowseNextRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseBrowseNextRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a BrowseNextResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseBrowseNextResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a TranslateBrowsePathsToNodeIdsRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseTranslateBrowsePathsToNodeIdsRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a TranslateBrowsePathsToNodeIdsResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseTranslateBrowsePathsToNodeIdsResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a RegisterNodesRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseRegisterNodesRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a RegisterNodesResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseRegisterNodesResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse an UnregisterNodesRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseUnregisterNodesRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse an UnregisterNodesResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseUnregisterNodesResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a QueryFirstRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseQueryFirstRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a QueryFirstResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseQueryFirstResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a QueryNextRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseQueryNextRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a QueryNextResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseQueryNextResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a ReadRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseReadRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a ReadResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseReadResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a HistoryReadRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseHistoryReadRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a HistoryReadResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseHistoryReadResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a WriteRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseWriteRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a WriteResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseWriteResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a HistoryUpdateRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseHistoryUpdateRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a HistoryUpdateResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseHistoryUpdateResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a CallRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseCallRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a CallResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseCallResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a CreateMonitoredItemsRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseCreateMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a CreateMonitoredItemsResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseCreateMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a ModifyMonitoredItemsRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseModifyMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a ModifyMonitoredItemsResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseModifyMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a SetMonitoringModeRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseSetMonitoringModeRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a SetMonitoringModeResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseSetMonitoringModeResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a SetTriggeringRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseSetTriggeringRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a SetTriggeringResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseSetTriggeringResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a DeleteMonitoredItemsRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseDeleteMonitoredItemsRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a DeleteMonitoredItemsResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseDeleteMonitoredItemsResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a CreateSubscriptionRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseCreateSubscriptionRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a CreateSubscriptionResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseCreateSubscriptionResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a ModifySubscriptionRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseModifySubscriptionRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a ModifySubscriptionResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseModifySubscriptionResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a SetPublishingModeRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseSetPublishingModeRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a SetPublishingModeResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseSetPublishingModeResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a PublishRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parsePublishRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a PublishResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parsePublishResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a RepublishRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseRepublishRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a RepublishResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseRepublishResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a TransferSubscriptionsRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseTransferSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a TransferSubscriptionsResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseTransferSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a DeleteSubscriptionsRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseDeleteSubscriptionsRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a DeleteSubscriptionsResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseDeleteSubscriptionsResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a TestStackRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseTestStackRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a TestStackResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseTestStackResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a TestStackExRequest message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseTestStackExRequest(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/** @brief Parse a TestStackExResponse message into the protocol tree.
 *  @param tree    The protocol tree to add the subtree to.
 *  @param tvb     The TVB buffer containing the data to parse.
 *  @param pinfo   The packet information structure.
 *  @param pOffset Pointer to the current offset in the TVB buffer. */
void parseTestStackExResponse(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, int *pOffset);

/**
 * @brief Register the OPC UA service types with the dissector.
 */
void registerServiceTypes(void);
