Coverage Report

Created: 2025-12-14 06:36

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/openvswitch/lib/ofp-errors.inc
Line
Count
Source
1
/* Generated automatically; do not modify!     -*- buffer-read-only: t -*- */
2
3
5.49M
#define OFPERR_N_ERRORS 198
4
5
struct ofperr_domain {
6
    const char *name;
7
    uint8_t version;
8
    enum ofperr (*decode)(uint32_t vendor, uint16_t type, uint16_t code);
9
    struct triplet errors[OFPERR_N_ERRORS];
10
};
11
12
static const char *error_names[OFPERR_N_ERRORS] = {
13
    "OFPHFC_INCOMPATIBLE",
14
    "OFPHFC_EPERM",
15
    "OFPBRC_BAD_VERSION",
16
    "OFPBRC_BAD_TYPE",
17
    "OFPBRC_BAD_STAT",
18
    "OFPBRC_BAD_VENDOR",
19
    "OFPBRC_BAD_SUBTYPE",
20
    "OFPBRC_EPERM",
21
    "OFPBRC_BAD_LEN",
22
    "OFPBRC_BUFFER_EMPTY",
23
    "OFPBRC_BUFFER_UNKNOWN",
24
    "OFPBRC_BAD_TABLE_ID",
25
    "OFPBRC_IS_SECONDARY",
26
    "OFPBRC_BAD_PORT",
27
    "OFPBRC_BAD_PACKET",
28
    "OFPBRC_MULTIPART_BUFFER_OVERFLOW",
29
    "OFPBRC_MULTIPART_REQUEST_TIMEOUT",
30
    "OFPBRC_MULTIPART_REPLY_TIMEOUT",
31
    "OFPBRC_MULTIPART_BAD_SCHED",
32
    "OFPBRC_PIPELINE_FIELDS_ONLY",
33
    "OFPBRC_UNKNOWN",
34
    "NXBRC_NXM_INVALID",
35
    "NXBRC_NXM_BAD_TYPE",
36
    "NXBRC_MUST_BE_ZERO",
37
    "NXBRC_BAD_REASON",
38
    "NXBRC_FM_BAD_EVENT",
39
    "NXBRC_UNENCODABLE_ERROR",
40
    "OFPBAC_BAD_TYPE",
41
    "OFPBAC_BAD_LEN",
42
    "OFPBAC_BAD_VENDOR",
43
    "OFPBAC_BAD_VENDOR_TYPE",
44
    "OFPBAC_BAD_OUT_PORT",
45
    "OFPBAC_BAD_ARGUMENT",
46
    "OFPBAC_EPERM",
47
    "OFPBAC_TOO_MANY",
48
    "OFPBAC_BAD_QUEUE",
49
    "OFPBAC_BAD_OUT_GROUP",
50
    "OFPBAC_MATCH_INCONSISTENT",
51
    "OFPBAC_UNSUPPORTED_ORDER",
52
    "OFPBAC_BAD_TAG",
53
    "OFPBAC_BAD_SET_TYPE",
54
    "OFPBAC_BAD_SET_LEN",
55
    "OFPBAC_BAD_SET_ARGUMENT",
56
    "OFPBAC_BAD_SET_MASK",
57
    "OFPBAC_BAD_METER",
58
    "NXBAC_MUST_BE_ZERO",
59
    "NXBAC_BAD_CONJUNCTION",
60
    "NXBAC_BAD_HEADER_TYPE",
61
    "NXBAC_UNKNOWN_ED_PROP",
62
    "NXBAC_BAD_ED_PROP",
63
    "NXBAC_CT_DATAPATH_SUPPORT",
64
    "OFPBIC_UNKNOWN_INST",
65
    "OFPBIC_UNSUP_INST",
66
    "OFPBIC_BAD_TABLE_ID",
67
    "OFPBIC_UNSUP_METADATA",
68
    "OFPBIC_UNSUP_METADATA_MASK",
69
    "OFPBIC_BAD_EXPERIMENTER",
70
    "OFPBIC_BAD_EXP_TYPE",
71
    "OFPBIC_BAD_LEN",
72
    "OFPBIC_EPERM",
73
    "OFPBIC_DUP_INST",
74
    "OFPBMC_BAD_TYPE",
75
    "OFPBMC_BAD_LEN",
76
    "OFPBMC_BAD_TAG",
77
    "OFPBMC_BAD_DL_ADDR_MASK",
78
    "OFPBMC_BAD_NW_ADDR_MASK",
79
    "OFPBMC_BAD_WILDCARDS",
80
    "OFPBMC_BAD_FIELD",
81
    "OFPBMC_BAD_VALUE",
82
    "OFPBMC_BAD_MASK",
83
    "OFPBMC_BAD_PREREQ",
84
    "OFPBMC_DUP_FIELD",
85
    "OFPBMC_EPERM",
86
    "NXBMC_CT_DATAPATH_SUPPORT",
87
    "OFPFMFC_UNKNOWN",
88
    "OFPFMFC_TABLE_FULL",
89
    "OFPFMFC_BAD_TABLE_ID",
90
    "OFPFMFC_OVERLAP",
91
    "OFPFMFC_EPERM",
92
    "OFPFMFC_BAD_TIMEOUT",
93
    "OFPFMFC_BAD_EMERG_TIMEOUT",
94
    "OFPFMFC_BAD_COMMAND",
95
    "OFPFMFC_BAD_FLAGS",
96
    "OFPFMFC_CANT_SYNC",
97
    "OFPFMFC_BAD_PRIORITY",
98
    "OFPFMFC_IS_SYNC",
99
    "OFPFMFC_UNSUPPORTED",
100
    "NXFMFC_HARDWARE",
101
    "NXFMFC_BAD_TABLE_ID",
102
    "NXFMFC_INVALID_TLV_FIELD",
103
    "OFPGMFC_GROUP_EXISTS",
104
    "OFPGMFC_INVALID_GROUP",
105
    "OFPGMFC_WEIGHT_UNSUPPORTED",
106
    "OFPGMFC_OUT_OF_GROUPS",
107
    "OFPGMFC_OUT_OF_BUCKETS",
108
    "OFPGMFC_CHAINING_UNSUPPORTED",
109
    "OFPGMFC_WATCH_UNSUPPORTED",
110
    "OFPGMFC_LOOP",
111
    "OFPGMFC_UNKNOWN_GROUP",
112
    "OFPGMFC_CHAINED_GROUP",
113
    "OFPGMFC_BAD_TYPE",
114
    "OFPGMFC_BAD_COMMAND",
115
    "OFPGMFC_BAD_BUCKET",
116
    "OFPGMFC_BAD_WATCH",
117
    "OFPGMFC_EPERM",
118
    "OFPGMFC_UNKNOWN_BUCKET",
119
    "OFPGMFC_BUCKET_EXISTS",
120
    "OFPPMFC_BAD_PORT",
121
    "OFPPMFC_BAD_HW_ADDR",
122
    "OFPPMFC_BAD_CONFIG",
123
    "OFPPMFC_BAD_ADVERTISE",
124
    "OFPPMFC_EPERM",
125
    "OFPTMFC_BAD_TABLE",
126
    "OFPTMFC_BAD_CONFIG",
127
    "OFPTMFC_EPERM",
128
    "OFPQOFC_BAD_PORT",
129
    "OFPQOFC_BAD_QUEUE",
130
    "OFPQOFC_EPERM",
131
    "NXQOFC_QUEUE_ERROR",
132
    "OFPSCFC_BAD_FLAGS",
133
    "OFPSCFC_BAD_LEN",
134
    "OFPSCFC_EPERM",
135
    "OFPRRFC_STALE",
136
    "OFPRRFC_UNSUP",
137
    "OFPRRFC_BAD_ROLE",
138
    "OFPRRFC_ID_UNSUP",
139
    "OFPRRFC_ID_IN_USE",
140
    "OFPMMFC_UNKNOWN",
141
    "OFPMMFC_METER_EXISTS",
142
    "OFPMMFC_INVALID_METER",
143
    "OFPMMFC_UNKNOWN_METER",
144
    "OFPMMFC_BAD_COMMAND",
145
    "OFPMMFC_BAD_FLAGS",
146
    "OFPMMFC_BAD_RATE",
147
    "OFPMMFC_BAD_BURST",
148
    "OFPMMFC_BAD_BAND",
149
    "OFPMMFC_BAD_BAND_VALUE",
150
    "OFPMMFC_OUT_OF_METERS",
151
    "OFPMMFC_OUT_OF_BANDS",
152
    "OFPTFFC_BAD_TABLE",
153
    "OFPTFFC_BAD_METADATA",
154
    "OFPTFFC_EPERM",
155
    "OFPTFFC_BAD_CAPA",
156
    "OFPTFFC_BAD_MAX_ENT",
157
    "OFPTFFC_BAD_FEATURES",
158
    "OFPTFFC_BAD_COMMAND",
159
    "OFPTFFC_TOO_MANY",
160
    "NXTFFC_DUP_TABLE",
161
    "OFPBPC_BAD_TYPE",
162
    "OFPBPC_BAD_LEN",
163
    "OFPBPC_BAD_VALUE",
164
    "OFPBPC_TOO_MANY",
165
    "OFPBPC_DUP_TYPE",
166
    "OFPBPC_BAD_EXPERIMENTER",
167
    "OFPBPC_BAD_EXP_TYPE",
168
    "OFPBPC_BAD_EXP_VALUE",
169
    "OFPBPC_EPERM",
170
    "OFPACFC_INVALID",
171
    "OFPACFC_UNSUPPORTED",
172
    "OFPACFC_EPERM",
173
    "OFPBFC_UNKNOWN",
174
    "OFPBFC_EPERM",
175
    "OFPBFC_BAD_ID",
176
    "OFPBFC_BUNDLE_EXIST",
177
    "OFPBFC_BUNDLE_CLOSED",
178
    "OFPBFC_OUT_OF_BUNDLES",
179
    "OFPBFC_BAD_TYPE",
180
    "OFPBFC_BAD_FLAGS",
181
    "OFPBFC_MSG_BAD_LEN",
182
    "OFPBFC_MSG_BAD_XID",
183
    "OFPBFC_MSG_UNSUP",
184
    "OFPBFC_MSG_CONFLICT",
185
    "OFPBFC_MSG_TOO_MANY",
186
    "OFPBFC_MSG_FAILED",
187
    "OFPBFC_TIMEOUT",
188
    "OFPBFC_BUNDLE_IN_PROGRESS",
189
    "OFPBFC_SCHED_NOT_SUPPORTED",
190
    "OFPBFC_SCHED_FUTURE",
191
    "OFPBFC_SCHED_PAST",
192
    "OFPBFC_BAD_VERSION",
193
    "OFPMOFC_UNKNOWN",
194
    "OFPMOFC_MONITOR_EXISTS",
195
    "OFPMOFC_INVALID_MONITOR",
196
    "OFPMOFC_UNKNOWN_MONITOR",
197
    "OFPMOFC_BAD_COMMAND",
198
    "OFPMOFC_BAD_FLAGS",
199
    "OFPMOFC_BAD_TABLE_ID",
200
    "OFPMOFC_BAD_OUT",
201
    "NXTTMFC_BAD_COMMAND",
202
    "NXTTMFC_BAD_OPT_LEN",
203
    "NXTTMFC_BAD_FIELD_IDX",
204
    "NXTTMFC_TABLE_FULL",
205
    "NXTTMFC_ALREADY_MAPPED",
206
    "NXTTMFC_DUP_ENTRY",
207
    "NXTTMFC_INVALID_TLV_DEL",
208
    "NXR_NOT_SUPPORTED",
209
    "NXR_STALE",
210
    "NXST_NOT_CONFIGURED",
211
};
212
213
static const char *error_comments[OFPERR_N_ERRORS] = {
214
    "No compatible version.",
215
    "Permissions error.",
216
    "ofp_header.version not supported.",
217
    "ofp_header.type not supported.",
218
    "ofp_stats_msg.type not supported.",
219
    "Vendor not supported (in ofp_vendor_header or ofp_stats_msg).",
220
    "Vendor subtype not supported.",
221
    "Permissions error.",
222
    "Wrong request length for type.",
223
    "Specified buffer has already been used.",
224
    "Specified buffer does not exist.",
225
    "Specified table-id invalid or does not exist. ",
226
    "Denied because controller has secondary role.  (Secondary controllers have only read-only access.)",
227
    "Invalid or missing port.  ",
228
    "Invalid packet in packet-out.",
229
    "Multipart request overflowed the assigned buffer.",
230
    "Timeout during multipart request.",
231
    "Timeout during multipart reply.",
232
    "Switch received a OFPMP_BUNDLE_FEATURES request and failed to update the scheduling tolerance.",
233
    "Match fields must include only pipeline fields.",
234
    "Unspecified error.",
235
    "Invalid NXM flow match.",
236
    "The nxm_type, or nxm_type taken in combination with nxm_hasmask or nxm_length or both, is invalid or not implemented.",
237
    "Must-be-zero field had nonzero value.",
238
    "The reason in an ofp_port_status message is not valid.",
239
    "The 'event' in an NXST_FLOW_MONITOR reply does not specify one of the NXFME_ABBREV, NXFME_ADD, NXFME_DELETE, or NXFME_MODIFY.",
240
    "The error that occurred cannot be represented in this OpenFlow version.",
241
    "Unknown or unsupported action type.",
242
    "Length problem in actions.",
243
    "Unknown experimenter id specified.",
244
    "Unknown action type for experimenter id.",
245
    "Problem validating output port.",
246
    "Bad action argument.",
247
    "Permissions error.",
248
    "Can't handle this many actions.",
249
    "Problem validating output queue.",
250
    "Invalid group id in output action.",
251
    "Action can't apply for this match or a prerequisite for use of this field is unmet.",
252
    "Action order is unsupported for the action list in an Apply-Actions instruction",
253
    "Actions uses an unsupported tag/encap.",
254
    "Action uses unknown or unsupported OXM or NXM field.",
255
    "Action references past the end of an OXM or NXM field, or uses a length of zero.",
256
    "Action sets a field to an invalid or unsupported value, or modifies a read-only field.",
257
    "Field in Set-Field action has Has-Mask bit set to 1.",
258
    "Invalid meter id in meter action.",
259
    "Must-be-zero action argument had nonzero value.",
260
    "Conjunction action must be only action present.  conjunction(id, k/n) must satisfy 1 <= k <= n and 2 <= n <= 64.",
261
    "Unsupported packet type in encap or decap.",
262
    "Unrecognized encap or decap property.",
263
    "Error in encap or decap property.",
264
    "Action requires connection tracking or a particular connection-tracking based feature that the datapath in use does not support.  If a kernel-based datapath is in use, the kernel module may need to be upgraded.",
265
    "Unknown instruction.",
266
    "Switch or table does not support the instruction.",
267
    "Invalid Table-ID specified.",
268
    "Metadata value unsupported by datapath.",
269
    "Metadata mask value unsupported by datapath.",
270
    "Unknown experimenter id specified.",
271
    "Unknown instruction for experimenter id.",
272
    "Length problem in instructions.",
273
    "Permissions error.",
274
    "Duplicate instruction.",
275
    "Unsupported match type specified by the match",
276
    "Length problem in match.",
277
    "Match uses an unsupported tag/encap.",
278
    "Unsupported datalink addr mask - switch does not support arbitrary datalink address mask.",
279
    "Unsupported network addr mask - switch does not support arbitrary network address mask.",
280
    "Unsupported wildcard specified in the match.",
281
    "Unsupported field in the match.",
282
    "Unsupported value in a match field.",
283
    "Unsupported mask specified in the match.",
284
    "A prerequisite was not met.",
285
    "A field type was duplicated.",
286
    "Permissions error.",
287
    "Flow match requires connection tracking or a particular connection-tracking based feature that the datapath in use does not support.  If a kernel-based datapath is in use, the kernel module may need to be upgraded.",
288
    "Unspecified error.",
289
    "Flow not added because of full table(s).",
290
    "Table does not exist",
291
    "Attempted to add overlapping flow with CHECK_OVERLAP flag set.",
292
    "Permissions error.",
293
    "Flow not added because of unsupported idle/hard timeout.",
294
    "Flow not added because of non-zero idle/hard timeout.",
295
    "Unsupported or unknown command.",
296
    "Unsupported or unknown flags.",
297
    "Problem in table synchronization.",
298
    "Unsupported priority value.",
299
    "Synchronized flow entry is read only.",
300
    "Unsupported action list - cannot process in the order specified.",
301
    "Generic hardware error.",
302
    "A nonexistent table ID was specified in the \"command\" field of struct ofp_flow_mod, when the nxt_flow_mod_table_id extension is enabled.",
303
    "Attempted to add a flow with an invalid variable length meta-flow field.",
304
    "Group not added because a group ADD attempted to replace an already-present group.",
305
    "Group not added because Group specified is invalid.",
306
    "Switch does not support unequal load sharing with select groups.",
307
    "The group table is full.",
308
    "The maximum number of action buckets for a group has been exceeded.",
309
    "Switch does not support groups that forward to groups.",
310
    "This group cannot watch the watch_port or watch_group specified.",
311
    "Group entry would cause a loop.",
312
    "Group not modified because a group MODIFY attempted to modify a non-existent group.",
313
    "Group not deleted because another group is forwarding to it.",
314
    "Unsupported or unknown group type.",
315
    "Unsupported or unknown command.",
316
    "Error in bucket.",
317
    "Error in watch port/group.",
318
    "Permissions error.",
319
    "Invalid bucket identifier used in INSERT BUCKET or REMOVE BUCKET command.",
320
    "Can't insert bucket because a bucket already exist with that bucket-id.",
321
    "Specified port does not exist.",
322
    "Specified hardware address does not match the port number.",
323
    "Specified config is invalid.",
324
    "Specified advertise is invalid.",
325
    "Permissions error.",
326
    "Specified table does not exist.",
327
    "Specified config is invalid.",
328
    "Permissions error.",
329
    "Invalid port (or port does not exist).",
330
    "Queue does not exist.",
331
    "Permissions error.",
332
    "System error retrieving queue details.",
333
    "Specified flags is invalid.",
334
    "Specified len is invalid.",
335
    "Permissions error.",
336
    "Stale Message: old generation_id.",
337
    "Controller role change unsupported.",
338
    "Invalid role.",
339
    "Switch doesn't support changing ID.",
340
    "Requested ID is in use.",
341
    "Unspecified error.",
342
    "Meter not added because a Meter ADD attempted to replace an existing Meter.",
343
    "Meter not added because meter specified is invalid, or invalid meter in meter action.",
344
    "Meter not modified because a Meter MODIFY attempted to modify a non-existent meter, or bad meter in meter action.",
345
    "Unsupported or unknown command.",
346
    "Flag configuration unsupported.",
347
    "Rate unsupported.",
348
    "Burst size unsupported.",
349
    "Band unsupported.",
350
    "Band value unsupported.",
351
    "No more meters available.",
352
    "The maximum number of properties for a meter has been exceeded.",
353
    "Specified table does not exist.",
354
    "Invalid metadata mask.",
355
    "Permissions error.",
356
    "Invalid capability field.",
357
    "Invalid max_entries field.",
358
    "Invalid features field.",
359
    "Invalid command.",
360
    "Can't handle this many flow tables.",
361
    "Table specified multiple times.",
362
    "Unknown or unsupported property type.  ",
363
    "Length problem in property.  ",
364
    "Unsupported property value.  ",
365
    "Can't handle this many properties.",
366
    "A property type was duplicated.",
367
    "Unknown experimenter id specified.",
368
    "Unknown exp_type for experimenter id.",
369
    "Unknown value for experimenter id.",
370
    "Permissions error.",
371
    "One mask is invalid.",
372
    "Requested configuration not supported.",
373
    "Permissions error.",
374
    "Unspecified error.",
375
    "Permissions error.",
376
    "Bundle ID doesn't exist.",
377
    "Bundle ID already exists.",
378
    "Bundle ID is closed.",
379
    "Too many bundle IDs.",
380
    "Unsupported of unknown message control type.",
381
    "Unsupported, unknown, or inconsistent flags.",
382
    "Length problem in included message.",
383
    "Inconsistent or duplicate XID.",
384
    "Unsupported message in this bundle.",
385
    "Unsupported message combination in this bundle.",
386
    "Cant handle this many messages in bundle.",
387
    "One message in bundle failed.",
388
    "Bundle is taking too long.",
389
    "Bundle is locking the resource.",
390
    "Scheduled commit was received and scheduling is not supported.",
391
    "Scheduled commit time exceeds upper bound.",
392
    "Scheduled commit time exceeds lower bound.",
393
    "In an OFPT_BUNDLE_ADD_MESSAGE, the OpenFlow version in the inner and outer messages differ.",
394
    "Unspecified error.",
395
    "Monitor not added because a Monitor ADD attempted to replace an existing Monitor.",
396
    "Monitor not added because Monitor specified is invalid.",
397
    "Monitor not modified because a Monitor MODIFY attempted to modify a non-existent Monitor.",
398
    "Unsupported or unknown command.",
399
    "Flag configuration unsupported.",
400
    "Specified table does not exist.",
401
    "Error in output port/group.",
402
    "The TLV table mod command is not recognized as a valid operation.",
403
    "The option length is not a valid option size for TLVs.",
404
    "The field index is out of range for the supported NX_TUN_METADATA<n> match.",
405
    "The total set of configured options exceeds the maximum supported by the switch.",
406
    "The controller issued an NXTTMC_ADD command for a field index that is already mapped.",
407
    "The option TLV that is attempting to be mapped is the same as one assigned to a different field.",
408
    "Attempted to delete a TLV mapping that is used by any active flow.",
409
    "This datapath doesn't support NXT_RESUME.",
410
    "Continuation is stale: Open vSwitch process has been restarted or bridge has been destroyed since continuation was generated, or continuation was not generated by this Open vSwitch instance.",
411
    "Protocol is not configured on this Open vSwitch instance.",
412
};
413
414
static enum ofperr
415
ofperr_of10_decode(uint32_t vendor, uint16_t type, uint16_t code)
416
108k
{
417
108k
    switch (((uint64_t) vendor << 32) | ((uint32_t) type << 16) | code) {
418
1.17k
    case  ((uint32_t) 0 << 16) | 0:
419
1.17k
        return OFPERR_OFPHFC_INCOMPATIBLE;
420
371
    case  ((uint32_t) 0 << 16) | 1:
421
371
        return OFPERR_OFPHFC_EPERM;
422
1.09k
    case  ((uint32_t) 1 << 16) | 0:
423
1.09k
        return OFPERR_OFPBRC_BAD_VERSION;
424
144
    case  ((uint32_t) 1 << 16) | 1:
425
144
        return OFPERR_OFPBRC_BAD_TYPE;
426
4.63k
    case  ((uint32_t) 1 << 16) | 2:
427
4.63k
        return OFPERR_OFPBRC_BAD_STAT;
428
75
    case  ((uint32_t) 1 << 16) | 3:
429
75
        return OFPERR_OFPBRC_BAD_VENDOR;
430
611
    case  ((uint32_t) 1 << 16) | 4:
431
611
        return OFPERR_OFPBRC_BAD_SUBTYPE;
432
405
    case  ((uint32_t) 1 << 16) | 5:
433
405
        return OFPERR_OFPBRC_EPERM;
434
346
    case  ((uint32_t) 1 << 16) | 6:
435
346
        return OFPERR_OFPBRC_BAD_LEN;
436
215
    case  ((uint32_t) 1 << 16) | 7:
437
215
        return OFPERR_OFPBRC_BUFFER_EMPTY;
438
742
    case  ((uint32_t) 1 << 16) | 8:
439
742
        return OFPERR_OFPBRC_BUFFER_UNKNOWN;
440
662
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 512:
441
662
        return OFPERR_OFPBRC_BAD_TABLE_ID;
442
19
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 514:
443
19
        return OFPERR_OFPBRC_BAD_PORT;
444
426
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 256:
445
426
        return OFPERR_NXBRC_NXM_INVALID;
446
8.84k
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 257:
447
8.84k
        return OFPERR_NXBRC_NXM_BAD_TYPE;
448
1.10k
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 515:
449
1.10k
        return OFPERR_NXBRC_MUST_BE_ZERO;
450
1.53k
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 516:
451
1.53k
        return OFPERR_NXBRC_BAD_REASON;
452
18
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 520:
453
18
        return OFPERR_NXBRC_FM_BAD_EVENT;
454
66
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 521:
455
66
        return OFPERR_NXBRC_UNENCODABLE_ERROR;
456
133
    case  ((uint32_t) 2 << 16) | 0:
457
133
        return OFPERR_OFPBAC_BAD_TYPE;
458
404
    case  ((uint32_t) 2 << 16) | 1:
459
404
        return OFPERR_OFPBAC_BAD_LEN;
460
4.42k
    case  ((uint32_t) 2 << 16) | 2:
461
4.42k
        return OFPERR_OFPBAC_BAD_VENDOR;
462
1.16k
    case  ((uint32_t) 2 << 16) | 3:
463
1.16k
        return OFPERR_OFPBAC_BAD_VENDOR_TYPE;
464
462
    case  ((uint32_t) 2 << 16) | 4:
465
462
        return OFPERR_OFPBAC_BAD_OUT_PORT;
466
1.12k
    case  ((uint32_t) 2 << 16) | 5:
467
1.12k
        return OFPERR_OFPBAC_BAD_ARGUMENT;
468
1.54k
    case  ((uint32_t) 2 << 16) | 6:
469
1.54k
        return OFPERR_OFPBAC_EPERM;
470
69
    case  ((uint32_t) 2 << 16) | 7:
471
69
        return OFPERR_OFPBAC_TOO_MANY;
472
6.84k
    case  ((uint32_t) 2 << 16) | 8:
473
6.84k
        return OFPERR_OFPBAC_BAD_QUEUE;
474
34
    case (0x2320ULL << 32) |  ((uint32_t) 2 << 16) | 9:
475
34
        return OFPERR_OFPBAC_BAD_OUT_GROUP;
476
36
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 522:
477
36
        return OFPERR_OFPBAC_MATCH_INCONSISTENT;
478
52
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 523:
479
52
        return OFPERR_OFPBAC_BAD_SET_TYPE;
480
200
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 524:
481
200
        return OFPERR_OFPBAC_BAD_SET_LEN;
482
520
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 525:
483
520
        return OFPERR_OFPBAC_BAD_SET_ARGUMENT;
484
18
    case (0x2320ULL << 32) |  ((uint32_t) 2 << 16) | 256:
485
18
        return OFPERR_NXBAC_MUST_BE_ZERO;
486
34
    case (0x2320ULL << 32) |  ((uint32_t) 2 << 16) | 526:
487
34
        return OFPERR_NXBAC_BAD_CONJUNCTION;
488
34
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 265:
489
34
        return OFPERR_NXBAC_CT_DATAPATH_SUPPORT;
490
1.51k
    case (0x2320ULL << 32) |  ((uint32_t) 2 << 16) | 257:
491
1.51k
        return OFPERR_OFPBIC_UNSUP_INST;
492
1.02k
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 262:
493
1.02k
        return OFPERR_OFPBMC_BAD_WILDCARDS;
494
66
    case (0x2320ULL << 32) |  ((uint32_t) 0 << 16) | 263:
495
66
        return OFPERR_OFPBMC_BAD_FIELD;
496
104
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 258:
497
104
        return OFPERR_OFPBMC_BAD_VALUE;
498
66
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 259:
499
66
        return OFPERR_OFPBMC_BAD_MASK;
500
3.71k
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 260:
501
3.71k
        return OFPERR_OFPBMC_BAD_PREREQ;
502
25
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 261:
503
25
        return OFPERR_OFPBMC_DUP_FIELD;
504
68
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 264:
505
68
        return OFPERR_NXBMC_CT_DATAPATH_SUPPORT;
506
444
    case  ((uint32_t) 3 << 16) | 0:
507
444
        return OFPERR_OFPFMFC_TABLE_FULL;
508
3.19k
    case  ((uint32_t) 3 << 16) | 1:
509
3.19k
        return OFPERR_OFPFMFC_OVERLAP;
510
1.22k
    case  ((uint32_t) 3 << 16) | 2:
511
1.22k
        return OFPERR_OFPFMFC_EPERM;
512
405
    case  ((uint32_t) 3 << 16) | 3:
513
405
        return OFPERR_OFPFMFC_BAD_EMERG_TIMEOUT;
514
200
    case  ((uint32_t) 3 << 16) | 4:
515
200
        return OFPERR_OFPFMFC_BAD_COMMAND;
516
34
    case (0x2320ULL << 32) |  ((uint32_t) 3 << 16) | 258:
517
34
        return OFPERR_OFPFMFC_BAD_FLAGS;
518
92
    case  ((uint32_t) 3 << 16) | 5:
519
92
        return OFPERR_OFPFMFC_UNSUPPORTED;
520
34
    case (0x2320ULL << 32) |  ((uint32_t) 5 << 16) | 256:
521
34
        return OFPERR_NXFMFC_HARDWARE;
522
34
    case (0x2320ULL << 32) |  ((uint32_t) 5 << 16) | 257:
523
34
        return OFPERR_NXFMFC_BAD_TABLE_ID;
524
34
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 536:
525
34
        return OFPERR_NXFMFC_INVALID_TLV_FIELD;
526
451
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 0:
527
451
        return OFPERR_OFPGMFC_GROUP_EXISTS;
528
11
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 1:
529
11
        return OFPERR_OFPGMFC_INVALID_GROUP;
530
34
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 2:
531
34
        return OFPERR_OFPGMFC_WEIGHT_UNSUPPORTED;
532
34
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 3:
533
34
        return OFPERR_OFPGMFC_OUT_OF_GROUPS;
534
34
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 4:
535
34
        return OFPERR_OFPGMFC_OUT_OF_BUCKETS;
536
66
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 5:
537
66
        return OFPERR_OFPGMFC_CHAINING_UNSUPPORTED;
538
206
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 6:
539
206
        return OFPERR_OFPGMFC_WATCH_UNSUPPORTED;
540
203
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 7:
541
203
        return OFPERR_OFPGMFC_LOOP;
542
10
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 8:
543
10
        return OFPERR_OFPGMFC_UNKNOWN_GROUP;
544
66
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 9:
545
66
        return OFPERR_OFPGMFC_CHAINED_GROUP;
546
34
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 10:
547
34
        return OFPERR_OFPGMFC_BAD_TYPE;
548
42
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 11:
549
42
        return OFPERR_OFPGMFC_BAD_COMMAND;
550
34
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 12:
551
34
        return OFPERR_OFPGMFC_BAD_BUCKET;
552
67
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 13:
553
67
        return OFPERR_OFPGMFC_BAD_WATCH;
554
35
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 14:
555
35
        return OFPERR_OFPGMFC_EPERM;
556
66
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 15:
557
66
        return OFPERR_OFPGMFC_UNKNOWN_BUCKET;
558
18
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 16:
559
18
        return OFPERR_OFPGMFC_BUCKET_EXISTS;
560
66
    case  ((uint32_t) 4 << 16) | 0:
561
66
        return OFPERR_OFPPMFC_BAD_PORT;
562
264
    case  ((uint32_t) 4 << 16) | 1:
563
264
        return OFPERR_OFPPMFC_BAD_HW_ADDR;
564
301
    case  ((uint32_t) 5 << 16) | 0:
565
301
        return OFPERR_OFPQOFC_BAD_PORT;
566
162
    case  ((uint32_t) 5 << 16) | 1:
567
162
        return OFPERR_OFPQOFC_BAD_QUEUE;
568
2.24k
    case  ((uint32_t) 5 << 16) | 2:
569
2.24k
        return OFPERR_OFPQOFC_EPERM;
570
34
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 513:
571
34
        return OFPERR_OFPRRFC_BAD_ROLE;
572
153
    case (0x2320ULL << 32) |  ((uint32_t) 13 << 16) | 2:
573
153
        return OFPERR_OFPBPC_BAD_TYPE;
574
1.19k
    case (0x2320ULL << 32) |  ((uint32_t) 13 << 16) | 3:
575
1.19k
        return OFPERR_OFPBPC_BAD_LEN;
576
66
    case (0x2320ULL << 32) |  ((uint32_t) 13 << 16) | 4:
577
66
        return OFPERR_OFPBPC_BAD_VALUE;
578
34
    case (0x2320ULL << 32) |  ((uint32_t) 14 << 16) | 3:
579
34
        return OFPERR_OFPBPC_TOO_MANY;
580
34
    case (0x2320ULL << 32) |  ((uint32_t) 14 << 16) | 4:
581
34
        return OFPERR_OFPBPC_DUP_TYPE;
582
2.15k
    case (0x2320ULL << 32) |  ((uint32_t) 14 << 16) | 5:
583
2.15k
        return OFPERR_OFPBPC_BAD_EXPERIMENTER;
584
672
    case (0x2320ULL << 32) |  ((uint32_t) 14 << 16) | 6:
585
672
        return OFPERR_OFPBPC_BAD_EXP_TYPE;
586
1.03k
    case (0x2320ULL << 32) |  ((uint32_t) 14 << 16) | 7:
587
1.03k
        return OFPERR_OFPBPC_BAD_EXP_VALUE;
588
34
    case (0x2320ULL << 32) |  ((uint32_t) 14 << 16) | 8:
589
34
        return OFPERR_OFPBPC_EPERM;
590
2.24k
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 517:
591
2.24k
        return OFPERR_OFPMOFC_MONITOR_EXISTS;
592
1.59k
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 519:
593
1.59k
        return OFPERR_OFPMOFC_UNKNOWN_MONITOR;
594
34
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 518:
595
34
        return OFPERR_OFPMOFC_BAD_FLAGS;
596
1.55k
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 527:
597
1.55k
        return OFPERR_NXTTMFC_BAD_COMMAND;
598
34
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 528:
599
34
        return OFPERR_NXTTMFC_BAD_OPT_LEN;
600
11
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 529:
601
11
        return OFPERR_NXTTMFC_BAD_FIELD_IDX;
602
585
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 530:
603
585
        return OFPERR_NXTTMFC_TABLE_FULL;
604
34
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 531:
605
34
        return OFPERR_NXTTMFC_ALREADY_MAPPED;
606
68
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 532:
607
68
        return OFPERR_NXTTMFC_DUP_ENTRY;
608
34
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 537:
609
34
        return OFPERR_NXTTMFC_INVALID_TLV_DEL;
610
10
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 533:
611
10
        return OFPERR_NXR_NOT_SUPPORTED;
612
66
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 534:
613
66
        return OFPERR_NXR_STALE;
614
53
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 535:
615
53
        return OFPERR_NXST_NOT_CONFIGURED;
616
108k
    }
617
618
40.1k
    return 0;
619
108k
}
620
621
static const struct ofperr_domain ofperr_of10 = {
622
    "OpenFlow 1.0",
623
    1,
624
    ofperr_of10_decode,
625
    {
626
        {      0x0,  0,   0 }, /* OFPHFC_INCOMPATIBLE */
627
        {      0x0,  0,   1 }, /* OFPHFC_EPERM */
628
        {      0x0,  1,   0 }, /* OFPBRC_BAD_VERSION */
629
        {      0x0,  1,   1 }, /* OFPBRC_BAD_TYPE */
630
        {      0x0,  1,   2 }, /* OFPBRC_BAD_STAT */
631
        {      0x0,  1,   3 }, /* OFPBRC_BAD_VENDOR */
632
        {      0x0,  1,   4 }, /* OFPBRC_BAD_SUBTYPE */
633
        {      0x0,  1,   5 }, /* OFPBRC_EPERM */
634
        {      0x0,  1,   6 }, /* OFPBRC_BAD_LEN */
635
        {      0x0,  1,   7 }, /* OFPBRC_BUFFER_EMPTY */
636
        {      0x0,  1,   8 }, /* OFPBRC_BUFFER_UNKNOWN */
637
        {   0x2320,  1, 512 }, /* OFPBRC_BAD_TABLE_ID */
638
        {      0x0,  1,   5 }, /* OFPBRC_IS_SECONDARY */
639
        {   0x2320,  1, 514 }, /* OFPBRC_BAD_PORT */
640
        {       -1, -1,  -1 }, /* OFPBRC_BAD_PACKET */
641
        {       -1, -1,  -1 }, /* OFPBRC_MULTIPART_BUFFER_OVERFLOW */
642
        {       -1, -1,  -1 }, /* OFPBRC_MULTIPART_REQUEST_TIMEOUT */
643
        {       -1, -1,  -1 }, /* OFPBRC_MULTIPART_REPLY_TIMEOUT */
644
        {       -1, -1,  -1 }, /* OFPBRC_MULTIPART_BAD_SCHED */
645
        {       -1, -1,  -1 }, /* OFPBRC_PIPELINE_FIELDS_ONLY */
646
        {       -1, -1,  -1 }, /* OFPBRC_UNKNOWN */
647
        {   0x2320,  1, 256 }, /* NXBRC_NXM_INVALID */
648
        {   0x2320,  1, 257 }, /* NXBRC_NXM_BAD_TYPE */
649
        {   0x2320,  1, 515 }, /* NXBRC_MUST_BE_ZERO */
650
        {   0x2320,  1, 516 }, /* NXBRC_BAD_REASON */
651
        {   0x2320,  1, 520 }, /* NXBRC_FM_BAD_EVENT */
652
        {   0x2320,  1, 521 }, /* NXBRC_UNENCODABLE_ERROR */
653
        {      0x0,  2,   0 }, /* OFPBAC_BAD_TYPE */
654
        {      0x0,  2,   1 }, /* OFPBAC_BAD_LEN */
655
        {      0x0,  2,   2 }, /* OFPBAC_BAD_VENDOR */
656
        {      0x0,  2,   3 }, /* OFPBAC_BAD_VENDOR_TYPE */
657
        {      0x0,  2,   4 }, /* OFPBAC_BAD_OUT_PORT */
658
        {      0x0,  2,   5 }, /* OFPBAC_BAD_ARGUMENT */
659
        {      0x0,  2,   6 }, /* OFPBAC_EPERM */
660
        {      0x0,  2,   7 }, /* OFPBAC_TOO_MANY */
661
        {      0x0,  2,   8 }, /* OFPBAC_BAD_QUEUE */
662
        {   0x2320,  2,   9 }, /* OFPBAC_BAD_OUT_GROUP */
663
        {   0x2320,  1, 522 }, /* OFPBAC_MATCH_INCONSISTENT */
664
        {       -1, -1,  -1 }, /* OFPBAC_UNSUPPORTED_ORDER */
665
        {       -1, -1,  -1 }, /* OFPBAC_BAD_TAG */
666
        {   0x2320,  1, 523 }, /* OFPBAC_BAD_SET_TYPE */
667
        {   0x2320,  1, 524 }, /* OFPBAC_BAD_SET_LEN */
668
        {   0x2320,  1, 525 }, /* OFPBAC_BAD_SET_ARGUMENT */
669
        {       -1, -1,  -1 }, /* OFPBAC_BAD_SET_MASK */
670
        {       -1, -1,  -1 }, /* OFPBAC_BAD_METER */
671
        {   0x2320,  2, 256 }, /* NXBAC_MUST_BE_ZERO */
672
        {   0x2320,  2, 526 }, /* NXBAC_BAD_CONJUNCTION */
673
        {       -1, -1,  -1 }, /* NXBAC_BAD_HEADER_TYPE */
674
        {       -1, -1,  -1 }, /* NXBAC_UNKNOWN_ED_PROP */
675
        {       -1, -1,  -1 }, /* NXBAC_BAD_ED_PROP */
676
        {   0x2320,  1, 265 }, /* NXBAC_CT_DATAPATH_SUPPORT */
677
        {       -1, -1,  -1 }, /* OFPBIC_UNKNOWN_INST */
678
        {   0x2320,  2, 257 }, /* OFPBIC_UNSUP_INST */
679
        {       -1, -1,  -1 }, /* OFPBIC_BAD_TABLE_ID */
680
        {       -1, -1,  -1 }, /* OFPBIC_UNSUP_METADATA */
681
        {       -1, -1,  -1 }, /* OFPBIC_UNSUP_METADATA_MASK */
682
        {       -1, -1,  -1 }, /* OFPBIC_BAD_EXPERIMENTER */
683
        {       -1, -1,  -1 }, /* OFPBIC_BAD_EXP_TYPE */
684
        {       -1, -1,  -1 }, /* OFPBIC_BAD_LEN */
685
        {       -1, -1,  -1 }, /* OFPBIC_EPERM */
686
        {       -1, -1,  -1 }, /* OFPBIC_DUP_INST */
687
        {       -1, -1,  -1 }, /* OFPBMC_BAD_TYPE */
688
        {       -1, -1,  -1 }, /* OFPBMC_BAD_LEN */
689
        {       -1, -1,  -1 }, /* OFPBMC_BAD_TAG */
690
        {       -1, -1,  -1 }, /* OFPBMC_BAD_DL_ADDR_MASK */
691
        {       -1, -1,  -1 }, /* OFPBMC_BAD_NW_ADDR_MASK */
692
        {   0x2320,  1, 262 }, /* OFPBMC_BAD_WILDCARDS */
693
        {   0x2320,  0, 263 }, /* OFPBMC_BAD_FIELD */
694
        {   0x2320,  1, 258 }, /* OFPBMC_BAD_VALUE */
695
        {   0x2320,  1, 259 }, /* OFPBMC_BAD_MASK */
696
        {   0x2320,  1, 260 }, /* OFPBMC_BAD_PREREQ */
697
        {   0x2320,  1, 261 }, /* OFPBMC_DUP_FIELD */
698
        {       -1, -1,  -1 }, /* OFPBMC_EPERM */
699
        {   0x2320,  1, 264 }, /* NXBMC_CT_DATAPATH_SUPPORT */
700
        {       -1, -1,  -1 }, /* OFPFMFC_UNKNOWN */
701
        {      0x0,  3,   0 }, /* OFPFMFC_TABLE_FULL */
702
        {       -1, -1,  -1 }, /* OFPFMFC_BAD_TABLE_ID */
703
        {      0x0,  3,   1 }, /* OFPFMFC_OVERLAP */
704
        {      0x0,  3,   2 }, /* OFPFMFC_EPERM */
705
        {       -1, -1,  -1 }, /* OFPFMFC_BAD_TIMEOUT */
706
        {      0x0,  3,   3 }, /* OFPFMFC_BAD_EMERG_TIMEOUT */
707
        {      0x0,  3,   4 }, /* OFPFMFC_BAD_COMMAND */
708
        {   0x2320,  3, 258 }, /* OFPFMFC_BAD_FLAGS */
709
        {       -1, -1,  -1 }, /* OFPFMFC_CANT_SYNC */
710
        {       -1, -1,  -1 }, /* OFPFMFC_BAD_PRIORITY */
711
        {       -1, -1,  -1 }, /* OFPFMFC_IS_SYNC */
712
        {      0x0,  3,   5 }, /* OFPFMFC_UNSUPPORTED */
713
        {   0x2320,  5, 256 }, /* NXFMFC_HARDWARE */
714
        {   0x2320,  5, 257 }, /* NXFMFC_BAD_TABLE_ID */
715
        {   0x2320,  1, 536 }, /* NXFMFC_INVALID_TLV_FIELD */
716
        {   0x2320,  6,   0 }, /* OFPGMFC_GROUP_EXISTS */
717
        {   0x2320,  6,   1 }, /* OFPGMFC_INVALID_GROUP */
718
        {   0x2320,  6,   2 }, /* OFPGMFC_WEIGHT_UNSUPPORTED */
719
        {   0x2320,  6,   3 }, /* OFPGMFC_OUT_OF_GROUPS */
720
        {   0x2320,  6,   4 }, /* OFPGMFC_OUT_OF_BUCKETS */
721
        {   0x2320,  6,   5 }, /* OFPGMFC_CHAINING_UNSUPPORTED */
722
        {   0x2320,  6,   6 }, /* OFPGMFC_WATCH_UNSUPPORTED */
723
        {   0x2320,  6,   7 }, /* OFPGMFC_LOOP */
724
        {   0x2320,  6,   8 }, /* OFPGMFC_UNKNOWN_GROUP */
725
        {   0x2320,  6,   9 }, /* OFPGMFC_CHAINED_GROUP */
726
        {   0x2320,  6,  10 }, /* OFPGMFC_BAD_TYPE */
727
        {   0x2320,  6,  11 }, /* OFPGMFC_BAD_COMMAND */
728
        {   0x2320,  6,  12 }, /* OFPGMFC_BAD_BUCKET */
729
        {   0x2320,  6,  13 }, /* OFPGMFC_BAD_WATCH */
730
        {   0x2320,  6,  14 }, /* OFPGMFC_EPERM */
731
        {   0x2320,  6,  15 }, /* OFPGMFC_UNKNOWN_BUCKET */
732
        {   0x2320,  6,  16 }, /* OFPGMFC_BUCKET_EXISTS */
733
        {      0x0,  4,   0 }, /* OFPPMFC_BAD_PORT */
734
        {      0x0,  4,   1 }, /* OFPPMFC_BAD_HW_ADDR */
735
        {       -1, -1,  -1 }, /* OFPPMFC_BAD_CONFIG */
736
        {       -1, -1,  -1 }, /* OFPPMFC_BAD_ADVERTISE */
737
        {       -1, -1,  -1 }, /* OFPPMFC_EPERM */
738
        {       -1, -1,  -1 }, /* OFPTMFC_BAD_TABLE */
739
        {       -1, -1,  -1 }, /* OFPTMFC_BAD_CONFIG */
740
        {       -1, -1,  -1 }, /* OFPTMFC_EPERM */
741
        {      0x0,  5,   0 }, /* OFPQOFC_BAD_PORT */
742
        {      0x0,  5,   1 }, /* OFPQOFC_BAD_QUEUE */
743
        {      0x0,  5,   2 }, /* OFPQOFC_EPERM */
744
        {       -1, -1,  -1 }, /* NXQOFC_QUEUE_ERROR */
745
        {       -1, -1,  -1 }, /* OFPSCFC_BAD_FLAGS */
746
        {       -1, -1,  -1 }, /* OFPSCFC_BAD_LEN */
747
        {       -1, -1,  -1 }, /* OFPSCFC_EPERM */
748
        {       -1, -1,  -1 }, /* OFPRRFC_STALE */
749
        {       -1, -1,  -1 }, /* OFPRRFC_UNSUP */
750
        {   0x2320,  1, 513 }, /* OFPRRFC_BAD_ROLE */
751
        {       -1, -1,  -1 }, /* OFPRRFC_ID_UNSUP */
752
        {       -1, -1,  -1 }, /* OFPRRFC_ID_IN_USE */
753
        {       -1, -1,  -1 }, /* OFPMMFC_UNKNOWN */
754
        {       -1, -1,  -1 }, /* OFPMMFC_METER_EXISTS */
755
        {       -1, -1,  -1 }, /* OFPMMFC_INVALID_METER */
756
        {       -1, -1,  -1 }, /* OFPMMFC_UNKNOWN_METER */
757
        {       -1, -1,  -1 }, /* OFPMMFC_BAD_COMMAND */
758
        {       -1, -1,  -1 }, /* OFPMMFC_BAD_FLAGS */
759
        {       -1, -1,  -1 }, /* OFPMMFC_BAD_RATE */
760
        {       -1, -1,  -1 }, /* OFPMMFC_BAD_BURST */
761
        {       -1, -1,  -1 }, /* OFPMMFC_BAD_BAND */
762
        {       -1, -1,  -1 }, /* OFPMMFC_BAD_BAND_VALUE */
763
        {       -1, -1,  -1 }, /* OFPMMFC_OUT_OF_METERS */
764
        {       -1, -1,  -1 }, /* OFPMMFC_OUT_OF_BANDS */
765
        {       -1, -1,  -1 }, /* OFPTFFC_BAD_TABLE */
766
        {       -1, -1,  -1 }, /* OFPTFFC_BAD_METADATA */
767
        {       -1, -1,  -1 }, /* OFPTFFC_EPERM */
768
        {       -1, -1,  -1 }, /* OFPTFFC_BAD_CAPA */
769
        {       -1, -1,  -1 }, /* OFPTFFC_BAD_MAX_ENT */
770
        {       -1, -1,  -1 }, /* OFPTFFC_BAD_FEATURES */
771
        {       -1, -1,  -1 }, /* OFPTFFC_BAD_COMMAND */
772
        {       -1, -1,  -1 }, /* OFPTFFC_TOO_MANY */
773
        {       -1, -1,  -1 }, /* NXTFFC_DUP_TABLE */
774
        {   0x2320, 13,   2 }, /* OFPBPC_BAD_TYPE */
775
        {   0x2320, 13,   3 }, /* OFPBPC_BAD_LEN */
776
        {   0x2320, 13,   4 }, /* OFPBPC_BAD_VALUE */
777
        {   0x2320, 14,   3 }, /* OFPBPC_TOO_MANY */
778
        {   0x2320, 14,   4 }, /* OFPBPC_DUP_TYPE */
779
        {   0x2320, 14,   5 }, /* OFPBPC_BAD_EXPERIMENTER */
780
        {   0x2320, 14,   6 }, /* OFPBPC_BAD_EXP_TYPE */
781
        {   0x2320, 14,   7 }, /* OFPBPC_BAD_EXP_VALUE */
782
        {   0x2320, 14,   8 }, /* OFPBPC_EPERM */
783
        {       -1, -1,  -1 }, /* OFPACFC_INVALID */
784
        {       -1, -1,  -1 }, /* OFPACFC_UNSUPPORTED */
785
        {       -1, -1,  -1 }, /* OFPACFC_EPERM */
786
        {       -1, -1,  -1 }, /* OFPBFC_UNKNOWN */
787
        {       -1, -1,  -1 }, /* OFPBFC_EPERM */
788
        {       -1, -1,  -1 }, /* OFPBFC_BAD_ID */
789
        {       -1, -1,  -1 }, /* OFPBFC_BUNDLE_EXIST */
790
        {       -1, -1,  -1 }, /* OFPBFC_BUNDLE_CLOSED */
791
        {       -1, -1,  -1 }, /* OFPBFC_OUT_OF_BUNDLES */
792
        {       -1, -1,  -1 }, /* OFPBFC_BAD_TYPE */
793
        {       -1, -1,  -1 }, /* OFPBFC_BAD_FLAGS */
794
        {       -1, -1,  -1 }, /* OFPBFC_MSG_BAD_LEN */
795
        {       -1, -1,  -1 }, /* OFPBFC_MSG_BAD_XID */
796
        {       -1, -1,  -1 }, /* OFPBFC_MSG_UNSUP */
797
        {       -1, -1,  -1 }, /* OFPBFC_MSG_CONFLICT */
798
        {       -1, -1,  -1 }, /* OFPBFC_MSG_TOO_MANY */
799
        {       -1, -1,  -1 }, /* OFPBFC_MSG_FAILED */
800
        {       -1, -1,  -1 }, /* OFPBFC_TIMEOUT */
801
        {       -1, -1,  -1 }, /* OFPBFC_BUNDLE_IN_PROGRESS */
802
        {       -1, -1,  -1 }, /* OFPBFC_SCHED_NOT_SUPPORTED */
803
        {       -1, -1,  -1 }, /* OFPBFC_SCHED_FUTURE */
804
        {       -1, -1,  -1 }, /* OFPBFC_SCHED_PAST */
805
        {       -1, -1,  -1 }, /* OFPBFC_BAD_VERSION */
806
        {       -1, -1,  -1 }, /* OFPMOFC_UNKNOWN */
807
        {   0x2320,  1, 517 }, /* OFPMOFC_MONITOR_EXISTS */
808
        {       -1, -1,  -1 }, /* OFPMOFC_INVALID_MONITOR */
809
        {   0x2320,  1, 519 }, /* OFPMOFC_UNKNOWN_MONITOR */
810
        {       -1, -1,  -1 }, /* OFPMOFC_BAD_COMMAND */
811
        {   0x2320,  1, 518 }, /* OFPMOFC_BAD_FLAGS */
812
        {       -1, -1,  -1 }, /* OFPMOFC_BAD_TABLE_ID */
813
        {       -1, -1,  -1 }, /* OFPMOFC_BAD_OUT */
814
        {   0x2320,  1, 527 }, /* NXTTMFC_BAD_COMMAND */
815
        {   0x2320,  1, 528 }, /* NXTTMFC_BAD_OPT_LEN */
816
        {   0x2320,  1, 529 }, /* NXTTMFC_BAD_FIELD_IDX */
817
        {   0x2320,  1, 530 }, /* NXTTMFC_TABLE_FULL */
818
        {   0x2320,  1, 531 }, /* NXTTMFC_ALREADY_MAPPED */
819
        {   0x2320,  1, 532 }, /* NXTTMFC_DUP_ENTRY */
820
        {   0x2320,  1, 537 }, /* NXTTMFC_INVALID_TLV_DEL */
821
        {   0x2320,  1, 533 }, /* NXR_NOT_SUPPORTED */
822
        {   0x2320,  1, 534 }, /* NXR_STALE */
823
        {   0x2320,  1, 535 }, /* NXST_NOT_CONFIGURED */
824
    },
825
};
826
827
static enum ofperr
828
ofperr_of11_decode(uint32_t vendor, uint16_t type, uint16_t code)
829
101k
{
830
101k
    switch (((uint64_t) vendor << 32) | ((uint32_t) type << 16) | code) {
831
2.31k
    case  ((uint32_t) 0 << 16) | 0:
832
2.31k
        return OFPERR_OFPHFC_INCOMPATIBLE;
833
499
    case  ((uint32_t) 0 << 16) | 1:
834
499
        return OFPERR_OFPHFC_EPERM;
835
444
    case  ((uint32_t) 1 << 16) | 0:
836
444
        return OFPERR_OFPBRC_BAD_VERSION;
837
134
    case  ((uint32_t) 1 << 16) | 1:
838
134
        return OFPERR_OFPBRC_BAD_TYPE;
839
93
    case  ((uint32_t) 1 << 16) | 2:
840
93
        return OFPERR_OFPBRC_BAD_STAT;
841
278
    case  ((uint32_t) 1 << 16) | 3:
842
278
        return OFPERR_OFPBRC_BAD_VENDOR;
843
444
    case  ((uint32_t) 1 << 16) | 4:
844
444
        return OFPERR_OFPBRC_BAD_SUBTYPE;
845
434
    case  ((uint32_t) 1 << 16) | 5:
846
434
        return OFPERR_OFPBRC_EPERM;
847
1.28k
    case  ((uint32_t) 1 << 16) | 6:
848
1.28k
        return OFPERR_OFPBRC_BAD_LEN;
849
35
    case  ((uint32_t) 1 << 16) | 7:
850
35
        return OFPERR_OFPBRC_BUFFER_EMPTY;
851
1.03k
    case  ((uint32_t) 1 << 16) | 8:
852
1.03k
        return OFPERR_OFPBRC_BUFFER_UNKNOWN;
853
599
    case  ((uint32_t) 1 << 16) | 9:
854
599
        return OFPERR_OFPBRC_BAD_TABLE_ID;
855
264
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 514:
856
264
        return OFPERR_OFPBRC_BAD_PORT;
857
3.51k
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 256:
858
3.51k
        return OFPERR_NXBRC_NXM_INVALID;
859
3.18k
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 257:
860
3.18k
        return OFPERR_NXBRC_NXM_BAD_TYPE;
861
39
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 515:
862
39
        return OFPERR_NXBRC_MUST_BE_ZERO;
863
984
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 516:
864
984
        return OFPERR_NXBRC_BAD_REASON;
865
34
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 520:
866
34
        return OFPERR_NXBRC_FM_BAD_EVENT;
867
271
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 521:
868
271
        return OFPERR_NXBRC_UNENCODABLE_ERROR;
869
87
    case  ((uint32_t) 2 << 16) | 0:
870
87
        return OFPERR_OFPBAC_BAD_TYPE;
871
481
    case  ((uint32_t) 2 << 16) | 1:
872
481
        return OFPERR_OFPBAC_BAD_LEN;
873
996
    case  ((uint32_t) 2 << 16) | 2:
874
996
        return OFPERR_OFPBAC_BAD_VENDOR;
875
139
    case  ((uint32_t) 2 << 16) | 3:
876
139
        return OFPERR_OFPBAC_BAD_VENDOR_TYPE;
877
178
    case  ((uint32_t) 2 << 16) | 4:
878
178
        return OFPERR_OFPBAC_BAD_OUT_PORT;
879
220
    case  ((uint32_t) 2 << 16) | 5:
880
220
        return OFPERR_OFPBAC_BAD_ARGUMENT;
881
742
    case  ((uint32_t) 2 << 16) | 6:
882
742
        return OFPERR_OFPBAC_EPERM;
883
70
    case  ((uint32_t) 2 << 16) | 7:
884
70
        return OFPERR_OFPBAC_TOO_MANY;
885
4.15k
    case  ((uint32_t) 2 << 16) | 8:
886
4.15k
        return OFPERR_OFPBAC_BAD_QUEUE;
887
759
    case  ((uint32_t) 2 << 16) | 9:
888
759
        return OFPERR_OFPBAC_BAD_OUT_GROUP;
889
118
    case  ((uint32_t) 2 << 16) | 10:
890
118
        return OFPERR_OFPBAC_MATCH_INCONSISTENT;
891
2.44k
    case  ((uint32_t) 2 << 16) | 11:
892
2.44k
        return OFPERR_OFPBAC_UNSUPPORTED_ORDER;
893
2.22k
    case  ((uint32_t) 2 << 16) | 12:
894
2.22k
        return OFPERR_OFPBAC_BAD_TAG;
895
34
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 523:
896
34
        return OFPERR_OFPBAC_BAD_SET_TYPE;
897
1.71k
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 524:
898
1.71k
        return OFPERR_OFPBAC_BAD_SET_LEN;
899
18
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 525:
900
18
        return OFPERR_OFPBAC_BAD_SET_ARGUMENT;
901
34
    case (0x2320ULL << 32) |  ((uint32_t) 2 << 16) | 256:
902
34
        return OFPERR_NXBAC_MUST_BE_ZERO;
903
10
    case (0x2320ULL << 32) |  ((uint32_t) 2 << 16) | 526:
904
10
        return OFPERR_NXBAC_BAD_CONJUNCTION;
905
18
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 265:
906
18
        return OFPERR_NXBAC_CT_DATAPATH_SUPPORT;
907
91
    case  ((uint32_t) 3 << 16) | 0:
908
91
        return OFPERR_OFPBIC_UNKNOWN_INST;
909
952
    case  ((uint32_t) 3 << 16) | 1:
910
952
        return OFPERR_OFPBIC_UNSUP_INST;
911
243
    case  ((uint32_t) 3 << 16) | 2:
912
243
        return OFPERR_OFPBIC_BAD_TABLE_ID;
913
302
    case  ((uint32_t) 3 << 16) | 3:
914
302
        return OFPERR_OFPBIC_UNSUP_METADATA;
915
82
    case  ((uint32_t) 3 << 16) | 4:
916
82
        return OFPERR_OFPBIC_UNSUP_METADATA_MASK;
917
66
    case  ((uint32_t) 3 << 16) | 5:
918
66
        return OFPERR_OFPBIC_BAD_EXPERIMENTER;
919
194
    case (0x2320ULL << 32) |  ((uint32_t) 3 << 16) | 256:
920
194
        return OFPERR_OFPBIC_DUP_INST;
921
482
    case  ((uint32_t) 4 << 16) | 0:
922
482
        return OFPERR_OFPBMC_BAD_TYPE;
923
84
    case  ((uint32_t) 4 << 16) | 1:
924
84
        return OFPERR_OFPBMC_BAD_LEN;
925
124
    case  ((uint32_t) 4 << 16) | 2:
926
124
        return OFPERR_OFPBMC_BAD_TAG;
927
152
    case  ((uint32_t) 4 << 16) | 3:
928
152
        return OFPERR_OFPBMC_BAD_DL_ADDR_MASK;
929
141
    case  ((uint32_t) 4 << 16) | 4:
930
141
        return OFPERR_OFPBMC_BAD_NW_ADDR_MASK;
931
842
    case  ((uint32_t) 4 << 16) | 5:
932
842
        return OFPERR_OFPBMC_BAD_WILDCARDS;
933
66
    case  ((uint32_t) 4 << 16) | 6:
934
66
        return OFPERR_OFPBMC_BAD_FIELD;
935
19
    case  ((uint32_t) 4 << 16) | 7:
936
19
        return OFPERR_OFPBMC_BAD_VALUE;
937
201
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 259:
938
201
        return OFPERR_OFPBMC_BAD_MASK;
939
2.45k
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 260:
940
2.45k
        return OFPERR_OFPBMC_BAD_PREREQ;
941
66
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 261:
942
66
        return OFPERR_OFPBMC_DUP_FIELD;
943
18
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 264:
944
18
        return OFPERR_NXBMC_CT_DATAPATH_SUPPORT;
945
85
    case  ((uint32_t) 5 << 16) | 0:
946
85
        return OFPERR_OFPFMFC_UNKNOWN;
947
156
    case  ((uint32_t) 5 << 16) | 1:
948
156
        return OFPERR_OFPFMFC_TABLE_FULL;
949
570
    case  ((uint32_t) 5 << 16) | 2:
950
570
        return OFPERR_OFPFMFC_BAD_TABLE_ID;
951
112
    case  ((uint32_t) 5 << 16) | 3:
952
112
        return OFPERR_OFPFMFC_OVERLAP;
953
270
    case  ((uint32_t) 5 << 16) | 4:
954
270
        return OFPERR_OFPFMFC_EPERM;
955
1.57k
    case  ((uint32_t) 5 << 16) | 5:
956
1.57k
        return OFPERR_OFPFMFC_BAD_TIMEOUT;
957
66
    case  ((uint32_t) 5 << 16) | 6:
958
66
        return OFPERR_OFPFMFC_BAD_COMMAND;
959
18
    case (0x2320ULL << 32) |  ((uint32_t) 5 << 16) | 258:
960
18
        return OFPERR_OFPFMFC_BAD_FLAGS;
961
18
    case (0x2320ULL << 32) |  ((uint32_t) 5 << 16) | 256:
962
18
        return OFPERR_NXFMFC_HARDWARE;
963
66
    case (0x2320ULL << 32) |  ((uint32_t) 5 << 16) | 257:
964
66
        return OFPERR_NXFMFC_BAD_TABLE_ID;
965
18
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 536:
966
18
        return OFPERR_NXFMFC_INVALID_TLV_FIELD;
967
1.87k
    case  ((uint32_t) 6 << 16) | 0:
968
1.87k
        return OFPERR_OFPGMFC_GROUP_EXISTS;
969
1.88k
    case  ((uint32_t) 6 << 16) | 1:
970
1.88k
        return OFPERR_OFPGMFC_INVALID_GROUP;
971
3.41k
    case  ((uint32_t) 6 << 16) | 2:
972
3.41k
        return OFPERR_OFPGMFC_WEIGHT_UNSUPPORTED;
973
114
    case  ((uint32_t) 6 << 16) | 3:
974
114
        return OFPERR_OFPGMFC_OUT_OF_GROUPS;
975
3.28k
    case  ((uint32_t) 6 << 16) | 4:
976
3.28k
        return OFPERR_OFPGMFC_OUT_OF_BUCKETS;
977
1.31k
    case  ((uint32_t) 6 << 16) | 5:
978
1.31k
        return OFPERR_OFPGMFC_CHAINING_UNSUPPORTED;
979
81
    case  ((uint32_t) 6 << 16) | 6:
980
81
        return OFPERR_OFPGMFC_WATCH_UNSUPPORTED;
981
66
    case  ((uint32_t) 6 << 16) | 7:
982
66
        return OFPERR_OFPGMFC_LOOP;
983
4.22k
    case  ((uint32_t) 6 << 16) | 8:
984
4.22k
        return OFPERR_OFPGMFC_UNKNOWN_GROUP;
985
607
    case  ((uint32_t) 7 << 16) | 0:
986
607
        return OFPERR_OFPPMFC_BAD_PORT;
987
68
    case  ((uint32_t) 7 << 16) | 1:
988
68
        return OFPERR_OFPPMFC_BAD_HW_ADDR;
989
653
    case  ((uint32_t) 7 << 16) | 2:
990
653
        return OFPERR_OFPPMFC_BAD_CONFIG;
991
298
    case  ((uint32_t) 7 << 16) | 3:
992
298
        return OFPERR_OFPPMFC_BAD_ADVERTISE;
993
84
    case  ((uint32_t) 8 << 16) | 0:
994
84
        return OFPERR_OFPTMFC_BAD_TABLE;
995
2.10k
    case  ((uint32_t) 8 << 16) | 1:
996
2.10k
        return OFPERR_OFPTMFC_BAD_CONFIG;
997
66
    case  ((uint32_t) 9 << 16) | 0:
998
66
        return OFPERR_OFPQOFC_BAD_PORT;
999
194
    case  ((uint32_t) 9 << 16) | 1:
1000
194
        return OFPERR_OFPQOFC_BAD_QUEUE;
1001
112
    case  ((uint32_t) 9 << 16) | 2:
1002
112
        return OFPERR_OFPQOFC_EPERM;
1003
427
    case  ((uint32_t) 10 << 16) | 0:
1004
427
        return OFPERR_OFPSCFC_BAD_FLAGS;
1005
66
    case  ((uint32_t) 10 << 16) | 1:
1006
66
        return OFPERR_OFPSCFC_BAD_LEN;
1007
296
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 513:
1008
296
        return OFPERR_OFPRRFC_BAD_ROLE;
1009
1.90k
    case (0x2320ULL << 32) |  ((uint32_t) 13 << 16) | 2:
1010
1.90k
        return OFPERR_OFPBPC_BAD_TYPE;
1011
2.21k
    case (0x2320ULL << 32) |  ((uint32_t) 13 << 16) | 3:
1012
2.21k
        return OFPERR_OFPBPC_BAD_LEN;
1013
18
    case (0x2320ULL << 32) |  ((uint32_t) 13 << 16) | 4:
1014
18
        return OFPERR_OFPBPC_BAD_VALUE;
1015
66
    case (0x2320ULL << 32) |  ((uint32_t) 14 << 16) | 3:
1016
66
        return OFPERR_OFPBPC_TOO_MANY;
1017
18
    case (0x2320ULL << 32) |  ((uint32_t) 14 << 16) | 4:
1018
18
        return OFPERR_OFPBPC_DUP_TYPE;
1019
1.15k
    case (0x2320ULL << 32) |  ((uint32_t) 14 << 16) | 5:
1020
1.15k
        return OFPERR_OFPBPC_BAD_EXPERIMENTER;
1021
688
    case (0x2320ULL << 32) |  ((uint32_t) 14 << 16) | 6:
1022
688
        return OFPERR_OFPBPC_BAD_EXP_TYPE;
1023
316
    case (0x2320ULL << 32) |  ((uint32_t) 14 << 16) | 7:
1024
316
        return OFPERR_OFPBPC_BAD_EXP_VALUE;
1025
18
    case (0x2320ULL << 32) |  ((uint32_t) 14 << 16) | 8:
1026
18
        return OFPERR_OFPBPC_EPERM;
1027
199
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 517:
1028
199
        return OFPERR_OFPMOFC_MONITOR_EXISTS;
1029
882
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 519:
1030
882
        return OFPERR_OFPMOFC_UNKNOWN_MONITOR;
1031
18
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 518:
1032
18
        return OFPERR_OFPMOFC_BAD_FLAGS;
1033
12
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 527:
1034
12
        return OFPERR_NXTTMFC_BAD_COMMAND;
1035
10
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 528:
1036
10
        return OFPERR_NXTTMFC_BAD_OPT_LEN;
1037
296
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 529:
1038
296
        return OFPERR_NXTTMFC_BAD_FIELD_IDX;
1039
19
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 530:
1040
19
        return OFPERR_NXTTMFC_TABLE_FULL;
1041
18
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 531:
1042
18
        return OFPERR_NXTTMFC_ALREADY_MAPPED;
1043
145
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 532:
1044
145
        return OFPERR_NXTTMFC_DUP_ENTRY;
1045
42
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 537:
1046
42
        return OFPERR_NXTTMFC_INVALID_TLV_DEL;
1047
1.21k
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 533:
1048
1.21k
        return OFPERR_NXR_NOT_SUPPORTED;
1049
75
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 534:
1050
75
        return OFPERR_NXR_STALE;
1051
216
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 535:
1052
216
        return OFPERR_NXST_NOT_CONFIGURED;
1053
101k
    }
1054
1055
30.9k
    return 0;
1056
101k
}
1057
1058
static const struct ofperr_domain ofperr_of11 = {
1059
    "OpenFlow 1.1",
1060
    2,
1061
    ofperr_of11_decode,
1062
    {
1063
        {      0x0,  0,   0 }, /* OFPHFC_INCOMPATIBLE */
1064
        {      0x0,  0,   1 }, /* OFPHFC_EPERM */
1065
        {      0x0,  1,   0 }, /* OFPBRC_BAD_VERSION */
1066
        {      0x0,  1,   1 }, /* OFPBRC_BAD_TYPE */
1067
        {      0x0,  1,   2 }, /* OFPBRC_BAD_STAT */
1068
        {      0x0,  1,   3 }, /* OFPBRC_BAD_VENDOR */
1069
        {      0x0,  1,   4 }, /* OFPBRC_BAD_SUBTYPE */
1070
        {      0x0,  1,   5 }, /* OFPBRC_EPERM */
1071
        {      0x0,  1,   6 }, /* OFPBRC_BAD_LEN */
1072
        {      0x0,  1,   7 }, /* OFPBRC_BUFFER_EMPTY */
1073
        {      0x0,  1,   8 }, /* OFPBRC_BUFFER_UNKNOWN */
1074
        {      0x0,  1,   9 }, /* OFPBRC_BAD_TABLE_ID */
1075
        {      0x0,  1,   5 }, /* OFPBRC_IS_SECONDARY */
1076
        {   0x2320,  1, 514 }, /* OFPBRC_BAD_PORT */
1077
        {       -1, -1,  -1 }, /* OFPBRC_BAD_PACKET */
1078
        {       -1, -1,  -1 }, /* OFPBRC_MULTIPART_BUFFER_OVERFLOW */
1079
        {       -1, -1,  -1 }, /* OFPBRC_MULTIPART_REQUEST_TIMEOUT */
1080
        {       -1, -1,  -1 }, /* OFPBRC_MULTIPART_REPLY_TIMEOUT */
1081
        {       -1, -1,  -1 }, /* OFPBRC_MULTIPART_BAD_SCHED */
1082
        {       -1, -1,  -1 }, /* OFPBRC_PIPELINE_FIELDS_ONLY */
1083
        {       -1, -1,  -1 }, /* OFPBRC_UNKNOWN */
1084
        {   0x2320,  1, 256 }, /* NXBRC_NXM_INVALID */
1085
        {   0x2320,  1, 257 }, /* NXBRC_NXM_BAD_TYPE */
1086
        {   0x2320,  1, 515 }, /* NXBRC_MUST_BE_ZERO */
1087
        {   0x2320,  1, 516 }, /* NXBRC_BAD_REASON */
1088
        {   0x2320,  1, 520 }, /* NXBRC_FM_BAD_EVENT */
1089
        {   0x2320,  1, 521 }, /* NXBRC_UNENCODABLE_ERROR */
1090
        {      0x0,  2,   0 }, /* OFPBAC_BAD_TYPE */
1091
        {      0x0,  2,   1 }, /* OFPBAC_BAD_LEN */
1092
        {      0x0,  2,   2 }, /* OFPBAC_BAD_VENDOR */
1093
        {      0x0,  2,   3 }, /* OFPBAC_BAD_VENDOR_TYPE */
1094
        {      0x0,  2,   4 }, /* OFPBAC_BAD_OUT_PORT */
1095
        {      0x0,  2,   5 }, /* OFPBAC_BAD_ARGUMENT */
1096
        {      0x0,  2,   6 }, /* OFPBAC_EPERM */
1097
        {      0x0,  2,   7 }, /* OFPBAC_TOO_MANY */
1098
        {      0x0,  2,   8 }, /* OFPBAC_BAD_QUEUE */
1099
        {      0x0,  2,   9 }, /* OFPBAC_BAD_OUT_GROUP */
1100
        {      0x0,  2,  10 }, /* OFPBAC_MATCH_INCONSISTENT */
1101
        {      0x0,  2,  11 }, /* OFPBAC_UNSUPPORTED_ORDER */
1102
        {      0x0,  2,  12 }, /* OFPBAC_BAD_TAG */
1103
        {   0x2320,  1, 523 }, /* OFPBAC_BAD_SET_TYPE */
1104
        {   0x2320,  1, 524 }, /* OFPBAC_BAD_SET_LEN */
1105
        {   0x2320,  1, 525 }, /* OFPBAC_BAD_SET_ARGUMENT */
1106
        {       -1, -1,  -1 }, /* OFPBAC_BAD_SET_MASK */
1107
        {       -1, -1,  -1 }, /* OFPBAC_BAD_METER */
1108
        {   0x2320,  2, 256 }, /* NXBAC_MUST_BE_ZERO */
1109
        {   0x2320,  2, 526 }, /* NXBAC_BAD_CONJUNCTION */
1110
        {       -1, -1,  -1 }, /* NXBAC_BAD_HEADER_TYPE */
1111
        {       -1, -1,  -1 }, /* NXBAC_UNKNOWN_ED_PROP */
1112
        {       -1, -1,  -1 }, /* NXBAC_BAD_ED_PROP */
1113
        {   0x2320,  1, 265 }, /* NXBAC_CT_DATAPATH_SUPPORT */
1114
        {      0x0,  3,   0 }, /* OFPBIC_UNKNOWN_INST */
1115
        {      0x0,  3,   1 }, /* OFPBIC_UNSUP_INST */
1116
        {      0x0,  3,   2 }, /* OFPBIC_BAD_TABLE_ID */
1117
        {      0x0,  3,   3 }, /* OFPBIC_UNSUP_METADATA */
1118
        {      0x0,  3,   4 }, /* OFPBIC_UNSUP_METADATA_MASK */
1119
        {      0x0,  3,   5 }, /* OFPBIC_BAD_EXPERIMENTER */
1120
        {      0x0,  3,   5 }, /* OFPBIC_BAD_EXP_TYPE */
1121
        {       -1, -1,  -1 }, /* OFPBIC_BAD_LEN */
1122
        {       -1, -1,  -1 }, /* OFPBIC_EPERM */
1123
        {   0x2320,  3, 256 }, /* OFPBIC_DUP_INST */
1124
        {      0x0,  4,   0 }, /* OFPBMC_BAD_TYPE */
1125
        {      0x0,  4,   1 }, /* OFPBMC_BAD_LEN */
1126
        {      0x0,  4,   2 }, /* OFPBMC_BAD_TAG */
1127
        {      0x0,  4,   3 }, /* OFPBMC_BAD_DL_ADDR_MASK */
1128
        {      0x0,  4,   4 }, /* OFPBMC_BAD_NW_ADDR_MASK */
1129
        {      0x0,  4,   5 }, /* OFPBMC_BAD_WILDCARDS */
1130
        {      0x0,  4,   6 }, /* OFPBMC_BAD_FIELD */
1131
        {      0x0,  4,   7 }, /* OFPBMC_BAD_VALUE */
1132
        {   0x2320,  1, 259 }, /* OFPBMC_BAD_MASK */
1133
        {   0x2320,  1, 260 }, /* OFPBMC_BAD_PREREQ */
1134
        {   0x2320,  1, 261 }, /* OFPBMC_DUP_FIELD */
1135
        {       -1, -1,  -1 }, /* OFPBMC_EPERM */
1136
        {   0x2320,  1, 264 }, /* NXBMC_CT_DATAPATH_SUPPORT */
1137
        {      0x0,  5,   0 }, /* OFPFMFC_UNKNOWN */
1138
        {      0x0,  5,   1 }, /* OFPFMFC_TABLE_FULL */
1139
        {      0x0,  5,   2 }, /* OFPFMFC_BAD_TABLE_ID */
1140
        {      0x0,  5,   3 }, /* OFPFMFC_OVERLAP */
1141
        {      0x0,  5,   4 }, /* OFPFMFC_EPERM */
1142
        {      0x0,  5,   5 }, /* OFPFMFC_BAD_TIMEOUT */
1143
        {       -1, -1,  -1 }, /* OFPFMFC_BAD_EMERG_TIMEOUT */
1144
        {      0x0,  5,   6 }, /* OFPFMFC_BAD_COMMAND */
1145
        {   0x2320,  5, 258 }, /* OFPFMFC_BAD_FLAGS */
1146
        {       -1, -1,  -1 }, /* OFPFMFC_CANT_SYNC */
1147
        {       -1, -1,  -1 }, /* OFPFMFC_BAD_PRIORITY */
1148
        {       -1, -1,  -1 }, /* OFPFMFC_IS_SYNC */
1149
        {       -1, -1,  -1 }, /* OFPFMFC_UNSUPPORTED */
1150
        {   0x2320,  5, 256 }, /* NXFMFC_HARDWARE */
1151
        {   0x2320,  5, 257 }, /* NXFMFC_BAD_TABLE_ID */
1152
        {   0x2320,  1, 536 }, /* NXFMFC_INVALID_TLV_FIELD */
1153
        {      0x0,  6,   0 }, /* OFPGMFC_GROUP_EXISTS */
1154
        {      0x0,  6,   1 }, /* OFPGMFC_INVALID_GROUP */
1155
        {      0x0,  6,   2 }, /* OFPGMFC_WEIGHT_UNSUPPORTED */
1156
        {      0x0,  6,   3 }, /* OFPGMFC_OUT_OF_GROUPS */
1157
        {      0x0,  6,   4 }, /* OFPGMFC_OUT_OF_BUCKETS */
1158
        {      0x0,  6,   5 }, /* OFPGMFC_CHAINING_UNSUPPORTED */
1159
        {      0x0,  6,   6 }, /* OFPGMFC_WATCH_UNSUPPORTED */
1160
        {      0x0,  6,   7 }, /* OFPGMFC_LOOP */
1161
        {      0x0,  6,   8 }, /* OFPGMFC_UNKNOWN_GROUP */
1162
        {       -1, -1,  -1 }, /* OFPGMFC_CHAINED_GROUP */
1163
        {       -1, -1,  -1 }, /* OFPGMFC_BAD_TYPE */
1164
        {       -1, -1,  -1 }, /* OFPGMFC_BAD_COMMAND */
1165
        {       -1, -1,  -1 }, /* OFPGMFC_BAD_BUCKET */
1166
        {       -1, -1,  -1 }, /* OFPGMFC_BAD_WATCH */
1167
        {       -1, -1,  -1 }, /* OFPGMFC_EPERM */
1168
        {       -1, -1,  -1 }, /* OFPGMFC_UNKNOWN_BUCKET */
1169
        {       -1, -1,  -1 }, /* OFPGMFC_BUCKET_EXISTS */
1170
        {      0x0,  7,   0 }, /* OFPPMFC_BAD_PORT */
1171
        {      0x0,  7,   1 }, /* OFPPMFC_BAD_HW_ADDR */
1172
        {      0x0,  7,   2 }, /* OFPPMFC_BAD_CONFIG */
1173
        {      0x0,  7,   3 }, /* OFPPMFC_BAD_ADVERTISE */
1174
        {       -1, -1,  -1 }, /* OFPPMFC_EPERM */
1175
        {      0x0,  8,   0 }, /* OFPTMFC_BAD_TABLE */
1176
        {      0x0,  8,   1 }, /* OFPTMFC_BAD_CONFIG */
1177
        {       -1, -1,  -1 }, /* OFPTMFC_EPERM */
1178
        {      0x0,  9,   0 }, /* OFPQOFC_BAD_PORT */
1179
        {      0x0,  9,   1 }, /* OFPQOFC_BAD_QUEUE */
1180
        {      0x0,  9,   2 }, /* OFPQOFC_EPERM */
1181
        {       -1, -1,  -1 }, /* NXQOFC_QUEUE_ERROR */
1182
        {      0x0, 10,   0 }, /* OFPSCFC_BAD_FLAGS */
1183
        {      0x0, 10,   1 }, /* OFPSCFC_BAD_LEN */
1184
        {       -1, -1,  -1 }, /* OFPSCFC_EPERM */
1185
        {       -1, -1,  -1 }, /* OFPRRFC_STALE */
1186
        {       -1, -1,  -1 }, /* OFPRRFC_UNSUP */
1187
        {   0x2320,  1, 513 }, /* OFPRRFC_BAD_ROLE */
1188
        {       -1, -1,  -1 }, /* OFPRRFC_ID_UNSUP */
1189
        {       -1, -1,  -1 }, /* OFPRRFC_ID_IN_USE */
1190
        {       -1, -1,  -1 }, /* OFPMMFC_UNKNOWN */
1191
        {       -1, -1,  -1 }, /* OFPMMFC_METER_EXISTS */
1192
        {       -1, -1,  -1 }, /* OFPMMFC_INVALID_METER */
1193
        {       -1, -1,  -1 }, /* OFPMMFC_UNKNOWN_METER */
1194
        {       -1, -1,  -1 }, /* OFPMMFC_BAD_COMMAND */
1195
        {       -1, -1,  -1 }, /* OFPMMFC_BAD_FLAGS */
1196
        {       -1, -1,  -1 }, /* OFPMMFC_BAD_RATE */
1197
        {       -1, -1,  -1 }, /* OFPMMFC_BAD_BURST */
1198
        {       -1, -1,  -1 }, /* OFPMMFC_BAD_BAND */
1199
        {       -1, -1,  -1 }, /* OFPMMFC_BAD_BAND_VALUE */
1200
        {       -1, -1,  -1 }, /* OFPMMFC_OUT_OF_METERS */
1201
        {       -1, -1,  -1 }, /* OFPMMFC_OUT_OF_BANDS */
1202
        {       -1, -1,  -1 }, /* OFPTFFC_BAD_TABLE */
1203
        {       -1, -1,  -1 }, /* OFPTFFC_BAD_METADATA */
1204
        {       -1, -1,  -1 }, /* OFPTFFC_EPERM */
1205
        {       -1, -1,  -1 }, /* OFPTFFC_BAD_CAPA */
1206
        {       -1, -1,  -1 }, /* OFPTFFC_BAD_MAX_ENT */
1207
        {       -1, -1,  -1 }, /* OFPTFFC_BAD_FEATURES */
1208
        {       -1, -1,  -1 }, /* OFPTFFC_BAD_COMMAND */
1209
        {       -1, -1,  -1 }, /* OFPTFFC_TOO_MANY */
1210
        {       -1, -1,  -1 }, /* NXTFFC_DUP_TABLE */
1211
        {   0x2320, 13,   2 }, /* OFPBPC_BAD_TYPE */
1212
        {   0x2320, 13,   3 }, /* OFPBPC_BAD_LEN */
1213
        {   0x2320, 13,   4 }, /* OFPBPC_BAD_VALUE */
1214
        {   0x2320, 14,   3 }, /* OFPBPC_TOO_MANY */
1215
        {   0x2320, 14,   4 }, /* OFPBPC_DUP_TYPE */
1216
        {   0x2320, 14,   5 }, /* OFPBPC_BAD_EXPERIMENTER */
1217
        {   0x2320, 14,   6 }, /* OFPBPC_BAD_EXP_TYPE */
1218
        {   0x2320, 14,   7 }, /* OFPBPC_BAD_EXP_VALUE */
1219
        {   0x2320, 14,   8 }, /* OFPBPC_EPERM */
1220
        {       -1, -1,  -1 }, /* OFPACFC_INVALID */
1221
        {       -1, -1,  -1 }, /* OFPACFC_UNSUPPORTED */
1222
        {       -1, -1,  -1 }, /* OFPACFC_EPERM */
1223
        {       -1, -1,  -1 }, /* OFPBFC_UNKNOWN */
1224
        {       -1, -1,  -1 }, /* OFPBFC_EPERM */
1225
        {       -1, -1,  -1 }, /* OFPBFC_BAD_ID */
1226
        {       -1, -1,  -1 }, /* OFPBFC_BUNDLE_EXIST */
1227
        {       -1, -1,  -1 }, /* OFPBFC_BUNDLE_CLOSED */
1228
        {       -1, -1,  -1 }, /* OFPBFC_OUT_OF_BUNDLES */
1229
        {       -1, -1,  -1 }, /* OFPBFC_BAD_TYPE */
1230
        {       -1, -1,  -1 }, /* OFPBFC_BAD_FLAGS */
1231
        {       -1, -1,  -1 }, /* OFPBFC_MSG_BAD_LEN */
1232
        {       -1, -1,  -1 }, /* OFPBFC_MSG_BAD_XID */
1233
        {       -1, -1,  -1 }, /* OFPBFC_MSG_UNSUP */
1234
        {       -1, -1,  -1 }, /* OFPBFC_MSG_CONFLICT */
1235
        {       -1, -1,  -1 }, /* OFPBFC_MSG_TOO_MANY */
1236
        {       -1, -1,  -1 }, /* OFPBFC_MSG_FAILED */
1237
        {       -1, -1,  -1 }, /* OFPBFC_TIMEOUT */
1238
        {       -1, -1,  -1 }, /* OFPBFC_BUNDLE_IN_PROGRESS */
1239
        {       -1, -1,  -1 }, /* OFPBFC_SCHED_NOT_SUPPORTED */
1240
        {       -1, -1,  -1 }, /* OFPBFC_SCHED_FUTURE */
1241
        {       -1, -1,  -1 }, /* OFPBFC_SCHED_PAST */
1242
        {       -1, -1,  -1 }, /* OFPBFC_BAD_VERSION */
1243
        {       -1, -1,  -1 }, /* OFPMOFC_UNKNOWN */
1244
        {   0x2320,  1, 517 }, /* OFPMOFC_MONITOR_EXISTS */
1245
        {       -1, -1,  -1 }, /* OFPMOFC_INVALID_MONITOR */
1246
        {   0x2320,  1, 519 }, /* OFPMOFC_UNKNOWN_MONITOR */
1247
        {       -1, -1,  -1 }, /* OFPMOFC_BAD_COMMAND */
1248
        {   0x2320,  1, 518 }, /* OFPMOFC_BAD_FLAGS */
1249
        {       -1, -1,  -1 }, /* OFPMOFC_BAD_TABLE_ID */
1250
        {       -1, -1,  -1 }, /* OFPMOFC_BAD_OUT */
1251
        {   0x2320,  1, 527 }, /* NXTTMFC_BAD_COMMAND */
1252
        {   0x2320,  1, 528 }, /* NXTTMFC_BAD_OPT_LEN */
1253
        {   0x2320,  1, 529 }, /* NXTTMFC_BAD_FIELD_IDX */
1254
        {   0x2320,  1, 530 }, /* NXTTMFC_TABLE_FULL */
1255
        {   0x2320,  1, 531 }, /* NXTTMFC_ALREADY_MAPPED */
1256
        {   0x2320,  1, 532 }, /* NXTTMFC_DUP_ENTRY */
1257
        {   0x2320,  1, 537 }, /* NXTTMFC_INVALID_TLV_DEL */
1258
        {   0x2320,  1, 533 }, /* NXR_NOT_SUPPORTED */
1259
        {   0x2320,  1, 534 }, /* NXR_STALE */
1260
        {   0x2320,  1, 535 }, /* NXST_NOT_CONFIGURED */
1261
    },
1262
};
1263
1264
static enum ofperr
1265
ofperr_of12_decode(uint32_t vendor, uint16_t type, uint16_t code)
1266
249k
{
1267
249k
    switch (((uint64_t) vendor << 32) | ((uint32_t) type << 16) | code) {
1268
2.63k
    case  ((uint32_t) 0 << 16) | 0:
1269
2.63k
        return OFPERR_OFPHFC_INCOMPATIBLE;
1270
87
    case  ((uint32_t) 0 << 16) | 1:
1271
87
        return OFPERR_OFPHFC_EPERM;
1272
116
    case  ((uint32_t) 1 << 16) | 0:
1273
116
        return OFPERR_OFPBRC_BAD_VERSION;
1274
610
    case  ((uint32_t) 1 << 16) | 1:
1275
610
        return OFPERR_OFPBRC_BAD_TYPE;
1276
34.2k
    case  ((uint32_t) 1 << 16) | 2:
1277
34.2k
        return OFPERR_OFPBRC_BAD_STAT;
1278
368
    case  ((uint32_t) 1 << 16) | 3:
1279
368
        return OFPERR_OFPBRC_BAD_VENDOR;
1280
79
    case  ((uint32_t) 1 << 16) | 4:
1281
79
        return OFPERR_OFPBRC_BAD_SUBTYPE;
1282
3.34k
    case  ((uint32_t) 1 << 16) | 5:
1283
3.34k
        return OFPERR_OFPBRC_EPERM;
1284
1.01k
    case  ((uint32_t) 1 << 16) | 6:
1285
1.01k
        return OFPERR_OFPBRC_BAD_LEN;
1286
871
    case  ((uint32_t) 1 << 16) | 7:
1287
871
        return OFPERR_OFPBRC_BUFFER_EMPTY;
1288
1.37k
    case  ((uint32_t) 1 << 16) | 8:
1289
1.37k
        return OFPERR_OFPBRC_BUFFER_UNKNOWN;
1290
305
    case  ((uint32_t) 1 << 16) | 9:
1291
305
        return OFPERR_OFPBRC_BAD_TABLE_ID;
1292
70
    case  ((uint32_t) 1 << 16) | 10:
1293
70
        return OFPERR_OFPBRC_IS_SECONDARY;
1294
66
    case  ((uint32_t) 1 << 16) | 11:
1295
66
        return OFPERR_OFPBRC_BAD_PORT;
1296
415
    case  ((uint32_t) 1 << 16) | 12:
1297
415
        return OFPERR_OFPBRC_BAD_PACKET;
1298
620
    case (0x2320ULL << 32) |  ((uint32_t) 2 << 16) | 0:
1299
620
        return OFPERR_NXBRC_NXM_INVALID;
1300
35
    case (0x2320ULL << 32) |  ((uint32_t) 3 << 16) | 0:
1301
35
        return OFPERR_NXBRC_NXM_BAD_TYPE;
1302
220
    case (0x2320ULL << 32) |  ((uint32_t) 4 << 16) | 0:
1303
220
        return OFPERR_NXBRC_MUST_BE_ZERO;
1304
91
    case (0x2320ULL << 32) |  ((uint32_t) 5 << 16) | 0:
1305
91
        return OFPERR_NXBRC_BAD_REASON;
1306
6.51k
    case (0x2320ULL << 32) |  ((uint32_t) 9 << 16) | 0:
1307
6.51k
        return OFPERR_NXBRC_FM_BAD_EVENT;
1308
3.16k
    case (0x2320ULL << 32) |  ((uint32_t) 10 << 16) | 0:
1309
3.16k
        return OFPERR_NXBRC_UNENCODABLE_ERROR;
1310
599
    case  ((uint32_t) 2 << 16) | 0:
1311
599
        return OFPERR_OFPBAC_BAD_TYPE;
1312
843
    case  ((uint32_t) 2 << 16) | 1:
1313
843
        return OFPERR_OFPBAC_BAD_LEN;
1314
1.50k
    case  ((uint32_t) 2 << 16) | 2:
1315
1.50k
        return OFPERR_OFPBAC_BAD_VENDOR;
1316
115
    case  ((uint32_t) 2 << 16) | 3:
1317
115
        return OFPERR_OFPBAC_BAD_VENDOR_TYPE;
1318
883
    case  ((uint32_t) 2 << 16) | 4:
1319
883
        return OFPERR_OFPBAC_BAD_OUT_PORT;
1320
513
    case  ((uint32_t) 2 << 16) | 5:
1321
513
        return OFPERR_OFPBAC_BAD_ARGUMENT;
1322
1.66k
    case  ((uint32_t) 2 << 16) | 6:
1323
1.66k
        return OFPERR_OFPBAC_EPERM;
1324
149
    case  ((uint32_t) 2 << 16) | 7:
1325
149
        return OFPERR_OFPBAC_TOO_MANY;
1326
380
    case  ((uint32_t) 2 << 16) | 8:
1327
380
        return OFPERR_OFPBAC_BAD_QUEUE;
1328
99
    case  ((uint32_t) 2 << 16) | 9:
1329
99
        return OFPERR_OFPBAC_BAD_OUT_GROUP;
1330
614
    case  ((uint32_t) 2 << 16) | 10:
1331
614
        return OFPERR_OFPBAC_MATCH_INCONSISTENT;
1332
252
    case  ((uint32_t) 2 << 16) | 11:
1333
252
        return OFPERR_OFPBAC_UNSUPPORTED_ORDER;
1334
66
    case  ((uint32_t) 2 << 16) | 12:
1335
66
        return OFPERR_OFPBAC_BAD_TAG;
1336
72
    case  ((uint32_t) 2 << 16) | 13:
1337
72
        return OFPERR_OFPBAC_BAD_SET_TYPE;
1338
1.66k
    case  ((uint32_t) 2 << 16) | 14:
1339
1.66k
        return OFPERR_OFPBAC_BAD_SET_LEN;
1340
202
    case  ((uint32_t) 2 << 16) | 15:
1341
202
        return OFPERR_OFPBAC_BAD_SET_ARGUMENT;
1342
194
    case (0x2320ULL << 32) |  ((uint32_t) 11 << 16) | 0:
1343
194
        return OFPERR_NXBAC_MUST_BE_ZERO;
1344
634
    case (0x2320ULL << 32) |  ((uint32_t) 15 << 16) | 0:
1345
634
        return OFPERR_NXBAC_BAD_CONJUNCTION;
1346
1.74k
    case (0x2320ULL << 32) |  ((uint32_t) 42 << 16) | 0:
1347
1.74k
        return OFPERR_NXBAC_CT_DATAPATH_SUPPORT;
1348
598
    case  ((uint32_t) 3 << 16) | 0:
1349
598
        return OFPERR_OFPBIC_UNKNOWN_INST;
1350
230
    case  ((uint32_t) 3 << 16) | 1:
1351
230
        return OFPERR_OFPBIC_UNSUP_INST;
1352
568
    case  ((uint32_t) 3 << 16) | 2:
1353
568
        return OFPERR_OFPBIC_BAD_TABLE_ID;
1354
71
    case  ((uint32_t) 3 << 16) | 3:
1355
71
        return OFPERR_OFPBIC_UNSUP_METADATA;
1356
1.56k
    case  ((uint32_t) 3 << 16) | 4:
1357
1.56k
        return OFPERR_OFPBIC_UNSUP_METADATA_MASK;
1358
68
    case  ((uint32_t) 3 << 16) | 5:
1359
68
        return OFPERR_OFPBIC_BAD_EXPERIMENTER;
1360
1.02k
    case  ((uint32_t) 3 << 16) | 6:
1361
1.02k
        return OFPERR_OFPBIC_BAD_EXP_TYPE;
1362
4.08k
    case  ((uint32_t) 3 << 16) | 7:
1363
4.08k
        return OFPERR_OFPBIC_BAD_LEN;
1364
314
    case  ((uint32_t) 3 << 16) | 8:
1365
314
        return OFPERR_OFPBIC_EPERM;
1366
194
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2600 << 16) | 0:
1367
194
        return OFPERR_OFPBIC_DUP_INST;
1368
136
    case  ((uint32_t) 4 << 16) | 0:
1369
136
        return OFPERR_OFPBMC_BAD_TYPE;
1370
91
    case  ((uint32_t) 4 << 16) | 1:
1371
91
        return OFPERR_OFPBMC_BAD_LEN;
1372
1.65k
    case  ((uint32_t) 4 << 16) | 2:
1373
1.65k
        return OFPERR_OFPBMC_BAD_TAG;
1374
119
    case  ((uint32_t) 4 << 16) | 3:
1375
119
        return OFPERR_OFPBMC_BAD_DL_ADDR_MASK;
1376
1.22k
    case  ((uint32_t) 4 << 16) | 4:
1377
1.22k
        return OFPERR_OFPBMC_BAD_NW_ADDR_MASK;
1378
122
    case  ((uint32_t) 4 << 16) | 5:
1379
122
        return OFPERR_OFPBMC_BAD_WILDCARDS;
1380
84
    case  ((uint32_t) 4 << 16) | 6:
1381
84
        return OFPERR_OFPBMC_BAD_FIELD;
1382
1.59k
    case  ((uint32_t) 4 << 16) | 7:
1383
1.59k
        return OFPERR_OFPBMC_BAD_VALUE;
1384
995
    case  ((uint32_t) 4 << 16) | 8:
1385
995
        return OFPERR_OFPBMC_BAD_MASK;
1386
81
    case  ((uint32_t) 4 << 16) | 9:
1387
81
        return OFPERR_OFPBMC_BAD_PREREQ;
1388
6.70k
    case  ((uint32_t) 4 << 16) | 10:
1389
6.70k
        return OFPERR_OFPBMC_DUP_FIELD;
1390
67
    case  ((uint32_t) 4 << 16) | 11:
1391
67
        return OFPERR_OFPBMC_EPERM;
1392
199
    case (0x2320ULL << 32) |  ((uint32_t) 43 << 16) | 0:
1393
199
        return OFPERR_NXBMC_CT_DATAPATH_SUPPORT;
1394
857
    case  ((uint32_t) 5 << 16) | 0:
1395
857
        return OFPERR_OFPFMFC_UNKNOWN;
1396
200
    case  ((uint32_t) 5 << 16) | 1:
1397
200
        return OFPERR_OFPFMFC_TABLE_FULL;
1398
1.61k
    case  ((uint32_t) 5 << 16) | 2:
1399
1.61k
        return OFPERR_OFPFMFC_BAD_TABLE_ID;
1400
337
    case  ((uint32_t) 5 << 16) | 3:
1401
337
        return OFPERR_OFPFMFC_OVERLAP;
1402
146
    case  ((uint32_t) 5 << 16) | 4:
1403
146
        return OFPERR_OFPFMFC_EPERM;
1404
135
    case  ((uint32_t) 5 << 16) | 5:
1405
135
        return OFPERR_OFPFMFC_BAD_TIMEOUT;
1406
194
    case  ((uint32_t) 5 << 16) | 6:
1407
194
        return OFPERR_OFPFMFC_BAD_COMMAND;
1408
195
    case  ((uint32_t) 5 << 16) | 7:
1409
195
        return OFPERR_OFPFMFC_BAD_FLAGS;
1410
42
    case (0x2320ULL << 32) |  ((uint32_t) 12 << 16) | 0:
1411
42
        return OFPERR_NXFMFC_HARDWARE;
1412
2.11k
    case (0x2320ULL << 32) |  ((uint32_t) 13 << 16) | 0:
1413
2.11k
        return OFPERR_NXFMFC_BAD_TABLE_ID;
1414
66
    case (0x2320ULL << 32) |  ((uint32_t) 37 << 16) | 0:
1415
66
        return OFPERR_NXFMFC_INVALID_TLV_FIELD;
1416
2.18k
    case  ((uint32_t) 6 << 16) | 0:
1417
2.18k
        return OFPERR_OFPGMFC_GROUP_EXISTS;
1418
7.89k
    case  ((uint32_t) 6 << 16) | 1:
1419
7.89k
        return OFPERR_OFPGMFC_INVALID_GROUP;
1420
70
    case  ((uint32_t) 6 << 16) | 2:
1421
70
        return OFPERR_OFPGMFC_WEIGHT_UNSUPPORTED;
1422
980
    case  ((uint32_t) 6 << 16) | 3:
1423
980
        return OFPERR_OFPGMFC_OUT_OF_GROUPS;
1424
126
    case  ((uint32_t) 6 << 16) | 4:
1425
126
        return OFPERR_OFPGMFC_OUT_OF_BUCKETS;
1426
88
    case  ((uint32_t) 6 << 16) | 5:
1427
88
        return OFPERR_OFPGMFC_CHAINING_UNSUPPORTED;
1428
646
    case  ((uint32_t) 6 << 16) | 6:
1429
646
        return OFPERR_OFPGMFC_WATCH_UNSUPPORTED;
1430
1.26k
    case  ((uint32_t) 6 << 16) | 7:
1431
1.26k
        return OFPERR_OFPGMFC_LOOP;
1432
2.35k
    case  ((uint32_t) 6 << 16) | 8:
1433
2.35k
        return OFPERR_OFPGMFC_UNKNOWN_GROUP;
1434
699
    case  ((uint32_t) 6 << 16) | 9:
1435
699
        return OFPERR_OFPGMFC_CHAINED_GROUP;
1436
67
    case  ((uint32_t) 6 << 16) | 10:
1437
67
        return OFPERR_OFPGMFC_BAD_TYPE;
1438
68
    case  ((uint32_t) 6 << 16) | 11:
1439
68
        return OFPERR_OFPGMFC_BAD_COMMAND;
1440
493
    case  ((uint32_t) 6 << 16) | 12:
1441
493
        return OFPERR_OFPGMFC_BAD_BUCKET;
1442
6.12k
    case  ((uint32_t) 6 << 16) | 13:
1443
6.12k
        return OFPERR_OFPGMFC_BAD_WATCH;
1444
68
    case  ((uint32_t) 6 << 16) | 14:
1445
68
        return OFPERR_OFPGMFC_EPERM;
1446
2.30k
    case  ((uint32_t) 7 << 16) | 0:
1447
2.30k
        return OFPERR_OFPPMFC_BAD_PORT;
1448
34
    case  ((uint32_t) 7 << 16) | 1:
1449
34
        return OFPERR_OFPPMFC_BAD_HW_ADDR;
1450
2.16k
    case  ((uint32_t) 7 << 16) | 2:
1451
2.16k
        return OFPERR_OFPPMFC_BAD_CONFIG;
1452
66
    case  ((uint32_t) 7 << 16) | 3:
1453
66
        return OFPERR_OFPPMFC_BAD_ADVERTISE;
1454
440
    case  ((uint32_t) 7 << 16) | 4:
1455
440
        return OFPERR_OFPPMFC_EPERM;
1456
1.04k
    case  ((uint32_t) 8 << 16) | 0:
1457
1.04k
        return OFPERR_OFPTMFC_BAD_TABLE;
1458
3.90k
    case  ((uint32_t) 8 << 16) | 1:
1459
3.90k
        return OFPERR_OFPTMFC_BAD_CONFIG;
1460
80
    case  ((uint32_t) 8 << 16) | 2:
1461
80
        return OFPERR_OFPTMFC_EPERM;
1462
34
    case  ((uint32_t) 9 << 16) | 0:
1463
34
        return OFPERR_OFPQOFC_BAD_PORT;
1464
1.57k
    case  ((uint32_t) 9 << 16) | 1:
1465
1.57k
        return OFPERR_OFPQOFC_BAD_QUEUE;
1466
304
    case  ((uint32_t) 9 << 16) | 2:
1467
304
        return OFPERR_OFPQOFC_EPERM;
1468
898
    case  ((uint32_t) 10 << 16) | 0:
1469
898
        return OFPERR_OFPSCFC_BAD_FLAGS;
1470
570
    case  ((uint32_t) 10 << 16) | 1:
1471
570
        return OFPERR_OFPSCFC_BAD_LEN;
1472
6.05k
    case  ((uint32_t) 10 << 16) | 2:
1473
6.05k
        return OFPERR_OFPSCFC_EPERM;
1474
67
    case  ((uint32_t) 11 << 16) | 0:
1475
67
        return OFPERR_OFPRRFC_STALE;
1476
1.23k
    case  ((uint32_t) 11 << 16) | 1:
1477
1.23k
        return OFPERR_OFPRRFC_UNSUP;
1478
38
    case  ((uint32_t) 11 << 16) | 2:
1479
38
        return OFPERR_OFPRRFC_BAD_ROLE;
1480
3.87k
    case (0x2320ULL << 32) |  ((uint32_t) 25 << 16) | 0:
1481
3.87k
        return OFPERR_OFPBPC_BAD_TYPE;
1482
1.45k
    case (0x2320ULL << 32) |  ((uint32_t) 26 << 16) | 0:
1483
1.45k
        return OFPERR_OFPBPC_BAD_LEN;
1484
34
    case (0x2320ULL << 32) |  ((uint32_t) 27 << 16) | 0:
1485
34
        return OFPERR_OFPBPC_BAD_VALUE;
1486
34
    case (0x2320ULL << 32) |  ((uint32_t) 28 << 16) | 0:
1487
34
        return OFPERR_OFPBPC_TOO_MANY;
1488
18
    case (0x2320ULL << 32) |  ((uint32_t) 29 << 16) | 0:
1489
18
        return OFPERR_OFPBPC_DUP_TYPE;
1490
93
    case (0x2320ULL << 32) |  ((uint32_t) 30 << 16) | 0:
1491
93
        return OFPERR_OFPBPC_BAD_EXPERIMENTER;
1492
18
    case (0x2320ULL << 32) |  ((uint32_t) 31 << 16) | 0:
1493
18
        return OFPERR_OFPBPC_BAD_EXP_TYPE;
1494
69
    case (0x2320ULL << 32) |  ((uint32_t) 32 << 16) | 0:
1495
69
        return OFPERR_OFPBPC_BAD_EXP_VALUE;
1496
2.00k
    case (0x2320ULL << 32) |  ((uint32_t) 33 << 16) | 0:
1497
2.00k
        return OFPERR_OFPBPC_EPERM;
1498
747
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 0:
1499
747
        return OFPERR_OFPMOFC_MONITOR_EXISTS;
1500
786
    case (0x2320ULL << 32) |  ((uint32_t) 8 << 16) | 0:
1501
786
        return OFPERR_OFPMOFC_UNKNOWN_MONITOR;
1502
2.13k
    case (0x2320ULL << 32) |  ((uint32_t) 7 << 16) | 0:
1503
2.13k
        return OFPERR_OFPMOFC_BAD_FLAGS;
1504
3.06k
    case (0x2320ULL << 32) |  ((uint32_t) 16 << 16) | 0:
1505
3.06k
        return OFPERR_NXTTMFC_BAD_COMMAND;
1506
34
    case (0x2320ULL << 32) |  ((uint32_t) 17 << 16) | 0:
1507
34
        return OFPERR_NXTTMFC_BAD_OPT_LEN;
1508
4.05k
    case (0x2320ULL << 32) |  ((uint32_t) 18 << 16) | 0:
1509
4.05k
        return OFPERR_NXTTMFC_BAD_FIELD_IDX;
1510
2.98k
    case (0x2320ULL << 32) |  ((uint32_t) 19 << 16) | 0:
1511
2.98k
        return OFPERR_NXTTMFC_TABLE_FULL;
1512
141
    case (0x2320ULL << 32) |  ((uint32_t) 20 << 16) | 0:
1513
141
        return OFPERR_NXTTMFC_ALREADY_MAPPED;
1514
90
    case (0x2320ULL << 32) |  ((uint32_t) 21 << 16) | 0:
1515
90
        return OFPERR_NXTTMFC_DUP_ENTRY;
1516
105
    case (0x2320ULL << 32) |  ((uint32_t) 38 << 16) | 0:
1517
105
        return OFPERR_NXTTMFC_INVALID_TLV_DEL;
1518
66
    case (0x2320ULL << 32) |  ((uint32_t) 34 << 16) | 0:
1519
66
        return OFPERR_NXR_NOT_SUPPORTED;
1520
159
    case (0x2320ULL << 32) |  ((uint32_t) 35 << 16) | 0:
1521
159
        return OFPERR_NXR_STALE;
1522
1.31k
    case (0x2320ULL << 32) |  ((uint32_t) 36 << 16) | 0:
1523
1.31k
        return OFPERR_NXST_NOT_CONFIGURED;
1524
249k
    }
1525
1526
86.0k
    return 0;
1527
249k
}
1528
1529
static const struct ofperr_domain ofperr_of12 = {
1530
    "OpenFlow 1.2",
1531
    3,
1532
    ofperr_of12_decode,
1533
    {
1534
        {      0x0,  0,   0 }, /* OFPHFC_INCOMPATIBLE */
1535
        {      0x0,  0,   1 }, /* OFPHFC_EPERM */
1536
        {      0x0,  1,   0 }, /* OFPBRC_BAD_VERSION */
1537
        {      0x0,  1,   1 }, /* OFPBRC_BAD_TYPE */
1538
        {      0x0,  1,   2 }, /* OFPBRC_BAD_STAT */
1539
        {      0x0,  1,   3 }, /* OFPBRC_BAD_VENDOR */
1540
        {      0x0,  1,   4 }, /* OFPBRC_BAD_SUBTYPE */
1541
        {      0x0,  1,   5 }, /* OFPBRC_EPERM */
1542
        {      0x0,  1,   6 }, /* OFPBRC_BAD_LEN */
1543
        {      0x0,  1,   7 }, /* OFPBRC_BUFFER_EMPTY */
1544
        {      0x0,  1,   8 }, /* OFPBRC_BUFFER_UNKNOWN */
1545
        {      0x0,  1,   9 }, /* OFPBRC_BAD_TABLE_ID */
1546
        {      0x0,  1,  10 }, /* OFPBRC_IS_SECONDARY */
1547
        {      0x0,  1,  11 }, /* OFPBRC_BAD_PORT */
1548
        {      0x0,  1,  12 }, /* OFPBRC_BAD_PACKET */
1549
        {       -1, -1,  -1 }, /* OFPBRC_MULTIPART_BUFFER_OVERFLOW */
1550
        {       -1, -1,  -1 }, /* OFPBRC_MULTIPART_REQUEST_TIMEOUT */
1551
        {       -1, -1,  -1 }, /* OFPBRC_MULTIPART_REPLY_TIMEOUT */
1552
        {       -1, -1,  -1 }, /* OFPBRC_MULTIPART_BAD_SCHED */
1553
        {       -1, -1,  -1 }, /* OFPBRC_PIPELINE_FIELDS_ONLY */
1554
        {       -1, -1,  -1 }, /* OFPBRC_UNKNOWN */
1555
        {   0x2320,  2,   0 }, /* NXBRC_NXM_INVALID */
1556
        {   0x2320,  3,   0 }, /* NXBRC_NXM_BAD_TYPE */
1557
        {   0x2320,  4,   0 }, /* NXBRC_MUST_BE_ZERO */
1558
        {   0x2320,  5,   0 }, /* NXBRC_BAD_REASON */
1559
        {   0x2320,  9,   0 }, /* NXBRC_FM_BAD_EVENT */
1560
        {   0x2320, 10,   0 }, /* NXBRC_UNENCODABLE_ERROR */
1561
        {      0x0,  2,   0 }, /* OFPBAC_BAD_TYPE */
1562
        {      0x0,  2,   1 }, /* OFPBAC_BAD_LEN */
1563
        {      0x0,  2,   2 }, /* OFPBAC_BAD_VENDOR */
1564
        {      0x0,  2,   3 }, /* OFPBAC_BAD_VENDOR_TYPE */
1565
        {      0x0,  2,   4 }, /* OFPBAC_BAD_OUT_PORT */
1566
        {      0x0,  2,   5 }, /* OFPBAC_BAD_ARGUMENT */
1567
        {      0x0,  2,   6 }, /* OFPBAC_EPERM */
1568
        {      0x0,  2,   7 }, /* OFPBAC_TOO_MANY */
1569
        {      0x0,  2,   8 }, /* OFPBAC_BAD_QUEUE */
1570
        {      0x0,  2,   9 }, /* OFPBAC_BAD_OUT_GROUP */
1571
        {      0x0,  2,  10 }, /* OFPBAC_MATCH_INCONSISTENT */
1572
        {      0x0,  2,  11 }, /* OFPBAC_UNSUPPORTED_ORDER */
1573
        {      0x0,  2,  12 }, /* OFPBAC_BAD_TAG */
1574
        {      0x0,  2,  13 }, /* OFPBAC_BAD_SET_TYPE */
1575
        {      0x0,  2,  14 }, /* OFPBAC_BAD_SET_LEN */
1576
        {      0x0,  2,  15 }, /* OFPBAC_BAD_SET_ARGUMENT */
1577
        {       -1, -1,  -1 }, /* OFPBAC_BAD_SET_MASK */
1578
        {       -1, -1,  -1 }, /* OFPBAC_BAD_METER */
1579
        {   0x2320, 11,   0 }, /* NXBAC_MUST_BE_ZERO */
1580
        {   0x2320, 15,   0 }, /* NXBAC_BAD_CONJUNCTION */
1581
        {       -1, -1,  -1 }, /* NXBAC_BAD_HEADER_TYPE */
1582
        {       -1, -1,  -1 }, /* NXBAC_UNKNOWN_ED_PROP */
1583
        {       -1, -1,  -1 }, /* NXBAC_BAD_ED_PROP */
1584
        {   0x2320, 42,   0 }, /* NXBAC_CT_DATAPATH_SUPPORT */
1585
        {      0x0,  3,   0 }, /* OFPBIC_UNKNOWN_INST */
1586
        {      0x0,  3,   1 }, /* OFPBIC_UNSUP_INST */
1587
        {      0x0,  3,   2 }, /* OFPBIC_BAD_TABLE_ID */
1588
        {      0x0,  3,   3 }, /* OFPBIC_UNSUP_METADATA */
1589
        {      0x0,  3,   4 }, /* OFPBIC_UNSUP_METADATA_MASK */
1590
        {      0x0,  3,   5 }, /* OFPBIC_BAD_EXPERIMENTER */
1591
        {      0x0,  3,   6 }, /* OFPBIC_BAD_EXP_TYPE */
1592
        {      0x0,  3,   7 }, /* OFPBIC_BAD_LEN */
1593
        {      0x0,  3,   8 }, /* OFPBIC_EPERM */
1594
        { 0x4f4e4600, 2600,   0 }, /* OFPBIC_DUP_INST */
1595
        {      0x0,  4,   0 }, /* OFPBMC_BAD_TYPE */
1596
        {      0x0,  4,   1 }, /* OFPBMC_BAD_LEN */
1597
        {      0x0,  4,   2 }, /* OFPBMC_BAD_TAG */
1598
        {      0x0,  4,   3 }, /* OFPBMC_BAD_DL_ADDR_MASK */
1599
        {      0x0,  4,   4 }, /* OFPBMC_BAD_NW_ADDR_MASK */
1600
        {      0x0,  4,   5 }, /* OFPBMC_BAD_WILDCARDS */
1601
        {      0x0,  4,   6 }, /* OFPBMC_BAD_FIELD */
1602
        {      0x0,  4,   7 }, /* OFPBMC_BAD_VALUE */
1603
        {      0x0,  4,   8 }, /* OFPBMC_BAD_MASK */
1604
        {      0x0,  4,   9 }, /* OFPBMC_BAD_PREREQ */
1605
        {      0x0,  4,  10 }, /* OFPBMC_DUP_FIELD */
1606
        {      0x0,  4,  11 }, /* OFPBMC_EPERM */
1607
        {   0x2320, 43,   0 }, /* NXBMC_CT_DATAPATH_SUPPORT */
1608
        {      0x0,  5,   0 }, /* OFPFMFC_UNKNOWN */
1609
        {      0x0,  5,   1 }, /* OFPFMFC_TABLE_FULL */
1610
        {      0x0,  5,   2 }, /* OFPFMFC_BAD_TABLE_ID */
1611
        {      0x0,  5,   3 }, /* OFPFMFC_OVERLAP */
1612
        {      0x0,  5,   4 }, /* OFPFMFC_EPERM */
1613
        {      0x0,  5,   5 }, /* OFPFMFC_BAD_TIMEOUT */
1614
        {       -1, -1,  -1 }, /* OFPFMFC_BAD_EMERG_TIMEOUT */
1615
        {      0x0,  5,   6 }, /* OFPFMFC_BAD_COMMAND */
1616
        {      0x0,  5,   7 }, /* OFPFMFC_BAD_FLAGS */
1617
        {       -1, -1,  -1 }, /* OFPFMFC_CANT_SYNC */
1618
        {       -1, -1,  -1 }, /* OFPFMFC_BAD_PRIORITY */
1619
        {       -1, -1,  -1 }, /* OFPFMFC_IS_SYNC */
1620
        {       -1, -1,  -1 }, /* OFPFMFC_UNSUPPORTED */
1621
        {   0x2320, 12,   0 }, /* NXFMFC_HARDWARE */
1622
        {   0x2320, 13,   0 }, /* NXFMFC_BAD_TABLE_ID */
1623
        {   0x2320, 37,   0 }, /* NXFMFC_INVALID_TLV_FIELD */
1624
        {      0x0,  6,   0 }, /* OFPGMFC_GROUP_EXISTS */
1625
        {      0x0,  6,   1 }, /* OFPGMFC_INVALID_GROUP */
1626
        {      0x0,  6,   2 }, /* OFPGMFC_WEIGHT_UNSUPPORTED */
1627
        {      0x0,  6,   3 }, /* OFPGMFC_OUT_OF_GROUPS */
1628
        {      0x0,  6,   4 }, /* OFPGMFC_OUT_OF_BUCKETS */
1629
        {      0x0,  6,   5 }, /* OFPGMFC_CHAINING_UNSUPPORTED */
1630
        {      0x0,  6,   6 }, /* OFPGMFC_WATCH_UNSUPPORTED */
1631
        {      0x0,  6,   7 }, /* OFPGMFC_LOOP */
1632
        {      0x0,  6,   8 }, /* OFPGMFC_UNKNOWN_GROUP */
1633
        {      0x0,  6,   9 }, /* OFPGMFC_CHAINED_GROUP */
1634
        {      0x0,  6,  10 }, /* OFPGMFC_BAD_TYPE */
1635
        {      0x0,  6,  11 }, /* OFPGMFC_BAD_COMMAND */
1636
        {      0x0,  6,  12 }, /* OFPGMFC_BAD_BUCKET */
1637
        {      0x0,  6,  13 }, /* OFPGMFC_BAD_WATCH */
1638
        {      0x0,  6,  14 }, /* OFPGMFC_EPERM */
1639
        {       -1, -1,  -1 }, /* OFPGMFC_UNKNOWN_BUCKET */
1640
        {       -1, -1,  -1 }, /* OFPGMFC_BUCKET_EXISTS */
1641
        {      0x0,  7,   0 }, /* OFPPMFC_BAD_PORT */
1642
        {      0x0,  7,   1 }, /* OFPPMFC_BAD_HW_ADDR */
1643
        {      0x0,  7,   2 }, /* OFPPMFC_BAD_CONFIG */
1644
        {      0x0,  7,   3 }, /* OFPPMFC_BAD_ADVERTISE */
1645
        {      0x0,  7,   4 }, /* OFPPMFC_EPERM */
1646
        {      0x0,  8,   0 }, /* OFPTMFC_BAD_TABLE */
1647
        {      0x0,  8,   1 }, /* OFPTMFC_BAD_CONFIG */
1648
        {      0x0,  8,   2 }, /* OFPTMFC_EPERM */
1649
        {      0x0,  9,   0 }, /* OFPQOFC_BAD_PORT */
1650
        {      0x0,  9,   1 }, /* OFPQOFC_BAD_QUEUE */
1651
        {      0x0,  9,   2 }, /* OFPQOFC_EPERM */
1652
        {       -1, -1,  -1 }, /* NXQOFC_QUEUE_ERROR */
1653
        {      0x0, 10,   0 }, /* OFPSCFC_BAD_FLAGS */
1654
        {      0x0, 10,   1 }, /* OFPSCFC_BAD_LEN */
1655
        {      0x0, 10,   2 }, /* OFPSCFC_EPERM */
1656
        {      0x0, 11,   0 }, /* OFPRRFC_STALE */
1657
        {      0x0, 11,   1 }, /* OFPRRFC_UNSUP */
1658
        {      0x0, 11,   2 }, /* OFPRRFC_BAD_ROLE */
1659
        {       -1, -1,  -1 }, /* OFPRRFC_ID_UNSUP */
1660
        {       -1, -1,  -1 }, /* OFPRRFC_ID_IN_USE */
1661
        {       -1, -1,  -1 }, /* OFPMMFC_UNKNOWN */
1662
        {       -1, -1,  -1 }, /* OFPMMFC_METER_EXISTS */
1663
        {       -1, -1,  -1 }, /* OFPMMFC_INVALID_METER */
1664
        {       -1, -1,  -1 }, /* OFPMMFC_UNKNOWN_METER */
1665
        {       -1, -1,  -1 }, /* OFPMMFC_BAD_COMMAND */
1666
        {       -1, -1,  -1 }, /* OFPMMFC_BAD_FLAGS */
1667
        {       -1, -1,  -1 }, /* OFPMMFC_BAD_RATE */
1668
        {       -1, -1,  -1 }, /* OFPMMFC_BAD_BURST */
1669
        {       -1, -1,  -1 }, /* OFPMMFC_BAD_BAND */
1670
        {       -1, -1,  -1 }, /* OFPMMFC_BAD_BAND_VALUE */
1671
        {       -1, -1,  -1 }, /* OFPMMFC_OUT_OF_METERS */
1672
        {       -1, -1,  -1 }, /* OFPMMFC_OUT_OF_BANDS */
1673
        {       -1, -1,  -1 }, /* OFPTFFC_BAD_TABLE */
1674
        {       -1, -1,  -1 }, /* OFPTFFC_BAD_METADATA */
1675
        {       -1, -1,  -1 }, /* OFPTFFC_EPERM */
1676
        {       -1, -1,  -1 }, /* OFPTFFC_BAD_CAPA */
1677
        {       -1, -1,  -1 }, /* OFPTFFC_BAD_MAX_ENT */
1678
        {       -1, -1,  -1 }, /* OFPTFFC_BAD_FEATURES */
1679
        {       -1, -1,  -1 }, /* OFPTFFC_BAD_COMMAND */
1680
        {       -1, -1,  -1 }, /* OFPTFFC_TOO_MANY */
1681
        {       -1, -1,  -1 }, /* NXTFFC_DUP_TABLE */
1682
        {   0x2320, 25,   0 }, /* OFPBPC_BAD_TYPE */
1683
        {   0x2320, 26,   0 }, /* OFPBPC_BAD_LEN */
1684
        {   0x2320, 27,   0 }, /* OFPBPC_BAD_VALUE */
1685
        {   0x2320, 28,   0 }, /* OFPBPC_TOO_MANY */
1686
        {   0x2320, 29,   0 }, /* OFPBPC_DUP_TYPE */
1687
        {   0x2320, 30,   0 }, /* OFPBPC_BAD_EXPERIMENTER */
1688
        {   0x2320, 31,   0 }, /* OFPBPC_BAD_EXP_TYPE */
1689
        {   0x2320, 32,   0 }, /* OFPBPC_BAD_EXP_VALUE */
1690
        {   0x2320, 33,   0 }, /* OFPBPC_EPERM */
1691
        {       -1, -1,  -1 }, /* OFPACFC_INVALID */
1692
        {       -1, -1,  -1 }, /* OFPACFC_UNSUPPORTED */
1693
        {       -1, -1,  -1 }, /* OFPACFC_EPERM */
1694
        {       -1, -1,  -1 }, /* OFPBFC_UNKNOWN */
1695
        {       -1, -1,  -1 }, /* OFPBFC_EPERM */
1696
        {       -1, -1,  -1 }, /* OFPBFC_BAD_ID */
1697
        {       -1, -1,  -1 }, /* OFPBFC_BUNDLE_EXIST */
1698
        {       -1, -1,  -1 }, /* OFPBFC_BUNDLE_CLOSED */
1699
        {       -1, -1,  -1 }, /* OFPBFC_OUT_OF_BUNDLES */
1700
        {       -1, -1,  -1 }, /* OFPBFC_BAD_TYPE */
1701
        {       -1, -1,  -1 }, /* OFPBFC_BAD_FLAGS */
1702
        {       -1, -1,  -1 }, /* OFPBFC_MSG_BAD_LEN */
1703
        {       -1, -1,  -1 }, /* OFPBFC_MSG_BAD_XID */
1704
        {       -1, -1,  -1 }, /* OFPBFC_MSG_UNSUP */
1705
        {       -1, -1,  -1 }, /* OFPBFC_MSG_CONFLICT */
1706
        {       -1, -1,  -1 }, /* OFPBFC_MSG_TOO_MANY */
1707
        {       -1, -1,  -1 }, /* OFPBFC_MSG_FAILED */
1708
        {       -1, -1,  -1 }, /* OFPBFC_TIMEOUT */
1709
        {       -1, -1,  -1 }, /* OFPBFC_BUNDLE_IN_PROGRESS */
1710
        {       -1, -1,  -1 }, /* OFPBFC_SCHED_NOT_SUPPORTED */
1711
        {       -1, -1,  -1 }, /* OFPBFC_SCHED_FUTURE */
1712
        {       -1, -1,  -1 }, /* OFPBFC_SCHED_PAST */
1713
        {       -1, -1,  -1 }, /* OFPBFC_BAD_VERSION */
1714
        {       -1, -1,  -1 }, /* OFPMOFC_UNKNOWN */
1715
        {   0x2320,  6,   0 }, /* OFPMOFC_MONITOR_EXISTS */
1716
        {       -1, -1,  -1 }, /* OFPMOFC_INVALID_MONITOR */
1717
        {   0x2320,  8,   0 }, /* OFPMOFC_UNKNOWN_MONITOR */
1718
        {       -1, -1,  -1 }, /* OFPMOFC_BAD_COMMAND */
1719
        {   0x2320,  7,   0 }, /* OFPMOFC_BAD_FLAGS */
1720
        {       -1, -1,  -1 }, /* OFPMOFC_BAD_TABLE_ID */
1721
        {       -1, -1,  -1 }, /* OFPMOFC_BAD_OUT */
1722
        {   0x2320, 16,   0 }, /* NXTTMFC_BAD_COMMAND */
1723
        {   0x2320, 17,   0 }, /* NXTTMFC_BAD_OPT_LEN */
1724
        {   0x2320, 18,   0 }, /* NXTTMFC_BAD_FIELD_IDX */
1725
        {   0x2320, 19,   0 }, /* NXTTMFC_TABLE_FULL */
1726
        {   0x2320, 20,   0 }, /* NXTTMFC_ALREADY_MAPPED */
1727
        {   0x2320, 21,   0 }, /* NXTTMFC_DUP_ENTRY */
1728
        {   0x2320, 38,   0 }, /* NXTTMFC_INVALID_TLV_DEL */
1729
        {   0x2320, 34,   0 }, /* NXR_NOT_SUPPORTED */
1730
        {   0x2320, 35,   0 }, /* NXR_STALE */
1731
        {   0x2320, 36,   0 }, /* NXST_NOT_CONFIGURED */
1732
    },
1733
};
1734
1735
static enum ofperr
1736
ofperr_of13_decode(uint32_t vendor, uint16_t type, uint16_t code)
1737
172k
{
1738
172k
    switch (((uint64_t) vendor << 32) | ((uint32_t) type << 16) | code) {
1739
5.37k
    case  ((uint32_t) 0 << 16) | 0:
1740
5.37k
        return OFPERR_OFPHFC_INCOMPATIBLE;
1741
96
    case  ((uint32_t) 0 << 16) | 1:
1742
96
        return OFPERR_OFPHFC_EPERM;
1743
100
    case  ((uint32_t) 1 << 16) | 0:
1744
100
        return OFPERR_OFPBRC_BAD_VERSION;
1745
570
    case  ((uint32_t) 1 << 16) | 1:
1746
570
        return OFPERR_OFPBRC_BAD_TYPE;
1747
1.29k
    case  ((uint32_t) 1 << 16) | 2:
1748
1.29k
        return OFPERR_OFPBRC_BAD_STAT;
1749
880
    case  ((uint32_t) 1 << 16) | 3:
1750
880
        return OFPERR_OFPBRC_BAD_VENDOR;
1751
213
    case  ((uint32_t) 1 << 16) | 4:
1752
213
        return OFPERR_OFPBRC_BAD_SUBTYPE;
1753
5.37k
    case  ((uint32_t) 1 << 16) | 5:
1754
5.37k
        return OFPERR_OFPBRC_EPERM;
1755
1.14k
    case  ((uint32_t) 1 << 16) | 6:
1756
1.14k
        return OFPERR_OFPBRC_BAD_LEN;
1757
66
    case  ((uint32_t) 1 << 16) | 7:
1758
66
        return OFPERR_OFPBRC_BUFFER_EMPTY;
1759
554
    case  ((uint32_t) 1 << 16) | 8:
1760
554
        return OFPERR_OFPBRC_BUFFER_UNKNOWN;
1761
88
    case  ((uint32_t) 1 << 16) | 9:
1762
88
        return OFPERR_OFPBRC_BAD_TABLE_ID;
1763
327
    case  ((uint32_t) 1 << 16) | 10:
1764
327
        return OFPERR_OFPBRC_IS_SECONDARY;
1765
20
    case  ((uint32_t) 1 << 16) | 11:
1766
20
        return OFPERR_OFPBRC_BAD_PORT;
1767
761
    case  ((uint32_t) 1 << 16) | 12:
1768
761
        return OFPERR_OFPBRC_BAD_PACKET;
1769
114
    case  ((uint32_t) 1 << 16) | 13:
1770
114
        return OFPERR_OFPBRC_MULTIPART_BUFFER_OVERFLOW;
1771
67
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2640 << 16) | 0:
1772
67
        return OFPERR_OFPBRC_MULTIPART_REQUEST_TIMEOUT;
1773
18
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2641 << 16) | 0:
1774
18
        return OFPERR_OFPBRC_MULTIPART_REPLY_TIMEOUT;
1775
69
    case (0x2320ULL << 32) |  ((uint32_t) 2 << 16) | 0:
1776
69
        return OFPERR_NXBRC_NXM_INVALID;
1777
3.96k
    case (0x2320ULL << 32) |  ((uint32_t) 3 << 16) | 0:
1778
3.96k
        return OFPERR_NXBRC_NXM_BAD_TYPE;
1779
34
    case (0x2320ULL << 32) |  ((uint32_t) 4 << 16) | 0:
1780
34
        return OFPERR_NXBRC_MUST_BE_ZERO;
1781
34
    case (0x2320ULL << 32) |  ((uint32_t) 5 << 16) | 0:
1782
34
        return OFPERR_NXBRC_BAD_REASON;
1783
425
    case (0x2320ULL << 32) |  ((uint32_t) 9 << 16) | 0:
1784
425
        return OFPERR_NXBRC_FM_BAD_EVENT;
1785
72
    case (0x2320ULL << 32) |  ((uint32_t) 10 << 16) | 0:
1786
72
        return OFPERR_NXBRC_UNENCODABLE_ERROR;
1787
242
    case  ((uint32_t) 2 << 16) | 0:
1788
242
        return OFPERR_OFPBAC_BAD_TYPE;
1789
758
    case  ((uint32_t) 2 << 16) | 1:
