[ovs-dev] [PATCH 3/4] ofp-errors: Add remaining OF1.4 and OF1.5 errors.
Ben Pfaff
blp at ovn.org
Thu Feb 8 23:18:48 UTC 2018
Also implements the backports of relevant errors to OF1.3 as specified in
ONF extension pack 1 for OF1.3.
ONF-JIRA: EXT-237
ONF-JIRA: EXT-230
ONF-JIRA: EXT-264
Signed-off-by: Ben Pfaff <blp at ovn.org>
---
Documentation/topics/openflow.rst | 20 ---------
include/openvswitch/ofp-errors.h | 88 ++++++++++++++++++++++++++++++++-------
2 files changed, 73 insertions(+), 35 deletions(-)
diff --git a/Documentation/topics/openflow.rst b/Documentation/topics/openflow.rst
index 381f94d9c22c..ea5a4450687d 100644
--- a/Documentation/topics/openflow.rst
+++ b/Documentation/topics/openflow.rst
@@ -205,20 +205,6 @@ in OVS.
(optional for OF1.4+)
-* Bad flow entry priority error
-
- Probably not so useful to the software switch.
-
- (EXT-236)
-
- (optional for OF1.4+)
-
-* Set async config error
-
- (EXT-237)
-
- (optional for OF1.4+)
-
* PBB UCA header field
See comment on Provider Backbone Bridge in section about OpenFlow 1.3.
@@ -227,12 +213,6 @@ in OVS.
(optional for OF1.4+)
-* Multipart timeout error
-
- (EXT-264)
-
- (required for OF1.4+)
-
OpenFlow 1.4 only
-----------------
diff --git a/include/openvswitch/ofp-errors.h b/include/openvswitch/ofp-errors.h
index 283b9af40248..6542f10b46fd 100644
--- a/include/openvswitch/ofp-errors.h
+++ b/include/openvswitch/ofp-errors.h
@@ -169,10 +169,10 @@ enum ofperr {
/* OF1.0-1.1(1,5), OF1.2+(1,10). Denied because controller is slave. */
OFPERR_OFPBRC_IS_SLAVE,
- /* NX1.0-1.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 appropriate error code defined the
- * specifications. ] */
+ /* NX1.0-1.1(1,514), OF1.2+(1,11). Invalid or missing 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 appropriate error code
+ * defined the specifications. ] */
OFPERR_OFPBRC_BAD_PORT,
/* OF1.2+(1,12). Invalid packet in packet-out. */
@@ -181,9 +181,22 @@ enum ofperr {
/* OF1.3+(1,13). Multipart request overflowed the assigned buffer. */
OFPERR_OFPBRC_MULTIPART_BUFFER_OVERFLOW,
+ /* ONF1.3(2640), OF1.4+(1,14). Timeout during multipart request. */
+ OFPERR_OFPBRC_MULTIPART_REQUEST_TIMEOUT,
+
+ /* ONF1.3(2641), OF1.4+(1,15). Timeout during multipart reply. */
+ OFPERR_OFPBRC_MULTIPART_REPLY_TIMEOUT,
+
+ /* OF1.5+(1,16). Switch received a OFPMP_BUNDLE_FEATURES request and
+ * failed to update the scheduling tolerance. */
+ OFPERR_OFPBRC_MULTIPART_BAD_SCHED,
+
/* OF1.5+(1,17). Match fields must include only pipeline fields. */
OFPERR_OFPBRC_PIPELINE_FIELDS_ONLY,
+ /* OF1.5+(1,18). Unspecified error. */
+ OFPERR_OFPBRC_UNKNOWN,
+
/* NX1.0-1.1(1,256), NX1.2+(2). Invalid NXM flow match. */
OFPERR_NXBRC_NXM_INVALID,
@@ -212,7 +225,7 @@ enum ofperr {
/* ## OFPET_BAD_ACTION ## */
/* ## ---------------- ## */
- /* OF1.0+(2,0). Unknown action type. */
+ /* OF1.0+(2,0). Unknown or unsupported action type. */
OFPERR_OFPBAC_BAD_TYPE,
/* OF1.0+(2,1). Length problem in actions. */
@@ -239,7 +252,7 @@ enum ofperr {
/* OF1.0+(2,8). Problem validating output queue. */
OFPERR_OFPBAC_BAD_QUEUE,
- /* OF1.1+(2,9). Invalid group id in forward action. */
+ /* OF1.1+(2,9). Invalid group id in output action. */
OFPERR_OFPBAC_BAD_OUT_GROUP,
/* NX1.0(1,522), OF1.1+(2,10). Action can't apply for this match or a
@@ -269,6 +282,9 @@ enum ofperr {
* bit set to 1. */
OFPERR_OFPBAC_BAD_SET_MASK,
+ /* OF1.5+(2,17). Invalid meter id in meter action. */
+ OFPERR_OFPBAC_BAD_METER,
+
/* NX1.0-1.1(2,256), NX1.2+(11). Must-be-zero action argument had nonzero
* value. */
OFPERR_NXBAC_MUST_BE_ZERO,
@@ -360,8 +376,8 @@ enum ofperr {
* field. */
OFPERR_OFPBMC_BAD_VALUE,
- /* NX1.0-1.1(1,259), OF1.2+(4,8). Unsupported mask specified in the match,
- * field is not dl-address or nw-address. */
+ /* NX1.0-1.1(1,259), OF1.2+(4,8). Unsupported mask specified in the
+ * match. */
OFPERR_OFPBMC_BAD_MASK,
/* NX1.0-1.1(1,260), OF1.2+(4,9). A prerequisite was not met. */
@@ -413,6 +429,15 @@ enum ofperr {
* flags. */
OFPERR_OFPFMFC_BAD_FLAGS,
+ /* OF1.4+(5,8). Problem in table synchronization. */
+ OFPERR_OFPFMFC_CANT_SYNC,
+
+ /* ONF1.3(2360), OF1.4+(5,9). Unsupported priority value. */
+ OFPERR_OFPFMFC_BAD_PRIORITY,
+
+ /* OF1.4+(5,10). Synchronized flow entry is read only. */
+ OFPERR_OFPFMFC_IS_SYNC,
+
/* OF1.0(3,5). Unsupported action list - cannot process in the order
* specified. */
OFPERR_OFPFMFC_UNSUPPORTED,
@@ -567,6 +592,12 @@ enum ofperr {
/* NX1.0-1.1(1,513), OF1.2+(11,2). Invalid role. */
OFPERR_OFPRRFC_BAD_ROLE,
+ /* OF1.5+(11,3). Switch doesn't support changing ID. */
+ OFPERR_OFPRRFC_ID_UNSUP,
+
+ /* OF1.5+(11,4). Requested ID is in use. */
+ OFPERR_OFPRRFC_ID_IN_USE,
+
/* ## ---------------------- ## */
/* ## OFPET_METER_MOD_FAILED ## */
/* ## ---------------------- ## */
@@ -578,11 +609,12 @@ enum ofperr {
* replace an existing Meter. */
OFPERR_OFPMMFC_METER_EXISTS,
- /* OF1.3+(12,2). Meter not added because Meter specified is invalid. */
+ /* OF1.3+(12,2). Meter not added because meter specified is invalid, or
+ * invalid meter in meter action. */
OFPERR_OFPMMFC_INVALID_METER,
/* OF1.3+(12,3). Meter not modified because a Meter MODIFY attempted
- * to modify a non-existent Meter. */
+ * to modify a non-existent meter, or bad meter in meter action. */
OFPERR_OFPMMFC_UNKNOWN_METER,
/* OF1.3+(12,4). Unsupported or unknown command. */
@@ -623,12 +655,28 @@ enum ofperr {
/* OF1.3+(13,5). Permissions error. */
OFPERR_OFPTFFC_EPERM,
+ /* OF1.5+(13,6). Invalid capability field. */
+ OFPERR_OFPTFFC_BAD_CAPA,
+
+ /* OF1.5+(13,7). Invalid max_entries field. */
+ OFPERR_OFPTFFC_BAD_MAX_ENT,
+
+ /* OF1.5+(13,8). Invalid features field. */
+ OFPERR_OFPTFFC_BAD_FEATURES,
+
+ /* OF1.5+(13,9). Invalid command. */
+ OFPERR_OFPTFFC_BAD_COMMAND,
+
+ /* OF1.5+(13,10). Can't handle this many flow tables. */
+ OFPERR_OFPTFFC_TOO_MANY,
+
+
/* ## ------------------ ## */
/* ## OFPET_BAD_PROPERTY ## */
/* ## ------------------ ## */
- /* NX1.0-1.1(13,2), NX1.2(25), OF1.3(13,2), OF1.4+(14,0). Unknown property
- * type.
+ /* NX1.0-1.1(13,2), NX1.2(25), OF1.3(13,2), OF1.4+(14,0). Unknown or
+ * unsupported property type.
*
* [Known as OFPTFFC_BAD_TYPE in OF1.3.] */
OFPERR_OFPBPC_BAD_TYPE,
@@ -673,13 +721,13 @@ enum ofperr {
/* ## OFPET_ASYNC_CONFIG_FAILED ## */
/* ## -------------------------- ## */
- /* OF1.4+(15,0). One mask is invalid. */
+ /* ONF1.3(2370), OF1.4+(15,0). One mask is invalid. */
OFPERR_OFPACFC_INVALID,
- /* OF1.4+(15,1). Requested configuration not supported. */
+ /* ONF1.3(2371), OF1.4+(15,1). Requested configuration not supported. */
OFPERR_OFPACFC_UNSUPPORTED,
- /* OF1.4+(15,2). Permissions error. */
+ /* ONF1.3(2372), OF1.4+(15,2). Permissions error. */
OFPERR_OFPACFC_EPERM,
/* ## -------------------- ## */
@@ -738,6 +786,16 @@ enum ofperr {
/* ONF1.3(2315), OF1.4+(17,15). Bundle is locking the resource. */
OFPERR_OFPBFC_BUNDLE_IN_PROGRESS,
+ /* OF1.5+(17,16). Scheduled commit was received and scheduling is not
+ * supported. */
+ OFPERR_OFPBFC_SCHED_NOT_SUPPORTED,
+
+ /* OF1.5+(17,17). Scheduled commit time exceeds upper bound. */
+ OFPERR_OFPBFC_SCHED_FUTURE,
+
+ /* OF1.5+(17,18). Scheduled commit time exceeds lower bound. */
+ OFPERR_OFPBFC_SCHED_PAST,
+
/* NX1.4-1.5(22), OF1.6+(17,19). In an OFPT_BUNDLE_ADD_MESSAGE, the
* OpenFlow version in the inner and outer messages differ. */
OFPERR_OFPBFC_BAD_VERSION,
--
2.15.1
More information about the dev
mailing list