I was trying to reproduce this, but I was getting type BADMATCH code BADFIELD error when I added NSH md type extension to match based on your example, so can you send me please working flow with NSH md type extension either in Java or XML/JSON format? I would prefer XML/JSON format.
Regards, Tomas ________________________________ Od: Brady Allen Johnson <[email protected]> Odoslané: štvrtok, 27. apríla 2017 10:21 Komu: [email protected]; Jozef Bacigál; Tomáš Slušný Predmet: Re: [openflowplugin-dev] Regression in OpenflowPlugin related to decoding NSH fields Tomas, I ran the test again from scratch and captured the logs, here: https://drive.google.com/file/d/0B20dtomeEJsVZno2SkFkc05XUkk/view?usp=sharing Regards, Brady -----Original Message----- From: Brady Allen Johnson <[email protected]<mailto:brady%20allen%20johnson%20%[email protected]%3e>> To: [email protected] <[email protected]<mailto:%[email protected]%22%20%[email protected]%3e>>, [email protected] <[email protected]<mailto:%[email protected]%22%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 14:51:22 +0000 Ya, I added the code to create the flow match below in a previous email in the addMatchNshMdtype(MatchBuilder match, short mdType) and the void addExtension(...) functions. I realized after sending you those logs that they werent exactly the same case. Even though I did a karaf clean, I didnt clean up everything in OVS. Even still, just creating a flow with that match and a simple drop or goto_table action should recreate it easily. Would you like me to reproduce the situation exactly again, and send you the logs? Thanks, Brady -----Original Message----- From: Tomáš Slušný <[email protected]<mailto:%3d%3futf-8%3fq%3ftom%3dc3%3da1%3dc5%3da1_slu%3dc5%3da1n%3dc3%3dbd%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>>, Jozef Bacigál <[email protected]<mailto:jozef%20%3d%3fiso-8859-1%3fq%3fbacig%3de1l%3f%3d%20%[email protected]%3e>> Subject: Re: [openflowplugin-dev] Regression in OpenflowPlugin related to decoding NSH fields Date: Wed, 26 Apr 2017 14:16:50 +0000 Can you also send us flow what are you adding? Because I tried with some random flow with extension and it looks like it is working properly. But from your karaf logs it seems that deserialization is failing on match entry because it have incorrect oxm class (from logs I see it is 1, what do not makes any sense, it should be either 32768 or 65535 for experimenter). ________________________________ Od: Brady Allen Johnson <[email protected]> Odoslané: streda, 26. apríla 2017 14:55 Komu: [email protected]; Jozef Bacigál; Tomáš Slušný Predmet: Re: [openflowplugin-dev] Regression in OpenflowPlugin related to decoding NSH fields Ok, I stopped karaf. Changed the parameter to false and started karaf cleanly (bin/karaf clean) and didnt see the exceptions, but the flows are not created. I did the same again, setting the value back to true, and now get the exceptions again. There are several log files, so I gzip tar'ed them all up into 1 file here: https://drive.google.com/file/d/0B20dtomeEJsVeWM0aXBSLTUyb1k/view?usp=sharing All you need to do is untar them somewhere and do this: "grep -i mdtype *" and you'll see the exceptions. Like I said, Im using a distro built from the netvirt/vpnservice source code directory. Im installing this karaf feature "odl-netvirt-sfc". 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: Tomáš Slušný <[email protected]<mailto:%3d%3futf-8%3fq%3ftom%3dc3%3da1%3dc5%3da1_slu%3dc5%3da1n%3dc3%3dbd%3f%3d%20%[email protected]%3e>>, 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 12:43:06 +0000 The cfg file is only for you r information, it isn't working anymore on the fly. Correct me Tomas if I am wrong. But yes try to set single-layer-serialization to false. Jozef ________________________________ Od: Tomáš Slušný Odoslané: streda, 26. apríla 2017 14:28:58 Komu: Brady Allen Johnson; [email protected]; Jozef Bacigál Predmet: Re: [openflowplugin-dev] Regression in OpenflowPlugin related to decoding NSH fields Hi Brady, can you try this with single-layer-serialization set to false? But as you said, this issue do not makes much sense, that 2 patches by me that was merged should not have anything to do with this issue, so I am not really sure what caused this. Can you send also full karaf.log please? Thanks, Tomas ________________________________ Od: Brady Allen Johnson <[email protected]> Odoslané: streda, 26. apríla 2017 14:21 Komu: [email protected]; Jozef Bacigál Predmet: Re: [openflowplugin-dev] Regression in OpenflowPlugin related to decoding NSH fields 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]<mailto:[email protected]> https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev
_______________________________________________ openflowplugin-dev mailing list [email protected] https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev
