X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Fofp-errors.h;h=e9fedb9e0dababb0160586e1e42512f0076c3bd8;hb=4f13da568d49b4910cedf45e6c54c43ea318dd18;hp=69ada40eb5694c2ebbf61004dfd56cf7fc500aca;hpb=fb9515e1fd7f60d9720ccdecd3cb23c7b852f045;p=sliver-openvswitch.git diff --git a/lib/ofp-errors.h b/lib/ofp-errors.h index 69ada40eb..e9fedb9e0 100644 --- a/lib/ofp-errors.h +++ b/lib/ofp-errors.h @@ -45,6 +45,19 @@ struct ofpbuf; #define OFPERR_OFS (1 << 30) +/* OpenFlow error codes. + * + * The comments below are parsed by the extract-ofp-errors program at build + * time and used to determine the mapping between "enum ofperr" constants and + * error type/code values used in the OpenFlow protocol: + * + * - The first part of each comment specifies OpenFlow type/code for each + * protocol that supports the error. + * + * - Additional text is a human-readable description of the meaning of each + * error, used to explain the error to the user. Any text enclosed in + * square brackets is omitted; this can be used to explain rationale for + * choice of error codes in the case where this is desirable. */ enum ofperr { /* Expected duplications. */ @@ -99,18 +112,27 @@ enum ofperr { /* OF1.0+(1,8). Specified buffer does not exist. */ OFPERR_OFPBRC_BUFFER_UNKNOWN, - /* OF1.1+(1,9). Specified table-id invalid or does not exist. */ + /* NX1.0(1,512), OF1.1+(1,9). Specified table-id invalid or does not exist. + * [ A non-standard error (1,512), formerly OFPERR_NXBRC_BAD_TABLE_ID, + * is used for OpenFlow 1.0 as there seems to be no appropriste error + * code defined the specification. ] */ OFPERR_OFPBRC_BAD_TABLE_ID, /* OF1.2+(1,10). Denied because controller is slave. */ OFPERR_OFPBRC_IS_SLAVE, - /* OF1.2+(1,11). Invalid port. */ + /* NX1.0(1,514), NX1.1(1,514), OF1.2+(1,11). Invalid port. + * [ A non-standard error (1,514), formerly + * OFPERR_NXBRC_BAD_IN_PORT is used for OpenFlow 1.0 and 1.1 as there + * seems to be no appropriste error code defined the specifications. ] */ OFPERR_OFPBRC_BAD_PORT, /* OF1.2+(1,12). Invalid packet in packet-out. */ OFPERR_OFPBRC_BAD_PACKET, + /* OF1.3+(1,13). Multipart request overflowed the assigned buffer. */ + OFPERR_OFPBRC_MULTIPART_BUFFER_OVERFLOW, + /* NX1.0+(1,256). Invalid NXM flow match. */ OFPERR_NXBRC_NXM_INVALID, @@ -118,12 +140,6 @@ enum ofperr { * nxm_hasmask or nxm_length or both, is invalid or not implemented. */ OFPERR_NXBRC_NXM_BAD_TYPE, - /* NX1.0+(1,512). A request specified a nonexistent table ID. */ - OFPERR_NXBRC_BAD_TABLE_ID, - - /* NX1.0+(1,514). The in_port in an ofp_packet_out request is invalid. */ - OFPERR_NXBRC_BAD_IN_PORT, - /* NX1.0+(1,515). Must-be-zero field had nonzero value. */ OFPERR_NXBRC_MUST_BE_ZERO, @@ -268,7 +284,7 @@ enum ofperr { /* OF1.1+(4,6). Unsupported field in the match. */ OFPERR_OFPBMC_BAD_FIELD, - /* NX1.0(1,258), NX1.1(1,258), OF1.2+(4,7). Unsupported value in a match + /* NX1.0(1,258), OF1.1+(4,7). Unsupported value in a match * field. */ OFPERR_OFPBMC_BAD_VALUE, @@ -296,10 +312,7 @@ enum ofperr { /* OF1.1+(5,0). Unspecified error. */ OFPERR_OFPFMFC_UNKNOWN, - /* OF1.0(3,0). Flow not added because of full tables. */ - OFPERR_OFPFMFC_ALL_TABLES_FULL, - - /* OF1.1+(5,1). Flow not added because table was full. */ + /* OF1.0(3,0), OF1.1+(5,1). Flow not added because of full table(s). */ OFPERR_OFPFMFC_TABLE_FULL, /* OF1.1+(5,2). Table does not exist */ @@ -482,6 +495,77 @@ enum ofperr { /* NX1.0(1,513), NX1.1(1,513), OF1.2+(11,2). Invalid role. */ OFPERR_OFPRRFC_BAD_ROLE, +/* ## ---------------------- ## */ +/* ## OFPET_METER_MOD_FAILED ## */ +/* ## ---------------------- ## */ + + /* OF1.3+(12). Error in meter. */ + OFPERR_OFPET_METER_MOD_FAILED, + + /* OF1.3+(12,0). Unspecified error. */ + OFPERR_OFPMMFC_UNKNOWN, + + /* OF1.3+(12,1). Meter not added because a Meter ADD attempted to + * replace an existing Meter. */ + OFPERR_OFPMMFC_METER_EXISTS, + + /* OF1.3+(12,2). Meter not added because Meter specified is invalid. */ + OFPERR_OFPMMFC_INVALID_METER, + + /* OF1.3+(12,3). Meter not modified because a Meter MODIFY attempted + * to modify a non-existent Meter. */ + OFPERR_OFPMMFC_UNKNOWN_METER, + + /* OF1.3+(12,4). Unsupported or unknown command. */ + OFPERR_OFPMMFC_BAD_COMMAND, + + /* OF1.3+(12,5). Flag configuration unsupported. */ + OFPERR_OFPMMFC_BAD_FLAGS, + + /* OF1.3+(12,6). Rate unsupported. */ + OFPERR_OFPMMFC_BAD_RATE, + + /* OF1.3+(12,7). Burst size unsupported. */ + OFPERR_OFPMMFC_BAD_BURST, + + /* OF1.3+(12,8). Band unsupported. */ + OFPERR_OFPMMFC_BAD_BAND, + + /* OF1.3+(12,9). Band value unsupported. */ + OFPERR_OFPMMFC_BAD_BAND_VALUE, + + /* OF1.3+(12,10). No more meters available. */ + OFPERR_OFPMMFC_OUT_OF_METERS, + + /* OF1.3+(12,11). The maximum number of properties for a meter has + * been exceeded. */ + OFPERR_OFPMMFC_OUT_OF_BANDS, + +/* ## --------------------------- ## */ +/* ## OFPET_TABLE_FEATURES_FAILED ## */ +/* ## --------------------------- ## */ + + /* OF1.3+(13). Setting table features failed. */ + OFPERR_OFPET_TABLE_FEATURES_FAILED, + + /* OF1.3+(13,0). Specified table does not exist. */ + OFPERR_OFPTFFC_BAD_TABLE, + + /* OF1.3+(13,1). Invalid metadata mask. */ + OFPERR_OFPTFFC_BAD_METADATA, + + /* OF1.3+(13,2). Unknown property type. */ + OFPERR_OFPTFFC_BAD_TYPE, + + /* OF1.3+(13,3). Length problem in properties. */ + OFPERR_OFPTFFC_BAD_LEN, + + /* OF1.3+(13,4). Unsupported property value. */ + OFPERR_OFPTFFC_BAD_ARGUMENT, + + /* OF1.3+(13,5). Permissions error. */ + OFPERR_OFPTFFC_EPERM, + /* ## ------------------ ## */ /* ## OFPET_EXPERIMENTER ## */ /* ## ------------------ ## */