1790
758
        return OFPERR_OFPBAC_BAD_LEN;
1791
6.57k
    case  ((uint32_t) 2 << 16) | 2:
1792
6.57k
        return OFPERR_OFPBAC_BAD_VENDOR;
1793
5.47k
    case  ((uint32_t) 2 << 16) | 3:
1794
5.47k
        return OFPERR_OFPBAC_BAD_VENDOR_TYPE;
1795
2.55k
    case  ((uint32_t) 2 << 16) | 4:
1796
2.55k
        return OFPERR_OFPBAC_BAD_OUT_PORT;
1797
2.70k
    case  ((uint32_t) 2 << 16) | 5:
1798
2.70k
        return OFPERR_OFPBAC_BAD_ARGUMENT;
1799
200
    case  ((uint32_t) 2 << 16) | 6:
1800
200
        return OFPERR_OFPBAC_EPERM;
1801
1.25k
    case  ((uint32_t) 2 << 16) | 7:
1802
1.25k
        return OFPERR_OFPBAC_TOO_MANY;
1803
46
    case  ((uint32_t) 2 << 16) | 8:
1804
46
        return OFPERR_OFPBAC_BAD_QUEUE;
1805
2.13k
    case  ((uint32_t) 2 << 16) | 9:
1806
2.13k
        return OFPERR_OFPBAC_BAD_OUT_GROUP;
1807
89
    case  ((uint32_t) 2 << 16) | 10:
1808
89
        return OFPERR_OFPBAC_MATCH_INCONSISTENT;
1809
441
    case  ((uint32_t) 2 << 16) | 11:
1810
441
        return OFPERR_OFPBAC_UNSUPPORTED_ORDER;
1811
657
    case  ((uint32_t) 2 << 16) | 12:
1812
657
        return OFPERR_OFPBAC_BAD_TAG;
1813
196
    case  ((uint32_t) 2 << 16) | 13:
1814
196
        return OFPERR_OFPBAC_BAD_SET_TYPE;
1815
802
    case  ((uint32_t) 2 << 16) | 14:
1816
802
        return OFPERR_OFPBAC_BAD_SET_LEN;
1817
229
    case  ((uint32_t) 2 << 16) | 15:
1818
229
        return OFPERR_OFPBAC_BAD_SET_ARGUMENT;
1819
18
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 4250 << 16) | 0:
1820
18
        return OFPERR_OFPBAC_BAD_SET_MASK;
1821
571
    case (0x2320ULL << 32) |  ((uint32_t) 11 << 16) | 0:
1822
571
        return OFPERR_NXBAC_MUST_BE_ZERO;
1823
67
    case (0x2320ULL << 32) |  ((uint32_t) 15 << 16) | 0:
1824
67
        return OFPERR_NXBAC_BAD_CONJUNCTION;
1825
691
    case (0x2320ULL << 32) |  ((uint32_t) 39 << 16) | 0:
1826
691
        return OFPERR_NXBAC_BAD_HEADER_TYPE;
1827
179
    case (0x2320ULL << 32) |  ((uint32_t) 40 << 16) | 0:
1828
179
        return OFPERR_NXBAC_UNKNOWN_ED_PROP;
1829
67
    case (0x2320ULL << 32) |  ((uint32_t) 41 << 16) | 0:
1830
67
        return OFPERR_NXBAC_BAD_ED_PROP;
1831
46
    case (0x2320ULL << 32) |  ((uint32_t) 42 << 16) | 0:
1832
46
        return OFPERR_NXBAC_CT_DATAPATH_SUPPORT;
1833
207
    case  ((uint32_t) 3 << 16) | 0:
1834
207
        return OFPERR_OFPBIC_UNKNOWN_INST;
1835
69
    case  ((uint32_t) 3 << 16) | 1:
1836
69
        return OFPERR_OFPBIC_UNSUP_INST;
1837
462
    case  ((uint32_t) 3 << 16) | 2:
1838
462
        return OFPERR_OFPBIC_BAD_TABLE_ID;
1839
3.06k
    case  ((uint32_t) 3 << 16) | 3:
1840
3.06k
        return OFPERR_OFPBIC_UNSUP_METADATA;
1841
1.76k
    case  ((uint32_t) 3 << 16) | 4:
1842
1.76k
        return OFPERR_OFPBIC_UNSUP_METADATA_MASK;
1843
66
    case  ((uint32_t) 3 << 16) | 5:
1844
66
        return OFPERR_OFPBIC_BAD_EXPERIMENTER;
1845
237
    case  ((uint32_t) 3 << 16) | 6:
1846
237
        return OFPERR_OFPBIC_BAD_EXP_TYPE;
1847
3.73k
    case  ((uint32_t) 3 << 16) | 7:
1848
3.73k
        return OFPERR_OFPBIC_BAD_LEN;
1849
71
    case  ((uint32_t) 3 << 16) | 8:
1850
71
        return OFPERR_OFPBIC_EPERM;
1851
18
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2600 << 16) | 0:
1852
18
        return OFPERR_OFPBIC_DUP_INST;
1853
219
    case  ((uint32_t) 4 << 16) | 0:
1854
219
        return OFPERR_OFPBMC_BAD_TYPE;
1855
81
    case  ((uint32_t) 4 << 16) | 1:
1856
81
        return OFPERR_OFPBMC_BAD_LEN;
1857
138
    case  ((uint32_t) 4 << 16) | 2:
1858
138
        return OFPERR_OFPBMC_BAD_TAG;
1859
93
    case  ((uint32_t) 4 << 16) | 3:
1860
93
        return OFPERR_OFPBMC_BAD_DL_ADDR_MASK;
1861
82
    case  ((uint32_t) 4 << 16) | 4:
1862
82
        return OFPERR_OFPBMC_BAD_NW_ADDR_MASK;
1863
66
    case  ((uint32_t) 4 << 16) | 5:
1864
66
        return OFPERR_OFPBMC_BAD_WILDCARDS;
1865
66
    case  ((uint32_t) 4 << 16) | 6:
1866
66
        return OFPERR_OFPBMC_BAD_FIELD;
1867
69
    case  ((uint32_t) 4 << 16) | 7:
1868
69
        return OFPERR_OFPBMC_BAD_VALUE;
1869
66
    case  ((uint32_t) 4 << 16) | 8:
1870
66
        return OFPERR_OFPBMC_BAD_MASK;
1871
66
    case  ((uint32_t) 4 << 16) | 9:
1872
66
        return OFPERR_OFPBMC_BAD_PREREQ;
1873
204
    case  ((uint32_t) 4 << 16) | 10:
1874
204
        return OFPERR_OFPBMC_DUP_FIELD;
1875
254
    case  ((uint32_t) 4 << 16) | 11:
1876
254
        return OFPERR_OFPBMC_EPERM;
1877
34
    case (0x2320ULL << 32) |  ((uint32_t) 43 << 16) | 0:
1878
34
        return OFPERR_NXBMC_CT_DATAPATH_SUPPORT;
1879
534
    case  ((uint32_t) 5 << 16) | 0:
1880
534
        return OFPERR_OFPFMFC_UNKNOWN;
1881
133
    case  ((uint32_t) 5 << 16) | 1:
1882
133
        return OFPERR_OFPFMFC_TABLE_FULL;
1883
94
    case  ((uint32_t) 5 << 16) | 2:
1884
94
        return OFPERR_OFPFMFC_BAD_TABLE_ID;
1885
89
    case  ((uint32_t) 5 << 16) | 3:
1886
89
        return OFPERR_OFPFMFC_OVERLAP;
1887
195
    case  ((uint32_t) 5 << 16) | 4:
1888
195
        return OFPERR_OFPFMFC_EPERM;
1889
431
    case  ((uint32_t) 5 << 16) | 5:
1890
431
        return OFPERR_OFPFMFC_BAD_TIMEOUT;
1891
1.62k
    case  ((uint32_t) 5 << 16) | 6:
1892
1.62k
        return OFPERR_OFPFMFC_BAD_COMMAND;
1893
66
    case  ((uint32_t) 5 << 16) | 7:
1894
66
        return OFPERR_OFPFMFC_BAD_FLAGS;
1895
321
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2360 << 16) | 0:
1896
321
        return OFPERR_OFPFMFC_BAD_PRIORITY;
1897
584
    case (0x2320ULL << 32) |  ((uint32_t) 12 << 16) | 0:
1898
584
        return OFPERR_NXFMFC_HARDWARE;
1899
1.40k
    case (0x2320ULL << 32) |  ((uint32_t) 13 << 16) | 0:
1900
1.40k
        return OFPERR_NXFMFC_BAD_TABLE_ID;
1901
35
    case (0x2320ULL << 32) |  ((uint32_t) 37 << 16) | 0:
1902
35
        return OFPERR_NXFMFC_INVALID_TLV_FIELD;
1903
767
    case  ((uint32_t) 6 << 16) | 0:
1904
767
        return OFPERR_OFPGMFC_GROUP_EXISTS;
1905
728
    case  ((uint32_t) 6 << 16) | 1:
1906
728
        return OFPERR_OFPGMFC_INVALID_GROUP;
1907
457
    case  ((uint32_t) 6 << 16) | 2:
1908
457
        return OFPERR_OFPGMFC_WEIGHT_UNSUPPORTED;
1909
35
    case  ((uint32_t) 6 << 16) | 3:
1910
35
        return OFPERR_OFPGMFC_OUT_OF_GROUPS;
1911
164
    case  ((uint32_t) 6 << 16) | 4:
1912
164
        return OFPERR_OFPGMFC_OUT_OF_BUCKETS;
1913
1.67k
    case  ((uint32_t) 6 << 16) | 5:
1914
1.67k
        return OFPERR_OFPGMFC_CHAINING_UNSUPPORTED;
1915
939
    case  ((uint32_t) 6 << 16) | 6:
1916
939
        return OFPERR_OFPGMFC_WATCH_UNSUPPORTED;
1917
115
    case  ((uint32_t) 6 << 16) | 7:
1918
115
        return OFPERR_OFPGMFC_LOOP;
1919
1.73k
    case  ((uint32_t) 6 << 16) | 8:
1920
1.73k
        return OFPERR_OFPGMFC_UNKNOWN_GROUP;
1921
942
    case  ((uint32_t) 6 << 16) | 9:
1922
942
        return OFPERR_OFPGMFC_CHAINED_GROUP;
1923
66
    case  ((uint32_t) 6 << 16) | 10:
1924
66
        return OFPERR_OFPGMFC_BAD_TYPE;
1925
501
    case  ((uint32_t) 6 << 16) | 11:
1926
501
        return OFPERR_OFPGMFC_BAD_COMMAND;
1927
1.50k
    case  ((uint32_t) 6 << 16) | 12:
1928
1.50k
        return OFPERR_OFPGMFC_BAD_BUCKET;
1929
826
    case  ((uint32_t) 6 << 16) | 13:
1930
826
        return OFPERR_OFPGMFC_BAD_WATCH;
1931
1.61k
    case  ((uint32_t) 6 << 16) | 14:
1932
1.61k
        return OFPERR_OFPGMFC_EPERM;
1933
34
    case  ((uint32_t) 7 << 16) | 0:
1934
34
        return OFPERR_OFPPMFC_BAD_PORT;
1935
317
    case  ((uint32_t) 7 << 16) | 1:
1936
317
        return OFPERR_OFPPMFC_BAD_HW_ADDR;
1937
2.01k
    case  ((uint32_t) 7 << 16) | 2:
1938
2.01k
        return OFPERR_OFPPMFC_BAD_CONFIG;
1939
144
    case  ((uint32_t) 7 << 16) | 3:
1940
144
        return OFPERR_OFPPMFC_BAD_ADVERTISE;
1941
1.74k
    case  ((uint32_t) 7 << 16) | 4:
1942
1.74k
        return OFPERR_OFPPMFC_EPERM;
1943
70
    case  ((uint32_t) 8 << 16) | 0:
1944
70
        return OFPERR_OFPTMFC_BAD_TABLE;
1945
225
    case  ((uint32_t) 8 << 16) | 1:
1946
225
        return OFPERR_OFPTMFC_BAD_CONFIG;
1947
222
    case  ((uint32_t) 8 << 16) | 2:
1948
222
        return OFPERR_OFPTMFC_EPERM;
1949
7.19k
    case  ((uint32_t) 9 << 16) | 0:
1950
7.19k
        return OFPERR_OFPQOFC_BAD_PORT;
1951
67
    case  ((uint32_t) 9 << 16) | 1:
1952
67
        return OFPERR_OFPQOFC_BAD_QUEUE;
1953
841
    case  ((uint32_t) 9 << 16) | 2:
1954
841
        return OFPERR_OFPQOFC_EPERM;
1955
254
    case  ((uint32_t) 10 << 16) | 0:
1956
254
        return OFPERR_OFPSCFC_BAD_FLAGS;
1957
272
    case  ((uint32_t) 10 << 16) | 1:
1958
272
        return OFPERR_OFPSCFC_BAD_LEN;
1959
535
    case  ((uint32_t) 10 << 16) | 2:
1960
535
        return OFPERR_OFPSCFC_EPERM;
1961
68
    case  ((uint32_t) 11 << 16) | 0:
1962
68
        return OFPERR_OFPRRFC_STALE;
1963
210
    case  ((uint32_t) 11 << 16) | 1:
1964
210
        return OFPERR_OFPRRFC_UNSUP;
1965
350
    case  ((uint32_t) 11 << 16) | 2:
1966
350
        return OFPERR_OFPRRFC_BAD_ROLE;
1967
3.20k
    case  ((uint32_t) 12 << 16) | 0:
1968
3.20k
        return OFPERR_OFPMMFC_UNKNOWN;
1969
187
    case  ((uint32_t) 12 << 16) | 1:
1970
187
        return OFPERR_OFPMMFC_METER_EXISTS;
1971
1.01k
    case  ((uint32_t) 12 << 16) | 2:
1972
1.01k
        return OFPERR_OFPMMFC_INVALID_METER;
1973
1.45k
    case  ((uint32_t) 12 << 16) | 3:
1974
1.45k
        return OFPERR_OFPMMFC_UNKNOWN_METER;
1975
196
    case  ((uint32_t) 12 << 16) | 4:
1976
196
        return OFPERR_OFPMMFC_BAD_COMMAND;
1977
4.62k
    case  ((uint32_t) 12 << 16) | 5:
1978
4.62k
        return OFPERR_OFPMMFC_BAD_FLAGS;
1979
2.55k
    case  ((uint32_t) 12 << 16) | 6:
1980
2.55k
        return OFPERR_OFPMMFC_BAD_RATE;
1981
114
    case  ((uint32_t) 12 << 16) | 7:
1982
114
        return OFPERR_OFPMMFC_BAD_BURST;
1983
236
    case  ((uint32_t) 12 << 16) | 8:
1984
236
        return OFPERR_OFPMMFC_BAD_BAND;
1985
67
    case  ((uint32_t) 12 << 16) | 9:
1986
67
        return OFPERR_OFPMMFC_BAD_BAND_VALUE;
1987
139
    case  ((uint32_t) 12 << 16) | 10:
1988
139
        return OFPERR_OFPMMFC_OUT_OF_METERS;
1989
2.05k
    case  ((uint32_t) 12 << 16) | 11:
1990
2.05k
        return OFPERR_OFPMMFC_OUT_OF_BANDS;
1991
169
    case  ((uint32_t) 13 << 16) | 0:
1992
169
        return OFPERR_OFPTFFC_BAD_TABLE;
1993
50
    case  ((uint32_t) 13 << 16) | 1:
1994
50
        return OFPERR_OFPTFFC_BAD_METADATA;
1995
89
    case  ((uint32_t) 13 << 16) | 5:
1996
89
        return OFPERR_OFPTFFC_EPERM;
1997
209
    case (0x2320ULL << 32) |  ((uint32_t) 44 << 16) | 0:
1998
209
        return OFPERR_NXTFFC_DUP_TABLE;
1999
103
    case  ((uint32_t) 13 << 16) | 2:
2000
103
        return OFPERR_OFPBPC_BAD_TYPE;
2001
388
    case  ((uint32_t) 13 << 16) | 3:
2002
388
        return OFPERR_OFPBPC_BAD_LEN;
2003
66
    case  ((uint32_t) 13 << 16) | 4:
2004
66
        return OFPERR_OFPBPC_BAD_VALUE;
2005
66
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 4443 << 16) | 0:
2006
66
        return OFPERR_OFPBPC_TOO_MANY;
2007
66
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 4444 << 16) | 0:
2008
66
        return OFPERR_OFPBPC_DUP_TYPE;
2009
66
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 4445 << 16) | 0:
2010
66
        return OFPERR_OFPBPC_BAD_EXPERIMENTER;
2011
18
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 4446 << 16) | 0:
2012
18
        return OFPERR_OFPBPC_BAD_EXP_TYPE;
2013
66
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 4447 << 16) | 0:
2014
66
        return OFPERR_OFPBPC_BAD_EXP_VALUE;
2015
34
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 4448 << 16) | 0:
2016
34
        return OFPERR_OFPBPC_EPERM;
2017
66
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2370 << 16) | 0:
2018
66
        return OFPERR_OFPACFC_INVALID;
2019
45
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2371 << 16) | 0:
2020
45
        return OFPERR_OFPACFC_UNSUPPORTED;
2021
194
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2372 << 16) | 0:
2022
194
        return OFPERR_OFPACFC_EPERM;
2023
66
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2300 << 16) | 0:
2024
66
        return OFPERR_OFPBFC_UNKNOWN;
2025
66
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2301 << 16) | 0:
2026
66
        return OFPERR_OFPBFC_EPERM;
2027
195
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2302 << 16) | 0:
2028
195
        return OFPERR_OFPBFC_BAD_ID;
2029
34
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2303 << 16) | 0:
2030
34
        return OFPERR_OFPBFC_BUNDLE_EXIST;
2031
661
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2304 << 16) | 0:
2032
661
        return OFPERR_OFPBFC_BUNDLE_CLOSED;
2033
2.54k
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2305 << 16) | 0:
2034
2.54k
        return OFPERR_OFPBFC_OUT_OF_BUNDLES;
2035
3.27k
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2306 << 16) | 0:
2036
3.27k
        return OFPERR_OFPBFC_BAD_TYPE;
2037
36
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2307 << 16) | 0:
2038
36
        return OFPERR_OFPBFC_BAD_FLAGS;
2039
177
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2308 << 16) | 0:
2040
177
        return OFPERR_OFPBFC_MSG_BAD_LEN;
2041
11
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2309 << 16) | 0:
2042
11
        return OFPERR_OFPBFC_MSG_BAD_XID;
2043
18
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2310 << 16) | 0:
2044
18
        return OFPERR_OFPBFC_MSG_UNSUP;
2045
700
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2311 << 16) | 0:
2046
700
        return OFPERR_OFPBFC_MSG_CONFLICT;
2047
198
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2312 << 16) | 0:
2048
198
        return OFPERR_OFPBFC_MSG_TOO_MANY;
2049
18
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2313 << 16) | 0:
2050
18
        return OFPERR_OFPBFC_MSG_FAILED;
2051
34
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2314 << 16) | 0:
2052
34
        return OFPERR_OFPBFC_TIMEOUT;
2053
144
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2315 << 16) | 0:
2054
144
        return OFPERR_OFPBFC_BUNDLE_IN_PROGRESS;
2055
175
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 0:
2056
175
        return OFPERR_OFPMOFC_MONITOR_EXISTS;
2057
66
    case (0x2320ULL << 32) |  ((uint32_t) 8 << 16) | 0:
2058
66
        return OFPERR_OFPMOFC_UNKNOWN_MONITOR;
2059
588
    case (0x2320ULL << 32) |  ((uint32_t) 7 << 16) | 0:
2060
588
        return OFPERR_OFPMOFC_BAD_FLAGS;
2061
3.89k
    case (0x2320ULL << 32) |  ((uint32_t) 16 << 16) | 0:
2062
3.89k
        return OFPERR_NXTTMFC_BAD_COMMAND;
2063
66
    case (0x2320ULL << 32) |  ((uint32_t) 17 << 16) | 0:
2064
66
        return OFPERR_NXTTMFC_BAD_OPT_LEN;
2065
89
    case (0x2320ULL << 32) |  ((uint32_t) 18 << 16) | 0:
2066
89
        return OFPERR_NXTTMFC_BAD_FIELD_IDX;
2067
530
    case (0x2320ULL << 32) |  ((uint32_t) 19 << 16) | 0:
2068
530
        return OFPERR_NXTTMFC_TABLE_FULL;
2069
68
    case (0x2320ULL << 32) |  ((uint32_t) 20 << 16) | 0:
2070
68
        return OFPERR_NXTTMFC_ALREADY_MAPPED;
2071
59
    case (0x2320ULL << 32) |  ((uint32_t) 21 << 16) | 0:
2072
59
        return OFPERR_NXTTMFC_DUP_ENTRY;
2073
35
    case (0x2320ULL << 32) |  ((uint32_t) 38 << 16) | 0:
2074
35
        return OFPERR_NXTTMFC_INVALID_TLV_DEL;
2075
34
    case (0x2320ULL << 32) |  ((uint32_t) 34 << 16) | 0:
2076
34
        return OFPERR_NXR_NOT_SUPPORTED;
2077
66
    case (0x2320ULL << 32) |  ((uint32_t) 35 << 16) | 0:
2078
66
        return OFPERR_NXR_STALE;
2079
634
    case (0x2320ULL << 32) |  ((uint32_t) 36 << 16) | 0:
2080
634
        return OFPERR_NXST_NOT_CONFIGURED;
2081
172k
    }
2082
2083
50.0k
    return 0;
