Coverage Report

Created: 2026-02-09 06:06

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
4.80M
#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
102k
{
417
102k
    switch (((uint64_t) vendor << 32) | ((uint32_t) type << 16) | code) {
418
1.39k
    case  ((uint32_t) 0 << 16) | 0:
419
1.39k
        return OFPERR_OFPHFC_INCOMPATIBLE;
420
370
    case  ((uint32_t) 0 << 16) | 1:
421
370
        return OFPERR_OFPHFC_EPERM;
422
881
    case  ((uint32_t) 1 << 16) | 0:
423
881
        return OFPERR_OFPBRC_BAD_VERSION;
424
34
    case  ((uint32_t) 1 << 16) | 1:
425
34
        return OFPERR_OFPBRC_BAD_TYPE;
426
4.89k
    case  ((uint32_t) 1 << 16) | 2:
427
4.89k
        return OFPERR_OFPBRC_BAD_STAT;
428
185
    case  ((uint32_t) 1 << 16) | 3:
429
185
        return OFPERR_OFPBRC_BAD_VENDOR;
430
39
    case  ((uint32_t) 1 << 16) | 4:
431
39
        return OFPERR_OFPBRC_BAD_SUBTYPE;
432
89
    case  ((uint32_t) 1 << 16) | 5:
433
89
        return OFPERR_OFPBRC_EPERM;
434
76
    case  ((uint32_t) 1 << 16) | 6:
435
76
        return OFPERR_OFPBRC_BAD_LEN;
436
153
    case  ((uint32_t) 1 << 16) | 7:
437
153
        return OFPERR_OFPBRC_BUFFER_EMPTY;
438
591
    case  ((uint32_t) 1 << 16) | 8:
439
591
        return OFPERR_OFPBRC_BUFFER_UNKNOWN;
440
867
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 512:
441
867
        return OFPERR_OFPBRC_BAD_TABLE_ID;
442
66
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 514:
443
66
        return OFPERR_OFPBRC_BAD_PORT;
444
125
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 256:
445
125
        return OFPERR_NXBRC_NXM_INVALID;
446
7.69k
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 257:
447
7.69k
        return OFPERR_NXBRC_NXM_BAD_TYPE;
448
946
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 515:
449
946
        return OFPERR_NXBRC_MUST_BE_ZERO;
450
1.60k
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 516:
451
1.60k
        return OFPERR_NXBRC_BAD_REASON;
452
66
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 520:
453
66
        return OFPERR_NXBRC_FM_BAD_EVENT;
454
66
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 521:
455
66
        return OFPERR_NXBRC_UNENCODABLE_ERROR;
456
233
    case  ((uint32_t) 2 << 16) | 0:
457
233
        return OFPERR_OFPBAC_BAD_TYPE;
458
92
    case  ((uint32_t) 2 << 16) | 1:
459
92
        return OFPERR_OFPBAC_BAD_LEN;
460
4.83k
    case  ((uint32_t) 2 << 16) | 2:
461
4.83k
        return OFPERR_OFPBAC_BAD_VENDOR;
462
1.07k
    case  ((uint32_t) 2 << 16) | 3:
463
1.07k
        return OFPERR_OFPBAC_BAD_VENDOR_TYPE;
464
371
    case  ((uint32_t) 2 << 16) | 4:
465
371
        return OFPERR_OFPBAC_BAD_OUT_PORT;
466
969
    case  ((uint32_t) 2 << 16) | 5:
467
969
        return OFPERR_OFPBAC_BAD_ARGUMENT;
468
1.06k
    case  ((uint32_t) 2 << 16) | 6:
469
1.06k
        return OFPERR_OFPBAC_EPERM;
470
316
    case  ((uint32_t) 2 << 16) | 7:
471
316
        return OFPERR_OFPBAC_TOO_MANY;
472
5.85k
    case  ((uint32_t) 2 << 16) | 8:
473
5.85k
        return OFPERR_OFPBAC_BAD_QUEUE;
474
18
    case (0x2320ULL << 32) |  ((uint32_t) 2 << 16) | 9:
475
18
        return OFPERR_OFPBAC_BAD_OUT_GROUP;
476
10
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 522:
477
10
        return OFPERR_OFPBAC_MATCH_INCONSISTENT;
478
22
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 523:
479
22
        return OFPERR_OFPBAC_BAD_SET_TYPE;
480
204
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 524:
481
204
        return OFPERR_OFPBAC_BAD_SET_LEN;
482
429
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 525:
483
429
        return OFPERR_OFPBAC_BAD_SET_ARGUMENT;
484
66
    case (0x2320ULL << 32) |  ((uint32_t) 2 << 16) | 256:
485
66
        return OFPERR_NXBAC_MUST_BE_ZERO;
486
34
    case (0x2320ULL << 32) |  ((uint32_t) 2 << 16) | 526:
487
34
        return OFPERR_NXBAC_BAD_CONJUNCTION;
488
66
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 265:
489
66
        return OFPERR_NXBAC_CT_DATAPATH_SUPPORT;
490
1.50k
    case (0x2320ULL << 32) |  ((uint32_t) 2 << 16) | 257:
491
1.50k
        return OFPERR_OFPBIC_UNSUP_INST;
492
604
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 262:
493
604
        return OFPERR_OFPBMC_BAD_WILDCARDS;
494
66
    case (0x2320ULL << 32) |  ((uint32_t) 0 << 16) | 263:
495
66
        return OFPERR_OFPBMC_BAD_FIELD;
496
67
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 258:
497
67
        return OFPERR_OFPBMC_BAD_VALUE;
498
10
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 259:
499
10
        return OFPERR_OFPBMC_BAD_MASK;
500
1.98k
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 260:
501
1.98k
        return OFPERR_OFPBMC_BAD_PREREQ;
502
34
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 261:
503
34
        return OFPERR_OFPBMC_DUP_FIELD;
504
36
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 264:
505
36
        return OFPERR_NXBMC_CT_DATAPATH_SUPPORT;
506
78
    case  ((uint32_t) 3 << 16) | 0:
507
78
        return OFPERR_OFPFMFC_TABLE_FULL;
508
125
    case  ((uint32_t) 3 << 16) | 1:
509
125
        return OFPERR_OFPFMFC_OVERLAP;
510
1.57k
    case  ((uint32_t) 3 << 16) | 2:
511
1.57k
        return OFPERR_OFPFMFC_EPERM;
512
282
    case  ((uint32_t) 3 << 16) | 3:
513
282
        return OFPERR_OFPFMFC_BAD_EMERG_TIMEOUT;
514
291
    case  ((uint32_t) 3 << 16) | 4:
515
291
        return OFPERR_OFPFMFC_BAD_COMMAND;
516
66
    case (0x2320ULL << 32) |  ((uint32_t) 3 << 16) | 258:
517
66
        return OFPERR_OFPFMFC_BAD_FLAGS;
518
66
    case  ((uint32_t) 3 << 16) | 5:
519
66
        return OFPERR_OFPFMFC_UNSUPPORTED;
520
34
    case (0x2320ULL << 32) |  ((uint32_t) 5 << 16) | 256:
521
34
        return OFPERR_NXFMFC_HARDWARE;
522
18
    case (0x2320ULL << 32) |  ((uint32_t) 5 << 16) | 257:
523
18
        return OFPERR_NXFMFC_BAD_TABLE_ID;
524
66
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 536:
525
66
        return OFPERR_NXFMFC_INVALID_TLV_FIELD;
526
362
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 0:
527
362
        return OFPERR_OFPGMFC_GROUP_EXISTS;
528
66
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 1:
529
66
        return OFPERR_OFPGMFC_INVALID_GROUP;
530
34
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 2:
531
34
        return OFPERR_OFPGMFC_WEIGHT_UNSUPPORTED;
532
67
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 3:
533
67
        return OFPERR_OFPGMFC_OUT_OF_GROUPS;
534
66
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 4:
535
66
        return OFPERR_OFPGMFC_OUT_OF_BUCKETS;
536
194
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 5:
537
194
        return OFPERR_OFPGMFC_CHAINING_UNSUPPORTED;
538
66
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 6:
539
66
        return OFPERR_OFPGMFC_WATCH_UNSUPPORTED;
540
68
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 7:
541
68
        return OFPERR_OFPGMFC_LOOP;
542
18
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 8:
543
18
        return OFPERR_OFPGMFC_UNKNOWN_GROUP;
544
197
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 9:
545
197
        return OFPERR_OFPGMFC_CHAINED_GROUP;
546
70
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 10:
547
70
        return OFPERR_OFPGMFC_BAD_TYPE;
548
34
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 11:
549
34
        return OFPERR_OFPGMFC_BAD_COMMAND;
550
18
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 12:
551
18
        return OFPERR_OFPGMFC_BAD_BUCKET;
552
66
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 13:
553
66
        return OFPERR_OFPGMFC_BAD_WATCH;
554
34
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 14:
555
34
        return OFPERR_OFPGMFC_EPERM;
556
18
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 15:
557
18
        return OFPERR_OFPGMFC_UNKNOWN_BUCKET;
558
66
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 16:
559
66
        return OFPERR_OFPGMFC_BUCKET_EXISTS;
560
68
    case  ((uint32_t) 4 << 16) | 0:
561
68
        return OFPERR_OFPPMFC_BAD_PORT;
562
129
    case  ((uint32_t) 4 << 16) | 1:
563
129
        return OFPERR_OFPPMFC_BAD_HW_ADDR;
564
359
    case  ((uint32_t) 5 << 16) | 0:
565
359
        return OFPERR_OFPQOFC_BAD_PORT;
566
155
    case  ((uint32_t) 5 << 16) | 1:
567
155
        return OFPERR_OFPQOFC_BAD_QUEUE;
568
2.07k
    case  ((uint32_t) 5 << 16) | 2:
569
2.07k
        return OFPERR_OFPQOFC_EPERM;
570
66
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 513:
571
66
        return OFPERR_OFPRRFC_BAD_ROLE;
572
97
    case (0x2320ULL << 32) |  ((uint32_t) 13 << 16) | 2:
573
97
        return OFPERR_OFPBPC_BAD_TYPE;
574
669
    case (0x2320ULL << 32) |  ((uint32_t) 13 << 16) | 3:
575
669
        return OFPERR_OFPBPC_BAD_LEN;
576
34
    case (0x2320ULL << 32) |  ((uint32_t) 13 << 16) | 4:
577
34
        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
5.82k
    case (0x2320ULL << 32) |  ((uint32_t) 14 << 16) | 5:
583
5.82k
        return OFPERR_OFPBPC_BAD_EXPERIMENTER;
584
1.79k
    case (0x2320ULL << 32) |  ((uint32_t) 14 << 16) | 6:
585
1.79k
        return OFPERR_OFPBPC_BAD_EXP_TYPE;
586
2.77k
    case (0x2320ULL << 32) |  ((uint32_t) 14 << 16) | 7:
587
2.77k
        return OFPERR_OFPBPC_BAD_EXP_VALUE;
588
19
    case (0x2320ULL << 32) |  ((uint32_t) 14 << 16) | 8:
589
19
        return OFPERR_OFPBPC_EPERM;
590
2.38k
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 517:
591
2.38k
        return OFPERR_OFPMOFC_MONITOR_EXISTS;
592
1.28k
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 519:
593
1.28k
        return OFPERR_OFPMOFC_UNKNOWN_MONITOR;
594
66
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 518:
595
66
        return OFPERR_OFPMOFC_BAD_FLAGS;
596
1.37k
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 527:
597
1.37k
        return OFPERR_NXTTMFC_BAD_COMMAND;
598
34
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 528:
599
34
        return OFPERR_NXTTMFC_BAD_OPT_LEN;
600
18
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 529:
601
18
        return OFPERR_NXTTMFC_BAD_FIELD_IDX;
602
538
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 530:
603
538
        return OFPERR_NXTTMFC_TABLE_FULL;
604
34
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 531:
605
34
        return OFPERR_NXTTMFC_ALREADY_MAPPED;
606
66
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 532:
607
66
        return OFPERR_NXTTMFC_DUP_ENTRY;
608
18
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 537:
609
18
        return OFPERR_NXTTMFC_INVALID_TLV_DEL;
610
66
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 533:
611
66
        return OFPERR_NXR_NOT_SUPPORTED;
612
66
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 534:
613
66
        return OFPERR_NXR_STALE;
614
161
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 535:
615
161
        return OFPERR_NXST_NOT_CONFIGURED;
616
102k
    }
617
618
37.8k
    return 0;
619
102k
}
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
104k
{
830
104k
    switch (((uint64_t) vendor << 32) | ((uint32_t) type << 16) | code) {
831
3.19k
    case  ((uint32_t) 0 << 16) | 0:
832
3.19k
        return OFPERR_OFPHFC_INCOMPATIBLE;
833
625
    case  ((uint32_t) 0 << 16) | 1:
834
625
        return OFPERR_OFPHFC_EPERM;
835
412
    case  ((uint32_t) 1 << 16) | 0:
836
412
        return OFPERR_OFPBRC_BAD_VERSION;
837
38
    case  ((uint32_t) 1 << 16) | 1:
838
38
        return OFPERR_OFPBRC_BAD_TYPE;
839
129
    case  ((uint32_t) 1 << 16) | 2:
840
129
        return OFPERR_OFPBRC_BAD_STAT;
841
283
    case  ((uint32_t) 1 << 16) | 3:
842
283
        return OFPERR_OFPBRC_BAD_VENDOR;
843
408
    case  ((uint32_t) 1 << 16) | 4:
844
408
        return OFPERR_OFPBRC_BAD_SUBTYPE;
845
351
    case  ((uint32_t) 1 << 16) | 5:
846
351
        return OFPERR_OFPBRC_EPERM;
847
1.18k
    case  ((uint32_t) 1 << 16) | 6:
848
1.18k
        return OFPERR_OFPBRC_BAD_LEN;
849
125
    case  ((uint32_t) 1 << 16) | 7:
850
125
        return OFPERR_OFPBRC_BUFFER_EMPTY;
851
1.56k
    case  ((uint32_t) 1 << 16) | 8:
852
1.56k
        return OFPERR_OFPBRC_BUFFER_UNKNOWN;
853
1.18k
    case  ((uint32_t) 1 << 16) | 9:
854
1.18k
        return OFPERR_OFPBRC_BAD_TABLE_ID;
855
515
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 514:
856
515
        return OFPERR_OFPBRC_BAD_PORT;
857
3.20k
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 256:
858
3.20k
        return OFPERR_NXBRC_NXM_INVALID;
859
3.28k
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 257:
860
3.28k
        return OFPERR_NXBRC_NXM_BAD_TYPE;
861
27
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 515:
862
27
        return OFPERR_NXBRC_MUST_BE_ZERO;
863
502
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 516:
864
502
        return OFPERR_NXBRC_BAD_REASON;
865
194
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 520:
866
194
        return OFPERR_NXBRC_FM_BAD_EVENT;
867
222
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 521:
868
222
        return OFPERR_NXBRC_UNENCODABLE_ERROR;
869
135
    case  ((uint32_t) 2 << 16) | 0:
870
135
        return OFPERR_OFPBAC_BAD_TYPE;
871
66
    case  ((uint32_t) 2 << 16) | 1:
872
66
        return OFPERR_OFPBAC_BAD_LEN;
873
713
    case  ((uint32_t) 2 << 16) | 2:
874
713
        return OFPERR_OFPBAC_BAD_VENDOR;
875
114
    case  ((uint32_t) 2 << 16) | 3:
876
114
        return OFPERR_OFPBAC_BAD_VENDOR_TYPE;
877
454
    case  ((uint32_t) 2 << 16) | 4:
878
454
        return OFPERR_OFPBAC_BAD_OUT_PORT;
879
67
    case  ((uint32_t) 2 << 16) | 5:
880
67
        return OFPERR_OFPBAC_BAD_ARGUMENT;
881
1.11k
    case  ((uint32_t) 2 << 16) | 6:
882
1.11k
        return OFPERR_OFPBAC_EPERM;
883
66
    case  ((uint32_t) 2 << 16) | 7:
884
66
        return OFPERR_OFPBAC_TOO_MANY;
885
4.24k
    case  ((uint32_t) 2 << 16) | 8:
886
4.24k
        return OFPERR_OFPBAC_BAD_QUEUE;
887
292
    case  ((uint32_t) 2 << 16) | 9:
888
292
        return OFPERR_OFPBAC_BAD_OUT_GROUP;
889
66
    case  ((uint32_t) 2 << 16) | 10:
890
66
        return OFPERR_OFPBAC_MATCH_INCONSISTENT;
891
235
    case  ((uint32_t) 2 << 16) | 11:
892
235
        return OFPERR_OFPBAC_UNSUPPORTED_ORDER;
893
5.31k
    case  ((uint32_t) 2 << 16) | 12:
894
5.31k
        return OFPERR_OFPBAC_BAD_TAG;
895
66
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 523:
896
66
        return OFPERR_OFPBAC_BAD_SET_TYPE;
897
1.47k
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 524:
898
1.47k
        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
66
    case (0x2320ULL << 32) |  ((uint32_t) 2 << 16) | 526:
904
66
        return OFPERR_NXBAC_BAD_CONJUNCTION;
905
34
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 265:
906
34
        return OFPERR_NXBAC_CT_DATAPATH_SUPPORT;
907
69
    case  ((uint32_t) 3 << 16) | 0:
908
69
        return OFPERR_OFPBIC_UNKNOWN_INST;
909
3.18k
    case  ((uint32_t) 3 << 16) | 1:
910
3.18k
        return OFPERR_OFPBIC_UNSUP_INST;
911
896
    case  ((uint32_t) 3 << 16) | 2:
912
896
        return OFPERR_OFPBIC_BAD_TABLE_ID;
913
197
    case  ((uint32_t) 3 << 16) | 3:
914
197
        return OFPERR_OFPBIC_UNSUP_METADATA;
915
68
    case  ((uint32_t) 3 << 16) | 4:
916
68
        return OFPERR_OFPBIC_UNSUP_METADATA_MASK;
917
34
    case  ((uint32_t) 3 << 16) | 5:
918
34
        return OFPERR_OFPBIC_BAD_EXPERIMENTER;
919
34
    case (0x2320ULL << 32) |  ((uint32_t) 3 << 16) | 256:
920
34
        return OFPERR_OFPBIC_DUP_INST;
921
735
    case  ((uint32_t) 4 << 16) | 0:
922
735
        return OFPERR_OFPBMC_BAD_TYPE;
923
129
    case  ((uint32_t) 4 << 16) | 1:
924
129
        return OFPERR_OFPBMC_BAD_LEN;
925
66
    case  ((uint32_t) 4 << 16) | 2:
926
66
        return OFPERR_OFPBMC_BAD_TAG;
927
66
    case  ((uint32_t) 4 << 16) | 3:
928
66
        return OFPERR_OFPBMC_BAD_DL_ADDR_MASK;
929
487
    case  ((uint32_t) 4 << 16) | 4:
930
487
        return OFPERR_OFPBMC_BAD_NW_ADDR_MASK;
931
1.27k
    case  ((uint32_t) 4 << 16) | 5:
932
1.27k
        return OFPERR_OFPBMC_BAD_WILDCARDS;
933
66
    case  ((uint32_t) 4 << 16) | 6:
934
66
        return OFPERR_OFPBMC_BAD_FIELD;
935
67
    case  ((uint32_t) 4 << 16) | 7:
936
67
        return OFPERR_OFPBMC_BAD_VALUE;
937
224
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 259:
938
224
        return OFPERR_OFPBMC_BAD_MASK;
939
1.33k
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 260:
940
1.33k
        return OFPERR_OFPBMC_BAD_PREREQ;
941
83
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 261:
942
83
        return OFPERR_OFPBMC_DUP_FIELD;
943
48
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 264:
944
48
        return OFPERR_NXBMC_CT_DATAPATH_SUPPORT;
945
219
    case  ((uint32_t) 5 << 16) | 0:
946
219
        return OFPERR_OFPFMFC_UNKNOWN;
947
88
    case  ((uint32_t) 5 << 16) | 1:
948
88
        return OFPERR_OFPFMFC_TABLE_FULL;
949
639
    case  ((uint32_t) 5 << 16) | 2:
950
639
        return OFPERR_OFPFMFC_BAD_TABLE_ID;
951
194
    case  ((uint32_t) 5 << 16) | 3:
952
194
        return OFPERR_OFPFMFC_OVERLAP;
953
922
    case  ((uint32_t) 5 << 16) | 4:
954
922
        return OFPERR_OFPFMFC_EPERM;
955
1.49k
    case  ((uint32_t) 5 << 16) | 5:
956
1.49k
        return OFPERR_OFPFMFC_BAD_TIMEOUT;
957
35
    case  ((uint32_t) 5 << 16) | 6:
958
35
        return OFPERR_OFPFMFC_BAD_COMMAND;
959
34
    case (0x2320ULL << 32) |  ((uint32_t) 5 << 16) | 258:
960
34
        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
2.82k
    case  ((uint32_t) 6 << 16) | 0:
968
2.82k
        return OFPERR_OFPGMFC_GROUP_EXISTS;
969
1.24k
    case  ((uint32_t) 6 << 16) | 1:
970
1.24k
        return OFPERR_OFPGMFC_INVALID_GROUP;
971
4.65k
    case  ((uint32_t) 6 << 16) | 2:
972
4.65k
        return OFPERR_OFPGMFC_WEIGHT_UNSUPPORTED;
973
12
    case  ((uint32_t) 6 << 16) | 3:
974
12
        return OFPERR_OFPGMFC_OUT_OF_GROUPS;
975
5.06k
    case  ((uint32_t) 6 << 16) | 4:
976
5.06k
        return OFPERR_OFPGMFC_OUT_OF_BUCKETS;
977
1.81k
    case  ((uint32_t) 6 << 16) | 5:
978
1.81k
        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
444
    case  ((uint32_t) 6 << 16) | 8:
984
444
        return OFPERR_OFPGMFC_UNKNOWN_GROUP;
985
837
    case  ((uint32_t) 7 << 16) | 0:
986
837
        return OFPERR_OFPPMFC_BAD_PORT;
987
66
    case  ((uint32_t) 7 << 16) | 1:
988
66
        return OFPERR_OFPPMFC_BAD_HW_ADDR;
989
468
    case  ((uint32_t) 7 << 16) | 2:
990
468
        return OFPERR_OFPPMFC_BAD_CONFIG;
991
1.15k
    case  ((uint32_t) 7 << 16) | 3:
992
1.15k
        return OFPERR_OFPPMFC_BAD_ADVERTISE;
993
79
    case  ((uint32_t) 8 << 16) | 0:
994
79
        return OFPERR_OFPTMFC_BAD_TABLE;
995
2.14k
    case  ((uint32_t) 8 << 16) | 1:
996
2.14k
        return OFPERR_OFPTMFC_BAD_CONFIG;
997
45
    case  ((uint32_t) 9 << 16) | 0:
998
45
        return OFPERR_OFPQOFC_BAD_PORT;
999
194
    case  ((uint32_t) 9 << 16) | 1:
1000
194
        return OFPERR_OFPQOFC_BAD_QUEUE;
1001
145
    case  ((uint32_t) 9 << 16) | 2:
1002
145
        return OFPERR_OFPQOFC_EPERM;
1003
694
    case  ((uint32_t) 10 << 16) | 0:
1004
694
        return OFPERR_OFPSCFC_BAD_FLAGS;
1005
66
    case  ((uint32_t) 10 << 16) | 1:
1006
66
        return OFPERR_OFPSCFC_BAD_LEN;
1007
170
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 513:
1008
170
        return OFPERR_OFPRRFC_BAD_ROLE;
1009
824
    case (0x2320ULL << 32) |  ((uint32_t) 13 << 16) | 2:
1010
824
        return OFPERR_OFPBPC_BAD_TYPE;
1011
1.34k
    case (0x2320ULL << 32) |  ((uint32_t) 13 << 16) | 3:
1012
1.34k
        return OFPERR_OFPBPC_BAD_LEN;
1013
18
    case (0x2320ULL << 32) |  ((uint32_t) 13 << 16) | 4:
1014
18
        return OFPERR_OFPBPC_BAD_VALUE;
1015
84
    case (0x2320ULL << 32) |  ((uint32_t) 14 << 16) | 3:
1016
84
        return OFPERR_OFPBPC_TOO_MANY;
1017
34
    case (0x2320ULL << 32) |  ((uint32_t) 14 << 16) | 4:
1018
34
        return OFPERR_OFPBPC_DUP_TYPE;
1019
2.82k
    case (0x2320ULL << 32) |  ((uint32_t) 14 << 16) | 5:
1020
2.82k
        return OFPERR_OFPBPC_BAD_EXPERIMENTER;
1021
1.88k
    case (0x2320ULL << 32) |  ((uint32_t) 14 << 16) | 6:
1022
1.88k
        return OFPERR_OFPBPC_BAD_EXP_TYPE;
1023
899
    case (0x2320ULL << 32) |  ((uint32_t) 14 << 16) | 7:
1024
899
        return OFPERR_OFPBPC_BAD_EXP_VALUE;
1025
70
    case (0x2320ULL << 32) |  ((uint32_t) 14 << 16) | 8:
1026
70
        return OFPERR_OFPBPC_EPERM;
1027
67
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 517:
1028
67
        return OFPERR_OFPMOFC_MONITOR_EXISTS;
1029
740
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 519:
1030
740
        return OFPERR_OFPMOFC_UNKNOWN_MONITOR;
1031
18
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 518:
1032
18
        return OFPERR_OFPMOFC_BAD_FLAGS;
1033
39
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 527:
1034
39
        return OFPERR_NXTTMFC_BAD_COMMAND;
1035
34
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 528:
1036
34
        return OFPERR_NXTTMFC_BAD_OPT_LEN;
1037
346
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 529:
1038
346
        return OFPERR_NXTTMFC_BAD_FIELD_IDX;
1039
128
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 530:
1040
128
        return OFPERR_NXTTMFC_TABLE_FULL;
1041
35
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 531:
1042
35
        return OFPERR_NXTTMFC_ALREADY_MAPPED;
1043
139
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 532:
1044
139
        return OFPERR_NXTTMFC_DUP_ENTRY;
1045
34
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 537:
1046
34
        return OFPERR_NXTTMFC_INVALID_TLV_DEL;
1047
1.10k
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 533:
1048
1.10k
        return OFPERR_NXR_NOT_SUPPORTED;
1049
35
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 534:
1050
35
        return OFPERR_NXR_STALE;
1051
809
    case (0x2320ULL << 32) |  ((uint32_t) 1 << 16) | 535:
1052
809
        return OFPERR_NXST_NOT_CONFIGURED;
1053
104k
    }
1054
1055
25.9k
    return 0;
1056
104k
}
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
253k
{
1267
253k
    switch (((uint64_t) vendor << 32) | ((uint32_t) type << 16) | code) {
1268
4.83k
    case  ((uint32_t) 0 << 16) | 0:
1269
4.83k
        return OFPERR_OFPHFC_INCOMPATIBLE;
1270
76
    case  ((uint32_t) 0 << 16) | 1:
1271
76
        return OFPERR_OFPHFC_EPERM;
1272
237
    case  ((uint32_t) 1 << 16) | 0:
1273
237
        return OFPERR_OFPBRC_BAD_VERSION;
1274
547
    case  ((uint32_t) 1 << 16) | 1:
1275
547
        return OFPERR_OFPBRC_BAD_TYPE;
1276
18.4k
    case  ((uint32_t) 1 << 16) | 2:
1277
18.4k
        return OFPERR_OFPBRC_BAD_STAT;
1278
251
    case  ((uint32_t) 1 << 16) | 3:
1279
251
        return OFPERR_OFPBRC_BAD_VENDOR;
1280
194
    case  ((uint32_t) 1 << 16) | 4:
1281
194
        return OFPERR_OFPBRC_BAD_SUBTYPE;
1282
1.93k
    case  ((uint32_t) 1 << 16) | 5:
1283
1.93k
        return OFPERR_OFPBRC_EPERM;
1284
434
    case  ((uint32_t) 1 << 16) | 6:
1285
434
        return OFPERR_OFPBRC_BAD_LEN;
1286
698
    case  ((uint32_t) 1 << 16) | 7:
1287
698
        return OFPERR_OFPBRC_BUFFER_EMPTY;
1288
1.08k
    case  ((uint32_t) 1 << 16) | 8:
1289
1.08k
        return OFPERR_OFPBRC_BUFFER_UNKNOWN;
1290
91
    case  ((uint32_t) 1 << 16) | 9:
1291
91
        return OFPERR_OFPBRC_BAD_TABLE_ID;
1292
66
    case  ((uint32_t) 1 << 16) | 10:
1293
66
        return OFPERR_OFPBRC_IS_SECONDARY;
1294
69
    case  ((uint32_t) 1 << 16) | 11:
1295
69
        return OFPERR_OFPBRC_BAD_PORT;
1296
206
    case  ((uint32_t) 1 << 16) | 12:
1297
206
        return OFPERR_OFPBRC_BAD_PACKET;
1298
564
    case (0x2320ULL << 32) |  ((uint32_t) 2 << 16) | 0:
1299
564
        return OFPERR_NXBRC_NXM_INVALID;
1300
200
    case (0x2320ULL << 32) |  ((uint32_t) 3 << 16) | 0:
1301
200
        return OFPERR_NXBRC_NXM_BAD_TYPE;
1302
490
    case (0x2320ULL << 32) |  ((uint32_t) 4 << 16) | 0:
1303
490
        return OFPERR_NXBRC_MUST_BE_ZERO;
1304
67
    case (0x2320ULL << 32) |  ((uint32_t) 5 << 16) | 0:
1305
67
        return OFPERR_NXBRC_BAD_REASON;
1306
9.38k
    case (0x2320ULL << 32) |  ((uint32_t) 9 << 16) | 0:
1307
9.38k
        return OFPERR_NXBRC_FM_BAD_EVENT;
1308
4.87k
    case (0x2320ULL << 32) |  ((uint32_t) 10 << 16) | 0:
1309
4.87k
        return OFPERR_NXBRC_UNENCODABLE_ERROR;
1310
790
    case  ((uint32_t) 2 << 16) | 0:
1311
790
        return OFPERR_OFPBAC_BAD_TYPE;
1312
653
    case  ((uint32_t) 2 << 16) | 1:
1313
653
        return OFPERR_OFPBAC_BAD_LEN;
1314
922
    case  ((uint32_t) 2 << 16) | 2:
1315
922
        return OFPERR_OFPBAC_BAD_VENDOR;
1316
57
    case  ((uint32_t) 2 << 16) | 3:
1317
57
        return OFPERR_OFPBAC_BAD_VENDOR_TYPE;
1318
36
    case  ((uint32_t) 2 << 16) | 4:
1319
36
        return OFPERR_OFPBAC_BAD_OUT_PORT;
1320
543
    case  ((uint32_t) 2 << 16) | 5:
1321
543
        return OFPERR_OFPBAC_BAD_ARGUMENT;
1322
218
    case  ((uint32_t) 2 << 16) | 6:
1323
218
        return OFPERR_OFPBAC_EPERM;
1324
152
    case  ((uint32_t) 2 << 16) | 7:
1325
152
        return OFPERR_OFPBAC_TOO_MANY;
1326
89
    case  ((uint32_t) 2 << 16) | 8:
1327
89
        return OFPERR_OFPBAC_BAD_QUEUE;
1328
66
    case  ((uint32_t) 2 << 16) | 9:
1329
66
        return OFPERR_OFPBAC_BAD_OUT_GROUP;
1330
197
    case  ((uint32_t) 2 << 16) | 10:
1331
197
        return OFPERR_OFPBAC_MATCH_INCONSISTENT;
1332
379
    case  ((uint32_t) 2 << 16) | 11:
1333
379
        return OFPERR_OFPBAC_UNSUPPORTED_ORDER;
1334
74
    case  ((uint32_t) 2 << 16) | 12:
1335
74
        return OFPERR_OFPBAC_BAD_TAG;
1336
195
    case  ((uint32_t) 2 << 16) | 13:
1337
195
        return OFPERR_OFPBAC_BAD_SET_TYPE;
1338
901
    case  ((uint32_t) 2 << 16) | 14:
1339
901
        return OFPERR_OFPBAC_BAD_SET_LEN;
1340
18
    case  ((uint32_t) 2 << 16) | 15:
1341
18
        return OFPERR_OFPBAC_BAD_SET_ARGUMENT;
1342
195
    case (0x2320ULL << 32) |  ((uint32_t) 11 << 16) | 0:
1343
195
        return OFPERR_NXBAC_MUST_BE_ZERO;
1344
466
    case (0x2320ULL << 32) |  ((uint32_t) 15 << 16) | 0:
1345
466
        return OFPERR_NXBAC_BAD_CONJUNCTION;
1346
1.97k
    case (0x2320ULL << 32) |  ((uint32_t) 42 << 16) | 0:
1347
1.97k
        return OFPERR_NXBAC_CT_DATAPATH_SUPPORT;
1348
255
    case  ((uint32_t) 3 << 16) | 0:
1349
255
        return OFPERR_OFPBIC_UNKNOWN_INST;
1350
66
    case  ((uint32_t) 3 << 16) | 1:
1351
66
        return OFPERR_OFPBIC_UNSUP_INST;
1352
2.04k
    case  ((uint32_t) 3 << 16) | 2:
1353
2.04k
        return OFPERR_OFPBIC_BAD_TABLE_ID;
1354
36
    case  ((uint32_t) 3 << 16) | 3:
1355
36
        return OFPERR_OFPBIC_UNSUP_METADATA;
1356
968
    case  ((uint32_t) 3 << 16) | 4:
1357
968
        return OFPERR_OFPBIC_UNSUP_METADATA_MASK;
1358
199
    case  ((uint32_t) 3 << 16) | 5:
1359
199
        return OFPERR_OFPBIC_BAD_EXPERIMENTER;
1360
538
    case  ((uint32_t) 3 << 16) | 6:
1361
538
        return OFPERR_OFPBIC_BAD_EXP_TYPE;
1362
5.12k
    case  ((uint32_t) 3 << 16) | 7:
1363
5.12k
        return OFPERR_OFPBIC_BAD_LEN;
1364
79
    case  ((uint32_t) 3 << 16) | 8:
1365
79
        return OFPERR_OFPBIC_EPERM;
1366
196
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2600 << 16) | 0:
1367
196
        return OFPERR_OFPBIC_DUP_INST;
1368
35
    case  ((uint32_t) 4 << 16) | 0:
1369
35
        return OFPERR_OFPBMC_BAD_TYPE;
1370
1.31k
    case  ((uint32_t) 4 << 16) | 1:
1371
1.31k
        return OFPERR_OFPBMC_BAD_LEN;
1372
5.92k
    case  ((uint32_t) 4 << 16) | 2:
1373
5.92k
        return OFPERR_OFPBMC_BAD_TAG;
1374
95
    case  ((uint32_t) 4 << 16) | 3:
1375
95
        return OFPERR_OFPBMC_BAD_DL_ADDR_MASK;
1376
1.54k
    case  ((uint32_t) 4 << 16) | 4:
1377
1.54k
        return OFPERR_OFPBMC_BAD_NW_ADDR_MASK;
1378
741
    case  ((uint32_t) 4 << 16) | 5:
1379
741
        return OFPERR_OFPBMC_BAD_WILDCARDS;
1380
81
    case  ((uint32_t) 4 << 16) | 6:
1381
81
        return OFPERR_OFPBMC_BAD_FIELD;
1382
1.70k
    case  ((uint32_t) 4 << 16) | 7:
1383
1.70k
        return OFPERR_OFPBMC_BAD_VALUE;
1384
671
    case  ((uint32_t) 4 << 16) | 8:
1385
671
        return OFPERR_OFPBMC_BAD_MASK;
1386
66
    case  ((uint32_t) 4 << 16) | 9:
1387
66
        return OFPERR_OFPBMC_BAD_PREREQ;
1388
7.75k
    case  ((uint32_t) 4 << 16) | 10:
1389
7.75k
        return OFPERR_OFPBMC_DUP_FIELD;
1390
81
    case  ((uint32_t) 4 << 16) | 11:
1391
81
        return OFPERR_OFPBMC_EPERM;
1392
182
    case (0x2320ULL << 32) |  ((uint32_t) 43 << 16) | 0:
1393
182
        return OFPERR_NXBMC_CT_DATAPATH_SUPPORT;
1394
1.73k
    case  ((uint32_t) 5 << 16) | 0:
1395
1.73k
        return OFPERR_OFPFMFC_UNKNOWN;
1396
339
    case  ((uint32_t) 5 << 16) | 1:
1397
339
        return OFPERR_OFPFMFC_TABLE_FULL;
1398
1.42k
    case  ((uint32_t) 5 << 16) | 2:
1399
1.42k
        return OFPERR_OFPFMFC_BAD_TABLE_ID;
1400
348
    case  ((uint32_t) 5 << 16) | 3:
1401
348
        return OFPERR_OFPFMFC_OVERLAP;
1402
605
    case  ((uint32_t) 5 << 16) | 4:
1403
605
        return OFPERR_OFPFMFC_EPERM;
1404
197
    case  ((uint32_t) 5 << 16) | 5:
1405
197
        return OFPERR_OFPFMFC_BAD_TIMEOUT;
1406
321
    case  ((uint32_t) 5 << 16) | 6:
1407
321
        return OFPERR_OFPFMFC_BAD_COMMAND;
1408
196
    case  ((uint32_t) 5 << 16) | 7:
1409
196
        return OFPERR_OFPFMFC_BAD_FLAGS;
1410
201
    case (0x2320ULL << 32) |  ((uint32_t) 12 << 16) | 0:
1411
201
        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
196
    case (0x2320ULL << 32) |  ((uint32_t) 37 << 16) | 0:
1415
196
        return OFPERR_NXFMFC_INVALID_TLV_FIELD;
1416
662
    case  ((uint32_t) 6 << 16) | 0:
1417
662
        return OFPERR_OFPGMFC_GROUP_EXISTS;
1418
4.10k
    case  ((uint32_t) 6 << 16) | 1:
1419
4.10k
        return OFPERR_OFPGMFC_INVALID_GROUP;
1420
75
    case  ((uint32_t) 6 << 16) | 2:
1421
75
        return OFPERR_OFPGMFC_WEIGHT_UNSUPPORTED;
1422
974
    case  ((uint32_t) 6 << 16) | 3:
1423
974
        return OFPERR_OFPGMFC_OUT_OF_GROUPS;
1424
647
    case  ((uint32_t) 6 << 16) | 4:
1425
647
        return OFPERR_OFPGMFC_OUT_OF_BUCKETS;
1426
96
    case  ((uint32_t) 6 << 16) | 5:
1427
96
        return OFPERR_OFPGMFC_CHAINING_UNSUPPORTED;
1428
679
    case  ((uint32_t) 6 << 16) | 6:
1429
679
        return OFPERR_OFPGMFC_WATCH_UNSUPPORTED;
1430
1.21k
    case  ((uint32_t) 6 << 16) | 7:
1431
1.21k
        return OFPERR_OFPGMFC_LOOP;
1432
1.04k
    case  ((uint32_t) 6 << 16) | 8:
1433
1.04k
        return OFPERR_OFPGMFC_UNKNOWN_GROUP;
1434
2.23k
    case  ((uint32_t) 6 << 16) | 9:
1435
2.23k
        return OFPERR_OFPGMFC_CHAINED_GROUP;
1436
68
    case  ((uint32_t) 6 << 16) | 10:
1437
68
        return OFPERR_OFPGMFC_BAD_TYPE;
1438
198
    case  ((uint32_t) 6 << 16) | 11:
1439
198
        return OFPERR_OFPGMFC_BAD_COMMAND;
1440
1.17k
    case  ((uint32_t) 6 << 16) | 12:
1441
1.17k
        return OFPERR_OFPGMFC_BAD_BUCKET;
1442
10.0k
    case  ((uint32_t) 6 << 16) | 13:
1443
10.0k
        return OFPERR_OFPGMFC_BAD_WATCH;
1444
197
    case  ((uint32_t) 6 << 16) | 14:
1445
197
        return OFPERR_OFPGMFC_EPERM;
1446
3.77k
    case  ((uint32_t) 7 << 16) | 0:
1447
3.77k
        return OFPERR_OFPPMFC_BAD_PORT;
1448
468
    case  ((uint32_t) 7 << 16) | 1:
1449
468
        return OFPERR_OFPPMFC_BAD_HW_ADDR;
1450
1.10k
    case  ((uint32_t) 7 << 16) | 2:
1451
1.10k
        return OFPERR_OFPPMFC_BAD_CONFIG;
1452
275
    case  ((uint32_t) 7 << 16) | 3:
1453
275
        return OFPERR_OFPPMFC_BAD_ADVERTISE;
1454
301
    case  ((uint32_t) 7 << 16) | 4:
1455
301
        return OFPERR_OFPPMFC_EPERM;
1456
1.30k
    case  ((uint32_t) 8 << 16) | 0:
1457
1.30k
        return OFPERR_OFPTMFC_BAD_TABLE;
1458
3.74k
    case  ((uint32_t) 8 << 16) | 1:
1459
3.74k
        return OFPERR_OFPTMFC_BAD_CONFIG;
1460
82
    case  ((uint32_t) 8 << 16) | 2:
1461
82
        return OFPERR_OFPTMFC_EPERM;
1462
66
    case  ((uint32_t) 9 << 16) | 0:
1463
66
        return OFPERR_OFPQOFC_BAD_PORT;
1464
1.54k
    case  ((uint32_t) 9 << 16) | 1:
1465
1.54k
        return OFPERR_OFPQOFC_BAD_QUEUE;
1466
1.11k
    case  ((uint32_t) 9 << 16) | 2:
1467
1.11k
        return OFPERR_OFPQOFC_EPERM;
1468
423
    case  ((uint32_t) 10 << 16) | 0:
1469
423
        return OFPERR_OFPSCFC_BAD_FLAGS;
1470
531
    case  ((uint32_t) 10 << 16) | 1:
1471
531
        return OFPERR_OFPSCFC_BAD_LEN;
1472
3.81k
    case  ((uint32_t) 10 << 16) | 2:
1473
3.81k
        return OFPERR_OFPSCFC_EPERM;
1474
66
    case  ((uint32_t) 11 << 16) | 0:
1475
66
        return OFPERR_OFPRRFC_STALE;
1476
1.14k
    case  ((uint32_t) 11 << 16) | 1:
1477
1.14k
        return OFPERR_OFPRRFC_UNSUP;
1478
195
    case  ((uint32_t) 11 << 16) | 2:
1479
195
        return OFPERR_OFPRRFC_BAD_ROLE;
1480
5.94k
    case (0x2320ULL << 32) |  ((uint32_t) 25 << 16) | 0:
1481
5.94k
        return OFPERR_OFPBPC_BAD_TYPE;
1482
2.31k
    case (0x2320ULL << 32) |  ((uint32_t) 26 << 16) | 0:
1483
2.31k
        return OFPERR_OFPBPC_BAD_LEN;
1484
200
    case (0x2320ULL << 32) |  ((uint32_t) 27 << 16) | 0:
1485
200
        return OFPERR_OFPBPC_BAD_VALUE;
1486
198
    case (0x2320ULL << 32) |  ((uint32_t) 28 << 16) | 0:
1487
198
        return OFPERR_OFPBPC_TOO_MANY;
1488
35
    case (0x2320ULL << 32) |  ((uint32_t) 29 << 16) | 0:
1489
35
        return OFPERR_OFPBPC_DUP_TYPE;
1490
34
    case (0x2320ULL << 32) |  ((uint32_t) 30 << 16) | 0:
1491
34
        return OFPERR_OFPBPC_BAD_EXPERIMENTER;
1492
22
    case (0x2320ULL << 32) |  ((uint32_t) 31 << 16) | 0:
1493
22
        return OFPERR_OFPBPC_BAD_EXP_TYPE;
1494
66
    case (0x2320ULL << 32) |  ((uint32_t) 32 << 16) | 0:
1495
66
        return OFPERR_OFPBPC_BAD_EXP_VALUE;
1496
2.23k
    case (0x2320ULL << 32) |  ((uint32_t) 33 << 16) | 0:
1497
2.23k
        return OFPERR_OFPBPC_EPERM;
1498
652
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 0:
1499
652
        return OFPERR_OFPMOFC_MONITOR_EXISTS;
1500
772
    case (0x2320ULL << 32) |  ((uint32_t) 8 << 16) | 0:
1501
772
        return OFPERR_OFPMOFC_UNKNOWN_MONITOR;
1502
2.57k
    case (0x2320ULL << 32) |  ((uint32_t) 7 << 16) | 0:
1503
2.57k
        return OFPERR_OFPMOFC_BAD_FLAGS;
1504
2.58k
    case (0x2320ULL << 32) |  ((uint32_t) 16 << 16) | 0:
1505
2.58k
        return OFPERR_NXTTMFC_BAD_COMMAND;
1506
34
    case (0x2320ULL << 32) |  ((uint32_t) 17 << 16) | 0:
1507
34
        return OFPERR_NXTTMFC_BAD_OPT_LEN;
1508
5.66k
    case (0x2320ULL << 32) |  ((uint32_t) 18 << 16) | 0:
1509
5.66k
        return OFPERR_NXTTMFC_BAD_FIELD_IDX;
1510
2.78k
    case (0x2320ULL << 32) |  ((uint32_t) 19 << 16) | 0:
1511
2.78k
        return OFPERR_NXTTMFC_TABLE_FULL;
1512
66
    case (0x2320ULL << 32) |  ((uint32_t) 20 << 16) | 0:
1513
66
        return OFPERR_NXTTMFC_ALREADY_MAPPED;
1514
380
    case (0x2320ULL << 32) |  ((uint32_t) 21 << 16) | 0:
1515
380
        return OFPERR_NXTTMFC_DUP_ENTRY;
1516
67
    case (0x2320ULL << 32) |  ((uint32_t) 38 << 16) | 0:
1517
67
        return OFPERR_NXTTMFC_INVALID_TLV_DEL;
1518
194
    case (0x2320ULL << 32) |  ((uint32_t) 34 << 16) | 0:
1519
194
        return OFPERR_NXR_NOT_SUPPORTED;
1520
134
    case (0x2320ULL << 32) |  ((uint32_t) 35 << 16) | 0:
1521
134
        return OFPERR_NXR_STALE;
1522
2.24k
    case (0x2320ULL << 32) |  ((uint32_t) 36 << 16) | 0:
1523
2.24k
        return OFPERR_NXST_NOT_CONFIGURED;
1524
253k
    }
1525
1526
90.4k
    return 0;
1527
253k
}
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
149k
{
1738
149k
    switch (((uint64_t) vendor << 32) | ((uint32_t) type << 16) | code) {
1739
3.82k
    case  ((uint32_t) 0 << 16) | 0:
1740
3.82k
        return OFPERR_OFPHFC_INCOMPATIBLE;
1741
77
    case  ((uint32_t) 0 << 16) | 1:
1742
77
        return OFPERR_OFPHFC_EPERM;
1743
69
    case  ((uint32_t) 1 << 16) | 0:
1744
69
        return OFPERR_OFPBRC_BAD_VERSION;
1745
71
    case  ((uint32_t) 1 << 16) | 1:
1746
71
        return OFPERR_OFPBRC_BAD_TYPE;
1747
688
    case  ((uint32_t) 1 << 16) | 2:
1748
688
        return OFPERR_OFPBRC_BAD_STAT;
1749
635
    case  ((uint32_t) 1 << 16) | 3:
1750
635
        return OFPERR_OFPBRC_BAD_VENDOR;
1751
34
    case  ((uint32_t) 1 << 16) | 4:
1752
34
        return OFPERR_OFPBRC_BAD_SUBTYPE;
1753
1.11k
    case  ((uint32_t) 1 << 16) | 5:
1754
1.11k
        return OFPERR_OFPBRC_EPERM;
1755
441
    case  ((uint32_t) 1 << 16) | 6:
1756
441
        return OFPERR_OFPBRC_BAD_LEN;
1757
188
    case  ((uint32_t) 1 << 16) | 7:
1758
188
        return OFPERR_OFPBRC_BUFFER_EMPTY;
1759
450
    case  ((uint32_t) 1 << 16) | 8:
1760
450
        return OFPERR_OFPBRC_BUFFER_UNKNOWN;
1761
18
    case  ((uint32_t) 1 << 16) | 9:
1762
18
        return OFPERR_OFPBRC_BAD_TABLE_ID;
1763
368
    case  ((uint32_t) 1 << 16) | 10:
1764
368
        return OFPERR_OFPBRC_IS_SECONDARY;
1765
212
    case  ((uint32_t) 1 << 16) | 11:
1766
212
        return OFPERR_OFPBRC_BAD_PORT;
1767
1.11k
    case  ((uint32_t) 1 << 16) | 12:
1768
1.11k
        return OFPERR_OFPBRC_BAD_PACKET;
1769
101
    case  ((uint32_t) 1 << 16) | 13:
1770
101
        return OFPERR_OFPBRC_MULTIPART_BUFFER_OVERFLOW;
1771
34
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2640 << 16) | 0:
1772
34
        return OFPERR_OFPBRC_MULTIPART_REQUEST_TIMEOUT;
1773
34
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2641 << 16) | 0:
1774
34
        return OFPERR_OFPBRC_MULTIPART_REPLY_TIMEOUT;
