Coverage Report

Created: 2025-08-03 06:34

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