2084
172k
}
2085
2086
static const struct ofperr_domain ofperr_of13 = {
2087
    "OpenFlow 1.3",
2088
    4,
2089
    ofperr_of13_decode,
2090
    {
2091
        {      0x0,  0,   0 }, /* OFPHFC_INCOMPATIBLE */
2092
        {      0x0,  0,   1 }, /* OFPHFC_EPERM */
2093
        {      0x0,  1,   0 }, /* OFPBRC_BAD_VERSION */
2094
        {      0x0,  1,   1 }, /* OFPBRC_BAD_TYPE */
2095
        {      0x0,  1,   2 }, /* OFPBRC_BAD_STAT */
2096
        {      0x0,  1,   3 }, /* OFPBRC_BAD_VENDOR */
2097
        {      0x0,  1,   4 }, /* OFPBRC_BAD_SUBTYPE */
2098
        {      0x0,  1,   5 }, /* OFPBRC_EPERM */
2099
        {      0x0,  1,   6 }, /* OFPBRC_BAD_LEN */
2100
        {      0x0,  1,   7 }, /* OFPBRC_BUFFER_EMPTY */
2101
        {      0x0,  1,   8 }, /* OFPBRC_BUFFER_UNKNOWN */
2102
        {      0x0,  1,   9 }, /* OFPBRC_BAD_TABLE_ID */
2103
        {      0x0,  1,  10 }, /* OFPBRC_IS_SECONDARY */
2104
        {      0x0,  1,  11 }, /* OFPBRC_BAD_PORT */
2105
        {      0x0,  1,  12 }, /* OFPBRC_BAD_PACKET */
2106
        {      0x0,  1,  13 }, /* OFPBRC_MULTIPART_BUFFER_OVERFLOW */
2107
        { 0x4f4e4600, 2640,   0 }, /* OFPBRC_MULTIPART_REQUEST_TIMEOUT */
2108
        { 0x4f4e4600, 2641,   0 }, /* OFPBRC_MULTIPART_REPLY_TIMEOUT */
2109
        {       -1, -1,  -1 }, /* OFPBRC_MULTIPART_BAD_SCHED */
2110
        {       -1, -1,  -1 }, /* OFPBRC_PIPELINE_FIELDS_ONLY */
2111
        {       -1, -1,  -1 }, /* OFPBRC_UNKNOWN */
2112
        {   0x2320,  2,   0 }, /* NXBRC_NXM_INVALID */
2113
        {   0x2320,  3,   0 }, /* NXBRC_NXM_BAD_TYPE */
2114
        {   0x2320,  4,   0 }, /* NXBRC_MUST_BE_ZERO */
2115
        {   0x2320,  5,   0 }, /* NXBRC_BAD_REASON */
2116
        {   0x2320,  9,   0 }, /* NXBRC_FM_BAD_EVENT */
2117
        {   0x2320, 10,   0 }, /* NXBRC_UNENCODABLE_ERROR */
2118
        {      0x0,  2,   0 }, /* OFPBAC_BAD_TYPE */
2119
        {      0x0,  2,   1 }, /* OFPBAC_BAD_LEN */
2120
        {      0x0,  2,   2 }, /* OFPBAC_BAD_VENDOR */
2121
        {      0x0,  2,   3 }, /* OFPBAC_BAD_VENDOR_TYPE */
2122
        {      0x0,  2,   4 }, /* OFPBAC_BAD_OUT_PORT */
2123
        {      0x0,  2,   5 }, /* OFPBAC_BAD_ARGUMENT */
2124
        {      0x0,  2,   6 }, /* OFPBAC_EPERM */
2125
        {      0x0,  2,   7 }, /* OFPBAC_TOO_MANY */
2126
        {      0x0,  2,   8 }, /* OFPBAC_BAD_QUEUE */
2127
        {      0x0,  2,   9 }, /* OFPBAC_BAD_OUT_GROUP */
2128
        {      0x0,  2,  10 }, /* OFPBAC_MATCH_INCONSISTENT */
2129
        {      0x0,  2,  11 }, /* OFPBAC_UNSUPPORTED_ORDER */
2130
        {      0x0,  2,  12 }, /* OFPBAC_BAD_TAG */
2131
        {      0x0,  2,  13 }, /* OFPBAC_BAD_SET_TYPE */
2132
        {      0x0,  2,  14 }, /* OFPBAC_BAD_SET_LEN */
2133
        {      0x0,  2,  15 }, /* OFPBAC_BAD_SET_ARGUMENT */
2134
        { 0x4f4e4600, 4250,   0 }, /* OFPBAC_BAD_SET_MASK */
2135
        {       -1, -1,  -1 }, /* OFPBAC_BAD_METER */
2136
        {   0x2320, 11,   0 }, /* NXBAC_MUST_BE_ZERO */
2137
        {   0x2320, 15,   0 }, /* NXBAC_BAD_CONJUNCTION */
2138
        {   0x2320, 39,   0 }, /* NXBAC_BAD_HEADER_TYPE */
2139
        {   0x2320, 40,   0 }, /* NXBAC_UNKNOWN_ED_PROP */
2140
        {   0x2320, 41,   0 }, /* NXBAC_BAD_ED_PROP */
2141
        {   0x2320, 42,   0 }, /* NXBAC_CT_DATAPATH_SUPPORT */
2142
        {      0x0,  3,   0 }, /* OFPBIC_UNKNOWN_INST */
2143
        {      0x0,  3,   1 }, /* OFPBIC_UNSUP_INST */
2144
        {      0x0,  3,   2 }, /* OFPBIC_BAD_TABLE_ID */
2145
        {      0x0,  3,   3 }, /* OFPBIC_UNSUP_METADATA */
2146
        {      0x0,  3,   4 }, /* OFPBIC_UNSUP_METADATA_MASK */
2147
        {      0x0,  3,   5 }, /* OFPBIC_BAD_EXPERIMENTER */
2148
        {      0x0,  3,   6 }, /* OFPBIC_BAD_EXP_TYPE */
2149
        {      0x0,  3,   7 }, /* OFPBIC_BAD_LEN */
2150
        {      0x0,  3,   8 }, /* OFPBIC_EPERM */
2151
        { 0x4f4e4600, 2600,   0 }, /* OFPBIC_DUP_INST */
2152
        {      0x0,  4,   0 }, /* OFPBMC_BAD_TYPE */
2153
        {      0x0,  4,   1 }, /* OFPBMC_BAD_LEN */
2154
        {      0x0,  4,   2 }, /* OFPBMC_BAD_TAG */
2155
        {      0x0,  4,   3 }, /* OFPBMC_BAD_DL_ADDR_MASK */
2156
        {      0x0,  4,   4 }, /* OFPBMC_BAD_NW_ADDR_MASK */
2157
        {      0x0,  4,   5 }, /* OFPBMC_BAD_WILDCARDS */
2158
        {      0x0,  4,   6 }, /* OFPBMC_BAD_FIELD */
2159
        {      0x0,  4,   7 }, /* OFPBMC_BAD_VALUE */
2160
        {      0x0,  4,   8 }, /* OFPBMC_BAD_MASK */
2161
        {      0x0,  4,   9 }, /* OFPBMC_BAD_PREREQ */
2162
        {      0x0,  4,  10 }, /* OFPBMC_DUP_FIELD */
2163
        {      0x0,  4,  11 }, /* OFPBMC_EPERM */
2164
        {   0x2320, 43,   0 }, /* NXBMC_CT_DATAPATH_SUPPORT */
2165
        {      0x0,  5,   0 }, /* OFPFMFC_UNKNOWN */
2166
        {      0x0,  5,   1 }, /* OFPFMFC_TABLE_FULL */
2167
        {      0x0,  5,   2 }, /* OFPFMFC_BAD_TABLE_ID */
2168
        {      0x0,  5,   3 }, /* OFPFMFC_OVERLAP */
2169
        {      0x0,  5,   4 }, /* OFPFMFC_EPERM */
2170
        {      0x0,  5,   5 }, /* OFPFMFC_BAD_TIMEOUT */
2171
        {       -1, -1,  -1 }, /* OFPFMFC_BAD_EMERG_TIMEOUT */
2172
        {      0x0,  5,   6 }, /* OFPFMFC_BAD_COMMAND */
2173
        {      0x0,  5,   7 }, /* OFPFMFC_BAD_FLAGS */
2174
        {       -1, -1,  -1 }, /* OFPFMFC_CANT_SYNC */
2175
        { 0x4f4e4600, 2360,   0 }, /* OFPFMFC_BAD_PRIORITY */
2176
        {       -1, -1,  -1 }, /* OFPFMFC_IS_SYNC */
2177
        {       -1, -1,  -1 }, /* OFPFMFC_UNSUPPORTED */
2178
        {   0x2320, 12,   0 }, /* NXFMFC_HARDWARE */
2179
        {   0x2320, 13,   0 }, /* NXFMFC_BAD_TABLE_ID */
2180
        {   0x2320, 37,   0 }, /* NXFMFC_INVALID_TLV_FIELD */
2181
        {      0x0,  6,   0 }, /* OFPGMFC_GROUP_EXISTS */
2182
        {      0x0,  6,   1 }, /* OFPGMFC_INVALID_GROUP */
2183
        {      0x0,  6,   2 }, /* OFPGMFC_WEIGHT_UNSUPPORTED */
2184
        {      0x0,  6,   3 }, /* OFPGMFC_OUT_OF_GROUPS */
2185
        {      0x0,  6,   4 }, /* OFPGMFC_OUT_OF_BUCKETS */
2186
        {      0x0,  6,   5 }, /* OFPGMFC_CHAINING_UNSUPPORTED */
2187
        {      0x0,  6,   6 }, /* OFPGMFC_WATCH_UNSUPPORTED */
2188
        {      0x0,  6,   7 }, /* OFPGMFC_LOOP */
2189
        {      0x0,  6,   8 }, /* OFPGMFC_UNKNOWN_GROUP */
2190
        {      0x0,  6,   9 }, /* OFPGMFC_CHAINED_GROUP */
2191
        {      0x0,  6,  10 }, /* OFPGMFC_BAD_TYPE */
2192
        {      0x0,  6,  11 }, /* OFPGMFC_BAD_COMMAND */
2193
        {      0x0,  6,  12 }, /* OFPGMFC_BAD_BUCKET */
2194
        {      0x0,  6,  13 }, /* OFPGMFC_BAD_WATCH */
2195
        {      0x0,  6,  14 }, /* OFPGMFC_EPERM */
2196
        {       -1, -1,  -1 }, /* OFPGMFC_UNKNOWN_BUCKET */
2197
        {       -1, -1,  -1 }, /* OFPGMFC_BUCKET_EXISTS */
2198
        {      0x0,  7,   0 }, /* OFPPMFC_BAD_PORT */
2199
        {      0x0,  7,   1 }, /* OFPPMFC_BAD_HW_ADDR */
2200
        {      0x0,  7,   2 }, /* OFPPMFC_BAD_CONFIG */
2201
        {      0x0,  7,   3 }, /* OFPPMFC_BAD_ADVERTISE */
2202
        {      0x0,  7,   4 }, /* OFPPMFC_EPERM */
2203
        {      0x0,  8,   0 }, /* OFPTMFC_BAD_TABLE */
2204
        {      0x0,  8,   1 }, /* OFPTMFC_BAD_CONFIG */
2205
        {      0x0,  8,   2 }, /* OFPTMFC_EPERM */
2206
        {      0x0,  9,   0 }, /* OFPQOFC_BAD_PORT */
2207
        {      0x0,  9,   1 }, /* OFPQOFC_BAD_QUEUE */
2208
        {      0x0,  9,   2 }, /* OFPQOFC_EPERM */
2209
        {       -1, -1,  -1 }, /* NXQOFC_QUEUE_ERROR */
2210
        {      0x0, 10,   0 }, /* OFPSCFC_BAD_FLAGS */
2211
        {      0x0, 10,   1 }, /* OFPSCFC_BAD_LEN */
2212
        {      0x0, 10,   2 }, /* OFPSCFC_EPERM */
2213
        {      0x0, 11,   0 }, /* OFPRRFC_STALE */
2214
        {      0x0, 11,   1 }, /* OFPRRFC_UNSUP */
2215
        {      0x0, 11,   2 }, /* OFPRRFC_BAD_ROLE */
2216
        {       -1, -1,  -1 }, /* OFPRRFC_ID_UNSUP */
2217
        {       -1, -1,  -1 }, /* OFPRRFC_ID_IN_USE */
2218
        {      0x0, 12,   0 }, /* OFPMMFC_UNKNOWN */
2219
        {      0x0, 12,   1 }, /* OFPMMFC_METER_EXISTS */
2220
        {      0x0, 12,   2 }, /* OFPMMFC_INVALID_METER */
2221
        {      0x0, 12,   3 }, /* OFPMMFC_UNKNOWN_METER */
2222
        {      0x0, 12,   4 }, /* OFPMMFC_BAD_COMMAND */
2223
        {      0x0, 12,   5 }, /* OFPMMFC_BAD_FLAGS */
2224
        {      0x0, 12,   6 }, /* OFPMMFC_BAD_RATE */
2225
        {      0x0, 12,   7 }, /* OFPMMFC_BAD_BURST */
2226
        {      0x0, 12,   8 }, /* OFPMMFC_BAD_BAND */
2227
        {      0x0, 12,   9 }, /* OFPMMFC_BAD_BAND_VALUE */
2228
        {      0x0, 12,  10 }, /* OFPMMFC_OUT_OF_METERS */
2229
        {      0x0, 12,  11 }, /* OFPMMFC_OUT_OF_BANDS */
2230
        {      0x0, 13,   0 }, /* OFPTFFC_BAD_TABLE */
2231
        {      0x0, 13,   1 }, /* OFPTFFC_BAD_METADATA */
2232
        {      0x0, 13,   5 }, /* OFPTFFC_EPERM */
2233
        {       -1, -1,  -1 }, /* OFPTFFC_BAD_CAPA */
2234
        {       -1, -1,  -1 }, /* OFPTFFC_BAD_MAX_ENT */
2235
        {       -1, -1,  -1 }, /* OFPTFFC_BAD_FEATURES */
2236
        {       -1, -1,  -1 }, /* OFPTFFC_BAD_COMMAND */
2237
        {       -1, -1,  -1 }, /* OFPTFFC_TOO_MANY */
2238
        {   0x2320, 44,   0 }, /* NXTFFC_DUP_TABLE */
2239
        {      0x0, 13,   2 }, /* OFPBPC_BAD_TYPE */
2240
        {      0x0, 13,   3 }, /* OFPBPC_BAD_LEN */
2241
        {      0x0, 13,   4 }, /* OFPBPC_BAD_VALUE */
2242
        { 0x4f4e4600, 4443,   0 }, /* OFPBPC_TOO_MANY */
2243
        { 0x4f4e4600, 4444,   0 }, /* OFPBPC_DUP_TYPE */
2244
        { 0x4f4e4600, 4445,   0 }, /* OFPBPC_BAD_EXPERIMENTER */
2245
        { 0x4f4e4600, 4446,   0 }, /* OFPBPC_BAD_EXP_TYPE */
2246
        { 0x4f4e4600, 4447,   0 }, /* OFPBPC_BAD_EXP_VALUE */
2247
        { 0x4f4e4600, 4448,   0 }, /* OFPBPC_EPERM */
2248
        { 0x4f4e4600, 2370,   0 }, /* OFPACFC_INVALID */
2249
        { 0x4f4e4600, 2371,   0 }, /* OFPACFC_UNSUPPORTED */
2250
        { 0x4f4e4600, 2372,   0 }, /* OFPACFC_EPERM */
2251
        { 0x4f4e4600, 2300,   0 }, /* OFPBFC_UNKNOWN */
2252
        { 0x4f4e4600, 2301,   0 }, /* OFPBFC_EPERM */
2253
        { 0x4f4e4600, 2302,   0 }, /* OFPBFC_BAD_ID */
2254
        { 0x4f4e4600, 2303,   0 }, /* OFPBFC_BUNDLE_EXIST */
2255
        { 0x4f4e4600, 2304,   0 }, /* OFPBFC_BUNDLE_CLOSED */
2256
        { 0x4f4e4600, 2305,   0 }, /* OFPBFC_OUT_OF_BUNDLES */
2257
        { 0x4f4e4600, 2306,   0 }, /* OFPBFC_BAD_TYPE */
2258
        { 0x4f4e4600, 2307,   0 }, /* OFPBFC_BAD_FLAGS */
2259
        { 0x4f4e4600, 2308,   0 }, /* OFPBFC_MSG_BAD_LEN */
2260
        { 0x4f4e4600, 2309,   0 }, /* OFPBFC_MSG_BAD_XID */
2261
        { 0x4f4e4600, 2310,   0 }, /* OFPBFC_MSG_UNSUP */
2262
        { 0x4f4e4600, 2311,   0 }, /* OFPBFC_MSG_CONFLICT */
2263
        { 0x4f4e4600, 2312,   0 }, /* OFPBFC_MSG_TOO_MANY */
2264
        { 0x4f4e4600, 2313,   0 }, /* OFPBFC_MSG_FAILED */
2265
        { 0x4f4e4600, 2314,   0 }, /* OFPBFC_TIMEOUT */
2266
        { 0x4f4e4600, 2315,   0 }, /* OFPBFC_BUNDLE_IN_PROGRESS */
2267
        {       -1, -1,  -1 }, /* OFPBFC_SCHED_NOT_SUPPORTED */
2268
        {       -1, -1,  -1 }, /* OFPBFC_SCHED_FUTURE */
2269
        {       -1, -1,  -1 }, /* OFPBFC_SCHED_PAST */
2270
        {       -1, -1,  -1 }, /* OFPBFC_BAD_VERSION */
2271
        {       -1, -1,  -1 }, /* OFPMOFC_UNKNOWN */
2272
        {   0x2320,  6,   0 }, /* OFPMOFC_MONITOR_EXISTS */
2273
        {       -1, -1,  -1 }, /* OFPMOFC_INVALID_MONITOR */
2274
        {   0x2320,  8,   0 }, /* OFPMOFC_UNKNOWN_MONITOR */
2275
        {       -1, -1,  -1 }, /* OFPMOFC_BAD_COMMAND */
2276
        {   0x2320,  7,   0 }, /* OFPMOFC_BAD_FLAGS */
2277
        {       -1, -1,  -1 }, /* OFPMOFC_BAD_TABLE_ID */
2278
        {       -1, -1,  -1 }, /* OFPMOFC_BAD_OUT */
2279
        {   0x2320, 16,   0 }, /* NXTTMFC_BAD_COMMAND */
2280
        {   0x2320, 17,   0 }, /* NXTTMFC_BAD_OPT_LEN */
2281
        {   0x2320, 18,   0 }, /* NXTTMFC_BAD_FIELD_IDX */
2282
        {   0x2320, 19,   0 }, /* NXTTMFC_TABLE_FULL */
2283
        {   0x2320, 20,   0 }, /* NXTTMFC_ALREADY_MAPPED */
2284
        {   0x2320, 21,   0 }, /* NXTTMFC_DUP_ENTRY */
2285
        {   0x2320, 38,   0 }, /* NXTTMFC_INVALID_TLV_DEL */
2286
        {   0x2320, 34,   0 }, /* NXR_NOT_SUPPORTED */
2287
        {   0x2320, 35,   0 }, /* NXR_STALE */
2288
        {   0x2320, 36,   0 }, /* NXST_NOT_CONFIGURED */
2289
    },
2290
};
2291
2292
static enum ofperr
2293
ofperr_of14_decode(uint32_t vendor, uint16_t type, uint16_t code)
2294
252k
{
2295
252k
    switch (((uint64_t) vendor << 32) | ((uint32_t) type << 16) | code) {
2296
6.16k
    case  ((uint32_t) 0 << 16) | 0:
2297
6.16k
        return OFPERR_OFPHFC_INCOMPATIBLE;
2298
305
    case  ((uint32_t) 0 << 16) | 1:
2299
305
        return OFPERR_OFPHFC_EPERM;
2300
324
    case  ((uint32_t) 1 << 16) | 0:
2301
324
        return OFPERR_OFPBRC_BAD_VERSION;
2302
309
    case  ((uint32_t) 1 << 16) | 1:
2303
309
        return OFPERR_OFPBRC_BAD_TYPE;
2304
4.59k
    case  ((uint32_t) 1 << 16) | 2:
2305
4.59k
        return OFPERR_OFPBRC_BAD_STAT;
2306
66
    case  ((uint32_t) 1 << 16) | 3:
2307
66
        return OFPERR_OFPBRC_BAD_VENDOR;
2308
314
    case  ((uint32_t) 1 << 16) | 4:
2309
314
        return OFPERR_OFPBRC_BAD_SUBTYPE;
2310
3.31k
    case  ((uint32_t) 1 << 16) | 5:
2311
3.31k
        return OFPERR_OFPBRC_EPERM;
2312
1.38k
    case  ((uint32_t) 1 << 16) | 6:
2313
1.38k
        return OFPERR_OFPBRC_BAD_LEN;
2314
66
    case  ((uint32_t) 1 << 16) | 7:
2315
66
        return OFPERR_OFPBRC_BUFFER_EMPTY;
2316
17.5k
    case  ((uint32_t) 1 << 16) | 8:
2317
17.5k
        return OFPERR_OFPBRC_BUFFER_UNKNOWN;
2318
2.99k
    case  ((uint32_t) 1 << 16) | 9:
2319
2.99k
        return OFPERR_OFPBRC_BAD_TABLE_ID;
2320
4.38k
    case  ((uint32_t) 1 << 16) | 10:
2321
4.38k
        return OFPERR_OFPBRC_IS_SECONDARY;
2322
652
    case  ((uint32_t) 1 << 16) | 11:
2323
652
        return OFPERR_OFPBRC_BAD_PORT;
2324
2.87k
    case  ((uint32_t) 1 << 16) | 12:
2325
2.87k
        return OFPERR_OFPBRC_BAD_PACKET;
2326
69
    case  ((uint32_t) 1 << 16) | 13:
2327
69
        return OFPERR_OFPBRC_MULTIPART_BUFFER_OVERFLOW;
2328
67
    case  ((uint32_t) 1 << 16) | 14:
2329
67
        return OFPERR_OFPBRC_MULTIPART_REQUEST_TIMEOUT;
2330
66
    case  ((uint32_t) 1 << 16) | 15:
2331
66
        return OFPERR_OFPBRC_MULTIPART_REPLY_TIMEOUT;
2332
66
    case (0x2320ULL << 32) |  ((uint32_t) 2 << 16) | 0:
2333
66
        return OFPERR_NXBRC_NXM_INVALID;
2334
669
    case (0x2320ULL << 32) |  ((uint32_t) 3 << 16) | 0:
2335
669
        return OFPERR_NXBRC_NXM_BAD_TYPE;
2336
1.29k
    case (0x2320ULL << 32) |  ((uint32_t) 4 << 16) | 0:
2337
1.29k
        return OFPERR_NXBRC_MUST_BE_ZERO;
2338
194
    case (0x2320ULL << 32) |  ((uint32_t) 5 << 16) | 0:
2339
194
        return OFPERR_NXBRC_BAD_REASON;
2340
68
    case (0x2320ULL << 32) |  ((uint32_t) 9 << 16) | 0:
2341
68
        return OFPERR_NXBRC_FM_BAD_EVENT;
2342
72
    case (0x2320ULL << 32) |  ((uint32_t) 10 << 16) | 0:
2343
72
        return OFPERR_NXBRC_UNENCODABLE_ERROR;
2344
574
    case  ((uint32_t) 2 << 16) | 0:
2345
574
        return OFPERR_OFPBAC_BAD_TYPE;
2346
764
    case  ((uint32_t) 2 << 16) | 1:
2347
764
        return OFPERR_OFPBAC_BAD_LEN;
2348
1.83k
    case  ((uint32_t) 2 << 16) | 2:
2349
1.83k
        return OFPERR_OFPBAC_BAD_VENDOR;
2350
137
    case  ((uint32_t) 2 << 16) | 3:
2351
137
        return OFPERR_OFPBAC_BAD_VENDOR_TYPE;
2352
746
    case  ((uint32_t) 2 << 16) | 4:
2353
746
        return OFPERR_OFPBAC_BAD_OUT_PORT;
2354
202
    case  ((uint32_t) 2 << 16) | 5:
2355
202
        return OFPERR_OFPBAC_BAD_ARGUMENT;
2356
1.55k
    case  ((uint32_t) 2 << 16) | 6:
2357
1.55k
        return OFPERR_OFPBAC_EPERM;
2358
74
    case  ((uint32_t) 2 << 16) | 7:
2359
74
        return OFPERR_OFPBAC_TOO_MANY;
2360
914
    case  ((uint32_t) 2 << 16) | 8:
2361
914
        return OFPERR_OFPBAC_BAD_QUEUE;
2362
4.70k
    case  ((uint32_t) 2 << 16) | 9:
2363
4.70k
        return OFPERR_OFPBAC_BAD_OUT_GROUP;
2364
1.92k
    case  ((uint32_t) 2 << 16) | 10:
2365
1.92k
        return OFPERR_OFPBAC_MATCH_INCONSISTENT;
2366
1.55k
    case  ((uint32_t) 2 << 16) | 11:
2367
1.55k
        return OFPERR_OFPBAC_UNSUPPORTED_ORDER;
2368
706
    case  ((uint32_t) 2 << 16) | 12:
2369
706
        return OFPERR_OFPBAC_BAD_TAG;
2370
67
    case  ((uint32_t) 2 << 16) | 13:
2371
67
        return OFPERR_OFPBAC_BAD_SET_TYPE;
2372
420
    case  ((uint32_t) 2 << 16) | 14:
2373
420
        return OFPERR_OFPBAC_BAD_SET_LEN;
2374
271
    case  ((uint32_t) 2 << 16) | 15:
2375
271
        return OFPERR_OFPBAC_BAD_SET_ARGUMENT;
2376
18
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 4250 << 16) | 0:
2377
18
        return OFPERR_OFPBAC_BAD_SET_MASK;
2378
34
    case (0x2320ULL << 32) |  ((uint32_t) 11 << 16) | 0:
2379
34
        return OFPERR_NXBAC_MUST_BE_ZERO;
2380
66
    case (0x2320ULL << 32) |  ((uint32_t) 15 << 16) | 0:
2381
66
        return OFPERR_NXBAC_BAD_CONJUNCTION;
2382
34
    case (0x2320ULL << 32) |  ((uint32_t) 39 << 16) | 0:
2383
34
        return OFPERR_NXBAC_BAD_HEADER_TYPE;
2384
67
    case (0x2320ULL << 32) |  ((uint32_t) 40 << 16) | 0:
2385
67
        return OFPERR_NXBAC_UNKNOWN_ED_PROP;
2386
401
    case (0x2320ULL << 32) |  ((uint32_t) 41 << 16) | 0:
2387
401
        return OFPERR_NXBAC_BAD_ED_PROP;
2388
68
    case (0x2320ULL << 32) |  ((uint32_t) 42 << 16) | 0:
2389
68
        return OFPERR_NXBAC_CT_DATAPATH_SUPPORT;
2390
68
    case  ((uint32_t) 3 << 16) | 0:
2391
68
        return OFPERR_OFPBIC_UNKNOWN_INST;
2392
800
    case  ((uint32_t) 3 << 16) | 1:
2393
800
        return OFPERR_OFPBIC_UNSUP_INST;
2394
1.24k
    case  ((uint32_t) 3 << 16) | 2:
2395
1.24k
        return OFPERR_OFPBIC_BAD_TABLE_ID;
2396
263
    case  ((uint32_t) 3 << 16) | 3:
2397
263
        return OFPERR_OFPBIC_UNSUP_METADATA;
2398
34
    case  ((uint32_t) 3 << 16) | 4:
2399
34
        return OFPERR_OFPBIC_UNSUP_METADATA_MASK;
2400
718
    case  ((uint32_t) 3 << 16) | 5:
2401
718
        return OFPERR_OFPBIC_BAD_EXPERIMENTER;
2402
478
    case  ((uint32_t) 3 << 16) | 6:
2403
478
        return OFPERR_OFPBIC_BAD_EXP_TYPE;
2404
204
    case  ((uint32_t) 3 << 16) | 7:
2405
204
        return OFPERR_OFPBIC_BAD_LEN;
2406
950
    case  ((uint32_t) 3 << 16) | 8:
2407
950
        return OFPERR_OFPBIC_EPERM;
2408
659
    case  ((uint32_t) 3 << 16) | 9:
2409
659
        return OFPERR_OFPBIC_DUP_INST;
2410
50
    case  ((uint32_t) 4 << 16) | 0:
2411
50
        return OFPERR_OFPBMC_BAD_TYPE;
2412
992
    case  ((uint32_t) 4 << 16) | 1:
2413
992
        return OFPERR_OFPBMC_BAD_LEN;
2414
96
    case  ((uint32_t) 4 << 16) | 2:
2415
96
        return OFPERR_OFPBMC_BAD_TAG;
2416
82
    case  ((uint32_t) 4 << 16) | 3:
2417
82
        return OFPERR_OFPBMC_BAD_DL_ADDR_MASK;
2418
105
    case  ((uint32_t) 4 << 16) | 4:
2419
105
        return OFPERR_OFPBMC_BAD_NW_ADDR_MASK;
2420
872
    case  ((uint32_t) 4 << 16) | 5:
2421
872
        return OFPERR_OFPBMC_BAD_WILDCARDS;
2422
402
    case  ((uint32_t) 4 << 16) | 6:
2423
402
        return OFPERR_OFPBMC_BAD_FIELD;
2424
244
    case  ((uint32_t) 4 << 16) | 7:
2425
244
        return OFPERR_OFPBMC_BAD_VALUE;
2426
485
    case  ((uint32_t) 4 << 16) | 8:
2427
485
        return OFPERR_OFPBMC_BAD_MASK;
2428
69
    case  ((uint32_t) 4 << 16) | 9:
2429
69
        return OFPERR_OFPBMC_BAD_PREREQ;
2430
11.3k
    case  ((uint32_t) 4 << 16) | 10:
2431
11.3k
        return OFPERR_OFPBMC_DUP_FIELD;
2432
4.67k
    case  ((uint32_t) 4 << 16) | 11:
2433
4.67k
        return OFPERR_OFPBMC_EPERM;
2434
34
    case (0x2320ULL << 32) |  ((uint32_t) 43 << 16) | 0:
2435
34
        return OFPERR_NXBMC_CT_DATAPATH_SUPPORT;
2436
68
    case  ((uint32_t) 5 << 16) | 0:
2437
68
        return OFPERR_OFPFMFC_UNKNOWN;
2438
226
    case  ((uint32_t) 5 << 16) | 1:
2439
226
        return OFPERR_OFPFMFC_TABLE_FULL;
2440
38
    case  ((uint32_t) 5 << 16) | 2:
2441
38
        return OFPERR_OFPFMFC_BAD_TABLE_ID;
2442
66
    case  ((uint32_t) 5 << 16) | 3:
2443
66
        return OFPERR_OFPFMFC_OVERLAP;
2444
34
    case  ((uint32_t) 5 << 16) | 4:
2445
34
        return OFPERR_OFPFMFC_EPERM;
2446
632
    case  ((uint32_t) 5 << 16) | 5:
2447
632
        return OFPERR_OFPFMFC_BAD_TIMEOUT;
2448
545
    case  ((uint32_t) 5 << 16) | 6:
2449
545
        return OFPERR_OFPFMFC_BAD_COMMAND;
2450
307
    case  ((uint32_t) 5 << 16) | 7:
2451
307
        return OFPERR_OFPFMFC_BAD_FLAGS;
2452
704
    case  ((uint32_t) 5 << 16) | 8:
2453
704
        return OFPERR_OFPFMFC_CANT_SYNC;
2454
598
    case  ((uint32_t) 5 << 16) | 9:
2455
598
        return OFPERR_OFPFMFC_BAD_PRIORITY;
2456
66
    case  ((uint32_t) 5 << 16) | 10:
2457
66
        return OFPERR_OFPFMFC_IS_SYNC;
2458
25
    case (0x2320ULL << 32) |  ((uint32_t) 12 << 16) | 0:
2459
25
        return OFPERR_NXFMFC_HARDWARE;
2460
2.50k
    case (0x2320ULL << 32) |  ((uint32_t) 13 << 16) | 0:
2461
2.50k
        return OFPERR_NXFMFC_BAD_TABLE_ID;
2462
34
    case (0x2320ULL << 32) |  ((uint32_t) 37 << 16) | 0:
2463
34
        return OFPERR_NXFMFC_INVALID_TLV_FIELD;
2464
1.11k
    case  ((uint32_t) 6 << 16) | 0:
2465
1.11k
        return OFPERR_OFPGMFC_GROUP_EXISTS;
2466
25.3k
    case  ((uint32_t) 6 << 16) | 1:
2467
25.3k
        return OFPERR_OFPGMFC_INVALID_GROUP;
2468
3.27k
    case  ((uint32_t) 6 << 16) | 2:
2469
3.27k
        return OFPERR_OFPGMFC_WEIGHT_UNSUPPORTED;
2470
77
    case  ((uint32_t) 6 << 16) | 3:
2471
77
        return OFPERR_OFPGMFC_OUT_OF_GROUPS;
2472
2.69k
    case  ((uint32_t) 6 << 16) | 4:
2473
2.69k
        return OFPERR_OFPGMFC_OUT_OF_BUCKETS;
2474
396
    case  ((uint32_t) 6 << 16) | 5:
2475
396
        return OFPERR_OFPGMFC_CHAINING_UNSUPPORTED;
2476
67
    case  ((uint32_t) 6 << 16) | 6:
2477
67
        return OFPERR_OFPGMFC_WATCH_UNSUPPORTED;
2478
4.88k
    case  ((uint32_t) 6 << 16) | 7:
2479
4.88k
        return OFPERR_OFPGMFC_LOOP;
2480
2.67k
    case  ((uint32_t) 6 << 16) | 8:
2481
2.67k
        return OFPERR_OFPGMFC_UNKNOWN_GROUP;
2482
2.50k
    case  ((uint32_t) 6 << 16) | 9:
2483
2.50k
        return OFPERR_OFPGMFC_CHAINED_GROUP;
2484
88
    case  ((uint32_t) 6 << 16) | 10:
2485
88
        return OFPERR_OFPGMFC_BAD_TYPE;
2486
1.40k
    case  ((uint32_t) 6 << 16) | 11:
2487
1.40k
        return OFPERR_OFPGMFC_BAD_COMMAND;
2488
175
    case  ((uint32_t) 6 << 16) | 12:
2489
175
        return OFPERR_OFPGMFC_BAD_BUCKET;
2490
2.83k
    case  ((uint32_t) 6 << 16) | 13:
2491
2.83k
        return OFPERR_OFPGMFC_BAD_WATCH;
2492
451
    case  ((uint32_t) 6 << 16) | 14:
2493
451
        return OFPERR_OFPGMFC_EPERM;
2494
123
    case  ((uint32_t) 7 << 16) | 0:
2495
123
        return OFPERR_OFPPMFC_BAD_PORT;
2496
96
    case  ((uint32_t) 7 << 16) | 1:
2497
96
        return OFPERR_OFPPMFC_BAD_HW_ADDR;
2498
194
    case  ((uint32_t) 7 << 16) | 2:
2499
194
        return OFPERR_OFPPMFC_BAD_CONFIG;
2500
66
    case  ((uint32_t) 7 << 16) | 3:
2501
66
        return OFPERR_OFPPMFC_BAD_ADVERTISE;
2502
217
    case  ((uint32_t) 7 << 16) | 4:
2503
217
        return OFPERR_OFPPMFC_EPERM;
2504
235
    case  ((uint32_t) 8 << 16) | 0:
2505
235
        return OFPERR_OFPTMFC_BAD_TABLE;
2506
284
    case  ((uint32_t) 8 << 16) | 1:
2507
284
        return OFPERR_OFPTMFC_BAD_CONFIG;
2508
387
    case  ((uint32_t) 8 << 16) | 2:
2509
387
        return OFPERR_OFPTMFC_EPERM;
2510
68
    case  ((uint32_t) 9 << 16) | 0:
2511
68
        return OFPERR_OFPQOFC_BAD_PORT;
2512
689
    case  ((uint32_t) 9 << 16) | 1:
2513
689
        return OFPERR_OFPQOFC_BAD_QUEUE;
2514
715
    case  ((uint32_t) 9 << 16) | 2:
2515
715
        return OFPERR_OFPQOFC_EPERM;
2516
34
    case (0x2320ULL << 32) |  ((uint32_t) 23 << 16) | 0:
2517
34
        return OFPERR_NXQOFC_QUEUE_ERROR;
2518
69
    case  ((uint32_t) 10 << 16) | 0:
2519
69
        return OFPERR_OFPSCFC_BAD_FLAGS;
2520
67
    case  ((uint32_t) 10 << 16) | 1:
2521
67
        return OFPERR_OFPSCFC_BAD_LEN;
2522
2.25k
    case  ((uint32_t) 10 << 16) | 2:
2523
2.25k
        return OFPERR_OFPSCFC_EPERM;
2524
94
    case  ((uint32_t) 11 << 16) | 0:
2525
94
        return OFPERR_OFPRRFC_STALE;
2526
72
    case  ((uint32_t) 11 << 16) | 1:
2527
72
        return OFPERR_OFPRRFC_UNSUP;
2528
690
    case  ((uint32_t) 11 << 16) | 2:
2529
690
        return OFPERR_OFPRRFC_BAD_ROLE;
2530
330
    case  ((uint32_t) 12 << 16) | 0:
2531
330
        return OFPERR_OFPMMFC_UNKNOWN;
2532
531
    case  ((uint32_t) 12 << 16) | 1:
2533
531
        return OFPERR_OFPMMFC_METER_EXISTS;
2534
124
    case  ((uint32_t) 12 << 16) | 2:
2535
124
        return OFPERR_OFPMMFC_INVALID_METER;
2536
34
    case  ((uint32_t) 12 << 16) | 3:
2537
34
        return OFPERR_OFPMMFC_UNKNOWN_METER;
2538
252
    case  ((uint32_t) 12 << 16) | 4:
2539
252
        return OFPERR_OFPMMFC_BAD_COMMAND;
2540
67
    case  ((uint32_t) 12 << 16) | 5:
2541
67
        return OFPERR_OFPMMFC_BAD_FLAGS;
2542
91
    case  ((uint32_t) 12 << 16) | 6:
2543
91
        return OFPERR_OFPMMFC_BAD_RATE;
2544
66
    case  ((uint32_t) 12 << 16) | 7:
2545
66
        return OFPERR_OFPMMFC_BAD_BURST;
2546
34
    case  ((uint32_t) 12 << 16) | 8:
2547
34
        return OFPERR_OFPMMFC_BAD_BAND;
2548
127
    case  ((uint32_t) 12 << 16) | 9:
2549
127
        return OFPERR_OFPMMFC_BAD_BAND_VALUE;
2550
66
    case  ((uint32_t) 12 << 16) | 10:
2551
66
        return OFPERR_OFPMMFC_OUT_OF_METERS;
2552
181
    case  ((uint32_t) 12 << 16) | 11:
2553
181
        return OFPERR_OFPMMFC_OUT_OF_BANDS;
2554
66
    case  ((uint32_t) 13 << 16) | 0:
2555
66
        return OFPERR_OFPTFFC_BAD_TABLE;
2556
66
    case  ((uint32_t) 13 << 16) | 1:
2557
66
        return OFPERR_OFPTFFC_BAD_METADATA;
2558
4.37k
    case  ((uint32_t) 13 << 16) | 5:
2559
4.37k
        return OFPERR_OFPTFFC_EPERM;
2560
34
    case (0x2320ULL << 32) |  ((uint32_t) 44 << 16) | 0:
2561
34
        return OFPERR_NXTFFC_DUP_TABLE;
2562
179
    case  ((uint32_t) 14 << 16) | 0:
2563
179
        return OFPERR_OFPBPC_BAD_TYPE;
2564
911
    case  ((uint32_t) 14 << 16) | 1:
2565
911
        return OFPERR_OFPBPC_BAD_LEN;
2566
66
    case  ((uint32_t) 14 << 16) | 2:
2567
66
        return OFPERR_OFPBPC_BAD_VALUE;
2568
66
    case  ((uint32_t) 14 << 16) | 3:
2569
66
        return OFPERR_OFPBPC_TOO_MANY;
2570
66
    case  ((uint32_t) 14 << 16) | 4:
2571
66
        return OFPERR_OFPBPC_DUP_TYPE;
2572
100
    case  ((uint32_t) 14 << 16) | 5:
2573
100
        return OFPERR_OFPBPC_BAD_EXPERIMENTER;
2574
34
    case  ((uint32_t) 14 << 16) | 6:
2575
34
        return OFPERR_OFPBPC_BAD_EXP_TYPE;
2576
66
    case  ((uint32_t) 14 << 16) | 7:
2577
66
        return OFPERR_OFPBPC_BAD_EXP_VALUE;
2578
66
    case  ((uint32_t) 14 << 16) | 8:
2579
66
        return OFPERR_OFPBPC_EPERM;
2580
35
    case  ((uint32_t) 15 << 16) | 0:
2581
35
        return OFPERR_OFPACFC_INVALID;
2582
66
    case  ((uint32_t) 15 << 16) | 1:
2583
66
        return OFPERR_OFPACFC_UNSUPPORTED;
2584
71
    case  ((uint32_t) 15 << 16) | 2:
2585
71
        return OFPERR_OFPACFC_EPERM;
2586
58
    case  ((uint32_t) 17 << 16) | 0:
2587
58
        return OFPERR_OFPBFC_UNKNOWN;
2588
66
    case  ((uint32_t) 17 << 16) | 1:
2589
66
        return OFPERR_OFPBFC_EPERM;
2590
195
    case  ((uint32_t) 17 << 16) | 2:
2591
195
        return OFPERR_OFPBFC_BAD_ID;
2592
66
    case  ((uint32_t) 17 << 16) | 3:
2593
66
        return OFPERR_OFPBFC_BUNDLE_EXIST;
2594
34
    case  ((uint32_t) 17 << 16) | 4:
2595
34
        return OFPERR_OFPBFC_BUNDLE_CLOSED;
2596
832
    case  ((uint32_t) 17 << 16) | 5:
2597
832
        return OFPERR_OFPBFC_OUT_OF_BUNDLES;
2598
162
    case  ((uint32_t) 17 << 16) | 6:
2599
162
        return OFPERR_OFPBFC_BAD_TYPE;
2600
924
    case  ((uint32_t) 17 << 16) | 7:
2601
924
        return OFPERR_OFPBFC_BAD_FLAGS;
2602
89
    case  ((uint32_t) 17 << 16) | 8:
2603
89
        return OFPERR_OFPBFC_MSG_BAD_LEN;
2604
409
    case  ((uint32_t) 17 << 16) | 9:
2605
409
        return OFPERR_OFPBFC_MSG_BAD_XID;
2606
92
    case  ((uint32_t) 17 << 16) | 10:
2607
92
        return OFPERR_OFPBFC_MSG_UNSUP;
2608
238
    case  ((uint32_t) 17 << 16) | 11:
2609
238
        return OFPERR_OFPBFC_MSG_CONFLICT;
2610
1.31k
    case  ((uint32_t) 17 << 16) | 12:
2611
1.31k
        return OFPERR_OFPBFC_MSG_TOO_MANY;
2612
345
    case  ((uint32_t) 17 << 16) | 13:
2613
345
        return OFPERR_OFPBFC_MSG_FAILED;
2614
68
    case  ((uint32_t) 17 << 16) | 14:
2615
68
        return OFPERR_OFPBFC_TIMEOUT;
2616
34
    case  ((uint32_t) 17 << 16) | 15:
2617
34
        return OFPERR_OFPBFC_BUNDLE_IN_PROGRESS;
2618
66
    case (0x2320ULL << 32) |  ((uint32_t) 22 << 16) | 0:
2619
66
        return OFPERR_OFPBFC_BAD_VERSION;
2620
76
    case  ((uint32_t) 16 << 16) | 0:
2621
76
        return OFPERR_OFPMOFC_UNKNOWN;
2622
1.40k
    case  ((uint32_t) 16 << 16) | 1:
2623
1.40k
        return OFPERR_OFPMOFC_MONITOR_EXISTS;
2624
2.91k
    case  ((uint32_t) 16 << 16) | 2:
2625
2.91k
        return OFPERR_OFPMOFC_INVALID_MONITOR;
2626
814
    case  ((uint32_t) 16 << 16) | 3:
2627
814
        return OFPERR_OFPMOFC_UNKNOWN_MONITOR;
2628
194
    case  ((uint32_t) 16 << 16) | 4:
2629
194
        return OFPERR_OFPMOFC_BAD_COMMAND;
2630
128
    case  ((uint32_t) 16 << 16) | 5:
2631
128
        return OFPERR_OFPMOFC_BAD_FLAGS;
2632
66
    case  ((uint32_t) 16 << 16) | 6:
2633
66
        return OFPERR_OFPMOFC_BAD_TABLE_ID;
2634
562
    case  ((uint32_t) 16 << 16) | 7:
2635
562
        return OFPERR_OFPMOFC_BAD_OUT;
2636
617
    case (0x2320ULL << 32) |  ((uint32_t) 16 << 16) | 0:
2637
617
        return OFPERR_NXTTMFC_BAD_COMMAND;
2638
543
    case (0x2320ULL << 32) |  ((uint32_t) 17 << 16) | 0:
2639
543
        return OFPERR_NXTTMFC_BAD_OPT_LEN;
2640
34
    case (0x2320ULL << 32) |  ((uint32_t) 18 << 16) | 0:
2641
34
        return OFPERR_NXTTMFC_BAD_FIELD_IDX;
2642
66
    case (0x2320ULL << 32) |  ((uint32_t) 19 << 16) | 0:
2643
66
        return OFPERR_NXTTMFC_TABLE_FULL;
2644
66
    case (0x2320ULL << 32) |  ((uint32_t) 20 << 16) | 0:
2645
66
        return OFPERR_NXTTMFC_ALREADY_MAPPED;
2646
66
    case (0x2320ULL << 32) |  ((uint32_t) 21 << 16) | 0:
2647
66
        return OFPERR_NXTTMFC_DUP_ENTRY;
2648
34
    case (0x2320ULL << 32) |  ((uint32_t) 38 << 16) | 0:
2649
34
        return OFPERR_NXTTMFC_INVALID_TLV_DEL;
2650
160
    case (0x2320ULL << 32) |  ((uint32_t) 34 << 16) | 0:
2651
160
        return OFPERR_NXR_NOT_SUPPORTED;
2652
640
    case (0x2320ULL << 32) |  ((uint32_t) 35 << 16) | 0:
2653
640
        return OFPERR_NXR_STALE;
2654
66
    case (0x2320ULL << 32) |  ((uint32_t) 36 << 16) | 0:
2655
66
        return OFPERR_NXST_NOT_CONFIGURED;
2656
252k
    }
2657
2658
80.5k
    return 0;
