[BGPCEP-764] ipv6 formatting error Created: 08/Mar/18  Updated: 23/Mar/18  Resolved: 23/Mar/18

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

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 exaipv6.cfg     File ipv6peerconf.py    

 Description   

When I try to connect exabgp with ipv6 address for example 2607:f0d0:1002:11::2, and I configure bgp peer with the same format of ipv6 "2607:f0d0:1002:11::2" I get error:

2018-03-08T12:57:53,115 | ERROR | epollEventLoopGroup-6-1 | BGPDocumentedException           | 214 - org.opendaylight.bgpcep.bgp-parser-api - 0.9.0.SNAPSHOT | Error = CONNECTION_REJECTED
org.opendaylight.protocol.bgp.parser.BGPDocumentedException: BGP peer with ip: IpAddress [_ipv6Address=Ipv6Address [_value=2607:f0d0:1002:11:0:0:0:2]] not configured, check configured peers in : StrictBGPPeerRegistry{peers=[IpAddress [_ipv4Address=Ipv4Address [_value=192.0.2.1]], IpAddress [_ipv6Address=Ipv6Address [_value=2607:f0d0:1002:11::2]]]}
	at org.opendaylight.protocol.bgp.rib.impl.AbstractBGPSessionNegotiator.startNegotiation(AbstractBGPSessionNegotiator.java:104) [220:org.opendaylight.bgpcep.bgp-rib-impl:0.9.0.SNAPSHOT]
	at org.opendaylight.protocol.bgp.rib.impl.AbstractBGPSessionNegotiator.channelActive(AbstractBGPSessionNegotiator.java:279) [220:org.opendaylight.bgpcep.bgp-rib-impl:0.9.0.SNAPSHOT]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:213) [65:io.netty.transport:4.1.16.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:199) [65:io.netty.transport:4.1.16.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelActive(AbstractChannelHandlerContext.java:192) [65:io.netty.transport:4.1.16.Final]
	at io.netty.channel.ChannelInboundHandlerAdapter.channelActive(ChannelInboundHandlerAdapter.java:64) [65:io.netty.transport:4.1.16.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:213) [65:io.netty.transport:4.1.16.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:199) [65:io.netty.transport:4.1.16.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelActive(AbstractChannelHandlerContext.java:192) [65:io.netty.transport:4.1.16.Final]
	at io.netty.channel.ChannelInboundHandlerAdapter.channelActive(ChannelInboundHandlerAdapter.java:64) [65:io.netty.transport:4.1.16.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:213) [65:io.netty.transport:4.1.16.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:199) [65:io.netty.transport:4.1.16.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelActive(AbstractChannelHandlerContext.java:192) [65:io.netty.transport:4.1.16.Final]
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelActive(DefaultChannelPipeline.java:1347) [65:io.netty.transport:4.1.16.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:213) [65:io.netty.transport:4.1.16.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:199) [65:io.netty.transport:4.1.16.Final]
	at io.netty.channel.DefaultChannelPipeline.fireChannelActive(DefaultChannelPipeline.java:911) [65:io.netty.transport:4.1.16.Final]
	at io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:518) [65:io.netty.transport:4.1.16.Final]
	at io.netty.channel.AbstractChannel$AbstractUnsafe.access$200(AbstractChannel.java:423) [65:io.netty.transport:4.1.16.Final]
	at io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:482) [65:io.netty.transport:4.1.16.Final]
	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) [62:io.netty.common:4.1.16.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:403) [62:io.netty.common:4.1.16.Final]
	at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:309) [66:io.netty.transport-native-epoll:4.1.16.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) [62:io.netty.common:4.1.16.Final]
	at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138) [62:io.netty.common:4.1.16.Final]
	at java.lang.Thread.run(Thread.java:748) [?:?]

bgp is clearly looking only for peer with ipv6 in format 2607:f0d0:1002:11:0:0:0:2

The same happens with full text address 2607:f0d0:1002:0011:0000:0000:0000:0002, again expecting only peer with ipv6 in format 2607:f0d0:1002:11:0:0:0:2

Steps to reproduce:

Start Karaf, (oxygen and fluorine tested and bug present)
Install odl-restoncf, odl-bgpcep-bgp, odl-bgpcep-bgp-config-example
Configure odl with script from attachements

./ipv6peerconf.py

start exabgp with

env exabgp.tcp.port=1790 exabgp --debug exaipv6.cfg

watch $KARAF_HOME/data/log/karaf.log
where bug should be immediately visible

2018-03-19T12:53:34,059 | WARN  | epollEventLoopGroup-5-7 | AbstractBGPSessionNegotiator     | 126 - org.opendaylight.bgpcep.bgp-rib-impl - 0.10.0.SNAPSHOT | Channel [id: 0x161287c4, L:/0:0:0:0:0:0:0:1%0:1790 - R:/0:0:0:0:0:0:0:1%0:43791] negotiation failed: BGP peer with ip: IpAddress{_ipv6Address=Ipv6Address{_value=0:0:0:0:0:0:0:1}} not configured, check configured peers in : StrictBGPPeerRegistry{peers=[IpAddress{_ipv6Address=Ipv6Address{_value=::1}}, IpAddress{_ipv4Address=Ipv4Address{_value=192.0.2.1}}]}

You can check after fix if the routes are present for example in full rib. If they are missing even in topology they should still be in full-rib-output

curl -H "Accept: application/json" -u admin:admin "http://localhost:8181/restconf/operational/bgp-rib:bgp-rib/rib/example-bgp-rib"


 Comments   
Comment by Claudio David Gasparini [ 20/Mar/18 ]

https://git.opendaylight.org/gerrit/#/q/topic:BGPCEP-764+(status:open+OR+status:merged)

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