[BGPCEP-802] RT-Constrain Default route serializing Error Created: 22/Jun/18  Updated: 27/Jun/18  Resolved: 27/Jun/18

Status: Verified
Project: bgpcep
Component/s: BGP
Affects Version/s: Fluorine
Fix Version/s: Fluorine

Type: Bug Priority: Medium
Reporter: Tomas Markovic Assignee: Claudio David Gasparini
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File configure.py     File delete.py     File hex_default.py     File play.py     File post_default.py     File start_play.sh    

 Description   

Overview: Configure app peer and internal peer with route-target-constrain. Send route via internal peer with play.py Error happening when parsing incoming message in odl.

Hex is gained by sending the route to app-peer and catching the route on advertisement from the odl to peer. So the mistake could be in route config, Or route serializer or parser.

When sending route-target-constrain-default-route before I had:

ffffffffffffffffffffffffffffffff0031020000001a4001010040020040050400000064800e0900018404c714a62900

Now with addition of origin-as it is:

ffffffffffffffffffffffffffffffff0036020000001f4001010040020040050400000064800e0e00018404c714a62900600000ff98

Steps to reproduce:

  • configure app-peer and int-peer.
    ./configure.py
    
  • start play.py (new version from attachments) with
    sudo ./start_play.sh
    

    Send route via play.py with

    ./hex_default.py
    

Type default fails with:

2018-06-27T13:27:40,080 | ERROR | epollEventLoopGroup-5-4 | BGPDocumentedException           | 211 - org.opendaylight.bgpcep.bgp-parser-api - 0.10.0.SNAPSHOT | 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:155) [212:org.opendaylight.bgpcep.bgp-parser-impl:0.10.0.SNAPSHOT]
	at org.opendaylight.protocol.bgp.parser.impl.message.BGPUpdateMessageParser.parseMessageBody(BGPUpdateMessageParser.java:53) [212:org.opendaylight.bgpcep.bgp-parser-impl:0.10.0.SNAPSHOT]
	at org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleMessageRegistry.parseBody(SimpleMessageRegistry.java:31) [213:org.opendaylight.bgpcep.bgp-parser-spi:0.10.0.SNAPSHOT]
	at org.opendaylight.protocol.bgp.parser.spi.AbstractMessageRegistry.parseMessage(AbstractMessageRegistry.java:63) [213:org.opendaylight.bgpcep.bgp-parser-spi:0.10.0.SNAPSHOT]
	at org.opendaylight.protocol.bgp.rib.impl.BGPByteToMessageDecoder.decode(BGPByteToMessageDecoder.java:50) [217:org.opendaylight.bgpcep.bgp-rib-impl:0.10.0.SNAPSHOT]
	at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:489) [93:io.netty.codec:4.1.22.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:428) [93:io.netty.codec:4.1.22.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265) [93:io.netty.codec:4.1.22.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [98:io.netty.transport:4.1.22.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [98:io.netty.transport:4.1.22.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [98:io.netty.transport:4.1.22.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310) [93:io.netty.codec:4.1.22.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:284) [93:io.netty.codec:4.1.22.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [98:io.netty.transport:4.1.22.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [98:io.netty.transport:4.1.22.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) [98:io.netty.transport:4.1.22.Final]
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1414) [98:io.netty.transport:4.1.22.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) [98:io.netty.transport:4.1.22.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) [98:io.netty.transport:4.1.22.Final]
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:945) [98:io.netty.transport:4.1.22.Final]
	at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:806) [99:io.netty.transport-native-epoll:4.1.22.Final]
	at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:404) [99:io.netty.transport-native-epoll:4.1.22.Final]
	at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:304) [99:io.netty.transport-native-epoll:4.1.22.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:886) [95:io.netty.common:4.1.22.Final]
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [95:io.netty.common:4.1.22.Final]
	at java.lang.Thread.run(Thread.java:748) [?:?]
Caused by: java.lang.IndexOutOfBoundsException: readerIndex(1) + length(12) exceeds writerIndex(5): AbstractPooledDerivedByteBuf$PooledNonRetainedSlicedByteBuf(ridx: 1, widx: 5, cap: 5/5, unwrapped: PooledUnsafeDirectByteBuf(ridx: 54, widx: 54, cap: 512))
	at io.netty.buffer.AbstractByteBuf.checkReadableBytes0(AbstractByteBuf.java:1403) ~[?:?]
	at io.netty.buffer.AbstractByteBuf.checkReadableBytes(AbstractByteBuf.java:1390) ~[?:?]
	at io.netty.buffer.AbstractByteBuf.readSlice(AbstractByteBuf.java:856) ~[?:?]
	at org.opendaylight.protocol.bgp.route.targetcontrain.impl.nlri.RouteTargetConstrainNlriHandler.parseNlriDestinations(RouteTargetConstrainNlriHandler.java:60) ~[?:?]
	at org.opendaylight.protocol.bgp.route.targetcontrain.impl.nlri.RouteTargetConstrainNlriHandler.parseNlri(RouteTargetConstrainNlriHandler.java:100) ~[?:?]
	at org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleNlriRegistry.parseMpReach(SimpleNlriRegistry.java:228) ~[?:?]
	at org.opendaylight.protocol.bgp.parser.impl.message.update.MPReachAttributeParser.parseAttribute(MPReachAttributeParser.java:44) ~[?:?]
	at org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleAttributeRegistry.parseAttributes(SimpleAttributeRegistry.java:136) ~[?:?]
	at org.opendaylight.protocol.bgp.parser.impl.message.BGPUpdateMessageParser.parseMessageBody(BGPUpdateMessageParser.java:151) ~[?:?]
	... 25 more

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