summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bgpd/bgp_network.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/bgpd/bgp_network.c b/bgpd/bgp_network.c
index 7c9aa44c80..3005eba271 100644
--- a/bgpd/bgp_network.c
+++ b/bgpd/bgp_network.c
@@ -706,7 +706,8 @@ int bgp_connect(struct peer *peer)
ifindex_t ifindex = 0;
if (peer->conf_if && BGP_PEER_SU_UNSPEC(peer)) {
- zlog_debug("Peer address not learnt: Returning from connect");
+ if (bgp_debug_neighbor_events(peer))
+ zlog_debug("Peer address not learnt: Returning from connect");
return 0;
}
frr_with_privs(&bgpd_privs) {
@@ -714,8 +715,13 @@ int bgp_connect(struct peer *peer)
peer->fd = vrf_sockunion_socket(&peer->su, peer->bgp->vrf_id,
bgp_get_bound_name(peer));
}
- if (peer->fd < 0)
+ if (peer->fd < 0) {
+ if (bgp_debug_neighbor_events(peer))
+ zlog_debug("%s: Failure to create socket for connection to %s, error received: %s(%d)",
+ __func__, peer->host, safe_strerror(errno),
+ errno);
return -1;
+ }
set_nonblocking(peer->fd);
@@ -725,8 +731,13 @@ int bgp_connect(struct peer *peer)
bgp_socket_set_buffer_size(peer->fd);
- if (bgp_set_socket_ttl(peer, peer->fd) < 0)
+ if (bgp_set_socket_ttl(peer, peer->fd) < 0) {
+ if (bgp_debug_neighbor_events(peer))
+ zlog_debug("%s: Failure to set socket ttl for connection to %s, error received: %s(%d)",
+ __func__, peer->host, safe_strerror(errno),
+ errno);
return -1;
+ }
sockopt_reuseaddr(peer->fd);
sockopt_reuseport(peer->fd);