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

Invalid Route Distinguisher error while processing withdraw update containing VPN route

    XMLWordPrintable

Details

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

    • 7708

    Description

      ODL does not correctly handle scenario where label value 0x800000 is received in withdraw message

      Per https://tools.ietf.org/html/rfc3107:

      A BGP speaker can withdraw a previously advertised route (as well as
      the binding between this route and a label) by either (a) advertising
      a new route (and a label) with the same NLRI as the previously
      advertised route, or (b) listing the NLRI of the previously
      advertised route in the Withdrawn Routes field of an Update message.
      The label information carried (as part of NLRI) in the Withdrawn
      Routes field should be set to 0x800000. (Of course, terminating the
      BGP session also withdraws all the previously advertised routes.)

      Error message received:

      2017-01-30 23:08:01,958 | DEBUG | ntLoopGroup-17-1 | SimpleAttributeRegistry | 336 - org.opendaylight.bgpcep.bgp-parser-spi - 0.6.1.Boron-SR1 | Parsing attribute type 15
      2017-01-30 23:08:01,958 | DEBUG | ntLoopGroup-17-1 | RouteDistinguisherUtil | 334 - org.opendaylight.bgpcep.bgp-concepts - 0.6.1.Boron-SR1 | Invalid Route Distinguisher: type=59392, rawRouteDistinguisherValue=0x0 0x0 0x1 0x64 0x15 0x10
      2017-01-30 23:08:01,960 | ERROR | ntLoopGroup-17-1 | BGPDocumentedException | 335 - org.opendaylight.bgpcep.bgp-parser-api - 0.6.1.Boron-SR1 | Error = MALFORMED_ATTR_LIST
      org.opendaylight.protocol.bgp.parser.BGPDocumentedException: Could not parse BGP attributes.
      at org.opendaylight.protocol.bgp.parser.impl.message.BGPUpdateMessageParser.parseMessageBody(BGPUpdateMessageParser.java:135)[337:org.opendaylight.bgpcep.bgp-parser-impl:0.6.1.Boron-SR1]
      at org.opendaylight.protocol.bgp.parser.impl.message.BGPUpdateMessageParser.parseMessageBody(BGPUpdateMessageParser.java:46)[337:org.opendaylight.bgpcep.bgp-parser-impl:0.6.1.Boron-SR1]
      at org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleMessageRegistry.parseBody(SimpleMessageRegistry.java:31)[336:org.opendaylight.bgpcep.bgp-parser-spi:0.6.1.Boron-SR1]
      at org.opendaylight.protocol.bgp.parser.spi.AbstractMessageRegistry.parseMessage(AbstractMessageRegistry.java:66)[336:org.opendaylight.bgpcep.bgp-parser-spi:0.6.1.Boron-SR1]
      at org.opendaylight.protocol.bgp.rib.impl.BGPByteToMessageDecoder.decode(BGPByteToMessageDecoder.java:49)[349:org.opendaylight.bgpcep.bgp-rib-impl:0.6.1.Boron-SR1]
      at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:411)[52:io.netty.codec:4.0.37.Final]
      at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:248)[52:io.netty.codec:4.0.37.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:342)[51:io.netty.transport:4.0.37.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:328)[51:io.netty.transport:4.0.37.Final]
      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:321)[51:io.netty.transport:4.0.37.Final]
      at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)[52:io.netty.codec:4.0.37.Final]
      at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:280)[52:io.netty.codec:4.0.37.Final]
      at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:396)[52:io.netty.codec:4.0.37.Final]
      at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:248)[52:io.netty.codec:4.0.37.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:342)[51:io.netty.transport:4.0.37.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:328)[51:io.netty.transport:4.0.37.Final]
      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:321)[51:io.netty.transport:4.0.37.Final]
      at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1280)[51:io.netty.transport:4.0.37.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:342)[51:io.netty.transport:4.0.37.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:328)[51:io.netty.transport:4.0.37.Final]
      at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:890)[51:io.netty.transport:4.0.37.Final]
      at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:879)[55:io.netty.transport-native-epoll:4.0.37.Final]
      at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:387)[55:io.netty.transport-native-epoll:4.0.37.Final]
      at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:303)[55:io.netty.transport-native-epoll:4.0.37.Final]
      at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112)[50:io.netty.common:4.0.37.Final]
      at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:145)[50:io.netty.common:4.0.37.Final]
      at java.lang.Thread.run(Thread.java:745)[:1.8.0_91]
      Caused by: java.lang.IllegalArgumentException: Invalid Route Distinguisher type 59392
      at org.opendaylight.bgp.concepts.RouteDistinguisherUtil.parseRouteDistinguisher(RouteDistinguisherUtil.java:131)[334:org.opendaylight.bgpcep.bgp-concepts:0.6.1.Boron-SR1]
      at org.opendaylight.protocol.bgp.l3vpn.AbstractVpnNlriParser.parseNlri(AbstractVpnNlriParser.java:91)[352:org.opendaylight.bgpcep.bgp-l3vpn:0.6.1.Boron-SR1]
      at org.opendaylight.protocol.bgp.l3vpn.AbstractVpnNlriParser.parseNlri(AbstractVpnNlriParser.java:127)[352:org.opendaylight.bgpcep.bgp-l3vpn:0.6.1.Boron-SR1]
      at org.opendaylight.protocol.bgp.parser.spi.NlriParser.parseNlri(NlriParser.java:63)[336:org.opendaylight.bgpcep.bgp-parser-spi:0.6.1.Boron-SR1]
      at org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleNlriRegistry.parseMpUnreach(SimpleNlriRegistry.java:161)[336:org.opendaylight.bgpcep.bgp-parser-spi:0.6.1.Boron-SR1]
      at org.opendaylight.protocol.bgp.parser.impl.message.update.MPUnreachAttributeParser.parseAttribute(MPUnreachAttributeParser.java:47)[337:org.opendaylight.bgpcep.bgp-parser-impl:0.6.1.Boron-SR1]
      at org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleAttributeRegistry.parseAttributes(SimpleAttributeRegistry.java:138)[336:org.opendaylight.bgpcep.bgp-parser-spi:0.6.1.Boron-SR1]
      at org.opendaylight.protocol.bgp.parser.impl.message.BGPUpdateMessageParser.parseMessageBody(BGPUpdateMessageParser.java:131)[337:org.opendaylight.bgpcep.bgp-parser-impl:0.6.1.Boron-SR1]
      ... 26 more
      2017-01-30 23:08:01,962 | WARN | ntLoopGroup-17-1 | BGPSessionImpl | 349 - org.opendaylight.bgpcep.bgp-rib-impl - 0.6.1.Boron-SR1 | BGP session encountered error
      io.netty.handler.codec.DecoderException: org.opendaylight.protocol.bgp.parser.BGPDocumentedException: Could not parse BGP attributes.
      at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:442)[52:io.netty.codec:4.0.37.Final]
      at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:248)[52:io.netty.codec:4.0.37.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:342)[51:io.netty.transport:4.0.37.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:328)[51:io.netty.transport:4.0.37.Final]
      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:321)[51:io.netty.transport:4.0.37.Final]
      at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)[52:io.netty.codec:4.0.37.Final]
      at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:280)[52:io.netty.codec:4.0.37.Final]
      at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:396)[52:io.netty.codec:4.0.37.Final]
      at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:248)[52:io.netty.codec:4.0.37.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:342)[51:io.netty.transport:4.0.37.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:328)[51:io.netty.transport:4.0.37.Final]
      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:321)[51:io.netty.transport:4.0.37.Final]
      at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1280)[51:io.netty.transport:4.0.37.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:342)[51:io.netty.transport:4.0.37.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:328)[51:io.netty.transport:4.0.37.Final]
      at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:890)[51:io.netty.transport:4.0.37.Final]
      at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:879)[55:io.netty.transport-native-epoll:4.0.37.Final]
      at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:387)[55:io.netty.transport-native-epoll:4.0.37.Final]
      at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:303)[55:io.netty.transport-native-epoll:4.0.37.Final]
      at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112)[50:io.netty.common:4.0.37.Final]
      at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:145)[50:io.netty.common:4.0.37.Final]
      at java.lang.Thread.run(Thread.java:745)[:1.8.0_91]
      Caused by: org.opendaylight.protocol.bgp.parser.BGPDocumentedException: Could not parse BGP attributes.
      at org.opendaylight.protocol.bgp.parser.impl.message.BGPUpdateMessageParser.parseMessageBody(BGPUpdateMessageParser.java:135)[337:org.opendaylight.bgpcep.bgp-parser-impl:0.6.1.Boron-SR1]
      at org.opendaylight.protocol.bgp.parser.impl.message.BGPUpdateMessageParser.parseMessageBody(BGPUpdateMessageParser.java:46)[337:org.opendaylight.bgpcep.bgp-parser-impl:0.6.1.Boron-SR1]
      at org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleMessageRegistry.parseBody(SimpleMessageRegistry.java:31)[336:org.opendaylight.bgpcep.bgp-parser-spi:0.6.1.Boron-SR1]
      at org.opendaylight.protocol.bgp.parser.spi.AbstractMessageRegistry.parseMessage(AbstractMessageRegistry.java:66)[336:org.opendaylight.bgpcep.bgp-parser-spi:0.6.1.Boron-SR1]
      at org.opendaylight.protocol.bgp.rib.impl.BGPByteToMessageDecoder.decode(BGPByteToMessageDecoder.java:49)[349:org.opendaylight.bgpcep.bgp-rib-impl:0.6.1.Boron-SR1]
      at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:411)[52:io.netty.codec:4.0.37.Final]
      ... 21 more
      Caused by: java.lang.IllegalArgumentException: Invalid Route Distinguisher type 59392
      at org.opendaylight.bgp.concepts.RouteDistinguisherUtil.parseRouteDistinguisher(RouteDistinguisherUtil.java:131)[334:org.opendaylight.bgpcep.bgp-concepts:0.6.1.Boron-SR1]
      at org.opendaylight.protocol.bgp.l3vpn.AbstractVpnNlriParser.parseNlri(AbstractVpnNlriParser.java:91)[352:org.opendaylight.bgpcep.bgp-l3vpn:0.6.1.Boron-SR1]
      at org.opendaylight.protocol.bgp.l3vpn.AbstractVpnNlriParser.parseNlri(AbstractVpnNlriParser.java:127)[352:org.opendaylight.bgpcep.bgp-l3vpn:0.6.1.Boron-SR1]
      at org.opendaylight.protocol.bgp.parser.spi.NlriParser.parseNlri(NlriParser.java:63)[336:org.opendaylight.bgpcep.bgp-parser-spi:0.6.1.Boron-SR1]
      at org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleNlriRegistry.parseMpUnreach(SimpleNlriRegistry.java:161)[336:org.opendaylight.bgpcep.bgp-parser-spi:0.6.1.Boron-SR1]
      at org.opendaylight.protocol.bgp.parser.impl.message.update.MPUnreachAttributeParser.parseAttribute(MPUnreachAttributeParser.java:47)[337:org.opendaylight.bgpcep.bgp-parser-impl:0.6.1.Boron-SR1]
      at org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleAttributeRegistry.parseAttributes(SimpleAttributeRegistry.java:138)[336:org.opendaylight.bgpcep.bgp-parser-spi:0.6.1.Boron-SR1]
      at org.opendaylight.protocol.bgp.parser.impl.message.BGPUpdateMessageParser.parseMessageBody(BGPUpdateMessageParser.java:131)[337:org.opendaylight.bgpcep.bgp-parser-impl:0.6.1.Boron-SR1]
      ... 26 more
      2017-01-30 23:08:01,972 | DEBUG | ntLoopGroup-17-1 | BGPMessageToByteEncoder | 349 - org.opendaylight.bgpcep.bgp-rib-impl - 0.6.1.Boron-SR1 | Message sent to output: Notify [_errorCode=3, _errorSubcode=1, augmentation=[]]
      2017-01-30 23:08:01,973 | INFO | ntLoopGroup-17-1 | BGPPeer | 349 - org.opendaylight.bgpcep.bgp-rib-impl - 0.6.1.Boron-SR1 | Session with peer 10.18.162.219 terminated: BGPTerminationReason

      {error=MALFORMED_ATTR_LIST}

      2017-01-30 23:08:01,973 | DEBUG | ntLoopGroup-17-1 | ExportPolicyPeerTrackerImpl | 349 - org.opendaylight.bgpcep.bgp-rib-impl - 0.6.1.Boron-SR1 | Removed peer Uri [_value=bgp://192.168.254.11] from supported table TablesKey [_afi=class org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.Ipv4AddressFamily, _safi=class org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.MplsLabeledVpnSubsequentAddressFamily]
      2017-01-30 23:08:01,973 | DEBUG | ntLoopGroup-17-1 | ExportPolicyPeerTrackerImpl | 349 - org.opendaylight.bgpcep.bgp-rib-impl - 0.6.1.Boron-SR1 | Removed peer Uri [_value=bgp://192.168.254.11] from supported table TablesKey [_afi=class org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.Ipv6AddressFamily, _safi=class org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.MplsLabeledVpnSubsequentAddressFamily]

      Attachments

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

        Activity

          People

            ajayl.bro@gmail.com Ajay L
            ajayl.bro@gmail.com Ajay L
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: