ovs-ofctl: Accept port keywords, OF1.1 port numbers, reject port number 0.
authorBen Pfaff <blp@nicira.com>
Thu, 20 Sep 2012 15:40:29 +0000 (08:40 -0700)
committerBen Pfaff <blp@nicira.com>
Thu, 20 Sep 2012 15:40:29 +0000 (08:40 -0700)
commitc6100d92142bc3dd325180cb4e10553eb4341731
treed03b58dd371880d8fda4785f4cc1bb3100f412e5
parent2ac3c572267c550302eee88d4f584b3694d88f88
ovs-ofctl: Accept port keywords, OF1.1 port numbers, reject port number 0.

OpenFlow 1.0 has special reserved ports in the range 0xfff8 to 0xffff.
OpenFlow 1.1 and later has the same ports in the range 0xfffffff8 to
0xffffffff and allows the OF1.0 range to be used for ordinary ("physical")
switch ports.  This means that, naively, the meaning of a port number in
the range 0xfff8 to 0xffff given on the ovs-ofctl command line depends on
the protocol in use.  This commit implements something a little smarter:

    - Accept keyword names (e.g. LOCAL) for special reserved ports
      everywhere that such a port can plausibly be used (previously they
      were only accepted in some places).

    - Translate 0xfff8...0xffff to 0xfffffff8...0xffffffff for now, since
      OF1.1+ isn't in widespread use and those particular ports aren't
      likely to be in use in OF1.1+ anyway.

    - Log warnings about those ports when they are specified by number, to
      allow users to fix their invocations.

Also:

    - Accept the OF1.1+ port numbers for these ports, without warning, for
      compatibility with the upcoming OF1.1+ support.

    - Stop accepting port number 0, which has never been a valid port
      number in OpenFlow 1.0 and later.  (This required fixing some tests
      that inadvertently used this port number).

Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Simon Horman <horms@verge.net.au>
13 files changed:
NEWS
include/openflow/openflow-1.0.h
lib/autopath.c
lib/bundle.c
lib/meta-flow.c
lib/ofp-actions.c
lib/ofp-parse.c
lib/ofp-util.c
lib/ofp-util.h
tests/autopath.at
tests/ofproto.at
utilities/ovs-ofctl.8.in
utilities/ovs-ofctl.c