diff options
Diffstat (limited to 'bgpd/bgp_network.c')
| -rw-r--r-- | bgpd/bgp_network.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/bgpd/bgp_network.c b/bgpd/bgp_network.c index 55d7a29d98..f3857162c3 100644 --- a/bgpd/bgp_network.c +++ b/bgpd/bgp_network.c @@ -442,6 +442,11 @@ static int bgp_accept(struct thread *thread) if (peer1) { /* Dynamic neighbor has been created, let it proceed */ peer1->fd = bgp_sock; + + /* Set the user configured MSS to TCP socket */ + if (CHECK_FLAG(peer1->flags, PEER_FLAG_TCP_MSS)) + sockopt_tcp_mss_set(bgp_sock, peer1->tcp_mss); + bgp_fsm_change_status(peer1, Active); BGP_TIMER_OFF( peer1->t_start); /* created in peer_create() */ @@ -713,6 +718,10 @@ int bgp_connect(struct peer *peer) set_nonblocking(peer->fd); + /* Set the user configured MSS to TCP socket */ + if (CHECK_FLAG(peer->flags, PEER_FLAG_TCP_MSS)) + sockopt_tcp_mss_set(peer->fd, peer->tcp_mss); + bgp_socket_set_buffer_size(peer->fd); if (bgp_set_socket_ttl(peer, peer->fd) < 0) |
