Commit da6a4c01d0 for frr

commit da6a4c01d05432d009e180f61d62959c6018ac88
Author: Enke Chen <enchen@paloaltonetworks.com>
Date:   Thu Nov 12 12:54:02 2026 -0800

    bgpd: separate update-groups by extended link-bandwidth encoding

    Peers that differ in PEER_FLAG_EXTENDED_LINK_BANDWIDTH use different
    link-bandwidth community entry sizes: 20 bytes for the extended form
    vs 8 bytes for the regular form.  The in-place stream rewriting in
    bpacket_reformat_for_peer() requires a consistent entry size across
    all peers in a subgroup, so peers with different values of this flag
    must land in separate update-groups.

    PEER_FLAG_DISABLE_LINK_BW_ENCODING_IEEE, which only changes the
    encoding of the 4-byte bandwidth value within the 8-byte regular
    form, does not require update-group separation: bpacket_reformat_
    for_peer() reads that flag per-peer and encodes the value correctly.

    Add PEER_FLAG_EXTENDED_LINK_BANDWIDTH to PEER_UPDGRP_FLAGS and
    change its session action to peer_change_reset so that a live flag
    change triggers a session reset, ensuring the peer rejoins the
    correct update-group under the new flag value.

    Signed-off-by: Enke Chen <enchen@paloaltonetworks.com>

diff --git a/bgpd/bgp_updgrp.h b/bgpd/bgp_updgrp.h
index 9779a34924..3b27d1a3fc 100644
--- a/bgpd/bgp_updgrp.h
+++ b/bgpd/bgp_updgrp.h
@@ -38,7 +38,8 @@

 #define PEER_UPDGRP_FLAGS                                                                         \
 	(PEER_FLAG_LOCAL_AS_NO_PREPEND | PEER_FLAG_LOCAL_AS_REPLACE_AS |                          \
-	 PEER_FLAG_AS_LOOP_DETECTION | PEER_FLAG_SEND_NHC_ATTRIBUTE | PEER_FLAG_AIGP)
+	 PEER_FLAG_AS_LOOP_DETECTION | PEER_FLAG_SEND_NHC_ATTRIBUTE | PEER_FLAG_AIGP |            \
+	 PEER_FLAG_EXTENDED_LINK_BANDWIDTH)

 #define PEER_UPDGRP_AF_FLAGS                                                                      \
 	(PEER_FLAG_SEND_COMMUNITY | PEER_FLAG_SEND_EXT_COMMUNITY |                                \
diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c
index 7445a5c420..f3a39f234a 100644
--- a/bgpd/bgpd.c
+++ b/bgpd/bgpd.c
@@ -5674,7 +5674,7 @@ static const struct peer_flag_action peer_flag_action_list[] = {
 	{ PEER_FLAG_CAPABILITY_SOFT_VERSION_NEW, 0, peer_change_none },
 	{ PEER_FLAG_CAPABILITY_FQDN, 0, peer_change_none },
 	{ PEER_FLAG_AS_LOOP_DETECTION, 0, peer_change_reset },
-	{ PEER_FLAG_EXTENDED_LINK_BANDWIDTH, 0, peer_change_none },
+	{ PEER_FLAG_EXTENDED_LINK_BANDWIDTH, 0, peer_change_reset },
 	{ PEER_FLAG_LONESOUL, 0, peer_change_reset_out },
 	{ PEER_FLAG_TCP_MSS, 0, peer_change_none },
 	{ PEER_FLAG_CAPABILITY_LINK_LOCAL, 0, peer_change_none },