Coverage Report

Created: 2025-10-10 06:39

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