1775
67
    case (0x2320ULL << 32) |  ((uint32_t) 2 << 16) | 0:
1776
67
        return OFPERR_NXBRC_NXM_INVALID;
1777
107
    case (0x2320ULL << 32) |  ((uint32_t) 3 << 16) | 0:
1778
107
        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
35
    case (0x2320ULL << 32) |  ((uint32_t) 5 << 16) | 0:
1782
35
        return OFPERR_NXBRC_BAD_REASON;
1783
714
    case (0x2320ULL << 32) |  ((uint32_t) 9 << 16) | 0:
1784
714
        return OFPERR_NXBRC_FM_BAD_EVENT;
1785
194
    case (0x2320ULL << 32) |  ((uint32_t) 10 << 16) | 0:
1786
194
        return OFPERR_NXBRC_UNENCODABLE_ERROR;
1787
408
    case  ((uint32_t) 2 << 16) | 0:
1788
408
        return OFPERR_OFPBAC_BAD_TYPE;
1789
465
    case  ((uint32_t) 2 << 16) | 1:
1790
465
        return OFPERR_OFPBAC_BAD_LEN;
1791
2.53k
    case  ((uint32_t) 2 << 16) | 2:
1792
2.53k
        return OFPERR_OFPBAC_BAD_VENDOR;
