Uploaded image for project: 'OpenFlowPlugin'
  1. OpenFlowPlugin
  2. OPNFLWPLUG-1011

IllegalArgumentException when metadata field is used in learn action

XMLWordPrintable

      IllegalArgumentException is thrown when metadata field is used in learn action eg.
      sudo ovs-ofctl -v -O Openflow13 add-flow br-int "table=22, priority=0, ip, actions=controller:65535, learn(table=22, priority=10, hard_timeout=10, dl_type=0x0800, NXM_OF_IP_DST[], OXM_OF_METADATA[1..23])"

      stack trace:
      2018-04-20 11:50:35,966 | WARN | entLoopGroup-9-1 | OFDecoder | 392 - org.opendaylight.openflowplugin.openflowjava.openflow-protocol-impl - 0.6.1.SNAPSHOT | Message deserialization failed
      java.lang.IllegalArgumentException: Invalid range: -2147482616, expected: [[0..4294967295]].
      at org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.flow.mod.add.match.from.field._case.FlowModAddMatchFromFieldBuilder.checkSrcFieldRange(FlowModAddMatchFromFieldBuilder.java:132) [388:org.opendaylight.openflowplugin.openflowjava-extension-nicira:0.6.1.SNAPSHOT]
      at org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.flow.mod.spec.flow.mod.spec.flow.mod.add.match.from.field._case.FlowModAddMatchFromFieldBuilder.setSrcField(FlowModAddMatchFromFieldBuilder.java:137) [388:org.opendaylight.openflowplugin.openflowjava-extension-nicira:0.6.1.SNAPSHOT]
      at org.opendaylight.openflowjava.nx.codec.action.LearnCodecUtil.readFlowModAddMatchFromField(LearnCodecUtil.java:255) [388:org.opendaylight.openflowplugin.openflowjava-extension-nicira:0.6.1.SNAPSHOT]
      at org.opendaylight.openflowjava.nx.codec.action.LearnCodecUtil.readFlowMod(LearnCodecUtil.java:235) [388:org.opendaylight.openflowplugin.openflowjava-extension-nicira:0.6.1.SNAPSHOT]
      at org.opendaylight.openflowjava.nx.codec.action.LearnCodecUtil.buildFlowModSpecs(LearnCodecUtil.java:207) [388:org.opendaylight.openflowplugin.openflowjava-extension-nicira:0.6.1.SNAPSHOT]
      at org.opendaylight.openflowjava.nx.codec.action.LearnCodec.deserialize(LearnCodec.java:69) [388:org.opendaylight.openflowplugin.openflowjava-extension-nicira:0.6.1.SNAPSHOT]
      at org.opendaylight.openflowjava.nx.codec.action.LearnCodec.deserialize(LearnCodec.java:28) [388:org.opendaylight.openflowplugin.openflowjava-extension-nicira:0.6.1.SNAPSHOT]
      at org.opendaylight.openflowjava.nx.codec.action.ActionDeserializer.deserialize(ActionDeserializer.java:62) [388:org.opendaylight.openflowplugin.openflowjava-extension-nicira:0.6.1.SNAPSHOT]
      at org.opendaylight.openflowjava.nx.codec.action.ActionDeserializer.deserialize(ActionDeserializer.java:22) [388:org.opendaylight.openflowplugin.openflowjava-extension-nicira:0.6.1.SNAPSHOT]
      at org.opendaylight.openflowplugin.impl.protocol.deserialization.util.ActionUtil.readAction(ActionUtil.java:68) [383:org.opendaylight.openflowplugin.impl:0.6.1.SNAPSHOT]
      at org.opendaylight.openflowplugin.impl.protocol.deserialization.instruction.AbstractActionInstructionDeserializer.readActions(AbstractActionInstructionDeserializer.java:73) [383:org.opendaylight.openflowplugin.impl:0.6.1.SNAPSHOT]
      at org.opendaylight.openflowplugin.impl.protocol.deserialization.instruction.ApplyActionsInstructionDeserializer.deserialize(ApplyActionsInstructionDeserializer.java:31) [383:org.opendaylight.openflowplugin.impl:0.6.1.SNAPSHOT]
      at org.opendaylight.openflowplugin.impl.protocol.deserialization.instruction.ApplyActionsInstructionDeserializer.deserialize(ApplyActionsInstructionDeserializer.java:18) [383:org.opendaylight.openflowplugin.impl:0.6.1.SNAPSHOT]
      at org.opendaylight.openflowplugin.impl.protocol.deserialization.util.InstructionUtil.readInstruction(InstructionUtil.java:68) [383:org.opendaylight.openflowplugin.impl:0.6.1.SNAPSHOT]
      at org.opendaylight.openflowplugin.impl.protocol.deserialization.multipart.MultipartReplyFlowStatsDeserializer.deserialize(MultipartReplyFlowStatsDeserializer.java:107) [383:org.opendaylight.openflowplugin.impl:0.6.1.SNAPSHOT]
      at org.opendaylight.openflowplugin.impl.protocol.deserialization.multipart.MultipartReplyFlowStatsDeserializer.deserialize(MultipartReplyFlowStatsDeserializer.java:40) [383:org.opendaylight.openflowplugin.impl:0.6.1.SNAPSHOT]
      at org.opendaylight.openflowplugin.impl.protocol.deserialization.multipart.MultipartReplyMessageDeserializer.deserialize(MultipartReplyMessageDeserializer.java:44) [383:org.opendaylight.openflowplugin.impl:0.6.1.SNAPSHOT]
      at org.opendaylight.openflowplugin.impl.protocol.deserialization.multipart.MultipartReplyMessageDeserializer.deserialize(MultipartReplyMessageDeserializer.java:23) [383:org.opendaylight.openflowplugin.impl:0.6.1.SNAPSHOT]
      at org.opendaylight.openflowjava.protocol.impl.deserialization.DeserializationFactory.deserialize(DeserializationFactory.java:56) [392:org.opendaylight.openflowplugin.openflowjava.openflow-protocol-impl:0.6.1.SNAPSHOT]
      at org.opendaylight.openflowjava.protocol.impl.core.OFDecoder.decode(OFDecoder.java:51) [392:org.opendaylight.openflowplugin.openflowjava.openflow-protocol-impl:0.6.1.SNAPSHOT]
      at org.opendaylight.openflowjava.protocol.impl.core.OFDecoder.decode(OFDecoder.java:27) [392:org.opendaylight.openflowplugin.openflowjava.openflow-protocol-impl:0.6.1.SNAPSHOT]
      at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88) [102:io.netty.codec:4.1.22.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [107:io.netty.transport:4.1.22.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [107:io.netty.transport:4.1.22.Final]
      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [107:io.netty.transport:4.1.22.Final]
      at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310) [102:io.netty.codec:4.1.22.Final]
      at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:284) [102:io.netty.codec:4.1.22.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [107:io.netty.transport:4.1.22.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [107:io.netty.transport:4.1.22.Final]
      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [107:io.netty.transport:4.1.22.Final]
      at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310) [102:io.netty.codec:4.1.22.Final]
      at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:284) [102:io.netty.codec:4.1.22.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [107:io.netty.transport:4.1.22.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [107:io.netty.transport:4.1.22.Final]
      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [107:io.netty.transport:4.1.22.Final]
      at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) [105:io.netty.handler:4.1.22.Final]
      at org.opendaylight.openflowjava.protocol.impl.core.IdleHandler.channelRead(IdleHandler.java:37) [392:org.opendaylight.openflowplugin.openflowjava.openflow-protocol-impl:0.6.1.SNAPSHOT]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [107:io.netty.transport:4.1.22.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [107:io.netty.transport:4.1.22.Final]
      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [107:io.netty.transport:4.1.22.Final]
      at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1414) [107:io.netty.transport:4.1.22.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [107:io.netty.transport:4.1.22.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [107:io.netty.transport:4.1.22.Final]
      at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:945) [107:io.netty.transport:4.1.22.Final]
      at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:146) [107:io.netty.transport:4.1.22.Final]
      at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:645) [107:io.netty.transport:4.1.22.Final]
      at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:580) [107:io.netty.transport:4.1.22.Final]
      at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:497) [107:io.netty.transport:4.1.22.Final]
      at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:451) [107:io.netty.transport:4.1.22.Final]
      at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:886) [104:io.netty.common:4.1.22.Final]
      at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [104:io.netty.common:4.1.22.Final]
      at java.lang.Thread.run(Thread.java:748) [?:?]

            rnthakur Ravindra Thakur
            rnthakur Ravindra Thakur
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: