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

Bad handling of unknown AFI/SAFI in Open Message

    XMLWordPrintable

Details

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

    • 6365

    Description

      Steps to reproduce:
      1. start and configure ODL BGP
      2. connect peer with configured MP extension which is not supported by ODL BGP (i.e. inet multicast)
      3. observe connection failure and following error in ODL logs:

      2016-08-09 10:31:20,231 | ERROR | entLoopGroup-7-8 | BGPDocumentedException | 271 - org.opendaylight.bgpcep.bgp-parser-api - 0.7.0.SNAPSHOT | Error = UNSPECIFIC_OPEN_ERROR
      org.opendaylight.protocol.bgp.parser.BGPDocumentedException: Optional parameter not parsed
      at org.opendaylight.protocol.bgp.parser.impl.message.BGPOpenMessageParser.fillParams(BGPOpenMessageParser.java:154)[273:org.opendaylight.bgpcep.bgp-parser-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.protocol.bgp.parser.impl.message.BGPOpenMessageParser.parseMessageBody(BGPOpenMessageParser.java:130)[273:org.opendaylight.bgpcep.bgp-parser-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.protocol.bgp.parser.impl.message.BGPOpenMessageParser.parseMessageBody(BGPOpenMessageParser.java:37)[273:org.opendaylight.bgpcep.bgp-parser-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.protocol.bgp.parser.spi.MessageParser.parseMessageBody(MessageParser.java:42)[272:org.opendaylight.bgpcep.bgp-parser-spi:0.7.0.SNAPSHOT]
      at org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleMessageRegistry.parseBody(SimpleMessageRegistry.java:31)[272:org.opendaylight.bgpcep.bgp-parser-spi:0.7.0.SNAPSHOT]
      at org.opendaylight.protocol.bgp.parser.spi.AbstractMessageRegistry.parseMessage(AbstractMessageRegistry.java:66)[272:org.opendaylight.bgpcep.bgp-parser-spi:0.7.0.SNAPSHOT]
      at org.opendaylight.protocol.bgp.rib.impl.BGPByteToMessageDecoder.decode(BGPByteToMessageDecoder.java:49)[285:org.opendaylight.bgpcep.bgp-rib-impl:0.7.0.SNAPSHOT]
      at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:411)[145:io.netty.codec:4.0.37.Final]
      at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:248)[145:io.netty.codec:4.0.37.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:342)[144:io.netty.transport:4.0.37.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:328)[144:io.netty.transport:4.0.37.Final]
      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:321)[144:io.netty.transport:4.0.37.Final]
      at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)[145:io.netty.codec:4.0.37.Final]
      at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267)[145:io.netty.codec:4.0.37.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:342)[144:io.netty.transport:4.0.37.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:328)[144:io.netty.transport:4.0.37.Final]
      at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:321)[144:io.netty.transport:4.0.37.Final]
      at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1280)[144:io.netty.transport:4.0.37.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:342)[144:io.netty.transport:4.0.37.Final]
      at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:328)[144:io.netty.transport:4.0.37.Final]
      at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:890)[144:io.netty.transport:4.0.37.Final]
      at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:879)[148:io.netty.transport-native-epoll:4.0.37.Final]
      at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:387)[148:io.netty.transport-native-epoll:4.0.37.Final]
      at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:303)[148:io.netty.transport-native-epoll:4.0.37.Final]
      at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112)[143:io.netty.common:4.0.37.Final]
      at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:145)[143:io.netty.common:4.0.37.Final]
      at java.lang.Thread.run(Thread.java:745)[:1.8.0_45]
      Caused by: org.opendaylight.protocol.bgp.parser.BGPParsingException: Subsequent Address Family Identifier: '2' not supported.
      at org.opendaylight.protocol.bgp.parser.spi.MultiprotocolCapabilitiesUtil.parseMPAfiSafi(MultiprotocolCapabilitiesUtil.java:56)[272:org.opendaylight.bgpcep.bgp-parser-spi:0.7.0.SNAPSHOT]
      at org.opendaylight.protocol.bgp.parser.impl.message.open.MultiProtocolCapabilityHandler.parseCapability(MultiProtocolCapabilityHandler.java:42)[273:org.opendaylight.bgpcep.bgp-parser-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleCapabilityRegistry.parseCapability(SimpleCapabilityRegistry.java:41)[272:org.opendaylight.bgpcep.bgp-parser-spi:0.7.0.SNAPSHOT]
      at org.opendaylight.protocol.bgp.parser.impl.message.open.CapabilityParameterParser.parseOptionalCapability(CapabilityParameterParser.java:67)[273:org.opendaylight.bgpcep.bgp-parser-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.protocol.bgp.parser.impl.message.open.CapabilityParameterParser.parseParameter(CapabilityParameterParser.java:55)[273:org.opendaylight.bgpcep.bgp-parser-impl:0.7.0.SNAPSHOT]
      at org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleParameterRegistry.parseParameter(SimpleParameterRegistry.java:40)[272:org.opendaylight.bgpcep.bgp-parser-spi:0.7.0.SNAPSHOT]
      at org.opendaylight.protocol.bgp.parser.impl.message.BGPOpenMessageParser.fillParams(BGPOpenMessageParser.java:152)[273:org.opendaylight.bgpcep.bgp-parser-impl:0.7.0.SNAPSHOT]
      ... 26 more

      ODL BGP should skip such AFI/SAFI and log that fact friendly.

      Attachments

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

        Activity

          People

            milos.fabian@pantheon.tech Milos Fabian
            milos.fabian@pantheon.tech Milos Fabian
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: