|
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]
|