Fix a couple (value) mistakes in value_strings. Found by Martin's patch on the ...
[obnox/wireshark/wip.git] / plugins / opcua / opcua_servicetable.c
1 /******************************************************************************
2 ** $Id$
3 **
4 ** Copyright (C) 2006-2009 ascolab GmbH. All Rights Reserved.
5 ** Web: http://www.ascolab.com
6 ** 
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.
11 ** 
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.
14 ** 
15 ** Project: OpcUa Wireshark Plugin
16 **
17 ** Description: Service table and service dispatcher.
18 **
19 ** This file was autogenerated on 31.03.2009.
20 ** DON'T MODIFY THIS FILE!
21 **
22 ******************************************************************************/
23
24 #ifdef HAVE_CONFIG_H
25 # include "config.h"
26 #endif
27
28 #include <glib.h>
29 #include <epan/packet.h>
30 #include "opcua_identifiers.h"
31 #include "opcua_serviceparser.h"
32 #include "opcua_serviceids.h"
33
34 ParserEntry g_arParserTable[] = {
35     { OpcUaId_TestStackRequest_Encoding_DefaultBinary, parseTestStackRequest },
36     { OpcUaId_TestStackResponse_Encoding_DefaultBinary, parseTestStackResponse },
37     { OpcUaId_TestStackExRequest_Encoding_DefaultBinary, parseTestStackExRequest },
38     { OpcUaId_TestStackExResponse_Encoding_DefaultBinary, parseTestStackExResponse },
39     { OpcUaId_FindServersRequest_Encoding_DefaultBinary, parseFindServersRequest },
40     { OpcUaId_FindServersResponse_Encoding_DefaultBinary, parseFindServersResponse },
41     { OpcUaId_GetEndpointsRequest_Encoding_DefaultBinary, parseGetEndpointsRequest },
42     { OpcUaId_GetEndpointsResponse_Encoding_DefaultBinary, parseGetEndpointsResponse },
43     { OpcUaId_RegisterServerRequest_Encoding_DefaultBinary, parseRegisterServerRequest },
44     { OpcUaId_RegisterServerResponse_Encoding_DefaultBinary, parseRegisterServerResponse },
45     { OpcUaId_OpenSecureChannelRequest_Encoding_DefaultBinary, parseOpenSecureChannelRequest },
46     { OpcUaId_OpenSecureChannelResponse_Encoding_DefaultBinary, parseOpenSecureChannelResponse },
47     { OpcUaId_CloseSecureChannelRequest_Encoding_DefaultBinary, parseCloseSecureChannelRequest },
48     { OpcUaId_CloseSecureChannelResponse_Encoding_DefaultBinary, parseCloseSecureChannelResponse },
49     { OpcUaId_CreateSessionRequest_Encoding_DefaultBinary, parseCreateSessionRequest },
50     { OpcUaId_CreateSessionResponse_Encoding_DefaultBinary, parseCreateSessionResponse },
51     { OpcUaId_ActivateSessionRequest_Encoding_DefaultBinary, parseActivateSessionRequest },
52     { OpcUaId_ActivateSessionResponse_Encoding_DefaultBinary, parseActivateSessionResponse },
53     { OpcUaId_CloseSessionRequest_Encoding_DefaultBinary, parseCloseSessionRequest },
54     { OpcUaId_CloseSessionResponse_Encoding_DefaultBinary, parseCloseSessionResponse },
55     { OpcUaId_CancelRequest_Encoding_DefaultBinary, parseCancelRequest },
56     { OpcUaId_CancelResponse_Encoding_DefaultBinary, parseCancelResponse },
57     { OpcUaId_AddNodesRequest_Encoding_DefaultBinary, parseAddNodesRequest },
58     { OpcUaId_AddNodesResponse_Encoding_DefaultBinary, parseAddNodesResponse },
59     { OpcUaId_AddReferencesRequest_Encoding_DefaultBinary, parseAddReferencesRequest },
60     { OpcUaId_AddReferencesResponse_Encoding_DefaultBinary, parseAddReferencesResponse },
61     { OpcUaId_DeleteNodesRequest_Encoding_DefaultBinary, parseDeleteNodesRequest },
62     { OpcUaId_DeleteNodesResponse_Encoding_DefaultBinary, parseDeleteNodesResponse },
63     { OpcUaId_DeleteReferencesRequest_Encoding_DefaultBinary, parseDeleteReferencesRequest },
64     { OpcUaId_DeleteReferencesResponse_Encoding_DefaultBinary, parseDeleteReferencesResponse },
65     { OpcUaId_BrowseRequest_Encoding_DefaultBinary, parseBrowseRequest },
66     { OpcUaId_BrowseResponse_Encoding_DefaultBinary, parseBrowseResponse },
67     { OpcUaId_BrowseNextRequest_Encoding_DefaultBinary, parseBrowseNextRequest },
68     { OpcUaId_BrowseNextResponse_Encoding_DefaultBinary, parseBrowseNextResponse },
69     { OpcUaId_TranslateBrowsePathsToNodeIdsRequest_Encoding_DefaultBinary, parseTranslateBrowsePathsToNodeIdsRequest },
70     { OpcUaId_TranslateBrowsePathsToNodeIdsResponse_Encoding_DefaultBinary, parseTranslateBrowsePathsToNodeIdsResponse },
71     { OpcUaId_RegisterNodesRequest_Encoding_DefaultBinary, parseRegisterNodesRequest },
72     { OpcUaId_RegisterNodesResponse_Encoding_DefaultBinary, parseRegisterNodesResponse },
73     { OpcUaId_UnregisterNodesRequest_Encoding_DefaultBinary, parseUnregisterNodesRequest },
74     { OpcUaId_UnregisterNodesResponse_Encoding_DefaultBinary, parseUnregisterNodesResponse },
75     { OpcUaId_QueryFirstRequest_Encoding_DefaultBinary, parseQueryFirstRequest },
76     { OpcUaId_QueryFirstResponse_Encoding_DefaultBinary, parseQueryFirstResponse },
77     { OpcUaId_QueryNextRequest_Encoding_DefaultBinary, parseQueryNextRequest },
78     { OpcUaId_QueryNextResponse_Encoding_DefaultBinary, parseQueryNextResponse },
79     { OpcUaId_ReadRequest_Encoding_DefaultBinary, parseReadRequest },
80     { OpcUaId_ReadResponse_Encoding_DefaultBinary, parseReadResponse },
81     { OpcUaId_HistoryReadRequest_Encoding_DefaultBinary, parseHistoryReadRequest },
82     { OpcUaId_HistoryReadResponse_Encoding_DefaultBinary, parseHistoryReadResponse },
83     { OpcUaId_WriteRequest_Encoding_DefaultBinary, parseWriteRequest },
84     { OpcUaId_WriteResponse_Encoding_DefaultBinary, parseWriteResponse },
85     { OpcUaId_HistoryUpdateRequest_Encoding_DefaultBinary, parseHistoryUpdateRequest },
86     { OpcUaId_HistoryUpdateResponse_Encoding_DefaultBinary, parseHistoryUpdateResponse },
87     { OpcUaId_CallRequest_Encoding_DefaultBinary, parseCallRequest },
88     { OpcUaId_CallResponse_Encoding_DefaultBinary, parseCallResponse },
89     { OpcUaId_CreateMonitoredItemsRequest_Encoding_DefaultBinary, parseCreateMonitoredItemsRequest },
90     { OpcUaId_CreateMonitoredItemsResponse_Encoding_DefaultBinary, parseCreateMonitoredItemsResponse },
91     { OpcUaId_ModifyMonitoredItemsRequest_Encoding_DefaultBinary, parseModifyMonitoredItemsRequest },
92     { OpcUaId_ModifyMonitoredItemsResponse_Encoding_DefaultBinary, parseModifyMonitoredItemsResponse },
93     { OpcUaId_SetMonitoringModeRequest_Encoding_DefaultBinary, parseSetMonitoringModeRequest },
94     { OpcUaId_SetMonitoringModeResponse_Encoding_DefaultBinary, parseSetMonitoringModeResponse },
95     { OpcUaId_SetTriggeringRequest_Encoding_DefaultBinary, parseSetTriggeringRequest },
96     { OpcUaId_SetTriggeringResponse_Encoding_DefaultBinary, parseSetTriggeringResponse },
97     { OpcUaId_DeleteMonitoredItemsRequest_Encoding_DefaultBinary, parseDeleteMonitoredItemsRequest },
98     { OpcUaId_DeleteMonitoredItemsResponse_Encoding_DefaultBinary, parseDeleteMonitoredItemsResponse },
99     { OpcUaId_CreateSubscriptionRequest_Encoding_DefaultBinary, parseCreateSubscriptionRequest },
100     { OpcUaId_CreateSubscriptionResponse_Encoding_DefaultBinary, parseCreateSubscriptionResponse },
101     { OpcUaId_ModifySubscriptionRequest_Encoding_DefaultBinary, parseModifySubscriptionRequest },
102     { OpcUaId_ModifySubscriptionResponse_Encoding_DefaultBinary, parseModifySubscriptionResponse },
103     { OpcUaId_SetPublishingModeRequest_Encoding_DefaultBinary, parseSetPublishingModeRequest },
104     { OpcUaId_SetPublishingModeResponse_Encoding_DefaultBinary, parseSetPublishingModeResponse },
105     { OpcUaId_PublishRequest_Encoding_DefaultBinary, parsePublishRequest },
106     { OpcUaId_PublishResponse_Encoding_DefaultBinary, parsePublishResponse },
107     { OpcUaId_RepublishRequest_Encoding_DefaultBinary, parseRepublishRequest },
108     { OpcUaId_RepublishResponse_Encoding_DefaultBinary, parseRepublishResponse },
109     { OpcUaId_TransferSubscriptionsRequest_Encoding_DefaultBinary, parseTransferSubscriptionsRequest },
110     { OpcUaId_TransferSubscriptionsResponse_Encoding_DefaultBinary, parseTransferSubscriptionsResponse },
111     { OpcUaId_DeleteSubscriptionsRequest_Encoding_DefaultBinary, parseDeleteSubscriptionsRequest },
112     { OpcUaId_DeleteSubscriptionsResponse_Encoding_DefaultBinary, parseDeleteSubscriptionsResponse },
113 };
114 const int g_NumServices = sizeof(g_arParserTable) / sizeof(ParserEntry);
115
116 /** Service type table */
117 const value_string g_requesttypes[] = {
118     { OpcUaId_TestStackRequest_Encoding_DefaultBinary, "TestStackRequest" },
119     { OpcUaId_TestStackResponse_Encoding_DefaultBinary, "TestStackResponse" },
120     { OpcUaId_TestStackExRequest_Encoding_DefaultBinary, "TestStackExRequest" },
121     { OpcUaId_TestStackExResponse_Encoding_DefaultBinary, "TestStackExResponse" },
122     { OpcUaId_FindServersRequest_Encoding_DefaultBinary, "FindServersRequest" },
123     { OpcUaId_FindServersResponse_Encoding_DefaultBinary, "FindServersResponse" },
124     { OpcUaId_GetEndpointsRequest_Encoding_DefaultBinary, "GetEndpointsRequest" },
125     { OpcUaId_GetEndpointsResponse_Encoding_DefaultBinary, "GetEndpointsResponse" },
126     { OpcUaId_RegisterServerRequest_Encoding_DefaultBinary, "RegisterServerRequest" },
127     { OpcUaId_RegisterServerResponse_Encoding_DefaultBinary, "RegisterServerResponse" },
128     { OpcUaId_OpenSecureChannelRequest_Encoding_DefaultBinary, "OpenSecureChannelRequest" },
129     { OpcUaId_OpenSecureChannelResponse_Encoding_DefaultBinary, "OpenSecureChannelResponse" },
130     { OpcUaId_CloseSecureChannelRequest_Encoding_DefaultBinary, "CloseSecureChannelRequest" },
131     { OpcUaId_CloseSecureChannelResponse_Encoding_DefaultBinary, "CloseSecureChannelResponse" },
132     { OpcUaId_CreateSessionRequest_Encoding_DefaultBinary, "CreateSessionRequest" },
133     { OpcUaId_CreateSessionResponse_Encoding_DefaultBinary, "CreateSessionResponse" },
134     { OpcUaId_ActivateSessionRequest_Encoding_DefaultBinary, "ActivateSessionRequest" },
135     { OpcUaId_ActivateSessionResponse_Encoding_DefaultBinary, "ActivateSessionResponse" },
136     { OpcUaId_CloseSessionRequest_Encoding_DefaultBinary, "CloseSessionRequest" },
137     { OpcUaId_CloseSessionResponse_Encoding_DefaultBinary, "CloseSessionResponse" },
138     { OpcUaId_CancelRequest_Encoding_DefaultBinary, "CancelRequest" },
139     { OpcUaId_CancelResponse_Encoding_DefaultBinary, "CancelResponse" },
140     { OpcUaId_AddNodesRequest_Encoding_DefaultBinary, "AddNodesRequest" },
141     { OpcUaId_AddNodesResponse_Encoding_DefaultBinary, "AddNodesResponse" },
142     { OpcUaId_AddReferencesRequest_Encoding_DefaultBinary, "AddReferencesRequest" },
143     { OpcUaId_AddReferencesResponse_Encoding_DefaultBinary, "AddReferencesResponse" },
144     { OpcUaId_DeleteNodesRequest_Encoding_DefaultBinary, "DeleteNodesRequest" },
145     { OpcUaId_DeleteNodesResponse_Encoding_DefaultBinary, "DeleteNodesResponse" },
146     { OpcUaId_DeleteReferencesRequest_Encoding_DefaultBinary, "DeleteReferencesRequest" },
147     { OpcUaId_DeleteReferencesResponse_Encoding_DefaultBinary, "DeleteReferencesResponse" },
148     { OpcUaId_BrowseRequest_Encoding_DefaultBinary, "BrowseRequest" },
149     { OpcUaId_BrowseResponse_Encoding_DefaultBinary, "BrowseResponse" },
150     { OpcUaId_BrowseNextRequest_Encoding_DefaultBinary, "BrowseNextRequest" },
151     { OpcUaId_BrowseNextResponse_Encoding_DefaultBinary, "BrowseNextResponse" },
152     { OpcUaId_TranslateBrowsePathsToNodeIdsRequest_Encoding_DefaultBinary, "TranslateBrowsePathsToNodeIdsRequest" },
153     { OpcUaId_TranslateBrowsePathsToNodeIdsResponse_Encoding_DefaultBinary, "TranslateBrowsePathsToNodeIdsResponse" },
154     { OpcUaId_RegisterNodesRequest_Encoding_DefaultBinary, "RegisterNodesRequest" },
155     { OpcUaId_RegisterNodesResponse_Encoding_DefaultBinary, "RegisterNodesResponse" },
156     { OpcUaId_UnregisterNodesRequest_Encoding_DefaultBinary, "UnregisterNodesRequest" },
157     { OpcUaId_UnregisterNodesResponse_Encoding_DefaultBinary, "UnregisterNodesResponse" },
158     { OpcUaId_QueryFirstRequest_Encoding_DefaultBinary, "QueryFirstRequest" },
159     { OpcUaId_QueryFirstResponse_Encoding_DefaultBinary, "QueryFirstResponse" },
160     { OpcUaId_QueryNextRequest_Encoding_DefaultBinary, "QueryNextRequest" },
161     { OpcUaId_QueryNextResponse_Encoding_DefaultBinary, "QueryNextResponse" },
162     { OpcUaId_ReadRequest_Encoding_DefaultBinary, "ReadRequest" },
163     { OpcUaId_ReadResponse_Encoding_DefaultBinary, "ReadResponse" },
164     { OpcUaId_HistoryReadRequest_Encoding_DefaultBinary, "HistoryReadRequest" },
165     { OpcUaId_HistoryReadResponse_Encoding_DefaultBinary, "HistoryReadResponse" },
166     { OpcUaId_WriteRequest_Encoding_DefaultBinary, "WriteRequest" },
167     { OpcUaId_WriteResponse_Encoding_DefaultBinary, "WriteResponse" },
168     { OpcUaId_HistoryUpdateRequest_Encoding_DefaultBinary, "HistoryUpdateRequest" },
169     { OpcUaId_HistoryUpdateResponse_Encoding_DefaultBinary, "HistoryUpdateResponse" },
170     { OpcUaId_CallRequest_Encoding_DefaultBinary, "CallRequest" },
171     { OpcUaId_CallResponse_Encoding_DefaultBinary, "CallResponse" },
172     { OpcUaId_CreateMonitoredItemsRequest_Encoding_DefaultBinary, "CreateMonitoredItemsRequest" },
173     { OpcUaId_CreateMonitoredItemsResponse_Encoding_DefaultBinary, "CreateMonitoredItemsResponse" },
174     { OpcUaId_ModifyMonitoredItemsRequest_Encoding_DefaultBinary, "ModifyMonitoredItemsRequest" },
175     { OpcUaId_ModifyMonitoredItemsResponse_Encoding_DefaultBinary, "ModifyMonitoredItemsResponse" },
176     { OpcUaId_SetMonitoringModeRequest_Encoding_DefaultBinary, "SetMonitoringModeRequest" },
177     { OpcUaId_SetMonitoringModeResponse_Encoding_DefaultBinary, "SetMonitoringModeResponse" },
178     { OpcUaId_SetTriggeringRequest_Encoding_DefaultBinary, "SetTriggeringRequest" },
179     { OpcUaId_SetTriggeringResponse_Encoding_DefaultBinary, "SetTriggeringResponse" },
180     { OpcUaId_DeleteMonitoredItemsRequest_Encoding_DefaultBinary, "DeleteMonitoredItemsRequest" },
181     { OpcUaId_DeleteMonitoredItemsResponse_Encoding_DefaultBinary, "DeleteMonitoredItemsResponse" },
182     { OpcUaId_CreateSubscriptionRequest_Encoding_DefaultBinary, "CreateSubscriptionRequest" },
183     { OpcUaId_CreateSubscriptionResponse_Encoding_DefaultBinary, "CreateSubscriptionResponse" },
184     { OpcUaId_ModifySubscriptionRequest_Encoding_DefaultBinary, "ModifySubscriptionRequest" },
185     { OpcUaId_ModifySubscriptionResponse_Encoding_DefaultBinary, "ModifySubscriptionResponse" },
186     { OpcUaId_SetPublishingModeRequest_Encoding_DefaultBinary, "SetPublishingModeRequest" },
187     { OpcUaId_SetPublishingModeResponse_Encoding_DefaultBinary, "SetPublishingModeResponse" },
188     { OpcUaId_PublishRequest_Encoding_DefaultBinary, "PublishRequest" },
189     { OpcUaId_PublishResponse_Encoding_DefaultBinary, "PublishResponse" },
190     { OpcUaId_RepublishRequest_Encoding_DefaultBinary, "RepublishRequest" },
191     { OpcUaId_RepublishResponse_Encoding_DefaultBinary, "RepublishResponse" },
192     { OpcUaId_TransferSubscriptionsRequest_Encoding_DefaultBinary, "TransferSubscriptionsRequest" },
193     { OpcUaId_TransferSubscriptionsResponse_Encoding_DefaultBinary, "TransferSubscriptionsResponse" },
194     { OpcUaId_DeleteSubscriptionsRequest_Encoding_DefaultBinary, "DeleteSubscriptionsRequest" },
195     { OpcUaId_DeleteSubscriptionsResponse_Encoding_DefaultBinary, "DeleteSubscriptionsResponse" },
196     { 0, NULL }
197 };
198
199 /** Dispatch all services to a special parser function. */
200 void dispatchService(proto_tree *tree, tvbuff_t *tvb, gint *pOffset, int ServiceId)
201 {
202     int index = 0;
203
204     while (index < g_NumServices)
205     {
206         if (g_arParserTable[index].iRequestId == ServiceId)
207         {
208             (*g_arParserTable[index].pParser)(tree, tvb, pOffset);
209             break;
210         }
211         index++;
212     }
213 }
214