1793
4.97k
    case  ((uint32_t) 2 << 16) | 3:
1794
4.97k
        return OFPERR_OFPBAC_BAD_VENDOR_TYPE;
1795
1.97k
    case  ((uint32_t) 2 << 16) | 4:
1796
1.97k
        return OFPERR_OFPBAC_BAD_OUT_PORT;
1797
2.06k
    case  ((uint32_t) 2 << 16) | 5:
1798
2.06k
        return OFPERR_OFPBAC_BAD_ARGUMENT;
1799
75
    case  ((uint32_t) 2 << 16) | 6:
1800
75
        return OFPERR_OFPBAC_EPERM;
1801
651
    case  ((uint32_t) 2 << 16) | 7:
1802
651
        return OFPERR_OFPBAC_TOO_MANY;
1803
136
    case  ((uint32_t) 2 << 16) | 8:
1804
136
        return OFPERR_OFPBAC_BAD_QUEUE;
1805
998
    case  ((uint32_t) 2 << 16) | 9:
1806
998
        return OFPERR_OFPBAC_BAD_OUT_GROUP;
1807
86
    case  ((uint32_t) 2 << 16) | 10:
1808
86
        return OFPERR_OFPBAC_MATCH_INCONSISTENT;
1809
349
    case  ((uint32_t) 2 << 16) | 11:
1810
349
        return OFPERR_OFPBAC_UNSUPPORTED_ORDER;
1811
350
    case  ((uint32_t) 2 << 16) | 12:
1812
350
        return OFPERR_OFPBAC_BAD_TAG;
1813
201
    case  ((uint32_t) 2 << 16) | 13:
1814
201
        return OFPERR_OFPBAC_BAD_SET_TYPE;
1815
1.03k
    case  ((uint32_t) 2 << 16) | 14:
1816
1.03k
        return OFPERR_OFPBAC_BAD_SET_LEN;
1817
352
    case  ((uint32_t) 2 << 16) | 15:
1818
352
        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
3.20k
    case (0x2320ULL << 32) |  ((uint32_t) 11 << 16) | 0:
1822
3.20k
        return OFPERR_NXBAC_MUST_BE_ZERO;
1823
66
    case (0x2320ULL << 32) |  ((uint32_t) 15 << 16) | 0:
1824
66
        return OFPERR_NXBAC_BAD_CONJUNCTION;
1825
690
    case (0x2320ULL << 32) |  ((uint32_t) 39 << 16) | 0:
1826
690
        return OFPERR_NXBAC_BAD_HEADER_TYPE;
1827
18
    case (0x2320ULL << 32) |  ((uint32_t) 40 << 16) | 0:
1828
18
        return OFPERR_NXBAC_UNKNOWN_ED_PROP;
1829
66
    case (0x2320ULL << 32) |  ((uint32_t) 41 << 16) | 0:
1830
66
        return OFPERR_NXBAC_BAD_ED_PROP;
1831
297
    case (0x2320ULL << 32) |  ((uint32_t) 42 << 16) | 0:
1832
297
        return OFPERR_NXBAC_CT_DATAPATH_SUPPORT;
1833
362
    case  ((uint32_t) 3 << 16) | 0:
1834
362
        return OFPERR_OFPBIC_UNKNOWN_INST;
1835
207
    case  ((uint32_t) 3 << 16) | 1:
1836
207
        return OFPERR_OFPBIC_UNSUP_INST;
1837
1.73k
    case  ((uint32_t) 3 << 16) | 2:
1838
1.73k
        return OFPERR_OFPBIC_BAD_TABLE_ID;
1839
1.94k
    case  ((uint32_t) 3 << 16) | 3:
1840
1.94k
        return OFPERR_OFPBIC_UNSUP_METADATA;
1841
900
    case  ((uint32_t) 3 << 16) | 4:
1842
900
        return OFPERR_OFPBIC_UNSUP_METADATA_MASK;
1843
68
    case  ((uint32_t) 3 << 16) | 5:
1844
68
        return OFPERR_OFPBIC_BAD_EXPERIMENTER;
1845
245
    case  ((uint32_t) 3 << 16) | 6:
1846
245
        return OFPERR_OFPBIC_BAD_EXP_TYPE;
1847
4.72k
    case  ((uint32_t) 3 << 16) | 7:
1848
4.72k
        return OFPERR_OFPBIC_BAD_LEN;
1849
89
    case  ((uint32_t) 3 << 16) | 8:
1850
89
        return OFPERR_OFPBIC_EPERM;
1851
66
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2600 << 16) | 0:
1852
66
        return OFPERR_OFPBIC_DUP_INST;
1853
194
    case  ((uint32_t) 4 << 16) | 0:
1854
194
        return OFPERR_OFPBMC_BAD_TYPE;
1855
66
    case  ((uint32_t) 4 << 16) | 1:
1856
66
        return OFPERR_OFPBMC_BAD_LEN;
1857
456
    case  ((uint32_t) 4 << 16) | 2:
1858
456
        return OFPERR_OFPBMC_BAD_TAG;
1859
3.12k
    case  ((uint32_t) 4 << 16) | 3:
1860
3.12k
        return OFPERR_OFPBMC_BAD_DL_ADDR_MASK;
1861
203
    case  ((uint32_t) 4 << 16) | 4:
1862
203
        return OFPERR_OFPBMC_BAD_NW_ADDR_MASK;
1863
197
    case  ((uint32_t) 4 << 16) | 5:
1864
197
        return OFPERR_OFPBMC_BAD_WILDCARDS;
1865
198
    case  ((uint32_t) 4 << 16) | 6:
1866
198
        return OFPERR_OFPBMC_BAD_FIELD;
1867
75
    case  ((uint32_t) 4 << 16) | 7:
1868
75
        return OFPERR_OFPBMC_BAD_VALUE;
1869
85
    case  ((uint32_t) 4 << 16) | 8:
1870
85
        return OFPERR_OFPBMC_BAD_MASK;
1871
66
    case  ((uint32_t) 4 << 16) | 9:
1872
66
        return OFPERR_OFPBMC_BAD_PREREQ;
1873
66
    case  ((uint32_t) 4 << 16) | 10:
1874
66
        return OFPERR_OFPBMC_DUP_FIELD;
1875
281
    case  ((uint32_t) 4 << 16) | 11:
1876
281
        return OFPERR_OFPBMC_EPERM;
1877
2.95k
    case (0x2320ULL << 32) |  ((uint32_t) 43 << 16) | 0:
1878
2.95k
        return OFPERR_NXBMC_CT_DATAPATH_SUPPORT;
1879
613
    case  ((uint32_t) 5 << 16) | 0:
1880
613
        return OFPERR_OFPFMFC_UNKNOWN;
1881
210
    case  ((uint32_t) 5 << 16) | 1:
1882
210
        return OFPERR_OFPFMFC_TABLE_FULL;
1883
75
    case  ((uint32_t) 5 << 16) | 2:
1884
75
        return OFPERR_OFPFMFC_BAD_TABLE_ID;
1885
66
    case  ((uint32_t) 5 << 16) | 3:
1886
66
        return OFPERR_OFPFMFC_OVERLAP;
1887
82
    case  ((uint32_t) 5 << 16) | 4:
1888
82
        return OFPERR_OFPFMFC_EPERM;
1889
368
    case  ((uint32_t) 5 << 16) | 5:
1890
368
        return OFPERR_OFPFMFC_BAD_TIMEOUT;
1891
1.00k
    case  ((uint32_t) 5 << 16) | 6:
1892
1.00k
        return OFPERR_OFPFMFC_BAD_COMMAND;
1893
66
    case  ((uint32_t) 5 << 16) | 7:
1894
66
        return OFPERR_OFPFMFC_BAD_FLAGS;
1895
66
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2360 << 16) | 0:
1896
66
        return OFPERR_OFPFMFC_BAD_PRIORITY;
1897
475
    case (0x2320ULL << 32) |  ((uint32_t) 12 << 16) | 0:
1898
475
        return OFPERR_NXFMFC_HARDWARE;
1899
1.59k
    case (0x2320ULL << 32) |  ((uint32_t) 13 << 16) | 0:
1900
1.59k
        return OFPERR_NXFMFC_BAD_TABLE_ID;
1901
70
    case (0x2320ULL << 32) |  ((uint32_t) 37 << 16) | 0:
1902
70
        return OFPERR_NXFMFC_INVALID_TLV_FIELD;
1903
671
    case  ((uint32_t) 6 << 16) | 0:
1904
671
        return OFPERR_OFPGMFC_GROUP_EXISTS;
1905
1.24k
    case  ((uint32_t) 6 << 16) | 1:
1906
1.24k
        return OFPERR_OFPGMFC_INVALID_GROUP;
1907
250
    case  ((uint32_t) 6 << 16) | 2:
1908
250
        return OFPERR_OFPGMFC_WEIGHT_UNSUPPORTED;
1909
36
    case  ((uint32_t) 6 << 16) | 3:
1910
36
        return OFPERR_OFPGMFC_OUT_OF_GROUPS;
1911
539
    case  ((uint32_t) 6 << 16) | 4:
1912
539
        return OFPERR_OFPGMFC_OUT_OF_BUCKETS;
1913
934
    case  ((uint32_t) 6 << 16) | 5:
1914
934
        return OFPERR_OFPGMFC_CHAINING_UNSUPPORTED;
1915
499
    case  ((uint32_t) 6 << 16) | 6:
1916
499
        return OFPERR_OFPGMFC_WATCH_UNSUPPORTED;
1917
86
    case  ((uint32_t) 6 << 16) | 7:
1918
86
        return OFPERR_OFPGMFC_LOOP;
1919
2.39k
    case  ((uint32_t) 6 << 16) | 8:
1920
2.39k
        return OFPERR_OFPGMFC_UNKNOWN_GROUP;
1921
1.86k
    case  ((uint32_t) 6 << 16) | 9:
1922
1.86k
        return OFPERR_OFPGMFC_CHAINED_GROUP;
1923
69
    case  ((uint32_t) 6 << 16) | 10:
1924
69
        return OFPERR_OFPGMFC_BAD_TYPE;
1925
1.02k
    case  ((uint32_t) 6 << 16) | 11:
1926
1.02k
        return OFPERR_OFPGMFC_BAD_COMMAND;
1927
1.30k
    case  ((uint32_t) 6 << 16) | 12:
1928
1.30k
        return OFPERR_OFPGMFC_BAD_BUCKET;
1929
1.74k
    case  ((uint32_t) 6 << 16) | 13:
1930
1.74k
        return OFPERR_OFPGMFC_BAD_WATCH;
1931
1.59k
    case  ((uint32_t) 6 << 16) | 14:
1932
1.59k
        return OFPERR_OFPGMFC_EPERM;
1933
73
    case  ((uint32_t) 7 << 16) | 0:
1934
73
        return OFPERR_OFPPMFC_BAD_PORT;
1935
175
    case  ((uint32_t) 7 << 16) | 1:
1936
175
        return OFPERR_OFPPMFC_BAD_HW_ADDR;
1937
741
    case  ((uint32_t) 7 << 16) | 2:
1938
741
        return OFPERR_OFPPMFC_BAD_CONFIG;
1939
635
    case  ((uint32_t) 7 << 16) | 3:
1940
635
        return OFPERR_OFPPMFC_BAD_ADVERTISE;
1941
1.07k
    case  ((uint32_t) 7 << 16) | 4:
1942
1.07k
        return OFPERR_OFPPMFC_EPERM;
1943
214
    case  ((uint32_t) 8 << 16) | 0:
1944
214
        return OFPERR_OFPTMFC_BAD_TABLE;
1945
450
    case  ((uint32_t) 8 << 16) | 1:
1946
450
        return OFPERR_OFPTMFC_BAD_CONFIG;
1947
68
    case  ((uint32_t) 8 << 16) | 2:
1948
68
        return OFPERR_OFPTMFC_EPERM;
1949
4.68k
    case  ((uint32_t) 9 << 16) | 0:
1950
4.68k
        return OFPERR_OFPQOFC_BAD_PORT;
1951
67
    case  ((uint32_t) 9 << 16) | 1:
1952
67
        return OFPERR_OFPQOFC_BAD_QUEUE;
1953
292
    case  ((uint32_t) 9 << 16) | 2:
1954
292
        return OFPERR_OFPQOFC_EPERM;
1955
309
    case  ((uint32_t) 10 << 16) | 0:
1956
309
        return OFPERR_OFPSCFC_BAD_FLAGS;
1957
391
    case  ((uint32_t) 10 << 16) | 1:
1958
391
        return OFPERR_OFPSCFC_BAD_LEN;
1959
605
    case  ((uint32_t) 10 << 16) | 2:
