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