2659
252k
}
2660
2661
static const struct ofperr_domain ofperr_of14 = {
2662
    "OpenFlow 1.4",
2663
    5,
2664
    ofperr_of14_decode,
2665
    {
2666
        {      0x0,  0,   0 }, /* OFPHFC_INCOMPATIBLE */
2667
        {      0x0,  0,   1 }, /* OFPHFC_EPERM */
2668
        {      0x0,  1,   0 }, /* OFPBRC_BAD_VERSION */
2669
        {      0x0,  1,   1 }, /* OFPBRC_BAD_TYPE */
2670
        {      0x0,  1,   2 }, /* OFPBRC_BAD_STAT */
2671
        {      0x0,  1,   3 }, /* OFPBRC_BAD_VENDOR */
2672
        {      0x0,  1,   4 }, /* OFPBRC_BAD_SUBTYPE */
2673
        {      0x0,  1,   5 }, /* OFPBRC_EPERM */
2674
        {      0x0,  1,   6 }, /* OFPBRC_BAD_LEN */
2675
        {      0x0,  1,   7 }, /* OFPBRC_BUFFER_EMPTY */
2676
        {      0x0,  1,   8 }, /* OFPBRC_BUFFER_UNKNOWN */
2677
        {      0x0,  1,   9 }, /* OFPBRC_BAD_TABLE_ID */
2678
        {      0x0,  1,  10 }, /* OFPBRC_IS_SECONDARY */
2679
        {      0x0,  1,  11 }, /* OFPBRC_BAD_PORT */
2680
        {      0x0,  1,  12 }, /* OFPBRC_BAD_PACKET */
2681
        {      0x0,  1,  13 }, /* OFPBRC_MULTIPART_BUFFER_OVERFLOW */
2682
        {      0x0,  1,  14 }, /* OFPBRC_MULTIPART_REQUEST_TIMEOUT */
2683
        {      0x0,  1,  15 }, /* OFPBRC_MULTIPART_REPLY_TIMEOUT */
2684
        {       -1, -1,  -1 }, /* OFPBRC_MULTIPART_BAD_SCHED */
2685
        {       -1, -1,  -1 }, /* OFPBRC_PIPELINE_FIELDS_ONLY */
2686
        {       -1, -1,  -1 }, /* OFPBRC_UNKNOWN */
2687
        {   0x2320,  2,   0 }, /* NXBRC_NXM_INVALID */
2688
        {   0x2320,  3,   0 }, /* NXBRC_NXM_BAD_TYPE */
2689
        {   0x2320,  4,   0 }, /* NXBRC_MUST_BE_ZERO */
2690
        {   0x2320,  5,   0 }, /* NXBRC_BAD_REASON */
2691
        {   0x2320,  9,   0 }, /* NXBRC_FM_BAD_EVENT */
2692
        {   0x2320, 10,   0 }, /* NXBRC_UNENCODABLE_ERROR */
2693
        {      0x0,  2,   0 }, /* OFPBAC_BAD_TYPE */
2694
        {      0x0,  2,   1 }, /* OFPBAC_BAD_LEN */
2695
        {      0x0,  2,   2 }, /* OFPBAC_BAD_VENDOR */
2696
        {      0x0,  2,   3 }, /* OFPBAC_BAD_VENDOR_TYPE */
2697
        {      0x0,  2,   4 }, /* OFPBAC_BAD_OUT_PORT */
2698
        {      0x0,  2,   5 }, /* OFPBAC_BAD_ARGUMENT */
2699
        {      0x0,  2,   6 }, /* OFPBAC_EPERM */
2700
        {      0x0,  2,   7 }, /* OFPBAC_TOO_MANY */
2701
        {      0x0,  2,   8 }, /* OFPBAC_BAD_QUEUE */
2702
        {      0x0,  2,   9 }, /* OFPBAC_BAD_OUT_GROUP */
2703
        {      0x0,  2,  10 }, /* OFPBAC_MATCH_INCONSISTENT */
2704
        {      0x0,  2,  11 }, /* OFPBAC_UNSUPPORTED_ORDER */
2705
        {      0x0,  2,  12 }, /* OFPBAC_BAD_TAG */
2706
        {      0x0,  2,  13 }, /* OFPBAC_BAD_SET_TYPE */
2707
        {      0x0,  2,  14 }, /* OFPBAC_BAD_SET_LEN */
2708
        {      0x0,  2,  15 }, /* OFPBAC_BAD_SET_ARGUMENT */
2709
        { 0x4f4e4600, 4250,   0 }, /* OFPBAC_BAD_SET_MASK */
2710
        {       -1, -1,  -1 }, /* OFPBAC_BAD_METER */
2711
        {   0x2320, 11,   0 }, /* NXBAC_MUST_BE_ZERO */
2712
        {   0x2320, 15,   0 }, /* NXBAC_BAD_CONJUNCTION */
2713
        {   0x2320, 39,   0 }, /* NXBAC_BAD_HEADER_TYPE */
2714
        {   0x2320, 40,   0 }, /* NXBAC_UNKNOWN_ED_PROP */
2715
        {   0x2320, 41,   0 }, /* NXBAC_BAD_ED_PROP */
2716
        {   0x2320, 42,   0 }, /* NXBAC_CT_DATAPATH_SUPPORT */
2717
        {      0x0,  3,   0 }, /* OFPBIC_UNKNOWN_INST */
2718
        {      0x0,  3,   1 }, /* OFPBIC_UNSUP_INST */
2719
        {      0x0,  3,   2 }, /* OFPBIC_BAD_TABLE_ID */
2720
        {      0x0,  3,   3 }, /* OFPBIC_UNSUP_METADATA */
2721
        {      0x0,  3,   4 }, /* OFPBIC_UNSUP_METADATA_MASK */
2722
        {      0x0,  3,   5 }, /* OFPBIC_BAD_EXPERIMENTER */
2723
        {      0x0,  3,   6 }, /* OFPBIC_BAD_EXP_TYPE */
2724
        {      0x0,  3,   7 }, /* OFPBIC_BAD_LEN */
2725
        {      0x0,  3,   8 }, /* OFPBIC_EPERM */
2726
        {      0x0,  3,   9 }, /* OFPBIC_DUP_INST */
2727
        {      0x0,  4,   0 }, /* OFPBMC_BAD_TYPE */
2728
        {      0x0,  4,   1 }, /* OFPBMC_BAD_LEN */
2729
        {      0x0,  4,   2 }, /* OFPBMC_BAD_TAG */
2730
        {      0x0,  4,   3 }, /* OFPBMC_BAD_DL_ADDR_MASK */
2731
        {      0x0,  4,   4 }, /* OFPBMC_BAD_NW_ADDR_MASK */
2732
        {      0x0,  4,   5 }, /* OFPBMC_BAD_WILDCARDS */
2733
        {      0x0,  4,   6 }, /* OFPBMC_BAD_FIELD */
2734
        {      0x0,  4,   7 }, /* OFPBMC_BAD_VALUE */
2735
        {      0x0,  4,   8 }, /* OFPBMC_BAD_MASK */
2736
        {      0x0,  4,   9 }, /* OFPBMC_BAD_PREREQ */
2737
        {      0x0,  4,  10 }, /* OFPBMC_DUP_FIELD */
2738
        {      0x0,  4,  11 }, /* OFPBMC_EPERM */
2739
        {   0x2320, 43,   0 }, /* NXBMC_CT_DATAPATH_SUPPORT */
2740
        {      0x0,  5,   0 }, /* OFPFMFC_UNKNOWN */
2741
        {      0x0,  5,   1 }, /* OFPFMFC_TABLE_FULL */
2742
        {      0x0,  5,   2 }, /* OFPFMFC_BAD_TABLE_ID */
2743
        {      0x0,  5,   3 }, /* OFPFMFC_OVERLAP */
2744
        {      0x0,  5,   4 }, /* OFPFMFC_EPERM */
2745
        {      0x0,  5,   5 }, /* OFPFMFC_BAD_TIMEOUT */
2746
        {       -1, -1,  -1 }, /* OFPFMFC_BAD_EMERG_TIMEOUT */
2747
        {      0x0,  5,   6 }, /* OFPFMFC_BAD_COMMAND */
2748
        {      0x0,  5,   7 }, /* OFPFMFC_BAD_FLAGS */
2749
        {      0x0,  5,   8 }, /* OFPFMFC_CANT_SYNC */
2750
        {      0x0,  5,   9 }, /* OFPFMFC_BAD_PRIORITY */
2751
        {      0x0,  5,  10 }, /* OFPFMFC_IS_SYNC */
2752
        {       -1, -1,  -1 }, /* OFPFMFC_UNSUPPORTED */
2753
        {   0x2320, 12,   0 }, /* NXFMFC_HARDWARE */
2754
        {   0x2320, 13,   0 }, /* NXFMFC_BAD_TABLE_ID */
2755
        {   0x2320, 37,   0 }, /* NXFMFC_INVALID_TLV_FIELD */
2756
        {      0x0,  6,   0 }, /* OFPGMFC_GROUP_EXISTS */
2757
        {      0x0,  6,   1 }, /* OFPGMFC_INVALID_GROUP */
2758
        {      0x0,  6,   2 }, /* OFPGMFC_WEIGHT_UNSUPPORTED */
2759
        {      0x0,  6,   3 }, /* OFPGMFC_OUT_OF_GROUPS */
2760
        {      0x0,  6,   4 }, /* OFPGMFC_OUT_OF_BUCKETS */
2761
        {      0x0,  6,   5 }, /* OFPGMFC_CHAINING_UNSUPPORTED */
2762
        {      0x0,  6,   6 }, /* OFPGMFC_WATCH_UNSUPPORTED */
2763
        {      0x0,  6,   7 }, /* OFPGMFC_LOOP */
2764
        {      0x0,  6,   8 }, /* OFPGMFC_UNKNOWN_GROUP */
2765
        {      0x0,  6,   9 }, /* OFPGMFC_CHAINED_GROUP */
2766
        {      0x0,  6,  10 }, /* OFPGMFC_BAD_TYPE */
2767
        {      0x0,  6,  11 }, /* OFPGMFC_BAD_COMMAND */
2768
        {      0x0,  6,  12 }, /* OFPGMFC_BAD_BUCKET */
2769
        {      0x0,  6,  13 }, /* OFPGMFC_BAD_WATCH */
2770
        {      0x0,  6,  14 }, /* OFPGMFC_EPERM */
2771
        {       -1, -1,  -1 }, /* OFPGMFC_UNKNOWN_BUCKET */
2772
        {       -1, -1,  -1 }, /* OFPGMFC_BUCKET_EXISTS */
2773
        {      0x0,  7,   0 }, /* OFPPMFC_BAD_PORT */
2774
        {      0x0,  7,   1 }, /* OFPPMFC_BAD_HW_ADDR */
2775
        {      0x0,  7,   2 }, /* OFPPMFC_BAD_CONFIG */
2776
        {      0x0,  7,   3 }, /* OFPPMFC_BAD_ADVERTISE */
2777
        {      0x0,  7,   4 }, /* OFPPMFC_EPERM */
2778
        {      0x0,  8,   0 }, /* OFPTMFC_BAD_TABLE */
2779
        {      0x0,  8,   1 }, /* OFPTMFC_BAD_CONFIG */
2780
        {      0x0,  8,   2 }, /* OFPTMFC_EPERM */
2781
        {      0x0,  9,   0 }, /* OFPQOFC_BAD_PORT */
2782
        {      0x0,  9,   1 }, /* OFPQOFC_BAD_QUEUE */
2783
        {      0x0,  9,   2 }, /* OFPQOFC_EPERM */
2784
        {   0x2320, 23,   0 }, /* NXQOFC_QUEUE_ERROR */
2785
        {      0x0, 10,   0 }, /* OFPSCFC_BAD_FLAGS */
2786
        {      0x0, 10,   1 }, /* OFPSCFC_BAD_LEN */
2787
        {      0x0, 10,   2 }, /* OFPSCFC_EPERM */
2788
        {      0x0, 11,   0 }, /* OFPRRFC_STALE */
2789
        {      0x0, 11,   1 }, /* OFPRRFC_UNSUP */
2790
        {      0x0, 11,   2 }, /* OFPRRFC_BAD_ROLE */
2791
        {       -1, -1,  -1 }, /* OFPRRFC_ID_UNSUP */
2792
        {       -1, -1,  -1 }, /* OFPRRFC_ID_IN_USE */
2793
        {      0x0, 12,   0 }, /* OFPMMFC_UNKNOWN */
2794
        {      0x0, 12,   1 }, /* OFPMMFC_METER_EXISTS */
2795
        {      0x0, 12,   2 }, /* OFPMMFC_INVALID_METER */
2796
        {      0x0, 12,   3 }, /* OFPMMFC_UNKNOWN_METER */
2797
        {      0x0, 12,   4 }, /* OFPMMFC_BAD_COMMAND */
2798
        {      0x0, 12,   5 }, /* OFPMMFC_BAD_FLAGS */
2799
        {      0x0, 12,   6 }, /* OFPMMFC_BAD_RATE */
2800
        {      0x0, 12,   7 }, /* OFPMMFC_BAD_BURST */
2801
        {      0x0, 12,   8 }, /* OFPMMFC_BAD_BAND */
2802
        {      0x0, 12,   9 }, /* OFPMMFC_BAD_BAND_VALUE */
2803
        {      0x0, 12,  10 }, /* OFPMMFC_OUT_OF_METERS */
2804
        {      0x0, 12,  11 }, /* OFPMMFC_OUT_OF_BANDS */
2805
        {      0x0, 13,   0 }, /* OFPTFFC_BAD_TABLE */
2806
        {      0x0, 13,   1 }, /* OFPTFFC_BAD_METADATA */
2807
        {      0x0, 13,   5 }, /* OFPTFFC_EPERM */
2808
        {       -1, -1,  -1 }, /* OFPTFFC_BAD_CAPA */
2809
        {       -1, -1,  -1 }, /* OFPTFFC_BAD_MAX_ENT */
2810
        {       -1, -1,  -1 }, /* OFPTFFC_BAD_FEATURES */
2811
        {       -1, -1,  -1 }, /* OFPTFFC_BAD_COMMAND */
2812
        {       -1, -1,  -1 }, /* OFPTFFC_TOO_MANY */
2813
        {   0x2320, 44,   0 }, /* NXTFFC_DUP_TABLE */
2814
        {      0x0, 14,   0 }, /* OFPBPC_BAD_TYPE */
2815
        {      0x0, 14,   1 }, /* OFPBPC_BAD_LEN */
2816
        {      0x0, 14,   2 }, /* OFPBPC_BAD_VALUE */
2817
        {      0x0, 14,   3 }, /* OFPBPC_TOO_MANY */
2818
        {      0x0, 14,   4 }, /* OFPBPC_DUP_TYPE */
2819
        {      0x0, 14,   5 }, /* OFPBPC_BAD_EXPERIMENTER */
2820
        {      0x0, 14,   6 }, /* OFPBPC_BAD_EXP_TYPE */
2821
        {      0x0, 14,   7 }, /* OFPBPC_BAD_EXP_VALUE */
2822
        {      0x0, 14,   8 }, /* OFPBPC_EPERM */
2823
        {      0x0, 15,   0 }, /* OFPACFC_INVALID */
2824
        {      0x0, 15,   1 }, /* OFPACFC_UNSUPPORTED */
2825
        {      0x0, 15,   2 }, /* OFPACFC_EPERM */
2826
        {      0x0, 17,   0 }, /* OFPBFC_UNKNOWN */
2827
        {      0x0, 17,   1 }, /* OFPBFC_EPERM */
2828
        {      0x0, 17,   2 }, /* OFPBFC_BAD_ID */
2829
        {      0x0, 17,   3 }, /* OFPBFC_BUNDLE_EXIST */
2830
        {      0x0, 17,   4 }, /* OFPBFC_BUNDLE_CLOSED */
2831
        {      0x0, 17,   5 }, /* OFPBFC_OUT_OF_BUNDLES */
2832
        {      0x0, 17,   6 }, /* OFPBFC_BAD_TYPE */
2833
        {      0x0, 17,   7 }, /* OFPBFC_BAD_FLAGS */
2834
        {      0x0, 17,   8 }, /* OFPBFC_MSG_BAD_LEN */
2835
        {      0x0, 17,   9 }, /* OFPBFC_MSG_BAD_XID */
2836
        {      0x0, 17,  10 }, /* OFPBFC_MSG_UNSUP */
2837
        {      0x0, 17,  11 }, /* OFPBFC_MSG_CONFLICT */
2838
        {      0x0, 17,  12 }, /* OFPBFC_MSG_TOO_MANY */
2839
        {      0x0, 17,  13 }, /* OFPBFC_MSG_FAILED */
2840
        {      0x0, 17,  14 }, /* OFPBFC_TIMEOUT */
2841
        {      0x0, 17,  15 }, /* OFPBFC_BUNDLE_IN_PROGRESS */
2842
        {       -1, -1,  -1 }, /* OFPBFC_SCHED_NOT_SUPPORTED */
2843
        {       -1, -1,  -1 }, /* OFPBFC_SCHED_FUTURE */
2844
        {       -1, -1,  -1 }, /* OFPBFC_SCHED_PAST */
2845
        {   0x2320, 22,   0 }, /* OFPBFC_BAD_VERSION */
2846
        {      0x0, 16,   0 }, /* OFPMOFC_UNKNOWN */
2847
        {      0x0, 16,   1 }, /* OFPMOFC_MONITOR_EXISTS */
2848
        {      0x0, 16,   2 }, /* OFPMOFC_INVALID_MONITOR */
2849
        {      0x0, 16,   3 }, /* OFPMOFC_UNKNOWN_MONITOR */
2850
        {      0x0, 16,   4 }, /* OFPMOFC_BAD_COMMAND */
2851
        {      0x0, 16,   5 }, /* OFPMOFC_BAD_FLAGS */
2852
        {      0x0, 16,   6 }, /* OFPMOFC_BAD_TABLE_ID */
2853
        {      0x0, 16,   7 }, /* OFPMOFC_BAD_OUT */
2854
        {   0x2320, 16,   0 }, /* NXTTMFC_BAD_COMMAND */
2855
        {   0x2320, 17,   0 }, /* NXTTMFC_BAD_OPT_LEN */
2856
        {   0x2320, 18,   0 }, /* NXTTMFC_BAD_FIELD_IDX */
2857
        {   0x2320, 19,   0 }, /* NXTTMFC_TABLE_FULL */
2858
        {   0x2320, 20,   0 }, /* NXTTMFC_ALREADY_MAPPED */
2859
        {   0x2320, 21,   0 }, /* NXTTMFC_DUP_ENTRY */
2860
        {   0x2320, 38,   0 }, /* NXTTMFC_INVALID_TLV_DEL */
2861
        {   0x2320, 34,   0 }, /* NXR_NOT_SUPPORTED */
2862
        {   0x2320, 35,   0 }, /* NXR_STALE */
2863
        {   0x2320, 36,   0 }, /* NXST_NOT_CONFIGURED */
2864
    },
2865
};
2866
2867
static enum ofperr
2868
ofperr_of15_decode(uint32_t vendor, uint16_t type, uint16_t code)
2869
190k
{
2870
190k
    switch (((uint64_t) vendor << 32) | ((uint32_t) type << 16) | code) {
2871
7.82k
    case  ((uint32_t) 0 << 16) | 0:
2872
7.82k
        return OFPERR_OFPHFC_INCOMPATIBLE;
2873
122
    case  ((uint32_t) 0 << 16) | 1:
2874
122
        return OFPERR_OFPHFC_EPERM;
2875
1.64k
    case  ((uint32_t) 1 << 16) | 0:
2876
1.64k
        return OFPERR_OFPBRC_BAD_VERSION;
2877
2.61k
    case  ((uint32_t) 1 << 16) | 1:
2878
2.61k
        return OFPERR_OFPBRC_BAD_TYPE;
2879
2.10k
    case  ((uint32_t) 1 << 16) | 2:
2880
2.10k
        return OFPERR_OFPBRC_BAD_STAT;
2881
68
    case  ((uint32_t) 1 << 16) | 3:
2882
68
        return OFPERR_OFPBRC_BAD_VENDOR;
2883
613
    case  ((uint32_t) 1 << 16) | 4:
2884
613
        return OFPERR_OFPBRC_BAD_SUBTYPE;
2885
1.97k
    case  ((uint32_t) 1 << 16) | 5:
2886
1.97k
        return OFPERR_OFPBRC_EPERM;
2887
111
    case  ((uint32_t) 1 << 16) | 6:
2888
111
        return OFPERR_OFPBRC_BAD_LEN;
2889
524
    case  ((uint32_t) 1 << 16) | 7:
2890
524
        return OFPERR_OFPBRC_BUFFER_EMPTY;
2891
7.52k
    case  ((uint32_t) 1 << 16) | 8:
2892
7.52k
        return OFPERR_OFPBRC_BUFFER_UNKNOWN;
2893
315
    case  ((uint32_t) 1 << 16) | 9:
2894
315
        return OFPERR_OFPBRC_BAD_TABLE_ID;
2895
94
    case  ((uint32_t) 1 << 16) | 10:
2896
94
        return OFPERR_OFPBRC_IS_SECONDARY;
2897
66
    case  ((uint32_t) 1 << 16) | 11:
2898
66
        return OFPERR_OFPBRC_BAD_PORT;
2899
2.70k
    case  ((uint32_t) 1 << 16) | 12:
2900
2.70k
        return OFPERR_OFPBRC_BAD_PACKET;
2901
74
    case  ((uint32_t) 1 << 16) | 13:
2902
74
        return OFPERR_OFPBRC_MULTIPART_BUFFER_OVERFLOW;
2903
57
    case  ((uint32_t) 1 << 16) | 14:
2904
57
        return OFPERR_OFPBRC_MULTIPART_REQUEST_TIMEOUT;
2905
5.91k
    case  ((uint32_t) 1 << 16) | 15:
2906
5.91k
        return OFPERR_OFPBRC_MULTIPART_REPLY_TIMEOUT;
2907
67
    case  ((uint32_t) 1 << 16) | 16:
2908
67
        return OFPERR_OFPBRC_MULTIPART_BAD_SCHED;
2909
113
    case  ((uint32_t) 1 << 16) | 17:
2910
113
        return OFPERR_OFPBRC_PIPELINE_FIELDS_ONLY;
2911
73
    case  ((uint32_t) 1 << 16) | 18:
2912
73
        return OFPERR_OFPBRC_UNKNOWN;
2913
3.97k
    case (0x2320ULL << 32) |  ((uint32_t) 2 << 16) | 0:
2914
3.97k
        return OFPERR_NXBRC_NXM_INVALID;
2915
4.92k
    case (0x2320ULL << 32) |  ((uint32_t) 3 << 16) | 0:
2916
4.92k
        return OFPERR_NXBRC_NXM_BAD_TYPE;
2917
707
    case (0x2320ULL << 32) |  ((uint32_t) 4 << 16) | 0:
2918
707
        return OFPERR_NXBRC_MUST_BE_ZERO;
2919
66
    case (0x2320ULL << 32) |  ((uint32_t) 5 << 16) | 0:
2920
66
        return OFPERR_NXBRC_BAD_REASON;
2921
66
    case (0x2320ULL << 32) |  ((uint32_t) 9 << 16) | 0:
2922
66
        return OFPERR_NXBRC_FM_BAD_EVENT;
2923
34
    case (0x2320ULL << 32) |  ((uint32_t) 10 << 16) | 0:
2924
34
        return OFPERR_NXBRC_UNENCODABLE_ERROR;
2925
211
    case  ((uint32_t) 2 << 16) | 0:
2926
211
        return OFPERR_OFPBAC_BAD_TYPE;
2927
70
    case  ((uint32_t) 2 << 16) | 1:
2928
70
        return OFPERR_OFPBAC_BAD_LEN;
2929
4.39k
    case  ((uint32_t) 2 << 16) | 2:
2930
4.39k
        return OFPERR_OFPBAC_BAD_VENDOR;
2931
68
    case  ((uint32_t) 2 << 16) | 3:
2932
68
        return OFPERR_OFPBAC_BAD_VENDOR_TYPE;
2933
1.29k
    case  ((uint32_t) 2 << 16) | 4:
2934
1.29k
        return OFPERR_OFPBAC_BAD_OUT_PORT;
2935
1.13k
    case  ((uint32_t) 2 << 16) | 5:
2936
1.13k
        return OFPERR_OFPBAC_BAD_ARGUMENT;
2937
2.60k
    case  ((uint32_t) 2 << 16) | 6:
2938
2.60k
        return OFPERR_OFPBAC_EPERM;
2939
143
    case  ((uint32_t) 2 << 16) | 7:
2940
143
        return OFPERR_OFPBAC_TOO_MANY;
2941
355
    case  ((uint32_t) 2 << 16) | 8:
2942
355
        return OFPERR_OFPBAC_BAD_QUEUE;
2943
1.82k
    case  ((uint32_t) 2 << 16) | 9:
2944
1.82k
        return OFPERR_OFPBAC_BAD_OUT_GROUP;
2945
34
    case  ((uint32_t) 2 << 16) | 10:
2946
34
        return OFPERR_OFPBAC_MATCH_INCONSISTENT;
2947
138
    case  ((uint32_t) 2 << 16) | 11:
2948
138
        return OFPERR_OFPBAC_UNSUPPORTED_ORDER;
2949
414
    case  ((uint32_t) 2 << 16) | 12:
2950
414
        return OFPERR_OFPBAC_BAD_TAG;
2951
261
    case  ((uint32_t) 2 << 16) | 13:
2952
261
        return OFPERR_OFPBAC_BAD_SET_TYPE;
2953
1.18k
    case  ((uint32_t) 2 << 16) | 14:
2954
1.18k
        return OFPERR_OFPBAC_BAD_SET_LEN;
2955
2.16k
    case  ((uint32_t) 2 << 16) | 15:
2956
2.16k
        return OFPERR_OFPBAC_BAD_SET_ARGUMENT;
2957
39
    case  ((uint32_t) 2 << 16) | 16:
2958
39
        return OFPERR_OFPBAC_BAD_SET_MASK;
2959
36
    case  ((uint32_t) 2 << 16) | 17:
2960
36
        return OFPERR_OFPBAC_BAD_METER;
2961
187
    case (0x2320ULL << 32) |  ((uint32_t) 11 << 16) | 0:
2962
187
        return OFPERR_NXBAC_MUST_BE_ZERO;
2963
34
    case (0x2320ULL << 32) |  ((uint32_t) 15 << 16) | 0:
2964
34
        return OFPERR_NXBAC_BAD_CONJUNCTION;
2965
80
    case (0x2320ULL << 32) |  ((uint32_t) 39 << 16) | 0:
2966
80
        return OFPERR_NXBAC_BAD_HEADER_TYPE;
2967
93
    case (0x2320ULL << 32) |  ((uint32_t) 40 << 16) | 0:
2968
93
        return OFPERR_NXBAC_UNKNOWN_ED_PROP;
2969
3.68k
    case (0x2320ULL << 32) |  ((uint32_t) 41 << 16) | 0:
2970
3.68k
        return OFPERR_NXBAC_BAD_ED_PROP;
2971
45
    case (0x2320ULL << 32) |  ((uint32_t) 42 << 16) | 0:
2972
45
        return OFPERR_NXBAC_CT_DATAPATH_SUPPORT;
2973
305
    case  ((uint32_t) 3 << 16) | 0:
2974
305
        return OFPERR_OFPBIC_UNKNOWN_INST;
2975
74
    case  ((uint32_t) 3 << 16) | 1:
2976
74
        return OFPERR_OFPBIC_UNSUP_INST;
2977
766
    case  ((uint32_t) 3 << 16) | 2:
2978
766
        return OFPERR_OFPBIC_BAD_TABLE_ID;
2979
966
    case  ((uint32_t) 3 << 16) | 3:
2980
966
        return OFPERR_OFPBIC_UNSUP_METADATA;
2981
107
    case  ((uint32_t) 3 << 16) | 4:
2982
107
        return OFPERR_OFPBIC_UNSUP_METADATA_MASK;
2983
34
    case  ((uint32_t) 3 << 16) | 5:
2984
34
        return OFPERR_OFPBIC_BAD_EXPERIMENTER;
2985
243
    case  ((uint32_t) 3 << 16) | 6:
2986
243
        return OFPERR_OFPBIC_BAD_EXP_TYPE;
2987
67
    case  ((uint32_t) 3 << 16) | 7:
2988
67
        return OFPERR_OFPBIC_BAD_LEN;
2989
247
    case  ((uint32_t) 3 << 16) | 8:
2990
247
        return OFPERR_OFPBIC_EPERM;
2991
625
    case  ((uint32_t) 3 << 16) | 9:
2992
625
        return OFPERR_OFPBIC_DUP_INST;
2993
67
    case  ((uint32_t) 4 << 16) | 0:
2994
67
        return OFPERR_OFPBMC_BAD_TYPE;
2995
98
    case  ((uint32_t) 4 << 16) | 1:
2996
98
        return OFPERR_OFPBMC_BAD_LEN;
2997
968
    case  ((uint32_t) 4 << 16) | 2:
2998
968
        return OFPERR_OFPBMC_BAD_TAG;
2999
318
    case  ((uint32_t) 4 << 16) | 3:
3000
318
        return OFPERR_OFPBMC_BAD_DL_ADDR_MASK;
3001
66
    case  ((uint32_t) 4 << 16) | 4:
3002
66
        return OFPERR_OFPBMC_BAD_NW_ADDR_MASK;
3003
69
    case  ((uint32_t) 4 << 16) | 5:
3004
69
        return OFPERR_OFPBMC_BAD_WILDCARDS;
3005
67
    case  ((uint32_t) 4 << 16) | 6:
3006
67
        return OFPERR_OFPBMC_BAD_FIELD;
3007
141
    case  ((uint32_t) 4 << 16) | 7:
3008
141
        return OFPERR_OFPBMC_BAD_VALUE;
3009
109
    case  ((uint32_t) 4 << 16) | 8:
3010
109
        return OFPERR_OFPBMC_BAD_MASK;
3011
653
    case  ((uint32_t) 4 << 16) | 9:
3012
653
        return OFPERR_OFPBMC_BAD_PREREQ;
3013
71
    case  ((uint32_t) 4 << 16) | 10:
3014
71
        return OFPERR_OFPBMC_DUP_FIELD;
3015
36
    case  ((uint32_t) 4 << 16) | 11:
3016
36
        return OFPERR_OFPBMC_EPERM;
3017
744
    case (0x2320ULL << 32) |  ((uint32_t) 43 << 16) | 0:
3018
744
        return OFPERR_NXBMC_CT_DATAPATH_SUPPORT;
3019
66
    case  ((uint32_t) 5 << 16) | 0:
3020
66
        return OFPERR_OFPFMFC_UNKNOWN;
3021
412
    case  ((uint32_t) 5 << 16) | 1:
3022
412
        return OFPERR_OFPFMFC_TABLE_FULL;
3023
74
    case  ((uint32_t) 5 << 16) | 2:
3024
74
        return OFPERR_OFPFMFC_BAD_TABLE_ID;
3025
120
    case  ((uint32_t) 5 << 16) | 3:
3026
120
        return OFPERR_OFPFMFC_OVERLAP;
3027
195
    case  ((uint32_t) 5 << 16) | 4:
3028
195
        return OFPERR_OFPFMFC_EPERM;
3029
1.71k
    case  ((uint32_t) 5 << 16) | 5:
3030
1.71k
        return OFPERR_OFPFMFC_BAD_TIMEOUT;
3031
288
    case  ((uint32_t) 5 << 16) | 6:
3032
288
        return OFPERR_OFPFMFC_BAD_COMMAND;
3033
74
    case  ((uint32_t) 5 << 16) | 7:
3034
74
        return OFPERR_OFPFMFC_BAD_FLAGS;
3035
68
    case  ((uint32_t) 5 << 16) | 8:
3036
68
        return OFPERR_OFPFMFC_CANT_SYNC;
3037
83
    case  ((uint32_t) 5 << 16) | 9:
3038
83
        return OFPERR_OFPFMFC_BAD_PRIORITY;
3039
1.00k
    case  ((uint32_t) 5 << 16) | 10:
3040
1.00k
        return OFPERR_OFPFMFC_IS_SYNC;
3041
72
    case (0x2320ULL << 32) |  ((uint32_t) 12 << 16) | 0:
3042
72
        return OFPERR_NXFMFC_HARDWARE;
3043
67
    case (0x2320ULL << 32) |  ((uint32_t) 13 << 16) | 0:
3044
67
        return OFPERR_NXFMFC_BAD_TABLE_ID;
3045
108
    case (0x2320ULL << 32) |  ((uint32_t) 37 << 16) | 0:
3046
108
        return OFPERR_NXFMFC_INVALID_TLV_FIELD;
3047
620
    case  ((uint32_t) 6 << 16) | 0:
3048
620
        return OFPERR_OFPGMFC_GROUP_EXISTS;
3049
5.84k
    case  ((uint32_t) 6 << 16) | 1:
3050
5.84k
        return OFPERR_OFPGMFC_INVALID_GROUP;
3051
127
    case  ((uint32_t) 6 << 16) | 2:
3052
127
        return OFPERR_OFPGMFC_WEIGHT_UNSUPPORTED;
3053
683
    case  ((uint32_t) 6 << 16) | 3:
3054
683
        return OFPERR_OFPGMFC_OUT_OF_GROUPS;
3055
1.16k
    case  ((uint32_t) 6 << 16) | 4:
3056
1.16k
        return OFPERR_OFPGMFC_OUT_OF_BUCKETS;
3057
154
    case  ((uint32_t) 6 << 16) | 5:
3058
154
        return OFPERR_OFPGMFC_CHAINING_UNSUPPORTED;
3059
1.02k
    case  ((uint32_t) 6 << 16) | 6:
3060
1.02k
        return OFPERR_OFPGMFC_WATCH_UNSUPPORTED;
3061
707
    case  ((uint32_t) 6 << 16) | 7:
3062
707
        return OFPERR_OFPGMFC_LOOP;
3063
2.26k
    case  ((uint32_t) 6 << 16) | 8:
3064
2.26k
        return OFPERR_OFPGMFC_UNKNOWN_GROUP;
3065
66
    case  ((uint32_t) 6 << 16) | 9:
3066
66
        return OFPERR_OFPGMFC_CHAINED_GROUP;
3067
66
    case  ((uint32_t) 6 << 16) | 10:
3068
66
        return OFPERR_OFPGMFC_BAD_TYPE;
3069
70
    case  ((uint32_t) 6 << 16) | 11:
3070
70
        return OFPERR_OFPGMFC_BAD_COMMAND;
3071
1.05k
    case  ((uint32_t) 6 << 16) | 12:
3072
1.05k
        return OFPERR_OFPGMFC_BAD_BUCKET;
3073
68
    case  ((uint32_t) 6 << 16) | 13:
3074
68
        return OFPERR_OFPGMFC_BAD_WATCH;
3075
34
    case  ((uint32_t) 6 << 16) | 14:
3076
34
        return OFPERR_OFPGMFC_EPERM;
3077
474
    case  ((uint32_t) 6 << 16) | 15:
3078
474
        return OFPERR_OFPGMFC_UNKNOWN_BUCKET;
3079
195
    case  ((uint32_t) 6 << 16) | 16:
3080
195
        return OFPERR_OFPGMFC_BUCKET_EXISTS;
3081
1.01k
    case  ((uint32_t) 7 << 16) | 0:
3082
1.01k
        return OFPERR_OFPPMFC_BAD_PORT;
3083
195
    case  ((uint32_t) 7 << 16) | 1:
3084
195
        return OFPERR_OFPPMFC_BAD_HW_ADDR;
3085
1.14k
    case  ((uint32_t) 7 << 16) | 2:
3086
1.14k
        return OFPERR_OFPPMFC_BAD_CONFIG;
3087
159
    case  ((uint32_t) 7 << 16) | 3:
3088
159
        return OFPERR_OFPPMFC_BAD_ADVERTISE;
3089
68
    case  ((uint32_t) 7 << 16) | 4:
3090
68
        return OFPERR_OFPPMFC_EPERM;
3091
633
    case  ((uint32_t) 8 << 16) | 0:
3092
633
        return OFPERR_OFPTMFC_BAD_TABLE;
3093
2.54k
    case  ((uint32_t) 8 << 16) | 1:
3094
2.54k
        return OFPERR_OFPTMFC_BAD_CONFIG;
3095
269
    case  ((uint32_t) 8 << 16) | 2:
3096
269
        return OFPERR_OFPTMFC_EPERM;
3097
247
    case  ((uint32_t) 9 << 16) | 0:
3098
247
        return OFPERR_OFPQOFC_BAD_PORT;
3099
66
    case  ((uint32_t) 9 << 16) | 1:
3100
66
        return OFPERR_OFPQOFC_BAD_QUEUE;
3101
2.01k
    case  ((uint32_t) 9 << 16) | 2:
3102
2.01k
        return OFPERR_OFPQOFC_EPERM;
3103
521
    case (0x2320ULL << 32) |  ((uint32_t) 23 << 16) | 0:
3104
521
        return OFPERR_NXQOFC_QUEUE_ERROR;
3105
99
    case  ((uint32_t) 10 << 16) | 0:
3106
99
        return OFPERR_OFPSCFC_BAD_FLAGS;
3107
95
    case  ((uint32_t) 10 << 16) | 1:
3108
95
        return OFPERR_OFPSCFC_BAD_LEN;
3109
70
    case  ((uint32_t) 10 << 16) | 2:
3110
70
        return OFPERR_OFPSCFC_EPERM;
3111
66
    case  ((uint32_t) 11 << 16) | 0:
3112
66
        return OFPERR_OFPRRFC_STALE;
3113
66
    case  ((uint32_t) 11 << 16) | 1:
3114
66
        return OFPERR_OFPRRFC_UNSUP;
3115
75
    case  ((uint32_t) 11 << 16) | 2:
3116
75
        return OFPERR_OFPRRFC_BAD_ROLE;
3117
66
    case  ((uint32_t) 11 << 16) | 3:
3118
66
        return OFPERR_OFPRRFC_ID_UNSUP;
3119
42
    case  ((uint32_t) 11 << 16) | 4:
3120
42
        return OFPERR_OFPRRFC_ID_IN_USE;
3121
312
    case  ((uint32_t) 12 << 16) | 0:
3122
312
        return OFPERR_OFPMMFC_UNKNOWN;
3123
902
    case  ((uint32_t) 12 << 16) | 1:
3124
902
        return OFPERR_OFPMMFC_METER_EXISTS;
3125
70
    case  ((uint32_t) 12 << 16) | 2:
3126
70
        return OFPERR_OFPMMFC_INVALID_METER;
3127
68
    case  ((uint32_t) 12 << 16) | 3:
3128
68
        return OFPERR_OFPMMFC_UNKNOWN_METER;
3129
9.46k
    case  ((uint32_t) 12 << 16) | 4:
3130
9.46k
        return OFPERR_OFPMMFC_BAD_COMMAND;
3131
2.36k
    case  ((uint32_t) 12 << 16) | 5:
3132
2.36k
        return OFPERR_OFPMMFC_BAD_FLAGS;
3133
36
    case  ((uint32_t) 12 << 16) | 6:
3134
36
        return OFPERR_OFPMMFC_BAD_RATE;
3135
89
    case  ((uint32_t) 12 << 16) | 7:
3136
89
        return OFPERR_OFPMMFC_BAD_BURST;
3137
66
    case  ((uint32_t) 12 << 16) | 8:
3138
66
        return OFPERR_OFPMMFC_BAD_BAND;
3139
487
    case  ((uint32_t) 12 << 16) | 9:
3140
487
        return OFPERR_OFPMMFC_BAD_BAND_VALUE;
3141
201
    case  ((uint32_t) 12 << 16) | 10:
3142
201
        return OFPERR_OFPMMFC_OUT_OF_METERS;
3143
2.63k
    case  ((uint32_t) 12 << 16) | 11:
3144
2.63k
        return OFPERR_OFPMMFC_OUT_OF_BANDS;
3145
68
    case  ((uint32_t) 13 << 16) | 0:
3146
68
        return OFPERR_OFPTFFC_BAD_TABLE;
3147
107
    case  ((uint32_t) 13 << 16) | 1:
3148
107
        return OFPERR_OFPTFFC_BAD_METADATA;
3149
194
    case  ((uint32_t) 13 << 16) | 5:
3150
194
        return OFPERR_OFPTFFC_EPERM;
3151
197
    case  ((uint32_t) 13 << 16) | 6:
3152
197
        return OFPERR_OFPTFFC_BAD_CAPA;
3153
304
    case  ((uint32_t) 13 << 16) | 7:
3154
304
        return OFPERR_OFPTFFC_BAD_MAX_ENT;
3155
98
    case  ((uint32_t) 13 << 16) | 8:
3156
98
        return OFPERR_OFPTFFC_BAD_FEATURES;
3157
66
    case  ((uint32_t) 13 << 16) | 9:
3158
66
        return OFPERR_OFPTFFC_BAD_COMMAND;
3159
141
    case  ((uint32_t) 13 << 16) | 10:
3160
141
        return OFPERR_OFPTFFC_TOO_MANY;
3161
219
    case (0x2320ULL << 32) |  ((uint32_t) 44 << 16) | 0:
3162
219
        return OFPERR_NXTFFC_DUP_TABLE;
3163
90
    case  ((uint32_t) 14 << 16) | 0:
3164
90
        return OFPERR_OFPBPC_BAD_TYPE;
3165
77
    case  ((uint32_t) 14 << 16) | 1:
3166
77
        return OFPERR_OFPBPC_BAD_LEN;
3167
34
    case  ((uint32_t) 14 << 16) | 2:
3168
34
        return OFPERR_OFPBPC_BAD_VALUE;
3169
197
    case  ((uint32_t) 14 << 16) | 3:
3170
197
        return OFPERR_OFPBPC_TOO_MANY;
3171
34
    case  ((uint32_t) 14 << 16) | 4:
3172
34
        return OFPERR_OFPBPC_DUP_TYPE;
3173
67
    case  ((uint32_t) 14 << 16) | 5:
3174
67
        return OFPERR_OFPBPC_BAD_EXPERIMENTER;
3175
201
    case  ((uint32_t) 14 << 16) | 6:
3176
201
        return OFPERR_OFPBPC_BAD_EXP_TYPE;
3177
195
    case  ((uint32_t) 14 << 16) | 7:
3178
195
        return OFPERR_OFPBPC_BAD_EXP_VALUE;
3179
45
    case  ((uint32_t) 14 << 16) | 8:
3180
45
        return OFPERR_OFPBPC_EPERM;
3181
69
    case  ((uint32_t) 15 << 16) | 0:
3182
69
        return OFPERR_OFPACFC_INVALID;
3183
66
    case  ((uint32_t) 15 << 16) | 1:
3184
66
        return OFPERR_OFPACFC_UNSUPPORTED;
3185
68
    case  ((uint32_t) 15 << 16) | 2:
3186
68
        return OFPERR_OFPACFC_EPERM;
3187
72
    case  ((uint32_t) 17 << 16) | 0:
3188
72
        return OFPERR_OFPBFC_UNKNOWN;
3189
51
    case  ((uint32_t) 17 << 16) | 1:
3190
51
        return OFPERR_OFPBFC_EPERM;
3191
86
    case  ((uint32_t) 17 << 16) | 2:
3192
86
        return OFPERR_OFPBFC_BAD_ID;
3193
66
    case  ((uint32_t) 17 << 16) | 3:
3194
66
        return OFPERR_OFPBFC_BUNDLE_EXIST;
3195
66
    case  ((uint32_t) 17 << 16) | 4:
3196
66
        return OFPERR_OFPBFC_BUNDLE_CLOSED;
3197
476
    case  ((uint32_t) 17 << 16) | 5:
3198
476
        return OFPERR_OFPBFC_OUT_OF_BUNDLES;
3199
47
    case  ((uint32_t) 17 << 16) | 6:
3200
47
        return OFPERR_OFPBFC_BAD_TYPE;
3201
877
    case  ((uint32_t) 17 << 16) | 7:
3202
877
        return OFPERR_OFPBFC_BAD_FLAGS;
3203
84
    case  ((uint32_t) 17 << 16) | 8:
3204
84
        return OFPERR_OFPBFC_MSG_BAD_LEN;
3205
1.49k
    case  ((uint32_t) 17 << 16) | 9:
3206
1.49k
        return OFPERR_OFPBFC_MSG_BAD_XID;
3207
66
    case  ((uint32_t) 17 << 16) | 10:
3208
66
        return OFPERR_OFPBFC_MSG_UNSUP;
3209
5.85k
    case  ((uint32_t) 17 << 16) | 11:
3210
5.85k
        return OFPERR_OFPBFC_MSG_CONFLICT;
3211
81
    case  ((uint32_t) 17 << 16) | 12:
3212
81
        return OFPERR_OFPBFC_MSG_TOO_MANY;
3213
178
    case  ((uint32_t) 17 << 16) | 13:
3214
178
        return OFPERR_OFPBFC_MSG_FAILED;
3215
187
    case  ((uint32_t) 17 << 16) | 14:
3216
187
        return OFPERR_OFPBFC_TIMEOUT;
3217
10.4k
    case  ((uint32_t) 17 << 16) | 15:
3218
10.4k
        return OFPERR_OFPBFC_BUNDLE_IN_PROGRESS;
3219
7.51k
    case  ((uint32_t) 17 << 16) | 16:
3220
7.51k
        return OFPERR_OFPBFC_SCHED_NOT_SUPPORTED;
3221
196
    case  ((uint32_t) 17 << 16) | 17:
3222
196
        return OFPERR_OFPBFC_SCHED_FUTURE;
3223
34
    case  ((uint32_t) 17 << 16) | 18:
3224
34
        return OFPERR_OFPBFC_SCHED_PAST;
3225
35
    case (0x2320ULL << 32) |  ((uint32_t) 22 << 16) | 0:
3226
35
        return OFPERR_OFPBFC_BAD_VERSION;
3227
194
    case  ((uint32_t) 16 << 16) | 0:
3228
194
        return OFPERR_OFPMOFC_UNKNOWN;
3229
333
    case  ((uint32_t) 16 << 16) | 1:
3230
333
        return OFPERR_OFPMOFC_MONITOR_EXISTS;
3231
196
    case  ((uint32_t) 16 << 16) | 2:
3232
196
        return OFPERR_OFPMOFC_INVALID_MONITOR;
3233
66
    case  ((uint32_t) 16 << 16) | 3:
3234
66
        return OFPERR_OFPMOFC_UNKNOWN_MONITOR;
3235
66
    case  ((uint32_t) 16 << 16) | 4:
3236
66
        return OFPERR_OFPMOFC_BAD_COMMAND;
3237
66
    case  ((uint32_t) 16 << 16) | 5:
3238
66
        return OFPERR_OFPMOFC_BAD_FLAGS;
3239
194
    case  ((uint32_t) 16 << 16) | 6:
3240
194
        return OFPERR_OFPMOFC_BAD_TABLE_ID;
3241
709
    case  ((uint32_t) 16 << 16) | 7:
3242
709
        return OFPERR_OFPMOFC_BAD_OUT;
3243
92
    case (0x2320ULL << 32) |  ((uint32_t) 16 << 16) | 0:
3244
92
        return OFPERR_NXTTMFC_BAD_COMMAND;
3245
68
    case (0x2320ULL << 32) |  ((uint32_t) 17 << 16) | 0:
3246
68
        return OFPERR_NXTTMFC_BAD_OPT_LEN;
3247
66
    case (0x2320ULL << 32) |  ((uint32_t) 18 << 16) | 0:
3248
66
        return OFPERR_NXTTMFC_BAD_FIELD_IDX;
3249
93
    case (0x2320ULL << 32) |  ((uint32_t) 19 << 16) | 0:
3250
93
        return OFPERR_NXTTMFC_TABLE_FULL;
3251
70
    case (0x2320ULL << 32) |  ((uint32_t) 20 << 16) | 0:
3252
70
        return OFPERR_NXTTMFC_ALREADY_MAPPED;
3253
38
    case (0x2320ULL << 32) |  ((uint32_t) 21 << 16) | 0:
3254
38
        return OFPERR_NXTTMFC_DUP_ENTRY;
3255
66
    case (0x2320ULL << 32) |  ((uint32_t) 38 << 16) | 0:
3256
66
        return OFPERR_NXTTMFC_INVALID_TLV_DEL;
3257
34
    case (0x2320ULL << 32) |  ((uint32_t) 34 << 16) | 0:
3258
34
        return OFPERR_NXR_NOT_SUPPORTED;
3259
846
    case (0x2320ULL << 32) |  ((uint32_t) 35 << 16) | 0:
3260
846
        return OFPERR_NXR_STALE;
3261
165
    case (0x2320ULL << 32) |  ((uint32_t) 36 << 16) | 0:
3262
165
        return OFPERR_NXST_NOT_CONFIGURED;
3263
190k
    }
3264
3265
40.1k
    return 0;
3266
190k
}
3267
3268
static const struct ofperr_domain ofperr_of15 = {
3269
    "OpenFlow 1.5",
3270
    6,
3271
    ofperr_of15_decode,
3272
    {
3273
        {      0x0,  0,   0 }, /* OFPHFC_INCOMPATIBLE */
3274
        {      0x0,  0,   1 }, /* OFPHFC_EPERM */
3275
        {      0x0,  1,   0 }, /* OFPBRC_BAD_VERSION */
3276
        {      0x0,  1,   1 }, /* OFPBRC_BAD_TYPE */
3277
        {      0x0,  1,   2 }, /* OFPBRC_BAD_STAT */
3278
        {      0x0,  1,   3 }, /* OFPBRC_BAD_VENDOR */
3279
        {      0x0,  1,   4 }, /* OFPBRC_BAD_SUBTYPE */
3280
        {      0x0,  1,   5 }, /* OFPBRC_EPERM */
3281
        {      0x0,  1,   6 }, /* OFPBRC_BAD_LEN */
3282
        {      0x0,  1,   7 }, /* OFPBRC_BUFFER_EMPTY */
3283
        {      0x0,  1,   8 }, /* OFPBRC_BUFFER_UNKNOWN */
3284
        {      0x0,  1,   9 }, /* OFPBRC_BAD_TABLE_ID */
3285
        {      0x0,  1,  10 }, /* OFPBRC_IS_SECONDARY */
3286
        {      0x0,  1,  11 }, /* OFPBRC_BAD_PORT */
3287
        {      0x0,  1,  12 }, /* OFPBRC_BAD_PACKET */
3288
        {      0x0,  1,  13 }, /* OFPBRC_MULTIPART_BUFFER_OVERFLOW */
3289
        {      0x0,  1,  14 }, /* OFPBRC_MULTIPART_REQUEST_TIMEOUT */
3290
        {      0x0,  1,  15 }, /* OFPBRC_MULTIPART_REPLY_TIMEOUT */
3291
        {      0x0,  1,  16 }, /* OFPBRC_MULTIPART_BAD_SCHED */
3292
        {      0x0,  1,  17 }, /* OFPBRC_PIPELINE_FIELDS_ONLY */
3293
        {      0x0,  1,  18 }, /* OFPBRC_UNKNOWN */
3294
        {   0x2320,  2,   0 }, /* NXBRC_NXM_INVALID */
3295
        {   0x2320,  3,   0 }, /* NXBRC_NXM_BAD_TYPE */
3296
        {   0x2320,  4,   0 }, /* NXBRC_MUST_BE_ZERO */
3297
        {   0x2320,  5,   0 }, /* NXBRC_BAD_REASON */
3298
        {   0x2320,  9,   0 }, /* NXBRC_FM_BAD_EVENT */
3299
        {   0x2320, 10,   0 }, /* NXBRC_UNENCODABLE_ERROR */
3300
        {      0x0,  2,   0 }, /* OFPBAC_BAD_TYPE */
3301
        {      0x0,  2,   1 }, /* OFPBAC_BAD_LEN */
3302
        {      0x0,  2,   2 }, /* OFPBAC_BAD_VENDOR */
3303
        {      0x0,  2,   3 }, /* OFPBAC_BAD_VENDOR_TYPE */
3304
        {      0x0,  2,   4 }, /* OFPBAC_BAD_OUT_PORT */
3305
        {      0x0,  2,   5 }, /* OFPBAC_BAD_ARGUMENT */
3306
        {      0x0,  2,   6 }, /* OFPBAC_EPERM */
3307
        {      0x0,  2,   7 }, /* OFPBAC_TOO_MANY */
3308
        {      0x0,  2,   8 }, /* OFPBAC_BAD_QUEUE */
3309
        {      0x0,  2,   9 }, /* OFPBAC_BAD_OUT_GROUP */
3310
        {      0x0,  2,  10 }, /* OFPBAC_MATCH_INCONSISTENT */
3311
        {      0x0,  2,  11 }, /* OFPBAC_UNSUPPORTED_ORDER */
3312
        {      0x0,  2,  12 }, /* OFPBAC_BAD_TAG */
3313
        {      0x0,  2,  13 }, /* OFPBAC_BAD_SET_TYPE */
3314
        {      0x0,  2,  14 }, /* OFPBAC_BAD_SET_LEN */
3315
        {      0x0,  2,  15 }, /* OFPBAC_BAD_SET_ARGUMENT */
3316
        {      0x0,  2,  16 }, /* OFPBAC_BAD_SET_MASK */
3317
        {      0x0,  2,  17 }, /* OFPBAC_BAD_METER */
3318
        {   0x2320, 11,   0 }, /* NXBAC_MUST_BE_ZERO */
3319
        {   0x2320, 15,   0 }, /* NXBAC_BAD_CONJUNCTION */
3320
        {   0x2320, 39,   0 }, /* NXBAC_BAD_HEADER_TYPE */
3321
        {   0x2320, 40,   0 }, /* NXBAC_UNKNOWN_ED_PROP */
3322
        {   0x2320, 41,   0 }, /* NXBAC_BAD_ED_PROP */
3323
        {   0x2320, 42,   0 }, /* NXBAC_CT_DATAPATH_SUPPORT */
3324
        {      0x0,  3,   0 }, /* OFPBIC_UNKNOWN_INST */
3325
        {      0x0,  3,   1 }, /* OFPBIC_UNSUP_INST */
3326
        {      0x0,  3,   2 }, /* OFPBIC_BAD_TABLE_ID */
3327
        {      0x0,  3,   3 }, /* OFPBIC_UNSUP_METADATA */
3328
        {      0x0,  3,   4 }, /* OFPBIC_UNSUP_METADATA_MASK */
3329
        {      0x0,  3,   5 }, /* OFPBIC_BAD_EXPERIMENTER */
3330
        {      0x0,  3,   6 }, /* OFPBIC_BAD_EXP_TYPE */
3331
        {      0x0,  3,   7 }, /* OFPBIC_BAD_LEN */
3332
        {      0x0,  3,   8 }, /* OFPBIC_EPERM */
3333
        {      0x0,  3,   9 }, /* OFPBIC_DUP_INST */
3334
        {      0x0,  4,   0 }, /* OFPBMC_BAD_TYPE */
3335
        {      0x0,  4,   1 }, /* OFPBMC_BAD_LEN */
3336
        {      0x0,  4,   2 }, /* OFPBMC_BAD_TAG */
3337
        {      0x0,  4,   3 }, /* OFPBMC_BAD_DL_ADDR_MASK */
3338
        {      0x0,  4,   4 }, /* OFPBMC_BAD_NW_ADDR_MASK */
3339
        {      0x0,  4,   5 }, /* OFPBMC_BAD_WILDCARDS */
3340
        {      0x0,  4,   6 }, /* OFPBMC_BAD_FIELD */
3341
        {      0x0,  4,   7 }, /* OFPBMC_BAD_VALUE */
3342
        {      0x0,  4,   8 }, /* OFPBMC_BAD_MASK */
3343
        {      0x0,  4,   9 }, /* OFPBMC_BAD_PREREQ */
3344
        {      0x0,  4,  10 }, /* OFPBMC_DUP_FIELD */
3345
        {      0x0,  4,  11 }, /* OFPBMC_EPERM */
3346
        {   0x2320, 43,   0 }, /* NXBMC_CT_DATAPATH_SUPPORT */
3347
        {      0x0,  5,   0 }, /* OFPFMFC_UNKNOWN */
3348
        {      0x0,  5,   1 }, /* OFPFMFC_TABLE_FULL */
3349
        {      0x0,  5,   2 }, /* OFPFMFC_BAD_TABLE_ID */
3350
        {      0x0,  5,   3 }, /* OFPFMFC_OVERLAP */
3351
        {      0x0,  5,   4 }, /* OFPFMFC_EPERM */
3352
        {      0x0,  5,   5 }, /* OFPFMFC_BAD_TIMEOUT */
3353
        {       -1, -1,  -1 }, /* OFPFMFC_BAD_EMERG_TIMEOUT */
3354
        {      0x0,  5,   6 }, /* OFPFMFC_BAD_COMMAND */
3355
        {      0x0,  5,   7 }, /* OFPFMFC_BAD_FLAGS */
3356
        {      0x0,  5,   8 }, /* OFPFMFC_CANT_SYNC */
3357
        {      0x0,  5,   9 }, /* OFPFMFC_BAD_PRIORITY */
3358
        {      0x0,  5,  10 }, /* OFPFMFC_IS_SYNC */
3359
        {       -1, -1,  -1 }, /* OFPFMFC_UNSUPPORTED */
3360
        {   0x2320, 12,   0 }, /* NXFMFC_HARDWARE */
3361
        {   0x2320, 13,   0 }, /* NXFMFC_BAD_TABLE_ID */
3362
        {   0x2320, 37,   0 }, /* NXFMFC_INVALID_TLV_FIELD */
3363
        {      0x0,  6,   0 }, /* OFPGMFC_GROUP_EXISTS */
3364
        {      0x0,  6,   1 }, /* OFPGMFC_INVALID_GROUP */
3365
        {      0x0,  6,   2 }, /* OFPGMFC_WEIGHT_UNSUPPORTED */
3366
        {      0x0,  6,   3 }, /* OFPGMFC_OUT_OF_GROUPS */
3367
        {      0x0,  6,   4 }, /* OFPGMFC_OUT_OF_BUCKETS */
3368
        {      0x0,  6,   5 }, /* OFPGMFC_CHAINING_UNSUPPORTED */
3369
        {      0x0,  6,   6 }, /* OFPGMFC_WATCH_UNSUPPORTED */
3370
        {      0x0,  6,   7 }, /* OFPGMFC_LOOP */
3371
        {      0x0,  6,   8 }, /* OFPGMFC_UNKNOWN_GROUP */
3372
        {      0x0,  6,   9 }, /* OFPGMFC_CHAINED_GROUP */
3373
        {      0x0,  6,  10 }, /* OFPGMFC_BAD_TYPE */
3374
        {      0x0,  6,  11 }, /* OFPGMFC_BAD_COMMAND */
3375
        {      0x0,  6,  12 }, /* OFPGMFC_BAD_BUCKET */
3376
        {      0x0,  6,  13 }, /* OFPGMFC_BAD_WATCH */
3377
        {      0x0,  6,  14 }, /* OFPGMFC_EPERM */
3378
        {      0x0,  6,  15 }, /* OFPGMFC_UNKNOWN_BUCKET */
3379
        {      0x0,  6,  16 }, /* OFPGMFC_BUCKET_EXISTS */
3380
        {      0x0,  7,   0 }, /* OFPPMFC_BAD_PORT */
3381
        {      0x0,  7,   1 }, /* OFPPMFC_BAD_HW_ADDR */
3382
        {      0x0,  7,   2 }, /* OFPPMFC_BAD_CONFIG */
3383
        {      0x0,  7,   3 }, /* OFPPMFC_BAD_ADVERTISE */
3384
        {      0x0,  7,   4 }, /* OFPPMFC_EPERM */
3385
        {      0x0,  8,   0 }, /* OFPTMFC_BAD_TABLE */
3386
        {      0x0,  8,   1 }, /* OFPTMFC_BAD_CONFIG */
3387
        {      0x0,  8,   2 }, /* OFPTMFC_EPERM */
3388
        {      0x0,  9,   0 }, /* OFPQOFC_BAD_PORT */
3389
        {      0x0,  9,   1 }, /* OFPQOFC_BAD_QUEUE */
3390
        {      0x0,  9,   2 }, /* OFPQOFC_EPERM */
3391
        {   0x2320, 23,   0 }, /* NXQOFC_QUEUE_ERROR */
3392
        {      0x0, 10,   0 }, /* OFPSCFC_BAD_FLAGS */
3393
        {      0x0, 10,   1 }, /* OFPSCFC_BAD_LEN */
3394
        {      0x0, 10,   2 }, /* OFPSCFC_EPERM */
3395
        {      0x0, 11,   0 }, /* OFPRRFC_STALE */
3396
        {      0x0, 11,   1 }, /* OFPRRFC_UNSUP */
3397
        {      0x0, 11,   2 }, /* OFPRRFC_BAD_ROLE */
3398
        {      0x0, 11,   3 }, /* OFPRRFC_ID_UNSUP */
3399
        {      0x0, 11,   4 }, /* OFPRRFC_ID_IN_USE */
3400
        {      0x0, 12,   0 }, /* OFPMMFC_UNKNOWN */
3401
        {      0x0, 12,   1 }, /* OFPMMFC_METER_EXISTS */
3402
        {      0x0, 12,   2 }, /* OFPMMFC_INVALID_METER */
3403
        {      0x0, 12,   3 }, /* OFPMMFC_UNKNOWN_METER */
3404
        {      0x0, 12,   4 }, /* OFPMMFC_BAD_COMMAND */
3405
        {      0x0, 12,   5 }, /* OFPMMFC_BAD_FLAGS */
3406
        {      0x0, 12,   6 }, /* OFPMMFC_BAD_RATE */
3407
        {      0x0, 12,   7 }, /* OFPMMFC_BAD_BURST */
3408
        {      0x0, 12,   8 }, /* OFPMMFC_BAD_BAND */
3409
        {      0x0, 12,   9 }, /* OFPMMFC_BAD_BAND_VALUE */
3410
        {      0x0, 12,  10 }, /* OFPMMFC_OUT_OF_METERS */
3411
        {      0x0, 12,  11 }, /* OFPMMFC_OUT_OF_BANDS */
3412
        {      0x0, 13,   0 }, /* OFPTFFC_BAD_TABLE */
3413
        {      0x0, 13,   1 }, /* OFPTFFC_BAD_METADATA */
3414
        {      0x0, 13,   5 }, /* OFPTFFC_EPERM */
3415
        {      0x0, 13,   6 }, /* OFPTFFC_BAD_CAPA */
3416
        {      0x0, 13,   7 }, /* OFPTFFC_BAD_MAX_ENT */
3417
        {      0x0, 13,   8 }, /* OFPTFFC_BAD_FEATURES */
3418
        {      0x0, 13,   9 }, /* OFPTFFC_BAD_COMMAND */
3419
        {      0x0, 13,  10 }, /* OFPTFFC_TOO_MANY */
3420
        {   0x2320, 44,   0 }, /* NXTFFC_DUP_TABLE */
3421
        {      0x0, 14,   0 }, /* OFPBPC_BAD_TYPE */
3422
        {      0x0, 14,   1 }, /* OFPBPC_BAD_LEN */
3423
        {      0x0, 14,   2 }, /* OFPBPC_BAD_VALUE */
3424
        {      0x0, 14,   3 }, /* OFPBPC_TOO_MANY */
3425
        {      0x0, 14,   4 }, /* OFPBPC_DUP_TYPE */
3426
        {      0x0, 14,   5 }, /* OFPBPC_BAD_EXPERIMENTER */
3427
        {      0x0, 14,   6 }, /* OFPBPC_BAD_EXP_TYPE */
3428
        {      0x0, 14,   7 }, /* OFPBPC_BAD_EXP_VALUE */
3429
        {      0x0, 14,   8 }, /* OFPBPC_EPERM */
3430
        {      0x0, 15,   0 }, /* OFPACFC_INVALID */
3431
        {      0x0, 15,   1 }, /* OFPACFC_UNSUPPORTED */
3432
        {      0x0, 15,   2 }, /* OFPACFC_EPERM */
3433
        {      0x0, 17,   0 }, /* OFPBFC_UNKNOWN */
3434
        {      0x0, 17,   1 }, /* OFPBFC_EPERM */
3435
        {      0x0, 17,   2 }, /* OFPBFC_BAD_ID */
3436
        {      0x0, 17,   3 }, /* OFPBFC_BUNDLE_EXIST */
3437
        {      0x0, 17,   4 }, /* OFPBFC_BUNDLE_CLOSED */
3438
        {      0x0, 17,   5 }, /* OFPBFC_OUT_OF_BUNDLES */
3439
        {      0x0, 17,   6 }, /* OFPBFC_BAD_TYPE */
3440
        {      0x0, 17,   7 }, /* OFPBFC_BAD_FLAGS */
3441
        {      0x0, 17,   8 }, /* OFPBFC_MSG_BAD_LEN */
3442
        {      0x0, 17,   9 }, /* OFPBFC_MSG_BAD_XID */
3443
        {      0x0, 17,  10 }, /* OFPBFC_MSG_UNSUP */
3444
        {      0x0, 17,  11 }, /* OFPBFC_MSG_CONFLICT */
3445
        {      0x0, 17,  12 }, /* OFPBFC_MSG_TOO_MANY */
3446
        {      0x0, 17,  13 }, /* OFPBFC_MSG_FAILED */
3447
        {      0x0, 17,  14 }, /* OFPBFC_TIMEOUT */
3448
        {      0x0, 17,  15 }, /* OFPBFC_BUNDLE_IN_PROGRESS */
3449
        {      0x0, 17,  16 }, /* OFPBFC_SCHED_NOT_SUPPORTED */
3450
        {      0x0, 17,  17 }, /* OFPBFC_SCHED_FUTURE */
3451
        {      0x0, 17,  18 }, /* OFPBFC_SCHED_PAST */
3452
        {   0x2320, 22,   0 }, /* OFPBFC_BAD_VERSION */
3453
        {      0x0, 16,   0 }, /* OFPMOFC_UNKNOWN */
3454
        {      0x0, 16,   1 }, /* OFPMOFC_MONITOR_EXISTS */
3455
        {      0x0, 16,   2 }, /* OFPMOFC_INVALID_MONITOR */
3456
        {      0x0, 16,   3 }, /* OFPMOFC_UNKNOWN_MONITOR */
3457
        {      0x0, 16,   4 }, /* OFPMOFC_BAD_COMMAND */
3458
        {      0x0, 16,   5 }, /* OFPMOFC_BAD_FLAGS */
3459
        {      0x0, 16,   6 }, /* OFPMOFC_BAD_TABLE_ID */
3460
        {      0x0, 16,   7 }, /* OFPMOFC_BAD_OUT */
3461
        {   0x2320, 16,   0 }, /* NXTTMFC_BAD_COMMAND */
3462
        {   0x2320, 17,   0 }, /* NXTTMFC_BAD_OPT_LEN */
3463
        {   0x2320, 18,   0 }, /* NXTTMFC_BAD_FIELD_IDX */
3464
        {   0x2320, 19,   0 }, /* NXTTMFC_TABLE_FULL */
3465
        {   0x2320, 20,   0 }, /* NXTTMFC_ALREADY_MAPPED */
3466
        {   0x2320, 21,   0 }, /* NXTTMFC_DUP_ENTRY */
3467
        {   0x2320, 38,   0 }, /* NXTTMFC_INVALID_TLV_DEL */
3468
        {   0x2320, 34,   0 }, /* NXR_NOT_SUPPORTED */
3469
        {   0x2320, 35,   0 }, /* NXR_STALE */
3470
        {   0x2320, 36,   0 }, /* NXST_NOT_CONFIGURED */
3471
    },
3472
};