[BGPCEP-787] Local-address connection failed Created: 13/Apr/18 Updated: 12/Jul/18 Resolved: 16/Apr/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: | Cannot Reproduce | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Attachments: |
|
| Description |
|
Overview: Configure talking internal peer with local-address set. Log
2018-04-13T15:06:42,347 | ERROR | epollEventLoopGroup-5-6 | BGPDocumentedException | 204 - org.opendaylight.bgpcep.bgp-parser-api - 0.10.0.SNAPSHOT | Error = CONNECTION_REJECTED
org.opendaylight.protocol.bgp.parser.BGPDocumentedException: BGP peer with ip: IpAddress{_ipv4Address=Ipv4Address{_value=127.0.0.3}} not configured, check configured peers in : StrictBGPPeerRegistry{peers=[IpAddress{_ipv4Address=Ipv4Address{_value=192.0.2.1}}, IpAddress{_ipv4Address=Ipv4Address{_value=192.0.2.5}}, IpAddress{_ipv4Address=Ipv4Address{_value=127.0.0.2}}]}
at org.opendaylight.protocol.bgp.rib.impl.AbstractBGPSessionNegotiator.startNegotiation(AbstractBGPSessionNegotiator.java:104) [210:org.opendaylight.bgpcep.bgp-rib-impl:0.10.0.SNAPSHOT]
at org.opendaylight.protocol.bgp.rib.impl.AbstractBGPSessionNegotiator.channelActive(AbstractBGPSessionNegotiator.java:279) [210:org.opendaylight.bgpcep.bgp-rib-impl:0.10.0.SNAPSHOT]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:213) [103:io.netty.transport:4.1.16.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:199) [103:io.netty.transport:4.1.16.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelActive(AbstractChannelHandlerContext.java:192) [103:io.netty.transport:4.1.16.Final]
at io.netty.channel.ChannelInboundHandlerAdapter.channelActive(ChannelInboundHandlerAdapter.java:64) [103:io.netty.transport:4.1.16.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:213) [103:io.netty.transport:4.1.16.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:199) [103:io.netty.transport:4.1.16.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelActive(AbstractChannelHandlerContext.java:192) [103:io.netty.transport:4.1.16.Final]
at io.netty.channel.ChannelInboundHandlerAdapter.channelActive(ChannelInboundHandlerAdapter.java:64) [103:io.netty.transport:4.1.16.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:213) [103:io.netty.transport:4.1.16.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:199) [103:io.netty.transport:4.1.16.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelActive(AbstractChannelHandlerContext.java:192) [103:io.netty.transport:4.1.16.Final]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelActive(DefaultChannelPipeline.java:1347) [103:io.netty.transport:4.1.16.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:213) [103:io.netty.transport:4.1.16.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelActive(AbstractChannelHandlerContext.java:199) [103:io.netty.transport:4.1.16.Final]
at io.netty.channel.DefaultChannelPipeline.fireChannelActive(DefaultChannelPipeline.java:911) [103:io.netty.transport:4.1.16.Final]
at io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:518) [103:io.netty.transport:4.1.16.Final]
at io.netty.channel.AbstractChannel$AbstractUnsafe.access$200(AbstractChannel.java:423) [103:io.netty.transport:4.1.16.Final]
at io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:482) [103:io.netty.transport:4.1.16.Final]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) [100:io.netty.common:4.1.16.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:403) [100:io.netty.common:4.1.16.Final]
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:309) [104:io.netty.transport-native-epoll:4.1.16.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858) [100:io.netty.common:4.1.16.Final]
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138) [100:io.netty.common:4.1.16.Final]
at java.lang.Thread.run(Thread.java:748) [?:?]
Steps to reproduce:
I think it is getting stopped way before we even get to the local-address functionality. Or I am missing something. |
| Comments |
| Comment by Tomas Markovic [ 13/Apr/18 ] |
|
Also possible to test on sandbox with PATCHREFSPEC: refs/changes/37/70837/5 and SUITES: bgpcep/bgpuser/basic.robot TC4 does everything related to local-address, and has basically these configs, just uses play.py instead of exagp. Also tests that we shouldn't be able to connect with 127.0.0.2 from this issue. |
| Comment by Claudio David Gasparini [ 16/Apr/18 ] |
|
Missconfiguration
First of all, as doc state @line 12: Wait for peers to issue requests to open a BGP session, rather than initiating sessions from the local router. Default value is false. Therefore to be a correct test, we should make exabgp act as passive. Otherwise exabgp is trying to connect to ODL. Here we are testing ODL connecting to exabgp using specific local address. you should use on exabgp
but this is not the issue, indeed it will work with the actual config ( it's just to get cleaner logs). The actual missconfig is here
neighbor 127.0.0.1 {
ODL Ip but we want to use the specific ODL local-address 127.0.0.3 set-up on ODL config just change it to
neighbor 127.0.0.3 {
Regards, |