Coverage Report

Created: 2026-01-09 06:32

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