mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-07-25 20:38:34 +00:00
bgpd: Make sure Link-Local Next Hop capability has its own update-group
We should involve checking received (not only advertised) capability, because
otherwise we put both peers (one with LL capability, another without) into a
single update-group and send 16-bytes NH instead of 16-bytes and 32-bytes
separately.
Fixes: db853cc97e
("bgpd: Implement Link-Local Next Hop capability")
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
This commit is contained in:
parent
e4b14dae7c
commit
c91c5e8463
@ -444,6 +444,14 @@ static unsigned int updgrp_hash_key_make(const void *p)
|
|||||||
*/
|
*/
|
||||||
key = jhash_1word(peer->local_role, key);
|
key = jhash_1word(peer->local_role, key);
|
||||||
|
|
||||||
|
/* If the peer has disabled Link-Local Next Hop capability, but we
|
||||||
|
* send it, it's not taken into consideration and we always merge both
|
||||||
|
* peers into a single update-group. Make sure peer has its own update-group
|
||||||
|
* if it has disabled (received) Link-Local Next Hop capability.
|
||||||
|
*/
|
||||||
|
key = jhash_2words(!!CHECK_FLAG(peer->cap, PEER_CAP_LINK_LOCAL_RCV),
|
||||||
|
!!CHECK_FLAG(peer->cap, PEER_CAP_LINK_LOCAL_ADV), key);
|
||||||
|
|
||||||
/* Neighbors configured with the AIGP attribute are put in a separate
|
/* Neighbors configured with the AIGP attribute are put in a separate
|
||||||
* update group from other neighbors.
|
* update group from other neighbors.
|
||||||
*/
|
*/
|
||||||
@ -480,6 +488,9 @@ static unsigned int updgrp_hash_key_make(const void *p)
|
|||||||
zlog_debug("%pBP Update Group Hash: addpath paths-limit: (send %u, receive %u)",
|
zlog_debug("%pBP Update Group Hash: addpath paths-limit: (send %u, receive %u)",
|
||||||
peer, peer->addpath_paths_limit[afi][safi].send,
|
peer, peer->addpath_paths_limit[afi][safi].send,
|
||||||
peer->addpath_paths_limit[afi][safi].receive);
|
peer->addpath_paths_limit[afi][safi].receive);
|
||||||
|
zlog_debug("%pBP Update Group Hash: Link-Local Next Hop capability:%s%s", peer,
|
||||||
|
CHECK_FLAG(peer->cap, PEER_CAP_LINK_LOCAL_RCV) ? " received" : "",
|
||||||
|
CHECK_FLAG(peer->cap, PEER_CAP_LINK_LOCAL_ADV) ? " advertised" : "");
|
||||||
zlog_debug(
|
zlog_debug(
|
||||||
"%pBP Update Group Hash: max packet size: %u pmax_out: %u Peer Group: %s rmap out: %s",
|
"%pBP Update Group Hash: max packet size: %u pmax_out: %u Peer Group: %s rmap out: %s",
|
||||||
peer, peer->max_packet_size, peer->pmax_out[afi][safi],
|
peer, peer->max_packet_size, peer->pmax_out[afi][safi],
|
||||||
|
Loading…
Reference in New Issue
Block a user