Uploaded image for project: 'bgpcep'
  1. bgpcep
  2. BGPCEP-233

Message decoder fails to decode "all IP addresses match this update" UPDATE messages

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved
    • Resolution: Done
    • Bugzilla Migration
    • Bugzilla Migration
    • BGP
    • None
    • Operating System: All
      Platform: All

    • 3577
    • High

    Description

      If an UPDATE message states in its NLRI that "all IP addresses match" (this is done by specifying a prefix with length=0 and no value, see RFC 4271, section "Network Layer Reachability Information", subsection "a) Length"), the following exception is logged:

      2015-06-04 10:00:33,604 | WARN | oupCloseable-3-4 | DefaultChannelPipeline | 149 - io.netty.common - 4.0.26.Final | An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
      io.netty.handler.codec.DecoderException: java.lang.IllegalArgumentException: Cannot create subByte, invalid arguments: Length: 0 startIndex: 1
      at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:346)[174:io.netty.codec:4.0.26.Final]
      at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:229)[174:io.netty.codec:4.0.26.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)[148:io.netty.transport:4.0.26.Final]
      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)[148:io.netty.transport:4.0.26.Final]
      at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:242)[174:io.netty.codec:4.0.26.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:339)[148:io.netty.transport:4.0.26.Final]
      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:324)[148:io.netty.transport:4.0.26.Final]
      at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:847)[148:io.netty.transport:4.0.26.Final]
      at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)[148:io.netty.transport:4.0.26.Final]
      at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511)[148:io.netty.transport:4.0.26.Final]
      at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468)[148:io.netty.transport:4.0.26.Final]
      at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382)[148:io.netty.transport:4.0.26.Final]
      at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354)[148:io.netty.transport:4.0.26.Final]
      at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:111)[149:io.netty.common:4.0.26.Final]
      at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)[149:io.netty.common:4.0.26.Final]
      at java.lang.Thread.run(Unknown Source)[:1.7.0_67]
      Caused by: java.lang.IllegalArgumentException: Cannot create subByte, invalid arguments: Length: 0 startIndex: 1
      at org.opendaylight.protocol.util.ByteArray.subByte(ByteArray.java:99)[246:org.opendaylight.bgpcep.util:0.4.0.SNAPSHOT]
      at org.opendaylight.protocol.util.Ipv4Util.prefixListForBytes(Ipv4Util.java:173)[246:org.opendaylight.bgpcep.util:0.4.0.SNAPSHOT]
      at org.opendaylight.protocol.bgp.parser.impl.message.BGPUpdateMessageParser.parseMessageBody(BGPUpdateMessageParser.java:92)[252:org.opendaylight.bgpcep.bgp-parser-impl:0.4.0.SNAPSHOT]
      at org.opendaylight.protocol.bgp.parser.impl.message.BGPUpdateMessageParser.parseMessageBody(BGPUpdateMessageParser.java:42)[252:org.opendaylight.bgpcep.bgp-parser-impl:0.4.0.SNAPSHOT]
      at org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleMessageRegistry.parseBody(SimpleMessageRegistry.java:31)[251:org.opendaylight.bgpcep.bgp-parser-spi:0.4.0.SNAPSHOT]
      at org.opendaylight.protocol.bgp.parser.spi.AbstractMessageRegistry.parseMessage(AbstractMessageRegistry.java:59)[251:org.opendaylight.bgpcep.bgp-parser-spi:0.4.0.SNAPSHOT]
      at org.opendaylight.protocol.bgp.rib.impl.BGPByteToMessageDecoder.decode(BGPByteToMessageDecoder.java:41)[259:org.opendaylight.bgpcep.bgp-rib-impl:0.4.0.SNAPSHOT]
      at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:315)[174:io.netty.codec:4.0.26.Final]
      ... 15 more

      I have no idea what happens to the message after this exception occurs.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            lborak@cisco.com Ladislav Borak
            jbehran@cisco.com Jozef Behran
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: