Jozef, Thanks for the info.
Im using a karaf distro built locally from source code in the Netvirt project. By default, before starting karaf, I dont find that parameter anywhere. Once karaf starts, I find that param in: netvirt/vpnservice/distribution/karaf/target/assembly/etc/org.opendaylight.openflowplugin.cfg The file is created with that parameter commented out. I uncomment it and set the value to "true", and restarted karaf cleanly "bin/karaf clean". I still see the exception, and it is thrown continuously like before, just filling up the logs. The thing about the exception is, I can see why its complaining: java.lang.ClassCastException: org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.NshMdtypeCaseValueBuilder$NshMdtypeCaseValueImpl cannot be cast to org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.NshNpCaseValue Somehow its trying to cast NshMdtypeCaseValueBuilder$NshMdtypeCaseValueImpl to NshNpCaseValue, which doesnt make sense as they are 2 very different things. Thanks, Brady -----Original Message----- From: Jozef Bacigál <[email protected]<mailto:jozef%20%3d%3fiso-8859-1%3fq%3fbacig%3de1l%3f%3d%20%[email protected]%3e>> To: Brady Allen Johnson <[email protected]<mailto:brady%20allen%20johnson%20%[email protected]%3e>>, [email protected] <[email protected]<mailto:%[email protected]%22%20%[email protected]%3e>> Subject: Re: [openflowplugin-dev] Regression in OpenflowPlugin related to decoding NSH fields Date: Wed, 26 Apr 2017 11:02:53 +0000 Check for this: use-single-layer-serialization config parameter is updated (false -> true) ________________________________ Od: Jozef Bacigál <[email protected]> Odoslané: streda, 26. apríla 2017 12:23:15 Komu: Brady Allen Johnson; [email protected] Predmet: Re: [openflowplugin-dev] Regression in OpenflowPlugin related to decoding NSH fields Hi Brady, there was only two patches merged lately (April 24 and 25) both from Tomas. Second change prevent change single layer on the fly and first one changes the way how you set up initial values into plugin. Assume you configuration using now different setting as it was before. Check it, especially the single layer setting. Jozef ________________________________ Od: Brady Allen Johnson <[email protected]> Odoslané: streda, 26. apríla 2017 12:10:21 Komu: [email protected] Predmet: [openflowplugin-dev] Regression in OpenflowPlugin related to decoding NSH fields Hello, I started having problems with the OpenflowPlugin on Master today while trying to create an NSH (Network Services Header) related flow. This worked yesterday, April 25, but no longer works today. This is the code to create the flow match, which seems to be the problematic field as seen below in the exception stack: public static void addMatchNshMdtype(MatchBuilder match, short mdType) { NxAugMatchNodesNodeTableFlow amMdtype = new NxAugMatchNodesNodeTableFlowBuilder() .setNxmNxNshMdtype(new NxmNxNshMdtypeBuilder().setValue(mdType).build()).build(); addExtension(match, NxmNxNshMdtypeKey.class, amMdtype); } private static void addExtension(MatchBuilder match, Class<? extends ExtensionKey> extensionKey, NxAugMatchNodesNodeTableFlow am) { GeneralAugMatchNodesNodeTableFlow existingAugmentations = match .getAugmentation(GeneralAugMatchNodesNodeTableFlow.class); List<ExtensionList> extensions = null; if (existingAugmentations != null) { extensions = existingAugmentations.getExtensionList(); } if (extensions == null) { extensions = new ArrayList<>(); } extensions.add(new ExtensionListBuilder().setExtensionKey(extensionKey) .setExtension(new ExtensionBuilder().addAugmentation(NxAugMatchNodesNodeTableFlow.class, am).build()) .build()); GeneralAugMatchNodesNodeTableFlow generalAugMatchNodesNode = new GeneralAugMatchNodesNodeTableFlowBuilder() .setExtensionList(extensions).build(); match.addAugmentation(GeneralAugMatchNodesNodeTableFlow.class, generalAugMatchNodesNode); } I get this exception repeatadly: 2017-04-26 11:13:33,365 | WARN | entLoopGroup-7-1 | OFDecoder | 294 - org.opendaylight.openflowjava.openflow-protocol-impl - 0.10.0.SNAPSHOT | Message deserialization failed java.lang.ClassCastException: org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.NshMdtypeCaseValueBuilder$NshMdtypeCaseValueImpl cannot be cast to org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.oxm.container.match.entry.value.NshNpCaseValue at org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.NshNpConvertor.convert(NshNpConvertor.java:41)[316:org.opendaylight.openflowplugin.extension-nicira:0.5.0.SNAPSHOT] at org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.NshNpConvertor.convert(NshNpConvertor.java:38)[316:org.opendaylight.openflowplugin.extension-nicira:0.5.0.SNAPSHOT] at org.opendaylight.openflowplugin.openflow.md.core.extension.MatchExtensionHelper.processExtension(MatchExtensionHelper.java:199)[304:org.opendaylight.openflowplugin:0.5.0.SNAPSHOT] at org.opendaylight.openflowplugin.openflow.md.core.extension.MatchExtensionHelper.injectExtension(MatchExtensionHelper.java:69)[304:org.opendaylight.openflowplugin:0.5.0.SNAPSHOT] at org.opendaylight.openflowplugin.impl.protocol.deserialization.match.MatchDeserializer.deserializeEntry(MatchDeserializer.java:102)[305:org.opendaylight.openflowplugin.impl:0.5.0.SNAPSHOT] at org.opendaylight.openflowplugin.impl.protocol.deserialization.match.MatchDeserializer.deserialize(MatchDeserializer.java:59)[305:org.opendaylight.openflowplugin.impl:0.5.0.SNAPSHOT] at org.opendaylight.openflowplugin.impl.protocol.deserialization.match.MatchDeserializer.deserialize(MatchDeserializer.java:33)[305:org.opendaylight.openflowplugin.impl:0.5.0.SNAPSHOT] at org.opendaylight.openflowplugin.impl.protocol.deserialization.multipart.MultipartReplyFlowStatsDeserializer.deserialize(MultipartReplyFlowStatsDeserializer.java:88)[305:org.opendaylight.openflowplugin.impl:0.5.0.SNAPSHOT] at org.opendaylight.openflowplugin.impl.protocol.deserialization.multipart.MultipartReplyFlowStatsDeserializer.deserialize(MultipartReplyFlowStatsDeserializer.java:39)[305:org.opendaylight.openflowplugin.impl:0.5.0.SNAPSHOT] at org.opendaylight.openflowplugin.impl.protocol.deserialization.multipart.MultipartReplyMessageDeserializer.deserialize(MultipartReplyMessageDeserializer.java:43)[305:org.opendaylight.openflowplugin.impl:0.5.0.SNAPSHOT] at org.opendaylight.openflowplugin.impl.protocol.deserialization.multipart.MultipartReplyMessageDeserializer.deserialize(MultipartReplyMessageDeserializer.java:22)[305:org.opendaylight.openflowplugin.impl:0.5.0.SNAPSHOT] at org.opendaylight.openflowjava.protocol.impl.deserialization.DeserializationFactory.deserialize(DeserializationFactory.java:55)[294:org.opendaylight.openflowjava.openflow-protocol-impl:0.10.0.SNAPSHOT] at org.opendaylight.openflowjava.protocol.impl.core.OFDecoder.decode(OFDecoder.java:49)[294:org.opendaylight.openflowjava.openflow-protocol-impl:0.10.0.SNAPSHOT] at org.opendaylight.openflowjava.protocol.impl.core.OFDecoder.decode(OFDecoder.java:26)[294:org.opendaylight.openflowjava.openflow-protocol-impl:0.10.0.SNAPSHOT] at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88)[141:io.netty.codec:4.1.8.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363)[139:io.netty.transport:4.1.8.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349)[139:io.netty.transport:4.1.8.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:341)[139:io.netty.transport:4.1.8.Final] at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)[141:io.netty.codec:4.1.8.Final] at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267)[141:io.netty.codec:4.1.8.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363)[139:io.netty.transport:4.1.8.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349)[139:io.netty.transport:4.1.8.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:341)[139:io.netty.transport:4.1.8.Final] at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)[141:io.netty.codec:4.1.8.Final] at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267)[141:io.netty.codec:4.1.8.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363)[139:io.netty.transport:4.1.8.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349)[139:io.netty.transport:4.1.8.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:341)[139:io.netty.transport:4.1.8.Final] at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:287)[143:io.netty.handler:4.1.8.Final] at org.opendaylight.openflowjava.protocol.impl.core.IdleHandler.channelRead(IdleHandler.java:39)[294:org.opendaylight.openflowjava.openflow-protocol-impl:0.10.0.SNAPSHOT] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363)[139:io.netty.transport:4.1.8.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349)[139:io.netty.transport:4.1.8.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:341)[139:io.netty.transport:4.1.8.Final] at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)[139:io.netty.transport:4.1.8.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363)[139:io.netty.transport:4.1.8.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:349)[139:io.netty.transport:4.1.8.Final] at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)[139:io.netty.transport:4.1.8.Final] at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:1018)[144:io.netty.transport-native-epoll:4.1.8.Final] at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:394)[144:io.netty.transport-native-epoll:4.1.8.Final] at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:288)[144:io.netty.transport-native-epoll:4.1.8.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)[138:io.netty.common:4.1.8.Final] at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)[138:io.netty.common:4.1.8.Final] at java.lang.Thread.run(Thread.java:745)[:1.8.0_121] Thanks, Brady
_______________________________________________ openflowplugin-dev mailing list [email protected] https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev
