[ovs-discuss] does ovs 2.5.0 support openflow 1.5?

Ben Pfaff blp at ovn.org
Sat Jul 2 01:25:19 UTC 2016


You have two choices.  You can enable OpenFlow 1.5 and accept that some
features will not work because OpenFlow 1.5 is not fully supported, or
you can use the NXM values for TCP flags and other fields, which are
supported in any version of OpenFlow that supports OXM.

The FAQ explains how to enable OpenFlow 1.5.

### Q: What versions of OpenFlow does Open vSwitch support?

A: The following table lists the versions of OpenFlow supported by
   each version of Open vSwitch:

       Open vSwitch      OF1.0  OF1.1  OF1.2  OF1.3  OF1.4  OF1.5  OF1.6
       ###============   =====  =====  =====  =====  =====  =====  =====
       1.9 and earlier    yes    ---    ---    ---    ---    ---     ---
       1.10               yes    ---    [*]    [*]    ---    ---     ---
       1.11               yes    ---    [*]    [*]    ---    ---     ---
       2.0                yes    [*]    [*]    [*]    ---    ---     ---
       2.1                yes    [*]    [*]    [*]    ---    ---     ---
       2.2                yes    [*]    [*]    [*]    [%]    [*]     ---
       2.3                yes    yes    yes    yes    [*]    [*]     ---
       2.4                yes    yes    yes    yes    [*]    [*]     ---
       2.5                yes    yes    yes    yes    [*]    [*]     [*]

       [*] Supported, with one or more missing features.
       [%] Experimental, unsafe implementation.

   Open vSwitch 2.3 enables OpenFlow 1.0, 1.1, 1.2, and 1.3 by default
   in ovs-vswitchd.  In Open vSwitch 1.10 through 2.2, OpenFlow 1.1,
   1.2, and 1.3 must be enabled manually in ovs-vswitchd.

   Some versions of OpenFlow are supported with missing features and
   therefore not enabled by default: OpenFlow 1.4 and 1.5, in Open
   vSwitch 2.3 and later, as well as OpenFlow 1.6 in Open vSwitch 2.5
   and later.  Also, the OpenFlow 1.6 specification is still under
   development and thus subject to change.

   In any case, the user may override the default:

   - To enable OpenFlow 1.0, 1.1, 1.2, and 1.3 on bridge br0:

     ovs-vsctl set bridge br0 protocols=OpenFlow10,OpenFlow11,OpenFlow12,OpenFlow13

   - To enable OpenFlow 1.0, 1.1, 1.2, 1.3, 1.4, and 1.5 on bridge br0:

     ovs-vsctl set bridge br0 protocols=OpenFlow10,OpenFlow11,OpenFlow12,OpenFlow13,OpenFlow14,OpenFlow15

   - To enable only OpenFlow 1.0 on bridge br0:

     ovs-vsctl set bridge br0 protocols=OpenFlow10

   All current versions of ovs-ofctl enable only OpenFlow 1.0 by
   default.  Use the -O option to enable support for later versions of
   OpenFlow in ovs-ofctl.  For example:

       ovs-ofctl -O OpenFlow13 dump-flows br0

   (Open vSwitch 2.2 had an experimental implementation of OpenFlow
   1.4 that could cause crashes.  We don't recommend enabling it.)

   [OPENFLOW-1.1+.md] in the Open vSwitch source tree tracks support for
   OpenFlow 1.1 and later features.  When support for OpenFlow 1.4 and
   1.5 is solidly implemented, Open vSwitch will enable those version
   by default.

On Sat, Jul 02, 2016 at 09:17:37AM +0800, Big Strong wrote:
> I'm not quite understand. So how can I enable these features such as TCP
> FLAGS (which is declared to be usable since ovs 2.1.0) while unable to
> enable openflow 1.5? Following is the error message when I tried to enable
> openflow 1.5 using "ovs-vsctl set bridge br0
> protocols=OpenFlow10,OpenFlow11,OpenFlow12,OpenFlow13,OpenFlow14,OpenFlow15"
> 
> 18:17:18.395 INFO [n.f.c.i.OFChannelHandler:nioEventLoopGroup-3-26] New
> > switch connection from /172.16.105.204:37320
> > 18:17:18.397 ERROR [n.f.c.i.OFChannelHandler:nioEventLoopGroup-3-26] Error
> > while processing message from switch [? from 172.16.105.204:37320]state
> > net.floodlightcontroller.core.internal.OFChannelHandler$WaitHelloState at 6fe162b3
> > io.netty.handler.codec.DecoderException:
> > java.lang.IllegalArgumentException: Unknown wire version: 6
> >         at
> > io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:358)
> > ~[floodlight.jar:na]
> >         at
> > io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:230)
> > ~[floodlight.jar:na]
> >         at
> > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:308)
> > [floodlight.jar:na]
> >         at
> > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:294)
> > [floodlight.jar:na]
> >         at
> > io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:846)
> > [floodlight.jar:na]
> >         at
> > io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)
> > [floodlight.jar:na]
> >         at
> > io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511)
> > [floodlight.jar:na]
> >         at
> > io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468)
> > [floodlight.jar:na]
> >         at
> > io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382)
> > [floodlight.jar:na]
> >         at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354)
> > [floodlight.jar:na]
> >         at
> > io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112)
> > [floodlight.jar:na]
> >         at
> > io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)
> > [floodlight.jar:na]
> >         at java.lang.Thread.run(Thread.java:745) [na:1.7.0_101]
> > Caused by: java.lang.IllegalArgumentException: Unknown wire version: 6
> >         at
> > org.projectfloodlight.openflow.protocol.OFFactories$GenericReader.readFrom(OFFactories.java:72)
> > ~[floodlight.jar:na]
> >         at
> > org.projectfloodlight.openflow.protocol.OFFactories$GenericReader.readFrom(OFFactories.java:49)
> > ~[floodlight.jar:na]
> >         at
> > net.floodlightcontroller.core.internal.OFMessageDecoder.decode(OFMessageDecoder.java:80)
> > ~[floodlight.jar:na]
> >         at
> > io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:327)
> > ~[floodlight.jar:na]
> >         ... 12 common frames omitted
> > 18:17:18.399 INFO [n.f.c.i.OFChannelHandler:nioEventLoopGroup-3-26] [[?
> > from 172.16.105.204:37320]] Disconnected connection
> 
> 
> 
> 2016-07-01 18:10 GMT+08:00 Justin Pettit <jpettit at ovn.org>:
> 
> > As Joe mentioned those later versions are considered experimental, but
> > many of the features are supported.  By the way, 0x4 maps to OpenFlow 1.3,
> > not 1.4.
> >
> > --Justin
> >
> >
> > > On Jul 1, 2016, at 11:23 AM, Big Strong <fangtuo90 at gmail.com> wrote:
> > >
> > > I checked the release notes at
> > http://openvswitch.org/releases/NEWS-2.5.0. And it seems that openflow
> > 1.5 is supported since ovs 2.4.0. But after install ovs 2.5.0, I checked
> > the version and find it only supports openflow 1.4, is there any problem?
> > >
> > > $ sudo ovs-ofctl --version
> > > ovs-ofctl (Open vSwitch) 2.5.0
> > > Compiled Jul  1 2016 12:41:43
> > > OpenFlow versions 0x1:0x4
> > >
> > > _______________________________________________
> > > discuss mailing list
> > > discuss at openvswitch.org
> > > http://openvswitch.org/mailman/listinfo/discuss
> >
> >

> _______________________________________________
> discuss mailing list
> discuss at openvswitch.org
> http://openvswitch.org/mailman/listinfo/discuss




More information about the discuss mailing list