[BGPCEP-508] Bad handling of unknown AFI/SAFI in Open Message Created: 09/Aug/16  Updated: 03/Mar/19  Resolved: 16/Aug/16

Status: Resolved
Project: bgpcep
Component/s: BGP
Affects Version/s: Bugzilla Migration
Fix Version/s: Bugzilla Migration

Type: Bug
Reporter: Milos Fabian Assignee: Milos Fabian
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


External issue ID: 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.



 Comments   
Comment by Milos Fabian [ 09/Aug/16 ]

master: https://git.opendaylight.org/gerrit/#/c/43501/

Comment by Milos Fabian [ 16/Aug/16 ]

stable/boron: https://git.opendaylight.org/gerrit/#/c/44046/

Generated at Wed Feb 07 19:13:17 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.