Hi Ben, I am wondering if you could offer some guidance with regards to using NX error codes.
I have not checked all use-cases, but it seems to me that for OpenFlow1.0 such messages are only used when an NX extension is in use and thus the controller is aware of the extension and error code. This seems straightforward. What I am concerned about is OpenFlow1.1+, in particular the following two cases. The basis of my concern is that using NX codes seems to imply that they are understood by the controller, but the codes seem to be used in conjunction with standard OpenFlow1.1+ behaviour, not NX extensions. 1. An NX code is used but an equivalent OpenFlow1.1+ code exists. For example OFPERR_NXBRC_BAD_TABLE_ID and OFPERR_OFPBRC_BAD_TABLE_ID. Three behaviours spring to mind i. Always use OFPERR_NXBRC_BAD_TABLE_ID ii. Always OFPERR_OFPBRC_BAD_TABLE_ID by adding the appropriate NX() annotation to its definition. This appears to be the way that OFPERR_OFPBMC_DUP_FIELD is handled. iii. Use OFPERR_NXBRC_BAD_TABLE_ID for OpenFlow 1.0 and OFPERR_OFPBRC_BAD_TABLE_ID for Open Flow 1.1+. 2. An NX code is used but no equally specific OpenFlow1.1+ code exists. For example OFPERR_NXBIC_DUP_TYPE. Here I also see a few options i. Always use OFPERR_NXBIC_DUP_TYPE. ii. Always use a less specific type, e.g. OFPERR_OFPIT_BAD_INSTRUCTION. Using OFPERR_NXBIC_DUP_TYPE only for Open Flow 1.0 doesn't seem to be meaningful as OFPERR_NXBIC_DUP_TYPE is annotated as NX1.1+ and the error code is only used in an OpenFlow 1.1+ code path. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev