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@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 <jpet...@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 <fangtu...@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@openvswitch.org > > > http://openvswitch.org/mailman/listinfo/discuss > > > > > _______________________________________________ > discuss mailing list > discuss@openvswitch.org > http://openvswitch.org/mailman/listinfo/discuss _______________________________________________ discuss mailing list discuss@openvswitch.org http://openvswitch.org/mailman/listinfo/discuss