[OPNFLWPLUG-1023] failures with ovs 2.8.x and 2.9.x Created: 09/Jul/18  Updated: 17/Jul/18  Resolved: 16/Jul/18

Status: Resolved
Project: OpenFlowPlugin
Component/s: None
Affects Version/s: None
Fix Version/s: Fluorine

Type: Bug Priority: High
Reporter: Sam Hague Assignee: Arunprakash D
Resolution: Done Votes: 0
Labels: csit:exception
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File packet-in.pcap    

 Description   

This bug will track the issues involved with updating to ovs 2.8.x and ovs 2.9.x.

After https://git.opendaylight.org/gerrit/#/c/73735/ there are still codec issues:

https://logs.opendaylight.org/releng/vex-yul-odl-jenkins-1/builder-copy-sandbox-logs/196/shague-queens-netvirt-csit-1node-openstack-queens-upstream-stateful-fluorine/7/odl_1/odl1_karaf.log.gz

2018-07-09T14:44:28,867 | WARN  | epollEventLoopGroup-9-1 | OFDecoder                        | 386 - org.opendaylight.openflowplugin.openflowjava.openflow-protocol-impl - 0.7.0.SNAPSHOT | Message deserialization failedjava.lang.IllegalStateException: Deserializer for key: msgVersion: 4 objectClass: org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry msgType: 1034 oxm_field: 5 experimenterID: null was not found - please verify that all needed deserializers ale loaded correctly	at org.opendaylight.openflowjava.protocol.impl.deserialization.DeserializerRegistryImpl.getDeserializer(DeserializerRegistryImpl.java:69) [386:org.opendaylight.openflowplugin.openflowjava.openflow-protocol-impl:0.7.0.SNAPSHOT]	at org.opendaylight.openflowplugin.impl.protocol.deserialization.match.MatchDeserializer.deserializeEntry(MatchDeserializer.java:103) [377:org.opendaylight.openflowplugin.impl:0.7.0.SNAPSHOT]	at org.opendaylight.openflowplugin.impl.protocol.deserialization.match.MatchDeserializer.deserialize(MatchDeserializer.java:59) [377:org.opendaylight.openflowplugin.impl:0.7.0.SNAPSHOT]	at org.opendaylight.openflowplugin.impl.protocol.deserialization.match.MatchDeserializer.deserialize(MatchDeserializer.java:31) [377:org.opendaylight.openflowplugin.impl:0.7.0.SNAPSHOT]	at org.opendaylight.openflowplugin.impl.protocol.deserialization.messages.PacketInMessageDeserializer.deserialize(PacketInMessageDeserializer.java:67) [377:org.opendaylight.openflowplugin.impl:0.7.0.SNAPSHOT]	at org.opendaylight.openflowplugin.impl.protocol.deserialization.messages.PacketInMessageDeserializer.deserialize(PacketInMessageDeserializer.java:30) [377:org.opendaylight.openflowplugin.impl:0.7.0.SNAPSHOT]	at org.opendaylight.openflowjava.protocol.impl.deserialization.DeserializationFactory.deserialize(DeserializationFactory.java:56) [386:org.opendaylight.openflowplugin.openflowjava.openflow-protocol-impl:0.7.0.SNAPSHOT]	at org.opendaylight.openflowjava.protocol.impl.core.OFDecoder.decode(OFDecoder.java:51) [386:org.opendaylight.openflowplugin.openflowjava.openflow-protocol-impl:0.7.0.SNAPSHOT]	at org.opendaylight.openflowjava.protocol.impl.core.OFDecoder.decode(OFDecoder.java:27) [386:org.opendaylight.openflowplugin.openflowjava.openflow-protocol-impl:0.7.0.SNAPSHOT]	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88) [53:io.netty.codec:4.1.22.Final]	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [58:io.netty.transport:4.1.22.Final]	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [58:io.netty.transport:4.1.22.Final]	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [58:io.netty.transport:4.1.22.Final]	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310) [53:io.netty.codec:4.1.22.Final]	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:284) [53:io.netty.codec:4.1.22.Final]	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [58:io.netty.transport:4.1.22.Final]	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [58:io.netty.transport:4.1.22.Final]	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [58:io.netty.transport:4.1.22.Final]	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310) [53:io.netty.codec:4.1.22.Final]	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:284) [53:io.netty.codec:4.1.22.Final]	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [58:io.netty.transport:4.1.22.Final]	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [58:io.netty.transport:4.1.22.Final]	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [58:io.netty.transport:4.1.22.Final]	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) [56:io.netty.handler:4.1.22.Final]	at org.opendaylight.openflowjava.protocol.impl.core.IdleHandler.channelRead(IdleHandler.java:37) [386:org.opendaylight.openflowplugin.openflowjava.openflow-protocol-impl:0.7.0.SNAPSHOT]	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [58:io.netty.transport:4.1.22.Final]	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [58:io.netty.transport:4.1.22.Final]	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [58:io.netty.transport:4.1.22.Final]	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1414) [58:io.netty.transport:4.1.22.Final]	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [58:io.netty.transport:4.1.22.Final]	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [58:io.netty.transport:4.1.22.Final]	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:945) [58:io.netty.transport:4.1.22.Final]	at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:806) [59:io.netty.transport-native-epoll:4.1.22.Final]	at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:404) [59:io.netty.transport-native-epoll:4.1.22.Final]	at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:293) [59:io.netty.transport-native-epoll:4.1.22.Final]	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:886) [55:io.netty.common:4.1.22.Final]	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [55:io.netty.common:4.1.22.Final]	at java.lang.Thread.run(Thread.java:748) [?:?]


 Comments   
Comment by Arunprakash D [ 12/Jul/18 ]

shague, Avishnoi from the tcpdump we were seeing many new ct matches were being sent to controller via packet-in messages. There are no support for these ct matches in openflowplugin.

Existing ct support:
ct_state
ct_zone
ct_mark
ct_label

New ct from OVS 2.8+ for which no support available 
ct_nw_src
ct_nw_dst

ct_ipv6_src
ct_ipv6_dst
ct_nw_proto
ct_tp_src (i have added recently)
ct_tp_dst(i have added recently)

 

Even after merging Jaime's reviews we will hit the exceptions provided in this jira.

Please refer attached packet capture.

Comment by Arunprakash D [ 16/Jul/18 ]

shague, hope review [1] fixes this issue. Please let us know if there is anything expected out of this bug.

[1] https://git.opendaylight.org/gerrit/#/c/74017/

 

 

Comment by Sam Hague [ 17/Jul/18 ]

I will start a CSIT run on this. The current CSIT uses ovs 2.7.2 so this patch really hasn't passed a 2.9.x run.

Generated at Wed Feb 07 20:33:59 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.