Details
-
Bug
-
Status: Resolved
-
Resolution: Done
-
Bugzilla Migration
-
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.