]> git.puffer.fish Git - matthieu/frr.git/commitdiff
bgpd: Set extended msg size only if we advertised and received capability
authorDonatas Abraitis <donatas.abraitis@gmail.com>
Mon, 2 Aug 2021 05:59:24 +0000 (08:59 +0300)
committerDonatas Abraitis <donatas.abraitis@gmail.com>
Mon, 2 Aug 2021 06:34:43 +0000 (09:34 +0300)
If we don't advertise any capabilities (dont-capability-negotiate), we
shouldn't set msg size to 65k only if received this capability from another
peer.

Before:

```
~/frr# vtysh -c 'show ip bgp update-group' | grep 'Max packet size'
    Max packet size: 65535
```

After:

```
~/frr# vtysh -c 'show ip bgp update-group' | grep 'Max packet size'
    Max packet size: 4096
```

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

index 94d905127dec84870c67710f816ebac00f41c0f8..113017559e8b0973d1685d0aba4504677dec7ba4 100644 (file)
@@ -1216,7 +1216,8 @@ int bgp_open_option_parse(struct peer *peer, uint8_t length, int *mp_capability)
 
        /* Extended Message Support */
        peer->max_packet_size =
-               CHECK_FLAG(peer->cap, PEER_CAP_EXTENDED_MESSAGE_RCV)
+               (CHECK_FLAG(peer->cap, PEER_CAP_EXTENDED_MESSAGE_RCV)
+                && CHECK_FLAG(peer->cap, PEER_CAP_EXTENDED_MESSAGE_ADV))
                        ? BGP_EXTENDED_MESSAGE_MAX_PACKET_SIZE
                        : BGP_STANDARD_MESSAGE_MAX_PACKET_SIZE;