[ovs-dev] [PATCH 01/12] ovs-ofputil: Make str_to_port_no() aware of invalid ports
Simon Horman
horms at verge.net.au
Thu Sep 20 01:50:23 UTC 2012
On Wed, Sep 19, 2012 at 10:45:25AM -0700, Ben Pfaff wrote:
> On Tue, Sep 18, 2012 at 08:58:14AM +0900, Simon Horman wrote:
> > On Mon, Sep 17, 2012 at 03:53:28PM -0700, Ben Pfaff wrote:
> > > On Mon, Sep 17, 2012 at 09:26:48AM +0900, Simon Horman wrote:
> > > > Open Flow 1.1 and 1.2 make use of 32 bit ports, however Open vSwtich maps
> > > > them to 16 bits. Make ovs-ofputl aware of this.
> > > >
> > > > Also, only accept ports that fit into 16 bits for Open Flow 1.0.
> > > >
> > > > Signed-off-by: Simon Horman <horms at verge.net.au>
> > >
> > > This makes the acceptable port numbers a function of the protocol we
> > > end up with, but the ovs-ofctl philosophy has always been that you
> > > tell it what you want and it'll pick an acceptable protocol for doing
> > > what you asked for. There's also an issue of some confusion over
> > > whether, say, port 65535 is OFPP_NONE (OF1.0) or just an
> > > undistinguished "physical" port (OF1.1). I think we can do better.
> > >
> > > Here's a counterproposal. What do you think?
> > >
> > > Thanks,
> > >
> > > Ben.
> > >
> > > --8<--------------------------cut here-------------------------->8--
> > >
> > > From: Ben Pfaff <blp at nicira.com>
> > > Date: Mon, 17 Sep 2012 15:49:59 -0700
> > > Subject: [PATCH] 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.
> >
> > I don't really like the above assumption, 0xfff8...0xffff
> > are valid OF1.1+ port numbers, it seems that it would
> > cause rather a surprise if they were used as non-reserved ports
> > but Open vSwtich interpreted them as reserved ports.
> >
> > I am prepared to live with it, but I don't like it.
>
> For now, we couldn't use those OF1.1+ port numbers anyway, because
> internally OVS only supports 16-bit port numbers. Presumably some
> time in the future we'll switch OVS to use 32-bit port numbers
> internally, but until then I can't really see a drawback.
True, I reflected on that after writing my previous response.
> Would it make you happier if I added some kind of formal deprecation
> notice to NEWS saying that numeric values for the reserved OpenFlow
> ports won't be supported after such-and-such a date?
I'm happy with adding that notice at a later date.
In all, I think that this is a reasonable approach given the constraints.
Acked-by: Simon Horman <horms at verge.net.au>
More information about the dev
mailing list