1960
605
        return OFPERR_OFPSCFC_EPERM;
1961
67
    case  ((uint32_t) 11 << 16) | 0:
1962
67
        return OFPERR_OFPRRFC_STALE;
1963
312
    case  ((uint32_t) 11 << 16) | 1:
1964
312
        return OFPERR_OFPRRFC_UNSUP;
1965
158
    case  ((uint32_t) 11 << 16) | 2:
1966
158
        return OFPERR_OFPRRFC_BAD_ROLE;
1967
2.24k
    case  ((uint32_t) 12 << 16) | 0:
1968
2.24k
        return OFPERR_OFPMMFC_UNKNOWN;
1969
108
    case  ((uint32_t) 12 << 16) | 1:
1970
108
        return OFPERR_OFPMMFC_METER_EXISTS;
1971
1.02k
    case  ((uint32_t) 12 << 16) | 2:
1972
1.02k
        return OFPERR_OFPMMFC_INVALID_METER;
1973
678
    case  ((uint32_t) 12 << 16) | 3:
1974
678
        return OFPERR_OFPMMFC_UNKNOWN_METER;
1975
229
    case  ((uint32_t) 12 << 16) | 4:
1976
229
        return OFPERR_OFPMMFC_BAD_COMMAND;
1977
5.19k
    case  ((uint32_t) 12 << 16) | 5:
1978
5.19k
        return OFPERR_OFPMMFC_BAD_FLAGS;
1979
1.27k
    case  ((uint32_t) 12 << 16) | 6:
1980
1.27k
        return OFPERR_OFPMMFC_BAD_RATE;
1981
115
    case  ((uint32_t) 12 << 16) | 7:
1982
115
        return OFPERR_OFPMMFC_BAD_BURST;
1983
312
    case  ((uint32_t) 12 << 16) | 8:
1984
312
        return OFPERR_OFPMMFC_BAD_BAND;
1985
66
    case  ((uint32_t) 12 << 16) | 9:
1986
66
        return OFPERR_OFPMMFC_BAD_BAND_VALUE;
1987
250
    case  ((uint32_t) 12 << 16) | 10:
1988
250
        return OFPERR_OFPMMFC_OUT_OF_METERS;
1989
1.26k
    case  ((uint32_t) 12 << 16) | 11:
1990
1.26k
        return OFPERR_OFPMMFC_OUT_OF_BANDS;
1991
68
    case  ((uint32_t) 13 << 16) | 0:
1992
68
        return OFPERR_OFPTFFC_BAD_TABLE;
1993
50
    case  ((uint32_t) 13 << 16) | 1:
1994
50
        return OFPERR_OFPTFFC_BAD_METADATA;
1995
202
    case  ((uint32_t) 13 << 16) | 5:
1996
202
        return OFPERR_OFPTFFC_EPERM;
1997
66
    case (0x2320ULL << 32) |  ((uint32_t) 44 << 16) | 0:
1998
66
        return OFPERR_NXTFFC_DUP_TABLE;
1999
80
    case  ((uint32_t) 13 << 16) | 2:
2000
80
        return OFPERR_OFPBPC_BAD_TYPE;
2001
271
    case  ((uint32_t) 13 << 16) | 3:
2002
271
        return OFPERR_OFPBPC_BAD_LEN;
2003
196
    case  ((uint32_t) 13 << 16) | 4:
2004
196
        return OFPERR_OFPBPC_BAD_VALUE;
2005
251
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 4443 << 16) | 0:
2006
251
        return OFPERR_OFPBPC_TOO_MANY;
2007
66
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 4444 << 16) | 0:
2008
66
        return OFPERR_OFPBPC_DUP_TYPE;
2009
34
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 4445 << 16) | 0:
2010
34
        return OFPERR_OFPBPC_BAD_EXPERIMENTER;
2011
66
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 4446 << 16) | 0:
2012
66
        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
18
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 4448 << 16) | 0:
2016
18
        return OFPERR_OFPBPC_EPERM;
2017
18
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2370 << 16) | 0:
2018
18
        return OFPERR_OFPACFC_INVALID;
2019
92
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2371 << 16) | 0:
2020
92
        return OFPERR_OFPACFC_UNSUPPORTED;
2021
19
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2372 << 16) | 0:
2022
19
        return OFPERR_OFPACFC_EPERM;
2023
18
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2300 << 16) | 0:
2024
18
        return OFPERR_OFPBFC_UNKNOWN;
2025
66
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2301 << 16) | 0:
2026
66
        return OFPERR_OFPBFC_EPERM;
2027
34
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2302 << 16) | 0:
2028
34
        return OFPERR_OFPBFC_BAD_ID;
2029
34
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2303 << 16) | 0:
2030
34
        return OFPERR_OFPBFC_BUNDLE_EXIST;
2031
201
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2304 << 16) | 0:
2032
201
        return OFPERR_OFPBFC_BUNDLE_CLOSED;
2033
1.27k
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2305 << 16) | 0:
2034
1.27k
        return OFPERR_OFPBFC_OUT_OF_BUNDLES;
2035
1.65k
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2306 << 16) | 0:
2036
1.65k
        return OFPERR_OFPBFC_BAD_TYPE;
2037
194
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2307 << 16) | 0:
2038
194
        return OFPERR_OFPBFC_BAD_FLAGS;
2039
140
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2308 << 16) | 0:
2040
140
        return OFPERR_OFPBFC_MSG_BAD_LEN;
2041
66
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2309 << 16) | 0:
2042
66
        return OFPERR_OFPBFC_MSG_BAD_XID;
2043
34
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2310 << 16) | 0:
2044
34
        return OFPERR_OFPBFC_MSG_UNSUP;
2045
370
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2311 << 16) | 0:
2046
370
        return OFPERR_OFPBFC_MSG_CONFLICT;
2047
196
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2312 << 16) | 0:
2048
196
        return OFPERR_OFPBFC_MSG_TOO_MANY;
2049
10
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2313 << 16) | 0:
2050
10
        return OFPERR_OFPBFC_MSG_FAILED;
2051
195
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2314 << 16) | 0:
2052
195
        return OFPERR_OFPBFC_TIMEOUT;
2053
54
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 2315 << 16) | 0:
2054
54
        return OFPERR_OFPBFC_BUNDLE_IN_PROGRESS;
2055
530
    case (0x2320ULL << 32) |  ((uint32_t) 6 << 16) | 0:
2056
530
        return OFPERR_OFPMOFC_MONITOR_EXISTS;
2057
34
    case (0x2320ULL << 32) |  ((uint32_t) 8 << 16) | 0:
2058
34
        return OFPERR_OFPMOFC_UNKNOWN_MONITOR;
2059
578
    case (0x2320ULL << 32) |  ((uint32_t) 7 << 16) | 0:
2060
578
        return OFPERR_OFPMOFC_BAD_FLAGS;
2061
4.15k
    case (0x2320ULL << 32) |  ((uint32_t) 16 << 16) | 0:
2062
4.15k
        return OFPERR_NXTTMFC_BAD_COMMAND;
2063
67
    case (0x2320ULL << 32) |  ((uint32_t) 17 << 16) | 0:
2064
67
        return OFPERR_NXTTMFC_BAD_OPT_LEN;
2065
94
    case (0x2320ULL << 32) |  ((uint32_t) 18 << 16) | 0:
2066
94
        return OFPERR_NXTTMFC_BAD_FIELD_IDX;
2067
633
    case (0x2320ULL << 32) |  ((uint32_t) 19 << 16) | 0:
2068
633
        return OFPERR_NXTTMFC_TABLE_FULL;
2069
66
    case (0x2320ULL << 32) |  ((uint32_t) 20 << 16) | 0:
2070
66
        return OFPERR_NXTTMFC_ALREADY_MAPPED;
2071
18
    case (0x2320ULL << 32) |  ((uint32_t) 21 << 16) | 0:
2072
18
        return OFPERR_NXTTMFC_DUP_ENTRY;
2073
66
    case (0x2320ULL << 32) |  ((uint32_t) 38 << 16) | 0:
2074
66
        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
3.41k
    case (0x2320ULL << 32) |  ((uint32_t) 36 << 16) | 0:
2080
3.41k
        return OFPERR_NXST_NOT_CONFIGURED;
2081
149k
    }
2082
2083
42.1k
    return 0;
2084
149k
}
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
176k
{
2295
176k
    switch (((uint64_t) vendor << 32) | ((uint32_t) type << 16) | code) {
2296
3.63k
    case  ((uint32_t) 0 << 16) | 0:
2297
3.63k
        return OFPERR_OFPHFC_INCOMPATIBLE;
2298
637
    case  ((uint32_t) 0 << 16) | 1:
2299
637
        return OFPERR_OFPHFC_EPERM;
2300
318
    case  ((uint32_t) 1 << 16) | 0:
2301
318
        return OFPERR_OFPBRC_BAD_VERSION;
2302
78
    case  ((uint32_t) 1 << 16) | 1:
2303
78
        return OFPERR_OFPBRC_BAD_TYPE;
2304
5.18k
    case  ((uint32_t) 1 << 16) | 2:
2305
5.18k
        return OFPERR_OFPBRC_BAD_STAT;
2306
202
    case  ((uint32_t) 1 << 16) | 3:
2307
202
        return OFPERR_OFPBRC_BAD_VENDOR;
2308
345
    case  ((uint32_t) 1 << 16) | 4:
2309
345
        return OFPERR_OFPBRC_BAD_SUBTYPE;
2310
334
    case  ((uint32_t) 1 << 16) | 5:
2311
334
        return OFPERR_OFPBRC_EPERM;
2312
1.03k
    case  ((uint32_t) 1 << 16) | 6:
2313
1.03k
        return OFPERR_OFPBRC_BAD_LEN;
2314
67
    case  ((uint32_t) 1 << 16) | 7:
2315
67
        return OFPERR_OFPBRC_BUFFER_EMPTY;
2316
1.95k
    case  ((uint32_t) 1 << 16) | 8:
2317
1.95k
        return OFPERR_OFPBRC_BUFFER_UNKNOWN;
2318
69
    case  ((uint32_t) 1 << 16) | 9:
2319
69
        return OFPERR_OFPBRC_BAD_TABLE_ID;
2320
4.86k
    case  ((uint32_t) 1 << 16) | 10:
2321
4.86k
        return OFPERR_OFPBRC_IS_SECONDARY;
2322
277
    case  ((uint32_t) 1 << 16) | 11:
2323
277
        return OFPERR_OFPBRC_BAD_PORT;
2324
2.30k
    case  ((uint32_t) 1 << 16) | 12:
2325
2.30k
        return OFPERR_OFPBRC_BAD_PACKET;
2326
66
    case  ((uint32_t) 1 << 16) | 13:
2327
66
        return OFPERR_OFPBRC_MULTIPART_BUFFER_OVERFLOW;
2328
84
    case  ((uint32_t) 1 << 16) | 14:
2329
84
        return OFPERR_OFPBRC_MULTIPART_REQUEST_TIMEOUT;
2330
196
    case  ((uint32_t) 1 << 16) | 15:
2331
196
        return OFPERR_OFPBRC_MULTIPART_REPLY_TIMEOUT;
2332
34
    case (0x2320ULL << 32) |  ((uint32_t) 2 << 16) | 0:
2333
34
        return OFPERR_NXBRC_NXM_INVALID;
2334
51
    case (0x2320ULL << 32) |  ((uint32_t) 3 << 16) | 0:
2335
51
        return OFPERR_NXBRC_NXM_BAD_TYPE;
2336
1.40k
    case (0x2320ULL << 32) |  ((uint32_t) 4 << 16) | 0:
2337
1.40k
        return OFPERR_NXBRC_MUST_BE_ZERO;
2338
34
    case (0x2320ULL << 32) |  ((uint32_t) 5 << 16) | 0:
2339
34
        return OFPERR_NXBRC_BAD_REASON;
2340
49
    case (0x2320ULL << 32) |  ((uint32_t) 9 << 16) | 0:
2341
49
        return OFPERR_NXBRC_FM_BAD_EVENT;
2342
66
    case (0x2320ULL << 32) |  ((uint32_t) 10 << 16) | 0:
2343
66
        return OFPERR_NXBRC_UNENCODABLE_ERROR;
2344
691
    case  ((uint32_t) 2 << 16) | 0:
2345
691
        return OFPERR_OFPBAC_BAD_TYPE;
2346
406
    case  ((uint32_t) 2 << 16) | 1:
2347
406
        return OFPERR_OFPBAC_BAD_LEN;
2348
631
    case  ((uint32_t) 2 << 16) | 2:
2349
631
        return OFPERR_OFPBAC_BAD_VENDOR;
2350
67
    case  ((uint32_t) 2 << 16) | 3:
2351
67
        return OFPERR_OFPBAC_BAD_VENDOR_TYPE;
2352
499
    case  ((uint32_t) 2 << 16) | 4:
2353
499
        return OFPERR_OFPBAC_BAD_OUT_PORT;
2354
249
    case  ((uint32_t) 2 << 16) | 5:
2355
249
        return OFPERR_OFPBAC_BAD_ARGUMENT;
2356
362
    case  ((uint32_t) 2 << 16) | 6:
2357
362
        return OFPERR_OFPBAC_EPERM;
2358
75
    case  ((uint32_t) 2 << 16) | 7:
2359
75
        return OFPERR_OFPBAC_TOO_MANY;
2360
538
    case  ((uint32_t) 2 << 16) | 8:
2361
538
        return OFPERR_OFPBAC_BAD_QUEUE;
2362
1.74k
    case  ((uint32_t) 2 << 16) | 9:
2363
1.74k
        return OFPERR_OFPBAC_BAD_OUT_GROUP;
2364
2.25k
    case  ((uint32_t) 2 << 16) | 10:
2365
2.25k
        return OFPERR_OFPBAC_MATCH_INCONSISTENT;
2366
1.43k
    case  ((uint32_t) 2 << 16) | 11:
2367
1.43k
        return OFPERR_OFPBAC_UNSUPPORTED_ORDER;
2368
194
    case  ((uint32_t) 2 << 16) | 12:
2369
194
        return OFPERR_OFPBAC_BAD_TAG;
2370
67
    case  ((uint32_t) 2 << 16) | 13:
2371
67
        return OFPERR_OFPBAC_BAD_SET_TYPE;
2372
813
    case  ((uint32_t) 2 << 16) | 14:
2373
813
        return OFPERR_OFPBAC_BAD_SET_LEN;
2374
69
    case  ((uint32_t) 2 << 16) | 15:
2375
69
        return OFPERR_OFPBAC_BAD_SET_ARGUMENT;
2376
195
    case (0x4f4e4600ULL << 32) |  ((uint32_t) 4250 << 16) | 0:
2377
195
        return OFPERR_OFPBAC_BAD_SET_MASK;
2378
36
    case (0x2320ULL << 32) |  ((uint32_t) 11 << 16) | 0:
2379
36
        return OFPERR_NXBAC_MUST_BE_ZERO;
2380
34
    case (0x2320ULL << 32) |  ((uint32_t) 15 << 16) | 0:
2381
34
        return OFPERR_NXBAC_BAD_CONJUNCTION;
2382
66
    case (0x2320ULL << 32) |  ((uint32_t) 39 << 16) | 0:
2383
66
        return OFPERR_NXBAC_BAD_HEADER_TYPE;
2384
194
    case (0x2320ULL << 32) |  ((uint32_t) 40 << 16) | 0:
2385
194
        return OFPERR_NXBAC_UNKNOWN_ED_PROP;
2386
352
    case (0x2320ULL << 32) |  ((uint32_t) 41 << 16) | 0:
2387
352
        return OFPERR_NXBAC_BAD_ED_PROP;
2388
202
    case (0x2320ULL << 32) |  ((uint32_t) 42 << 16) | 0:
2389
202
        return OFPERR_NXBAC_CT_DATAPATH_SUPPORT;
2390
70
    case  ((uint32_t) 3 << 16) | 0:
2391
70
        return OFPERR_OFPBIC_UNKNOWN_INST;
2392
188
    case  ((uint32_t) 3 << 16) | 1:
2393
188
        return OFPERR_OFPBIC_UNSUP_INST;
2394
2.45k
    case  ((uint32_t) 3 << 16) | 2:
2395
2.45k
        return OFPERR_OFPBIC_BAD_TABLE_ID;
2396
157
    case  ((uint32_t) 3 << 16) | 3:
2397
157
        return OFPERR_OFPBIC_UNSUP_METADATA;
2398
160
    case  ((uint32_t) 3 << 16) | 4:
2399
160
        return OFPERR_OFPBIC_UNSUP_METADATA_MASK;
2400
1.06k
    case  ((uint32_t) 3 << 16) | 5:
2401
1.06k
        return OFPERR_OFPBIC_BAD_EXPERIMENTER;
2402
1.11k
    case  ((uint32_t) 3 << 16) | 6:
2403
1.11k
        return OFPERR_OFPBIC_BAD_EXP_TYPE;
2404
99
    case  ((uint32_t) 3 << 16) | 7:
2405
99
        return OFPERR_OFPBIC_BAD_LEN;
2406
2.67k
    case  ((uint32_t) 3 << 16) | 8:
2407
2.67k
        return OFPERR_OFPBIC_EPERM;
2408
199
    case  ((uint32_t) 3 << 16) | 9:
2409
199
        return OFPERR_OFPBIC_DUP_INST;
2410
68
    case  ((uint32_t) 4 << 16) | 0:
2411
68
        return OFPERR_OFPBMC_BAD_TYPE;
2412
697
    case  ((uint32_t) 4 << 16) | 1:
2413
697
        return OFPERR_OFPBMC_BAD_LEN;
2414
340
    case  ((uint32_t) 4 << 16) | 2:
2415
340
        return OFPERR_OFPBMC_BAD_TAG;
2416
66
    case  ((uint32_t) 4 << 16) | 3:
2417
66
        return OFPERR_OFPBMC_BAD_DL_ADDR_MASK;
2418
124
    case  ((uint32_t) 4 << 16) | 4:
2419
124
        return OFPERR_OFPBMC_BAD_NW_ADDR_MASK;
2420
1.11k
    case  ((uint32_t) 4 << 16) | 5:
2421
1.11k
        return OFPERR_OFPBMC_BAD_WILDCARDS;
2422
405
    case  ((uint32_t) 4 << 16) | 6:
2423
405
        return OFPERR_OFPBMC_BAD_FIELD;
2424
805
    case  ((uint32_t) 4 << 16) | 7:
2425
805
        return OFPERR_OFPBMC_BAD_VALUE;
2426
67
    case  ((uint32_t) 4 << 16) | 8:
2427
67
        return OFPERR_OFPBMC_BAD_MASK;
2428
199
    case  ((uint32_t) 4 << 16) | 9:
2429
199
        return OFPERR_OFPBMC_BAD_PREREQ;
2430
1.33k
    case  ((uint32_t) 4 << 16) | 10:
2431
1.33k
        return OFPERR_OFPBMC_DUP_FIELD;
2432
1.11k
    case  ((uint32_t) 4 << 16) | 11:
2433
1.11k
        return OFPERR_OFPBMC_EPERM;
2434
67
    case (0x2320ULL << 32) |  ((uint32_t) 43 << 16) | 0:
2435
67
        return OFPERR_NXBMC_CT_DATAPATH_SUPPORT;
2436
319
    case  ((uint32_t) 5 << 16) | 0:
2437
319
        return OFPERR_OFPFMFC_UNKNOWN;
2438
187
    case  ((uint32_t) 5 << 16) | 1:
2439
187
        return OFPERR_OFPFMFC_TABLE_FULL;
2440
23
    case  ((uint32_t) 5 << 16) | 2:
2441
23
        return OFPERR_OFPFMFC_BAD_TABLE_ID;
2442
66
    case  ((uint32_t) 5 << 16) | 3:
2443
66
        return OFPERR_OFPFMFC_OVERLAP;
2444
296
    case  ((uint32_t) 5 << 16) | 4:
2445
296
        return OFPERR_OFPFMFC_EPERM;
2446
3.44k
    case  ((uint32_t) 5 << 16) | 5:
2447
3.44k
        return OFPERR_OFPFMFC_BAD_TIMEOUT;
2448
653
    case  ((uint32_t) 5 << 16) | 6:
2449
653
        return OFPERR_OFPFMFC_BAD_COMMAND;
2450
269
    case  ((uint32_t) 5 << 16) | 7:
2451
269
        return OFPERR_OFPFMFC_BAD_FLAGS;
2452
80
    case  ((uint32_t) 5 << 16) | 8:
2453
80
        return OFPERR_OFPFMFC_CANT_SYNC;
2454
1.23k
    case  ((uint32_t) 5 << 16) | 9:
2455
1.23k
        return OFPERR_OFPFMFC_BAD_PRIORITY;
2456
85
    case  ((uint32_t) 5 << 16) | 10:
2457
85
        return OFPERR_OFPFMFC_IS_SYNC;
2458
76
    case (0x2320ULL << 32) |  ((uint32_t) 12 << 16) | 0:
2459
76
        return OFPERR_NXFMFC_HARDWARE;
2460
2.46k
    case (0x2320ULL << 32) |  ((uint32_t) 13 << 16) | 0:
2461
2.46k
        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
570
    case  ((uint32_t) 6 << 16) | 0:
2465
570
        return OFPERR_OFPGMFC_GROUP_EXISTS;
2466
13.1k
    case  ((uint32_t) 6 << 16) | 1:
2467
13.1k
        return OFPERR_OFPGMFC_INVALID_GROUP;
2468
1.38k
    case  ((uint32_t) 6 << 16) | 2:
2469
1.38k
        return OFPERR_OFPGMFC_WEIGHT_UNSUPPORTED;
2470
34
    case  ((uint32_t) 6 << 16) | 3:
2471
34
        return OFPERR_OFPGMFC_OUT_OF_GROUPS;
2472
3.70k
    case  ((uint32_t) 6 << 16) | 4:
2473
3.70k
        return OFPERR_OFPGMFC_OUT_OF_BUCKETS;
2474
198
    case  ((uint32_t) 6 << 16) | 5:
2475
198
        return OFPERR_OFPGMFC_CHAINING_UNSUPPORTED;
2476
66
    case  ((uint32_t) 6 << 16) | 6:
2477
66
        return OFPERR_OFPGMFC_WATCH_UNSUPPORTED;
2478
3.76k
    case  ((uint32_t) 6 << 16) | 7:
2479
3.76k
        return OFPERR_OFPGMFC_LOOP;
2480
775
    case  ((uint32_t) 6 << 16) | 8:
2481
775
        return OFPERR_OFPGMFC_UNKNOWN_GROUP;
2482
927
    case  ((uint32_t) 6 << 16) | 9:
2483
927
        return OFPERR_OFPGMFC_CHAINED_GROUP;
2484
144
    case  ((uint32_t) 6 << 16) | 10:
2485
144
        return OFPERR_OFPGMFC_BAD_TYPE;
2486
655
    case  ((uint32_t) 6 << 16) | 11:
2487
655
        return OFPERR_OFPGMFC_BAD_COMMAND;
2488
224
    case  ((uint32_t) 6 << 16) | 12:
2489
224
        return OFPERR_OFPGMFC_BAD_BUCKET;
2490
433
    case  ((uint32_t) 6 << 16) | 13:
2491
433
        return OFPERR_OFPGMFC_BAD_WATCH;
2492
119
    case  ((uint32_t) 6 << 16) | 14:
2493
119
        return OFPERR_OFPGMFC_EPERM;
2494
302
    case  ((uint32_t) 7 << 16) | 0:
2495
302
        return OFPERR_OFPPMFC_BAD_PORT;
2496
102
    case  ((uint32_t) 7 << 16) | 1:
2497
102
        return OFPERR_OFPPMFC_BAD_HW_ADDR;
2498
34
    case  ((uint32_t) 7 << 16) | 2:
2499
34
        return OFPERR_OFPPMFC_BAD_CONFIG;
2500
66
    case  ((uint32_t) 7 << 16) | 3:
2501
66
        return OFPERR_OFPPMFC_BAD_ADVERTISE;
2502
140
    case  ((uint32_t) 7 << 16) | 4:
2503
140
        return OFPERR_OFPPMFC_EPERM;
2504
371
    case  ((uint32_t) 8 << 16) | 0:
2505
371
        return OFPERR_OFPTMFC_BAD_TABLE;
2506
2.18k
    case  ((uint32_t) 8 << 16) | 1:
2507
2.18k
        return OFPERR_OFPTMFC_BAD_CONFIG;
2508
100
    case  ((uint32_t) 8 << 16) | 2:
2509
100
        return OFPERR_OFPTMFC_EPERM;
2510
66
    case  ((uint32_t) 9 << 16) | 0:
2511
66
        return OFPERR_OFPQOFC_BAD_PORT;
2512
198
    case  ((uint32_t) 9 << 16) | 1:
2513
198
        return OFPERR_OFPQOFC_BAD_QUEUE;
2514
192
    case  ((uint32_t) 9 << 16) | 2:
2515
192
        return OFPERR_OFPQOFC_EPERM;
2516
18
    case (0x2320ULL << 32) |  ((uint32_t) 23 << 16) | 0:
2517
18
        return OFPERR_NXQOFC_QUEUE_ERROR;
2518
66
    case  ((uint32_t) 10 << 16) | 0:
2519
66
        return OFPERR_OFPSCFC_BAD_FLAGS;
2520
348
    case  ((uint32_t) 10 << 16) | 1:
2521
348
        return OFPERR_OFPSCFC_BAD_LEN;
2522
1.40k
    case  ((uint32_t) 10 << 16) | 2:
2523
1.40k
        return OFPERR_OFPSCFC_EPERM;
2524
66
    case  ((uint32_t) 11 << 16) | 0:
2525
66
        return OFPERR_OFPRRFC_STALE;
2526
54
    case  ((uint32_t) 11 << 16) | 1:
2527
54
        return OFPERR_OFPRRFC_UNSUP;
2528
370
    case  ((uint32_t) 11 << 16) | 2:
2529
370
        return OFPERR_OFPRRFC_BAD_ROLE;
2530
397
    case  ((uint32_t) 12 << 16) | 0:
2531
397
        return OFPERR_OFPMMFC_UNKNOWN;
2532
289
    case  ((uint32_t) 12 << 16) | 1:
2533
289
        return OFPERR_OFPMMFC_METER_EXISTS;
2534
468
    case  ((uint32_t) 12 << 16) | 2:
2535
468
        return OFPERR_OFPMMFC_INVALID_METER;
2536
66
    case  ((uint32_t) 12 << 16) | 3:
2537
66
        return OFPERR_OFPMMFC_UNKNOWN_METER;
2538
223
    case  ((uint32_t) 12 << 16) | 4:
2539
223
        return OFPERR_OFPMMFC_BAD_COMMAND;
2540
194
    case  ((uint32_t) 12 << 16) | 5:
2541
194
        return OFPERR_OFPMMFC_BAD_FLAGS;
2542
42
    case  ((uint32_t) 12 << 16) | 6:
2543
42
        return OFPERR_OFPMMFC_BAD_RATE;
2544
83
    case  ((uint32_t) 12 << 16) | 7:
2545
83
        return OFPERR_OFPMMFC_BAD_BURST;
2546
35
    case  ((uint32_t) 12 << 16) | 8:
2547
35
        return OFPERR_OFPMMFC_BAD_BAND;
2548
311
    case  ((uint32_t) 12 << 16) | 9:
2549
311
        return OFPERR_OFPMMFC_BAD_BAND_VALUE;
2550
212
    case  ((uint32_t) 12 << 16) | 10:
2551
212
        return OFPERR_OFPMMFC_OUT_OF_METERS;
2552
67
    case  ((uint32_t) 12 << 16) | 11:
2553
67
        return OFPERR_OFPMMFC_OUT_OF_BANDS;
2554
66
    case  ((uint32_t) 13 << 16) | 0:
2555
66
        return OFPERR_OFPTFFC_BAD_TABLE;
2556
74
    case  ((uint32_t) 13 << 16) | 1:
2557
74
        return OFPERR_OFPTFFC_BAD_METADATA;
2558
4.83k
    case  ((uint32_t) 13 << 16) | 5:
2559
4.83k
        return OFPERR_OFPTFFC_EPERM;
2560
18
    case (0x2320ULL << 32) |  ((uint32_t) 44 << 16) | 0:
2561
18
        return OFPERR_NXTFFC_DUP_TABLE;
2562
59
    case  ((uint32_t) 14 << 16) | 0:
2563
59
        return OFPERR_OFPBPC_BAD_TYPE;
2564
366
    case  ((uint32_t) 14 << 16) | 1:
2565
366
        return OFPERR_OFPBPC_BAD_LEN;
2566
34
    case  ((uint32_t) 14 << 16) | 2:
2567
34
        return OFPERR_OFPBPC_BAD_VALUE;
2568
68
    case  ((uint32_t) 14 << 16) | 3:
2569
68
        return OFPERR_OFPBPC_TOO_MANY;
2570
34
    case  ((uint32_t) 14 << 16) | 4:
2571
34
        return OFPERR_OFPBPC_DUP_TYPE;
2572
66
    case  ((uint32_t) 14 << 16) | 5:
2573
66
        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
194
    case  ((uint32_t) 15 << 16) | 0:
2581
194
        return OFPERR_OFPACFC_INVALID;
2582
34
    case  ((uint32_t) 15 << 16) | 1:
2583
34
        return OFPERR_OFPACFC_UNSUPPORTED;
2584
70
    case  ((uint32_t) 15 << 16) | 2:
2585
70
        return OFPERR_OFPACFC_EPERM;
2586
119
    case  ((uint32_t) 17 << 16) | 0:
2587
119
        return OFPERR_OFPBFC_UNKNOWN;
2588
70
    case  ((uint32_t) 17 << 16) | 1:
2589
70
        return OFPERR_OFPBFC_EPERM;
2590
195
    case  ((uint32_t) 17 << 16) | 2:
2591
195
        return OFPERR_OFPBFC_BAD_ID;
2592
35
    case  ((uint32_t) 17 << 16) | 3:
2593
35
        return OFPERR_OFPBFC_BUNDLE_EXIST;
2594
376
    case  ((uint32_t) 17 << 16) | 4:
2595
376
        return OFPERR_OFPBFC_BUNDLE_CLOSED;
2596
433
    case  ((uint32_t) 17 << 16) | 5:
2597
433
        return OFPERR_OFPBFC_OUT_OF_BUNDLES;
2598
136
    case  ((uint32_t) 17 << 16) | 6:
2599
136
        return OFPERR_OFPBFC_BAD_TYPE;
2600
837
    case  ((uint32_t) 17 << 16) | 7:
2601
837
        return OFPERR_OFPBFC_BAD_FLAGS;
2602
68
    case  ((uint32_t) 17 << 16) | 8:
2603
68
        return OFPERR_OFPBFC_MSG_BAD_LEN;
2604
126
    case  ((uint32_t) 17 << 16) | 9:
2605
126
        return OFPERR_OFPBFC_MSG_BAD_XID;
2606
201
    case  ((uint32_t) 17 << 16) | 10:
2607
201
        return OFPERR_OFPBFC_MSG_UNSUP;
2608
237
    case  ((uint32_t) 17 << 16) | 11:
2609
237
        return OFPERR_OFPBFC_MSG_CONFLICT;
2610
3.39k
    case  ((uint32_t) 17 << 16) | 12:
2611
3.39k
        return OFPERR_OFPBFC_MSG_TOO_MANY;
2612
319
    case  ((uint32_t) 17 << 16) | 13:
2613
319
        return OFPERR_OFPBFC_MSG_FAILED;
2614
195
    case  ((uint32_t) 17 << 16) | 14:
2615
195
        return OFPERR_OFPBFC_TIMEOUT;
2616
66
    case  ((uint32_t) 17 << 16) | 15:
2617
66
        return OFPERR_OFPBFC_BUNDLE_IN_PROGRESS;
2618
66
    case (0x2320ULL << 32) |  ((uint32_t) 22 << 16) | 0:
2619
66
        return OFPERR_OFPBFC_BAD_VERSION;
2620
169
    case  ((uint32_t) 16 << 16) | 0:
2621
169
        return OFPERR_OFPMOFC_UNKNOWN;
2622
230
    case  ((uint32_t) 16 << 16) | 1:
2623
230
        return OFPERR_OFPMOFC_MONITOR_EXISTS;
2624
480
    case  ((uint32_t) 16 << 16) | 2:
2625
480
        return OFPERR_OFPMOFC_INVALID_MONITOR;
2626
150
    case  ((uint32_t) 16 << 16) | 3:
2627
150
        return OFPERR_OFPMOFC_UNKNOWN_MONITOR;
2628
194
    case  ((uint32_t) 16 << 16) | 4:
2629
194
        return OFPERR_OFPMOFC_BAD_COMMAND;
2630
77
    case  ((uint32_t) 16 << 16) | 5:
2631
77
        return OFPERR_OFPMOFC_BAD_FLAGS;
2632
35
    case  ((uint32_t) 16 << 16) | 6:
2633
35
        return OFPERR_OFPMOFC_BAD_TABLE_ID;
2634
114
    case  ((uint32_t) 16 << 16) | 7:
2635
114
        return OFPERR_OFPMOFC_BAD_OUT;
2636
543
    case (0x2320ULL << 32) |  ((uint32_t) 16 << 16) | 0:
2637
543
        return OFPERR_NXTTMFC_BAD_COMMAND;
2638
574
    case (0x2320ULL << 32) |  ((uint32_t) 17 << 16) | 0:
2639
574
        return OFPERR_NXTTMFC_BAD_OPT_LEN;
2640
194
    case (0x2320ULL << 32) |  ((uint32_t) 18 << 16) | 0:
2641
194
        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
194
    case (0x2320ULL << 32) |  ((uint32_t) 38 << 16) | 0:
2649
194
        return OFPERR_NXTTMFC_INVALID_TLV_DEL;
2650
269
    case (0x2320ULL << 32) |  ((uint32_t) 34 << 16) | 0:
2651
269
        return OFPERR_NXR_NOT_SUPPORTED;
2652
452
    case (0x2320ULL << 32) |  ((uint32_t) 35 << 16) | 0:
2653
452
        return OFPERR_NXR_STALE;
2654
34
    case (0x2320ULL << 32) |  ((uint32_t) 36 << 16) | 0:
2655
34
        return OFPERR_NXST_NOT_CONFIGURED;
2656
176k
    }
2657
2658
66.2k
    return 0;
2659
176k
}
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
135k
{
2870
135k
    switch (((uint64_t) vendor << 32) | ((uint32_t) type << 16) | code) {
2871
3.47k
    case  ((uint32_t) 0 << 16) | 0:
2872
3.47k
        return OFPERR_OFPHFC_INCOMPATIBLE;
2873
203
    case  ((uint32_t) 0 << 16) | 1:
2874
203
        return OFPERR_OFPHFC_EPERM;
2875
1.39k
    case  ((uint32_t) 1 << 16) | 0:
2876
1.39k
        return OFPERR_OFPBRC_BAD_VERSION;
2877
3.70k
    case  ((uint32_t) 1 << 16) | 1:
2878
3.70k
        return OFPERR_OFPBRC_BAD_TYPE;
2879
2.21k
    case  ((uint32_t) 1 << 16) | 2:
2880
2.21k
        return OFPERR_OFPBRC_BAD_STAT;
2881
66
    case  ((uint32_t) 1 << 16) | 3:
2882
66
        return OFPERR_OFPBRC_BAD_VENDOR;
2883
373
    case  ((uint32_t) 1 << 16) | 4:
2884
373
        return OFPERR_OFPBRC_BAD_SUBTYPE;
2885
2.09k
    case  ((uint32_t) 1 << 16) | 5:
2886
2.09k
        return OFPERR_OFPBRC_EPERM;
2887
134
    case  ((uint32_t) 1 << 16) | 6:
2888
134
        return OFPERR_OFPBRC_BAD_LEN;
2889
546
    case  ((uint32_t) 1 << 16) | 7:
2890
546
        return OFPERR_OFPBRC_BUFFER_EMPTY;
2891
3.32k
    case  ((uint32_t) 1 << 16) | 8:
2892
3.32k
        return OFPERR_OFPBRC_BUFFER_UNKNOWN;
2893
379
    case  ((uint32_t) 1 << 16) | 9:
2894
379
        return OFPERR_OFPBRC_BAD_TABLE_ID;
2895
87
    case  ((uint32_t) 1 << 16) | 10:
2896
87
        return OFPERR_OFPBRC_IS_SECONDARY;
2897
200
    case  ((uint32_t) 1 << 16) | 11:
2898
200
        return OFPERR_OFPBRC_BAD_PORT;
2899
1.59k
    case  ((uint32_t) 1 << 16) | 12:
2900
1.59k
        return OFPERR_OFPBRC_BAD_PACKET;
2901
443
    case  ((uint32_t) 1 << 16) | 13:
2902
443
        return OFPERR_OFPBRC_MULTIPART_BUFFER_OVERFLOW;
2903
140
    case  ((uint32_t) 1 << 16) | 14:
2904
140
        return OFPERR_OFPBRC_MULTIPART_REQUEST_TIMEOUT;
2905
2.57k
    case  ((uint32_t) 1 << 16) | 15:
2906
2.57k
        return OFPERR_OFPBRC_MULTIPART_REPLY_TIMEOUT;
2907
68
    case  ((uint32_t) 1 << 16) | 16:
2908
68
        return OFPERR_OFPBRC_MULTIPART_BAD_SCHED;
2909
66
    case  ((uint32_t) 1 << 16) | 17:
2910
66
        return OFPERR_OFPBRC_PIPELINE_FIELDS_ONLY;
2911
19
    case  ((uint32_t) 1 << 16) | 18:
2912
19
        return OFPERR_OFPBRC_UNKNOWN;
2913
4.93k
    case (0x2320ULL << 32) |  ((uint32_t) 2 << 16) | 0:
2914
4.93k
        return OFPERR_NXBRC_NXM_INVALID;
2915
116
    case (0x2320ULL << 32) |  ((uint32_t) 3 << 16) | 0:
2916
116
        return OFPERR_NXBRC_NXM_BAD_TYPE;
2917
982
    case (0x2320ULL << 32) |  ((uint32_t) 4 << 16) | 0:
2918
982
        return OFPERR_NXBRC_MUST_BE_ZERO;
2919
66
    case (0x2320ULL << 32) |  ((uint32_t) 5 << 16) | 0:
2920
66
        return OFPERR_NXBRC_BAD_REASON;
2921
18
    case (0x2320ULL << 32) |  ((uint32_t) 9 << 16) | 0:
2922
18
        return OFPERR_NXBRC_FM_BAD_EVENT;
2923
42
    case (0x2320ULL << 32) |  ((uint32_t) 10 << 16) | 0:
2924
42
        return OFPERR_NXBRC_UNENCODABLE_ERROR;
2925
829
    case  ((uint32_t) 2 << 16) | 0:
2926
829
        return OFPERR_OFPBAC_BAD_TYPE;
2927
82
    case  ((uint32_t) 2 << 16) | 1:
2928
82
        return OFPERR_OFPBAC_BAD_LEN;
2929
3.27k
    case  ((uint32_t) 2 << 16) | 2:
2930
3.27k
        return OFPERR_OFPBAC_BAD_VENDOR;
2931
67
    case  ((uint32_t) 2 << 16) | 3:
2932
67
        return OFPERR_OFPBAC_BAD_VENDOR_TYPE;
2933
654
    case  ((uint32_t) 2 << 16) | 4:
2934
654
        return OFPERR_OFPBAC_BAD_OUT_PORT;
2935
840
    case  ((uint32_t) 2 << 16) | 5:
2936
840
        return OFPERR_OFPBAC_BAD_ARGUMENT;
2937
460
    case  ((uint32_t) 2 << 16) | 6:
2938
460
        return OFPERR_OFPBAC_EPERM;
2939
67
    case  ((uint32_t) 2 << 16) | 7:
2940
67
        return OFPERR_OFPBAC_TOO_MANY;
2941
637
    case  ((uint32_t) 2 << 16) | 8:
2942
637
        return OFPERR_OFPBAC_BAD_QUEUE;
2943
1.66k
    case  ((uint32_t) 2 << 16) | 9:
2944
1.66k
        return OFPERR_OFPBAC_BAD_OUT_GROUP;
2945
194
    case  ((uint32_t) 2 << 16) | 10:
2946
194
        return OFPERR_OFPBAC_MATCH_INCONSISTENT;
2947
19
    case  ((uint32_t) 2 << 16) | 11:
2948
19
        return OFPERR_OFPBAC_UNSUPPORTED_ORDER;
2949
66
    case  ((uint32_t) 2 << 16) | 12:
2950
66
        return OFPERR_OFPBAC_BAD_TAG;
2951
113
    case  ((uint32_t) 2 << 16) | 13:
2952
113
        return OFPERR_OFPBAC_BAD_SET_TYPE;
2953
498
    case  ((uint32_t) 2 << 16) | 14:
2954
498
        return OFPERR_OFPBAC_BAD_SET_LEN;
2955
1.09k
    case  ((uint32_t) 2 << 16) | 15:
2956
1.09k
        return OFPERR_OFPBAC_BAD_SET_ARGUMENT;
2957
73
    case  ((uint32_t) 2 << 16) | 16:
2958
73
        return OFPERR_OFPBAC_BAD_SET_MASK;
2959
73
    case  ((uint32_t) 2 << 16) | 17:
2960
73
        return OFPERR_OFPBAC_BAD_METER;
2961
114
    case (0x2320ULL << 32) |  ((uint32_t) 11 << 16) | 0:
2962
114
        return OFPERR_NXBAC_MUST_BE_ZERO;
2963
34
    case (0x2320ULL << 32) |  ((uint32_t) 15 << 16) | 0:
2964
34
        return OFPERR_NXBAC_BAD_CONJUNCTION;
2965
198
    case (0x2320ULL << 32) |  ((uint32_t) 39 << 16) | 0:
2966
198
        return OFPERR_NXBAC_BAD_HEADER_TYPE;
2967
66
    case (0x2320ULL << 32) |  ((uint32_t) 40 << 16) | 0:
2968
66
        return OFPERR_NXBAC_UNKNOWN_ED_PROP;
2969
4.52k
    case (0x2320ULL << 32) |  ((uint32_t) 41 << 16) | 0:
2970
4.52k
        return OFPERR_NXBAC_BAD_ED_PROP;
2971
66
    case (0x2320ULL << 32) |  ((uint32_t) 42 << 16) | 0:
2972
66
        return OFPERR_NXBAC_CT_DATAPATH_SUPPORT;
2973
76
    case  ((uint32_t) 3 << 16) | 0:
2974
76
        return OFPERR_OFPBIC_UNKNOWN_INST;
2975
68
    case  ((uint32_t) 3 << 16) | 1:
2976
68
        return OFPERR_OFPBIC_UNSUP_INST;
2977
800
    case  ((uint32_t) 3 << 16) | 2:
2978
800
        return OFPERR_OFPBIC_BAD_TABLE_ID;
2979
412
    case  ((uint32_t) 3 << 16) | 3:
2980
412
        return OFPERR_OFPBIC_UNSUP_METADATA;
2981
37
    case  ((uint32_t) 3 << 16) | 4:
2982
37
        return OFPERR_OFPBIC_UNSUP_METADATA_MASK;
2983
194
    case  ((uint32_t) 3 << 16) | 5:
2984
194
        return OFPERR_OFPBIC_BAD_EXPERIMENTER;
2985
127
    case  ((uint32_t) 3 << 16) | 6:
2986
127
        return OFPERR_OFPBIC_BAD_EXP_TYPE;
2987
69
    case  ((uint32_t) 3 << 16) | 7:
2988
69
        return OFPERR_OFPBIC_BAD_LEN;
2989
75
    case  ((uint32_t) 3 << 16) | 8:
2990
75
        return OFPERR_OFPBIC_EPERM;
2991
176
    case  ((uint32_t) 3 << 16) | 9:
2992
176
        return OFPERR_OFPBIC_DUP_INST;
2993
102
    case  ((uint32_t) 4 << 16) | 0:
2994
102
        return OFPERR_OFPBMC_BAD_TYPE;
2995
560
    case  ((uint32_t) 4 << 16) | 1:
2996
560
        return OFPERR_OFPBMC_BAD_LEN;
2997
1.08k
    case  ((uint32_t) 4 << 16) | 2:
2998
1.08k
        return OFPERR_OFPBMC_BAD_TAG;
2999
989
    case  ((uint32_t) 4 << 16) | 3:
3000
989
        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
42
    case  ((uint32_t) 4 << 16) | 5:
3004
42
        return OFPERR_OFPBMC_BAD_WILDCARDS;
3005
136
    case  ((uint32_t) 4 << 16) | 6:
3006
136
        return OFPERR_OFPBMC_BAD_FIELD;
3007
250
    case  ((uint32_t) 4 << 16) | 7:
3008
250
        return OFPERR_OFPBMC_BAD_VALUE;
3009
328
    case  ((uint32_t) 4 << 16) | 8:
3010
328
        return OFPERR_OFPBMC_BAD_MASK;
3011
163
    case  ((uint32_t) 4 << 16) | 9:
3012
163
        return OFPERR_OFPBMC_BAD_PREREQ;
3013
75
    case  ((uint32_t) 4 << 16) | 10:
3014
75
        return OFPERR_OFPBMC_DUP_FIELD;
3015
50
    case  ((uint32_t) 4 << 16) | 11:
3016
50
        return OFPERR_OFPBMC_EPERM;
3017
1.46k
    case (0x2320ULL << 32) |  ((uint32_t) 43 << 16) | 0:
3018
1.46k
        return OFPERR_NXBMC_CT_DATAPATH_SUPPORT;
3019
66
    case  ((uint32_t) 5 << 16) | 0:
3020
66
        return OFPERR_OFPFMFC_UNKNOWN;
3021
361
    case  ((uint32_t) 5 << 16) | 1:
3022
361
        return OFPERR_OFPFMFC_TABLE_FULL;
3023
66
    case  ((uint32_t) 5 << 16) | 2:
3024
66
        return OFPERR_OFPFMFC_BAD_TABLE_ID;
3025
66
    case  ((uint32_t) 5 << 16) | 3:
3026
66
        return OFPERR_OFPFMFC_OVERLAP;
3027
66
    case  ((uint32_t) 5 << 16) | 4:
3028
66
        return OFPERR_OFPFMFC_EPERM;
3029
1.91k
    case  ((uint32_t) 5 << 16) | 5:
3030
1.91k
        return OFPERR_OFPFMFC_BAD_TIMEOUT;
3031
151
    case  ((uint32_t) 5 << 16) | 6:
3032
151
        return OFPERR_OFPFMFC_BAD_COMMAND;
3033
66
    case  ((uint32_t) 5 << 16) | 7:
3034
66
        return OFPERR_OFPFMFC_BAD_FLAGS;
3035
215
    case  ((uint32_t) 5 << 16) | 8:
3036
215
        return OFPERR_OFPFMFC_CANT_SYNC;
3037
66
    case  ((uint32_t) 5 << 16) | 9:
3038
66
        return OFPERR_OFPFMFC_BAD_PRIORITY;
3039
1.03k
    case  ((uint32_t) 5 << 16) | 10:
3040
1.03k
        return OFPERR_OFPFMFC_IS_SYNC;
3041
197
    case (0x2320ULL << 32) |  ((uint32_t) 12 << 16) | 0:
3042
197
        return OFPERR_NXFMFC_HARDWARE;
3043
66
    case (0x2320ULL << 32) |  ((uint32_t) 13 << 16) | 0:
3044
66
        return OFPERR_NXFMFC_BAD_TABLE_ID;
3045
34
    case (0x2320ULL << 32) |  ((uint32_t) 37 << 16) | 0:
3046
34
        return OFPERR_NXFMFC_INVALID_TLV_FIELD;
3047
533
    case  ((uint32_t) 6 << 16) | 0:
3048
533
        return OFPERR_OFPGMFC_GROUP_EXISTS;
3049
3.88k
    case  ((uint32_t) 6 << 16) | 1:
3050
3.88k
        return OFPERR_OFPGMFC_INVALID_GROUP;
3051
91
    case  ((uint32_t) 6 << 16) | 2:
3052
91
        return OFPERR_OFPGMFC_WEIGHT_UNSUPPORTED;
3053
95
    case  ((uint32_t) 6 << 16) | 3:
3054
95
        return OFPERR_OFPGMFC_OUT_OF_GROUPS;
3055
2.23k
    case  ((uint32_t) 6 << 16) | 4:
3056
2.23k
        return OFPERR_OFPGMFC_OUT_OF_BUCKETS;
3057
37
    case  ((uint32_t) 6 << 16) | 5:
3058
37
        return OFPERR_OFPGMFC_CHAINING_UNSUPPORTED;
3059
82
    case  ((uint32_t) 6 << 16) | 6:
3060
82
        return OFPERR_OFPGMFC_WATCH_UNSUPPORTED;
3061
1.32k
    case  ((uint32_t) 6 << 16) | 7:
3062
1.32k
        return OFPERR_OFPGMFC_LOOP;
3063
569
    case  ((uint32_t) 6 << 16) | 8:
3064
569
        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
66
    case  ((uint32_t) 6 << 16) | 11:
3070
66
        return OFPERR_OFPGMFC_BAD_COMMAND;
3071
1.22k
    case  ((uint32_t) 6 << 16) | 12:
3072
1.22k
        return OFPERR_OFPGMFC_BAD_BUCKET;
3073
291
    case  ((uint32_t) 6 << 16) | 13:
3074
291
        return OFPERR_OFPGMFC_BAD_WATCH;
3075
77
    case  ((uint32_t) 6 << 16) | 14:
3076
77
        return OFPERR_OFPGMFC_EPERM;
3077
219
    case  ((uint32_t) 6 << 16) | 15:
3078
219
        return OFPERR_OFPGMFC_UNKNOWN_BUCKET;
3079
127
    case  ((uint32_t) 6 << 16) | 16:
3080
127
        return OFPERR_OFPGMFC_BUCKET_EXISTS;
3081
1.17k
    case  ((uint32_t) 7 << 16) | 0:
3082
1.17k
        return OFPERR_OFPPMFC_BAD_PORT;
3083
86
    case  ((uint32_t) 7 << 16) | 1:
3084
86
        return OFPERR_OFPPMFC_BAD_HW_ADDR;
3085
1.02k
    case  ((uint32_t) 7 << 16) | 2:
3086
1.02k
        return OFPERR_OFPPMFC_BAD_CONFIG;
3087
115
    case  ((uint32_t) 7 << 16) | 3:
3088
115
        return OFPERR_OFPPMFC_BAD_ADVERTISE;
3089
71
    case  ((uint32_t) 7 << 16) | 4:
3090
71
        return OFPERR_OFPPMFC_EPERM;
3091
1.71k
    case  ((uint32_t) 8 << 16) | 0:
3092
1.71k
        return OFPERR_OFPTMFC_BAD_TABLE;
3093
1.50k
    case  ((uint32_t) 8 << 16) | 1:
3094
1.50k
        return OFPERR_OFPTMFC_BAD_CONFIG;
3095
991
    case  ((uint32_t) 8 << 16) | 2:
3096
991
        return OFPERR_OFPTMFC_EPERM;
3097
644
    case  ((uint32_t) 9 << 16) | 0:
3098
644
        return OFPERR_OFPQOFC_BAD_PORT;
3099
88
    case  ((uint32_t) 9 << 16) | 1:
3100
88
        return OFPERR_OFPQOFC_BAD_QUEUE;
3101
66
    case  ((uint32_t) 9 << 16) | 2:
3102
66
        return OFPERR_OFPQOFC_EPERM;
3103
517
    case (0x2320ULL << 32) |  ((uint32_t) 23 << 16) | 0:
3104
517
        return OFPERR_NXQOFC_QUEUE_ERROR;
3105
71
    case  ((uint32_t) 10 << 16) | 0:
3106
71
        return OFPERR_OFPSCFC_BAD_FLAGS;
3107
34
    case  ((uint32_t) 10 << 16) | 1:
3108
34
        return OFPERR_OFPSCFC_BAD_LEN;
3109
376
    case  ((uint32_t) 10 << 16) | 2:
3110
376
        return OFPERR_OFPSCFC_EPERM;
3111
70
    case  ((uint32_t) 11 << 16) | 0:
3112
70
        return OFPERR_OFPRRFC_STALE;
3113
67
    case  ((uint32_t) 11 << 16) | 1:
3114
67
        return OFPERR_OFPRRFC_UNSUP;
3115
79
    case  ((uint32_t) 11 << 16) | 2:
3116
79
        return OFPERR_OFPRRFC_BAD_ROLE;
3117
194
    case  ((uint32_t) 11 << 16) | 3:
3118
194
        return OFPERR_OFPRRFC_ID_UNSUP;
3119
311
    case  ((uint32_t) 11 << 16) | 4:
3120
311
        return OFPERR_OFPRRFC_ID_IN_USE;
3121
54
    case  ((uint32_t) 12 << 16) | 0:
3122
54
        return OFPERR_OFPMMFC_UNKNOWN;
3123
194
    case  ((uint32_t) 12 << 16) | 1:
3124
194
        return OFPERR_OFPMMFC_METER_EXISTS;
3125
72
    case  ((uint32_t) 12 << 16) | 2:
3126
72
        return OFPERR_OFPMMFC_INVALID_METER;
3127
66
    case  ((uint32_t) 12 << 16) | 3:
3128
66
        return OFPERR_OFPMMFC_UNKNOWN_METER;
3129
4.11k
    case  ((uint32_t) 12 << 16) | 4:
3130
4.11k
        return OFPERR_OFPMMFC_BAD_COMMAND;
3131
1.19k
    case  ((uint32_t) 12 << 16) | 5:
3132
1.19k
        return OFPERR_OFPMMFC_BAD_FLAGS;
3133
40
    case  ((uint32_t) 12 << 16) | 6:
3134
40
        return OFPERR_OFPMMFC_BAD_RATE;
3135
70
    case  ((uint32_t) 12 << 16) | 7:
3136
70
        return OFPERR_OFPMMFC_BAD_BURST;
3137
197
    case  ((uint32_t) 12 << 16) | 8:
3138
197
        return OFPERR_OFPMMFC_BAD_BAND;
3139
66
    case  ((uint32_t) 12 << 16) | 9:
3140
66
        return OFPERR_OFPMMFC_BAD_BAND_VALUE;
3141
203
    case  ((uint32_t) 12 << 16) | 10:
3142
203
        return OFPERR_OFPMMFC_OUT_OF_METERS;
3143
1.19k
    case  ((uint32_t) 12 << 16) | 11:
3144
1.19k
        return OFPERR_OFPMMFC_OUT_OF_BANDS;
3145
164
    case  ((uint32_t) 13 << 16) | 0:
3146
164
        return OFPERR_OFPTFFC_BAD_TABLE;
3147
374
    case  ((uint32_t) 13 << 16) | 1:
3148
374
        return OFPERR_OFPTFFC_BAD_METADATA;
3149
1.17k
    case  ((uint32_t) 13 << 16) | 5:
3150
1.17k
        return OFPERR_OFPTFFC_EPERM;
3151
197
    case  ((uint32_t) 13 << 16) | 6:
3152
197
        return OFPERR_OFPTFFC_BAD_CAPA;
3153
127
    case  ((uint32_t) 13 << 16) | 7:
3154
127
        return OFPERR_OFPTFFC_BAD_MAX_ENT;
3155
94
    case  ((uint32_t) 13 << 16) | 8:
3156
94
        return OFPERR_OFPTFFC_BAD_FEATURES;
3157
35
    case  ((uint32_t) 13 << 16) | 9:
3158
35
        return OFPERR_OFPTFFC_BAD_COMMAND;
3159
53
    case  ((uint32_t) 13 << 16) | 10:
3160
53
        return OFPERR_OFPTFFC_TOO_MANY;
3161
213
    case (0x2320ULL << 32) |  ((uint32_t) 44 << 16) | 0:
3162
213
        return OFPERR_NXTFFC_DUP_TABLE;
3163
119
    case  ((uint32_t) 14 << 16) | 0:
3164
119
        return OFPERR_OFPBPC_BAD_TYPE;
3165
168
    case  ((uint32_t) 14 << 16) | 1:
3166
168
        return OFPERR_OFPBPC_BAD_LEN;
3167
66
    case  ((uint32_t) 14 << 16) | 2:
3168
66
        return OFPERR_OFPBPC_BAD_VALUE;
3169
66
    case  ((uint32_t) 14 << 16) | 3:
3170
66
        return OFPERR_OFPBPC_TOO_MANY;
3171
35
    case  ((uint32_t) 14 << 16) | 4:
3172
35
        return OFPERR_OFPBPC_DUP_TYPE;
3173
434
    case  ((uint32_t) 14 << 16) | 5:
3174
434
        return OFPERR_OFPBPC_BAD_EXPERIMENTER;
3175
66
    case  ((uint32_t) 14 << 16) | 6:
3176
66
        return OFPERR_OFPBPC_BAD_EXP_TYPE;
3177
71
    case  ((uint32_t) 14 << 16) | 7:
3178
71
        return OFPERR_OFPBPC_BAD_EXP_VALUE;
3179
168
    case  ((uint32_t) 14 << 16) | 8:
3180
168
        return OFPERR_OFPBPC_EPERM;
3181
34
    case  ((uint32_t) 15 << 16) | 0:
3182
34
        return OFPERR_OFPACFC_INVALID;
3183
18
    case  ((uint32_t) 15 << 16) | 1:
3184
18
        return OFPERR_OFPACFC_UNSUPPORTED;
3185
66
    case  ((uint32_t) 15 << 16) | 2:
3186
66
        return OFPERR_OFPACFC_EPERM;
3187
23
    case  ((uint32_t) 17 << 16) | 0:
3188
23
        return OFPERR_OFPBFC_UNKNOWN;
3189
66
    case  ((uint32_t) 17 << 16) | 1:
3190
66
        return OFPERR_OFPBFC_EPERM;
3191
90
    case  ((uint32_t) 17 << 16) | 2:
3192
90
        return OFPERR_OFPBFC_BAD_ID;
3193
69
    case  ((uint32_t) 17 << 16) | 3:
3194
69
        return OFPERR_OFPBFC_BUNDLE_EXIST;
3195
76
    case  ((uint32_t) 17 << 16) | 4:
3196
76
        return OFPERR_OFPBFC_BUNDLE_CLOSED;
3197
231
    case  ((uint32_t) 17 << 16) | 5:
3198
231
        return OFPERR_OFPBFC_OUT_OF_BUNDLES;
3199
91
    case  ((uint32_t) 17 << 16) | 6:
3200
91
        return OFPERR_OFPBFC_BAD_TYPE;
3201
1.08k
    case  ((uint32_t) 17 << 16) | 7:
3202
1.08k
        return OFPERR_OFPBFC_BAD_FLAGS;
3203
88
    case  ((uint32_t) 17 << 16) | 8:
3204
88
        return OFPERR_OFPBFC_MSG_BAD_LEN;
3205
803
    case  ((uint32_t) 17 << 16) | 9:
3206
803
        return OFPERR_OFPBFC_MSG_BAD_XID;
3207
66
    case  ((uint32_t) 17 << 16) | 10:
3208
66
        return OFPERR_OFPBFC_MSG_UNSUP;
3209
2.63k
    case  ((uint32_t) 17 << 16) | 11:
3210
2.63k
        return OFPERR_OFPBFC_MSG_CONFLICT;
3211
68
    case  ((uint32_t) 17 << 16) | 12:
3212
68
        return OFPERR_OFPBFC_MSG_TOO_MANY;
3213
302
    case  ((uint32_t) 17 << 16) | 13:
3214
302
        return OFPERR_OFPBFC_MSG_FAILED;
3215
338
    case  ((uint32_t) 17 << 16) | 14:
3216
338
        return OFPERR_OFPBFC_TIMEOUT;
3217
4.55k
    case  ((uint32_t) 17 << 16) | 15:
3218
4.55k
        return OFPERR_OFPBFC_BUNDLE_IN_PROGRESS;
3219
3.36k
    case  ((uint32_t) 17 << 16) | 16:
3220
3.36k
        return OFPERR_OFPBFC_SCHED_NOT_SUPPORTED;
3221
195
    case  ((uint32_t) 17 << 16) | 17:
3222
195
        return OFPERR_OFPBFC_SCHED_FUTURE;
3223
196
    case  ((uint32_t) 17 << 16) | 18:
3224
196
        return OFPERR_OFPBFC_SCHED_PAST;
3225
67
    case (0x2320ULL << 32) |  ((uint32_t) 22 << 16) | 0:
3226
67
        return OFPERR_OFPBFC_BAD_VERSION;
3227
329
    case  ((uint32_t) 16 << 16) | 0:
3228
329
        return OFPERR_OFPMOFC_UNKNOWN;
3229
833
    case  ((uint32_t) 16 << 16) | 1:
3230
833
        return OFPERR_OFPMOFC_MONITOR_EXISTS;
3231
66
    case  ((uint32_t) 16 << 16) | 2:
3232
66
        return OFPERR_OFPMOFC_INVALID_MONITOR;
3233
69
    case  ((uint32_t) 16 << 16) | 3:
3234
69
        return OFPERR_OFPMOFC_UNKNOWN_MONITOR;
3235
70
    case  ((uint32_t) 16 << 16) | 4:
3236
70
        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
46
    case  ((uint32_t) 16 << 16) | 7:
3242
46
        return OFPERR_OFPMOFC_BAD_OUT;
3243
735
    case (0x2320ULL << 32) |  ((uint32_t) 16 << 16) | 0:
3244
735
        return OFPERR_NXTTMFC_BAD_COMMAND;
3245
78
    case (0x2320ULL << 32) |  ((uint32_t) 17 << 16) | 0:
3246
78
        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
96
    case (0x2320ULL << 32) |  ((uint32_t) 19 << 16) | 0:
3250
96
        return OFPERR_NXTTMFC_TABLE_FULL;
3251
206
    case (0x2320ULL << 32) |  ((uint32_t) 20 << 16) | 0:
3252
206
        return OFPERR_NXTTMFC_ALREADY_MAPPED;
3253
18
    case (0x2320ULL << 32) |  ((uint32_t) 21 << 16) | 0:
3254
18
        return OFPERR_NXTTMFC_DUP_ENTRY;
3255
217
    case (0x2320ULL << 32) |  ((uint32_t) 38 << 16) | 0:
3256
217
        return OFPERR_NXTTMFC_INVALID_TLV_DEL;
3257
18
    case (0x2320ULL << 32) |  ((uint32_t) 34 << 16) | 0:
3258
18
        return OFPERR_NXR_NOT_SUPPORTED;
3259
902
    case (0x2320ULL << 32) |  ((uint32_t) 35 << 16) | 0:
3260
902
        return OFPERR_NXR_STALE;
3261
509
    case (0x2320ULL << 32) |  ((uint32_t) 36 << 16) | 0:
3262
509
        return OFPERR_NXST_NOT_CONFIGURED;
3263
135k
    }
3264
3265
28.5k
    return 0;
3266
135k
}
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
};