[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