On Wed, Sep 05, 2012 at 11:50:37AM +0900, Simon Horman wrote: > * In the case of OpenFlow 1.2+ OFPERR_OFPBRC_BAD_PORT is defined > in the specification and seems to be the most appropriate error > to use when an invalid port is encountered in a Packet Out request. > > * In the case of OpenFlow 1.0 and 1.1 no appropriate error message > seems to exist. Perhaps because an invalid port is not possible? > I'm unsure. > > In any case, make use of a non-standard error code (1,514). > This was formerly known as OFPERR_NXBRC_BAD_IN_PORT but > has been rolled into OFPERR_NXBRC_BAD_IN_PORT to allow the > latter to be used without concern for the prevailing Open Flow version. > > Signed-off-by: Simon Horman <ho...@verge.net.au>
I noticed that this added OF1.0(1,514) as a standard error code when it's clearly an extension (e.g. NX1.0(1,514)) and extract-ofp-errors didn't complain. So I did s/OF/NX/ in a couple of places and then added the following commit to prevent these errors in the future: --8<--------------------------cut here-------------------------->8-- From: Ben Pfaff <b...@nicira.com> Date: Wed, 5 Sep 2012 10:18:56 -0700 Subject: [PATCH] extract-ofp-errors: Check that error codes are in the expected ranges. All real OpenFlow error codes are small numbers, and for Nicira extensions we've intentionally chosen large numbers. This commit adds a check that standard and extension codes are properly designated in the ofp-errors.h header. Signed-off-by: Ben Pfaff <b...@nicira.com> --- build-aux/extract-ofp-errors | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/build-aux/extract-ofp-errors b/build-aux/extract-ofp-errors index bd4ab9e..db28af8 100755 --- a/build-aux/extract-ofp-errors +++ b/build-aux/extract-ofp-errors @@ -238,6 +238,11 @@ def extract_ofp_errors(filenames): "NX1.2": ("OF1.2",)} if targets not in target_map: fatal("%s: unknown error domain" % targets) + if targets.startswith('NX') and code < 0x100: + fatal("%s: NX domain code cannot be less than 0x100" % dst) + if targets.startswith('OF') and code >= 0x100: + fatal("%s: OF domain code cannot be greater than 0x100" + % dst) for target in target_map[targets]: domain[target].setdefault(type_, {}) if code in domain[target][type_]: -- 1.7.2.5 I applied it, with that change. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev