1 /******************************************************************************
4 ** Copyright (C) 2006-2007 ascolab GmbH. All Rights Reserved.
5 ** Web: http://www.ascolab.com
7 ** This program is free software; you can redistribute it and/or
8 ** modify it under the terms of the GNU General Public License
9 ** as published by the Free Software Foundation; either version 2
10 ** of the License, or (at your option) any later version.
12 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
13 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
15 ** Project: OpcUa Wireshark Plugin
17 ** Description: Service table and service dispatcher.
19 ** This file was autogenerated on 8.5.2007 18:53:26.
20 ** DON'T MODIFY THIS FILE!
22 ******************************************************************************/
29 #include <epan/packet.h>
30 #include "opcua_identifiers.h"
31 #include "opcua_serviceparser.h"
33 ParserEntry g_arParserTable[] = {
34 { 1358, parseTestStackRequest },
35 { 1363, parseTestStackResponse },
36 { 1368, parseTestStackExRequest },
37 { 1373, parseTestStackExResponse },
38 { 1414, parseFindServersRequest },
39 { 1419, parseFindServersResponse },
40 { 1424, parseGetEndpointsRequest },
41 { 1429, parseGetEndpointsResponse },
42 { 1439, parseRegisterServerRequest },
43 { 1444, parseRegisterServerResponse },
44 { 1454, parseOpenSecureChannelRequest },
45 { 1459, parseOpenSecureChannelResponse },
46 { 1464, parseCloseSecureChannelRequest },
47 { 1469, parseCloseSecureChannelResponse },
48 { 1479, parseCreateSessionRequest },
49 { 1484, parseCreateSessionResponse },
50 { 1489, parseActivateSessionRequest },
51 { 1494, parseActivateSessionResponse },
52 { 1499, parseCloseSessionRequest },
53 { 1504, parseCloseSessionResponse },
54 { 1509, parseCancelRequest },
55 { 1514, parseCancelResponse },
56 { 1524, parseAddNodesRequest },
57 { 1529, parseAddNodesResponse },
58 { 1534, parseAddReferencesRequest },
59 { 1539, parseAddReferencesResponse },
60 { 1544, parseDeleteNodesRequest },
61 { 1549, parseDeleteNodesResponse },
62 { 1554, parseDeleteReferencesRequest },
63 { 1559, parseDeleteReferencesResponse },
64 { 1574, parseBrowsePropertiesRequest },
65 { 1579, parseBrowsePropertiesResponse },
66 { 1599, parseBrowseRequest },
67 { 1604, parseBrowseResponse },
68 { 1609, parseBrowseNextRequest },
69 { 1614, parseBrowseNextResponse },
70 { 1630, parseTranslateBrowsePathsToNodeIdsRequest },
71 { 1635, parseTranslateBrowsePathsToNodeIdsResponse },
72 { 1710, parseQueryFirstRequest },
73 { 1715, parseQueryFirstResponse },
74 { 1720, parseQueryNextRequest },
75 { 1725, parseQueryNextResponse },
76 { 1740, parseReadRequest },
77 { 1745, parseReadResponse },
78 { 1790, parseHistoryReadRequest },
79 { 1795, parseHistoryReadResponse },
80 { 1805, parseWriteRequest },
81 { 1810, parseWriteResponse },
82 { 1845, parseHistoryUpdateRequest },
83 { 1850, parseHistoryUpdateResponse },
84 { 1865, parseCallRequest },
85 { 1870, parseCallResponse },
86 { 1930, parseCreateMonitoredItemsRequest },
87 { 1935, parseCreateMonitoredItemsResponse },
88 { 1950, parseModifyMonitoredItemsRequest },
89 { 1955, parseModifyMonitoredItemsResponse },
90 { 1960, parseSetMonitoringModeRequest },
91 { 1965, parseSetMonitoringModeResponse },
92 { 1970, parseSetTriggeringRequest },
93 { 1975, parseSetTriggeringResponse },
94 { 1980, parseDeleteMonitoredItemsRequest },
95 { 1985, parseDeleteMonitoredItemsResponse },
96 { 1990, parseCreateSubscriptionRequest },
97 { 1995, parseCreateSubscriptionResponse },
98 { 2000, parseModifySubscriptionRequest },
99 { 2005, parseModifySubscriptionResponse },
100 { 2010, parseSetPublishingModeRequest },
101 { 2015, parseSetPublishingModeResponse },
102 { 2050, parsePublishRequest },
103 { 2055, parsePublishResponse },
104 { 2060, parseRepublishRequest },
105 { 2065, parseRepublishResponse },
106 { 2075, parseTransferSubscriptionsRequest },
107 { 2080, parseTransferSubscriptionsResponse },
108 { 2085, parseDeleteSubscriptionsRequest },
109 { 2090, parseDeleteSubscriptionsResponse }
112 const int g_NumServices = sizeof(g_arParserTable) / sizeof(ParserEntry);
114 /** Service type table */
115 const value_string g_requesttypes[] = {
116 { 1358, "TestStackRequest" },
117 { 1363, "TestStackResponse" },
118 { 1368, "TestStackExRequest" },
119 { 1373, "TestStackExResponse" },
120 { 1414, "FindServersRequest" },
121 { 1419, "FindServersResponse" },
122 { 1424, "GetEndpointsRequest" },
123 { 1429, "GetEndpointsResponse" },
124 { 1439, "RegisterServerRequest" },
125 { 1444, "RegisterServerResponse" },
126 { 1454, "OpenSecureChannelRequest" },
127 { 1459, "OpenSecureChannelResponse" },
128 { 1464, "CloseSecureChannelRequest" },
129 { 1469, "CloseSecureChannelResponse" },
130 { 1479, "CreateSessionRequest" },
131 { 1484, "CreateSessionResponse" },
132 { 1489, "ActivateSessionRequest" },
133 { 1494, "ActivateSessionResponse" },
134 { 1499, "CloseSessionRequest" },
135 { 1504, "CloseSessionResponse" },
136 { 1509, "CancelRequest" },
137 { 1514, "CancelResponse" },
138 { 1524, "AddNodesRequest" },
139 { 1529, "AddNodesResponse" },
140 { 1534, "AddReferencesRequest" },
141 { 1539, "AddReferencesResponse" },
142 { 1544, "DeleteNodesRequest" },
143 { 1549, "DeleteNodesResponse" },
144 { 1554, "DeleteReferencesRequest" },
145 { 1559, "DeleteReferencesResponse" },
146 { 1574, "BrowsePropertiesRequest" },
147 { 1579, "BrowsePropertiesResponse" },
148 { 1599, "BrowseRequest" },
149 { 1604, "BrowseResponse" },
150 { 1609, "BrowseNextRequest" },
151 { 1614, "BrowseNextResponse" },
152 { 1630, "TranslateBrowsePathsToNodeIdsRequest" },
153 { 1635, "TranslateBrowsePathsToNodeIdsResponse" },
154 { 1710, "QueryFirstRequest" },
155 { 1715, "QueryFirstResponse" },
156 { 1720, "QueryNextRequest" },
157 { 1725, "QueryNextResponse" },
158 { 1740, "ReadRequest" },
159 { 1745, "ReadResponse" },
160 { 1790, "HistoryReadRequest" },
161 { 1795, "HistoryReadResponse" },
162 { 1805, "WriteRequest" },
163 { 1810, "WriteResponse" },
164 { 1845, "HistoryUpdateRequest" },
165 { 1850, "HistoryUpdateResponse" },
166 { 1865, "CallRequest" },
167 { 1870, "CallResponse" },
168 { 1930, "CreateMonitoredItemsRequest" },
169 { 1935, "CreateMonitoredItemsResponse" },
170 { 1950, "ModifyMonitoredItemsRequest" },
171 { 1955, "ModifyMonitoredItemsResponse" },
172 { 1960, "SetMonitoringModeRequest" },
173 { 1965, "SetMonitoringModeResponse" },
174 { 1970, "SetTriggeringRequest" },
175 { 1975, "SetTriggeringResponse" },
176 { 1980, "DeleteMonitoredItemsRequest" },
177 { 1985, "DeleteMonitoredItemsResponse" },
178 { 1990, "CreateSubscriptionRequest" },
179 { 1995, "CreateSubscriptionResponse" },
180 { 2000, "ModifySubscriptionRequest" },
181 { 2005, "ModifySubscriptionResponse" },
182 { 2010, "SetPublishingModeRequest" },
183 { 2015, "SetPublishingModeResponse" },
184 { 2050, "PublishRequest" },
185 { 2055, "PublishResponse" },
186 { 2060, "RepublishRequest" },
187 { 2065, "RepublishResponse" },
188 { 2075, "TransferSubscriptionsRequest" },
189 { 2080, "TransferSubscriptionsResponse" },
190 { 2085, "DeleteSubscriptionsRequest" },
191 { 2090, "DeleteSubscriptionsResponse" },
195 /** Dispatch all services to a special parser function. */
196 void dispatchService(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int ServiceId)
200 while (index < g_NumServices)
202 if (g_arParserTable[index].iRequestId == ServiceId)
204 (*g_arParserTable[index].pParser)(tree, tvb, pOffset);