]> git.puffer.fish Git - mirror/frr.git/commitdiff
bgpd: Set 4096 instead of 65535 as new max packet size for a new peer 8998/head
authorDonatas Abraitis <donatas.abraitis@gmail.com>
Fri, 2 Jul 2021 13:50:39 +0000 (16:50 +0300)
committerDonatas Abraitis <donatas.abraitis@gmail.com>
Wed, 7 Jul 2021 20:29:47 +0000 (23:29 +0300)
New peers should be initialized with a usual max packet size and later
determined on OPEN messages.

Testing with different peers supporting/not supporting extended support.

2021/07/02 13:48:00 BGP: [WEV7K-2GAQ5] u2:s2 send UPDATE len 8991 (max message len: 65535) numpfx 1788
2021/07/02 13:48:03 BGP: [WEV7K-2GAQ5] u3:s3 send UPDATE len 4096 (max message len: 4096) numpfx 809
2021/07/02 13:48:03 BGP: [WEV7K-2GAQ5] u3:s3 send UPDATE len 4096 (max message len: 4096) numpfx 809

Signed-off-by: Donatas Abraitis <donatas.abraitis@gmail.com>
bgpd/bgp_fsm.c
bgpd/bgpd.c

index 6bcb31e652f1ff96701ab1ffef29de2549329137..e54f0240fd42a0169f99d1da31e91e36c1b4b147 100644 (file)
@@ -256,6 +256,7 @@ static struct peer *peer_xfer_conn(struct peer *from_peer)
        from_peer->last_major_event = last_maj_evt;
        peer->remote_id = from_peer->remote_id;
        peer->last_reset = from_peer->last_reset;
+       peer->max_packet_size = from_peer->max_packet_size;
 
        peer->peer_gr_present_state = from_peer->peer_gr_present_state;
        peer->peer_gr_new_status_flag = from_peer->peer_gr_new_status_flag;
index 591bddb52f03eee31f0eac28d990d7a4d948d492..3c7657318213e68b399c8cb81315b148b88928bd 100644 (file)
@@ -1355,7 +1355,7 @@ struct peer *peer_new(struct bgp *bgp)
        peer->bgp = bgp_lock(bgp);
        peer = peer_lock(peer); /* initial reference */
        peer->password = NULL;
-       peer->max_packet_size = BGP_MAX_PACKET_SIZE;
+       peer->max_packet_size = BGP_STANDARD_MESSAGE_MAX_PACKET_SIZE;
 
        /* Set default flags. */
        FOREACH_AFI_SAFI (afi, safi) {
@@ -1452,6 +1452,8 @@ void peer_xfer_config(struct peer *peer_dst, struct peer *peer_src)
        (void)peer_sort(peer_dst);
        peer_dst->rmap_type = peer_src->rmap_type;
 
+       peer_dst->max_packet_size = peer_src->max_packet_size;
+
        /* Timers */
        peer_dst->holdtime = peer_src->holdtime;
        peer_dst->keepalive = peer_src->keepalive;