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

Reply via email to