Coverage Report

Created: 2026-08-15 06:27

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