mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-06 02:16:53 +00:00
Merge pull request #13949 from opensourcerouting/fix/bgpd_deprecations
bgpd: rfc8810 deprecations
This commit is contained in:
commit
f5b8a4e188
@ -36,8 +36,6 @@ static const struct message capcode_str[] = {
|
||||
{CAPABILITY_CODE_ADDPATH, "AddPath"},
|
||||
{CAPABILITY_CODE_DYNAMIC, "Dynamic"},
|
||||
{CAPABILITY_CODE_ENHE, "Extended Next Hop Encoding"},
|
||||
{CAPABILITY_CODE_DYNAMIC_OLD, "Dynamic (Old)"},
|
||||
{CAPABILITY_CODE_REFRESH_OLD, "Route Refresh (Old)"},
|
||||
{CAPABILITY_CODE_ORF_OLD, "ORF (Old)"},
|
||||
{CAPABILITY_CODE_FQDN, "FQDN"},
|
||||
{CAPABILITY_CODE_ENHANCED_RR, "Enhanced Route Refresh"},
|
||||
@ -56,9 +54,7 @@ static const size_t cap_minsizes[] = {
|
||||
[CAPABILITY_CODE_AS4] = CAPABILITY_CODE_AS4_LEN,
|
||||
[CAPABILITY_CODE_ADDPATH] = CAPABILITY_CODE_ADDPATH_LEN,
|
||||
[CAPABILITY_CODE_DYNAMIC] = CAPABILITY_CODE_DYNAMIC_LEN,
|
||||
[CAPABILITY_CODE_DYNAMIC_OLD] = CAPABILITY_CODE_DYNAMIC_LEN,
|
||||
[CAPABILITY_CODE_ENHE] = CAPABILITY_CODE_ENHE_LEN,
|
||||
[CAPABILITY_CODE_REFRESH_OLD] = CAPABILITY_CODE_REFRESH_LEN,
|
||||
[CAPABILITY_CODE_ORF_OLD] = CAPABILITY_CODE_ORF_LEN,
|
||||
[CAPABILITY_CODE_FQDN] = CAPABILITY_CODE_MIN_FQDN_LEN,
|
||||
[CAPABILITY_CODE_ENHANCED_RR] = CAPABILITY_CODE_ENHANCED_LEN,
|
||||
@ -81,9 +77,7 @@ static const size_t cap_modsizes[] = {
|
||||
[CAPABILITY_CODE_AS4] = 4,
|
||||
[CAPABILITY_CODE_ADDPATH] = 4,
|
||||
[CAPABILITY_CODE_DYNAMIC] = 1,
|
||||
[CAPABILITY_CODE_DYNAMIC_OLD] = 1,
|
||||
[CAPABILITY_CODE_ENHE] = 6,
|
||||
[CAPABILITY_CODE_REFRESH_OLD] = 1,
|
||||
[CAPABILITY_CODE_ORF_OLD] = 1,
|
||||
[CAPABILITY_CODE_FQDN] = 1,
|
||||
[CAPABILITY_CODE_ENHANCED_RR] = 1,
|
||||
@ -1011,14 +1005,12 @@ static int bgp_capability_parse(struct peer *peer, size_t length,
|
||||
switch (caphdr.code) {
|
||||
case CAPABILITY_CODE_MP:
|
||||
case CAPABILITY_CODE_REFRESH:
|
||||
case CAPABILITY_CODE_REFRESH_OLD:
|
||||
case CAPABILITY_CODE_ORF:
|
||||
case CAPABILITY_CODE_ORF_OLD:
|
||||
case CAPABILITY_CODE_RESTART:
|
||||
case CAPABILITY_CODE_AS4:
|
||||
case CAPABILITY_CODE_ADDPATH:
|
||||
case CAPABILITY_CODE_DYNAMIC:
|
||||
case CAPABILITY_CODE_DYNAMIC_OLD:
|
||||
case CAPABILITY_CODE_ENHE:
|
||||
case CAPABILITY_CODE_FQDN:
|
||||
case CAPABILITY_CODE_ENHANCED_RR:
|
||||
@ -1076,15 +1068,12 @@ static int bgp_capability_parse(struct peer *peer, size_t length,
|
||||
}
|
||||
} break;
|
||||
case CAPABILITY_CODE_ENHANCED_RR:
|
||||
case CAPABILITY_CODE_REFRESH:
|
||||
case CAPABILITY_CODE_REFRESH_OLD: {
|
||||
case CAPABILITY_CODE_REFRESH: {
|
||||
/* BGP refresh capability */
|
||||
if (caphdr.code == CAPABILITY_CODE_ENHANCED_RR)
|
||||
SET_FLAG(peer->cap, PEER_CAP_ENHANCED_RR_RCV);
|
||||
else if (caphdr.code == CAPABILITY_CODE_REFRESH_OLD)
|
||||
SET_FLAG(peer->cap, PEER_CAP_REFRESH_OLD_RCV);
|
||||
else
|
||||
SET_FLAG(peer->cap, PEER_CAP_REFRESH_NEW_RCV);
|
||||
SET_FLAG(peer->cap, PEER_CAP_REFRESH_RCV);
|
||||
} break;
|
||||
case CAPABILITY_CODE_ORF:
|
||||
case CAPABILITY_CODE_ORF_OLD:
|
||||
@ -1097,7 +1086,6 @@ static int bgp_capability_parse(struct peer *peer, size_t length,
|
||||
ret = bgp_capability_llgr(peer, &caphdr);
|
||||
break;
|
||||
case CAPABILITY_CODE_DYNAMIC:
|
||||
case CAPABILITY_CODE_DYNAMIC_OLD:
|
||||
SET_FLAG(peer->cap, PEER_CAP_DYNAMIC_RCV);
|
||||
break;
|
||||
case CAPABILITY_CODE_AS4:
|
||||
@ -1769,11 +1757,6 @@ uint16_t bgp_open_capability(struct stream *s, struct peer *peer,
|
||||
/* Route refresh. */
|
||||
SET_FLAG(peer->cap, PEER_CAP_REFRESH_ADV);
|
||||
stream_putc(s, BGP_OPEN_OPT_CAP);
|
||||
ext_opt_params ? stream_putw(s, CAPABILITY_CODE_REFRESH_LEN + 2)
|
||||
: stream_putc(s, CAPABILITY_CODE_REFRESH_LEN + 2);
|
||||
stream_putc(s, CAPABILITY_CODE_REFRESH_OLD);
|
||||
stream_putc(s, CAPABILITY_CODE_REFRESH_LEN);
|
||||
stream_putc(s, BGP_OPEN_OPT_CAP);
|
||||
ext_opt_params ? stream_putw(s, CAPABILITY_CODE_REFRESH_LEN + 2)
|
||||
: stream_putc(s, CAPABILITY_CODE_REFRESH_LEN + 2);
|
||||
stream_putc(s, CAPABILITY_CODE_REFRESH);
|
||||
@ -1910,12 +1893,6 @@ uint16_t bgp_open_capability(struct stream *s, struct peer *peer,
|
||||
if (CHECK_FLAG(peer->flags, PEER_FLAG_DYNAMIC_CAPABILITY)) {
|
||||
SET_FLAG(peer->cap, PEER_CAP_DYNAMIC_ADV);
|
||||
stream_putc(s, BGP_OPEN_OPT_CAP);
|
||||
ext_opt_params
|
||||
? stream_putw(s, CAPABILITY_CODE_DYNAMIC_LEN + 2)
|
||||
: stream_putc(s, CAPABILITY_CODE_DYNAMIC_LEN + 2);
|
||||
stream_putc(s, CAPABILITY_CODE_DYNAMIC_OLD);
|
||||
stream_putc(s, CAPABILITY_CODE_DYNAMIC_LEN);
|
||||
stream_putc(s, BGP_OPEN_OPT_CAP);
|
||||
ext_opt_params
|
||||
? stream_putw(s, CAPABILITY_CODE_DYNAMIC_LEN + 2)
|
||||
: stream_putc(s, CAPABILITY_CODE_DYNAMIC_LEN + 2);
|
||||
|
@ -31,7 +31,6 @@ struct graceful_restart_af {
|
||||
#define CAPABILITY_CODE_ORF 3 /* Cooperative Route Filtering Capability */
|
||||
#define CAPABILITY_CODE_RESTART 64 /* Graceful Restart Capability */
|
||||
#define CAPABILITY_CODE_AS4 65 /* 4-octet AS number Capability */
|
||||
#define CAPABILITY_CODE_DYNAMIC_OLD 66 /* Dynamic Capability, deprecated since 2003 */
|
||||
#define CAPABILITY_CODE_DYNAMIC 67 /* Dynamic Capability */
|
||||
#define CAPABILITY_CODE_ADDPATH 69 /* Addpath Capability */
|
||||
#define CAPABILITY_CODE_ENHANCED_RR 70 /* Enhanced Route Refresh capability */
|
||||
@ -39,7 +38,6 @@ struct graceful_restart_af {
|
||||
#define CAPABILITY_CODE_FQDN 73 /* Advertise hostname capability */
|
||||
#define CAPABILITY_CODE_SOFT_VERSION 75 /* Software Version capability */
|
||||
#define CAPABILITY_CODE_ENHE 5 /* Extended Next Hop Encoding */
|
||||
#define CAPABILITY_CODE_REFRESH_OLD 128 /* Route Refresh Capability(cisco) */
|
||||
#define CAPABILITY_CODE_ORF_OLD 130 /* Cooperative Route Filtering Capability(cisco) */
|
||||
#define CAPABILITY_CODE_EXT_MESSAGE 6 /* Extended Message Support */
|
||||
#define CAPABILITY_CODE_ROLE 9 /* Role Capability */
|
||||
|
@ -1103,7 +1103,7 @@ void bgp_route_refresh_send(struct peer *peer, afi_t afi, safi_t safi,
|
||||
s = stream_new(peer->max_packet_size);
|
||||
|
||||
/* Make BGP update packet. */
|
||||
if (CHECK_FLAG(peer->cap, PEER_CAP_REFRESH_NEW_RCV))
|
||||
if (CHECK_FLAG(peer->cap, PEER_CAP_REFRESH_RCV))
|
||||
bgp_packet_set_marker(s, BGP_MSG_ROUTE_REFRESH_NEW);
|
||||
else
|
||||
bgp_packet_set_marker(s, BGP_MSG_ROUTE_REFRESH_OLD);
|
||||
|
@ -4192,10 +4192,7 @@ static void bgp_route_map_process_peer(const char *rmap_name,
|
||||
safi2str(safi), peer->host);
|
||||
|
||||
bgp_soft_reconfig_in(peer, afi, safi);
|
||||
} else if (CHECK_FLAG(peer->cap,
|
||||
PEER_CAP_REFRESH_OLD_RCV)
|
||||
|| CHECK_FLAG(peer->cap,
|
||||
PEER_CAP_REFRESH_NEW_RCV)) {
|
||||
} else if (CHECK_FLAG(peer->cap, PEER_CAP_REFRESH_RCV)) {
|
||||
if (bgp_debug_update(peer, NULL, NULL, 1))
|
||||
zlog_debug(
|
||||
"Processing route_map %s(%s:%s) update on peer %s (inbound, route-refresh)",
|
||||
|
@ -14015,46 +14015,19 @@ static void bgp_show_peer(struct vty *vty, struct peer *p, bool use_json,
|
||||
|
||||
/* Route Refresh */
|
||||
if (CHECK_FLAG(p->cap, PEER_CAP_REFRESH_ADV) ||
|
||||
CHECK_FLAG(p->cap, PEER_CAP_REFRESH_NEW_RCV) ||
|
||||
CHECK_FLAG(p->cap, PEER_CAP_REFRESH_OLD_RCV)) {
|
||||
CHECK_FLAG(p->cap, PEER_CAP_REFRESH_RCV)) {
|
||||
if (CHECK_FLAG(p->cap, PEER_CAP_REFRESH_ADV) &&
|
||||
(CHECK_FLAG(p->cap,
|
||||
PEER_CAP_REFRESH_NEW_RCV) ||
|
||||
CHECK_FLAG(p->cap,
|
||||
PEER_CAP_REFRESH_OLD_RCV))) {
|
||||
if (CHECK_FLAG(
|
||||
p->cap,
|
||||
PEER_CAP_REFRESH_OLD_RCV) &&
|
||||
CHECK_FLAG(
|
||||
p->cap,
|
||||
PEER_CAP_REFRESH_NEW_RCV))
|
||||
json_object_string_add(
|
||||
json_cap,
|
||||
"routeRefresh",
|
||||
"advertisedAndReceivedOldNew");
|
||||
else {
|
||||
if (CHECK_FLAG(
|
||||
p->cap,
|
||||
PEER_CAP_REFRESH_OLD_RCV))
|
||||
json_object_string_add(
|
||||
json_cap,
|
||||
"routeRefresh",
|
||||
"advertisedAndReceivedOld");
|
||||
else
|
||||
json_object_string_add(
|
||||
json_cap,
|
||||
"routeRefresh",
|
||||
"advertisedAndReceivedNew");
|
||||
}
|
||||
} else if (CHECK_FLAG(p->cap,
|
||||
PEER_CAP_REFRESH_ADV))
|
||||
CHECK_FLAG(p->cap, PEER_CAP_REFRESH_RCV))
|
||||
json_object_string_add(json_cap,
|
||||
"routeRefresh",
|
||||
"advertisedAndReceived");
|
||||
else if (CHECK_FLAG(p->cap,
|
||||
PEER_CAP_REFRESH_ADV))
|
||||
json_object_string_add(json_cap,
|
||||
"routeRefresh",
|
||||
"advertised");
|
||||
else if (CHECK_FLAG(p->cap,
|
||||
PEER_CAP_REFRESH_NEW_RCV) ||
|
||||
CHECK_FLAG(p->cap,
|
||||
PEER_CAP_REFRESH_OLD_RCV))
|
||||
PEER_CAP_REFRESH_RCV))
|
||||
json_object_string_add(json_cap,
|
||||
"routeRefresh",
|
||||
"received");
|
||||
@ -14456,33 +14429,16 @@ static void bgp_show_peer(struct vty *vty, struct peer *p, bool use_json,
|
||||
|
||||
/* Route Refresh */
|
||||
if (CHECK_FLAG(p->cap, PEER_CAP_REFRESH_ADV) ||
|
||||
CHECK_FLAG(p->cap, PEER_CAP_REFRESH_NEW_RCV) ||
|
||||
CHECK_FLAG(p->cap, PEER_CAP_REFRESH_OLD_RCV)) {
|
||||
CHECK_FLAG(p->cap, PEER_CAP_REFRESH_RCV)) {
|
||||
vty_out(vty, " Route refresh:");
|
||||
if (CHECK_FLAG(p->cap, PEER_CAP_REFRESH_ADV))
|
||||
vty_out(vty, " advertised");
|
||||
if (CHECK_FLAG(p->cap,
|
||||
PEER_CAP_REFRESH_NEW_RCV) ||
|
||||
CHECK_FLAG(p->cap,
|
||||
PEER_CAP_REFRESH_OLD_RCV))
|
||||
vty_out(vty, " %sreceived(%s)",
|
||||
if (CHECK_FLAG(p->cap, PEER_CAP_REFRESH_RCV))
|
||||
vty_out(vty, " %sreceived",
|
||||
CHECK_FLAG(p->cap,
|
||||
PEER_CAP_REFRESH_ADV)
|
||||
? "and "
|
||||
: "",
|
||||
(CHECK_FLAG(
|
||||
p->cap,
|
||||
PEER_CAP_REFRESH_OLD_RCV) &&
|
||||
CHECK_FLAG(
|
||||
p->cap,
|
||||
PEER_CAP_REFRESH_NEW_RCV))
|
||||
? "old & new"
|
||||
: CHECK_FLAG(
|
||||
p->cap,
|
||||
PEER_CAP_REFRESH_OLD_RCV)
|
||||
? "old"
|
||||
: "new");
|
||||
|
||||
: "");
|
||||
vty_out(vty, "\n");
|
||||
}
|
||||
|
||||
|
@ -4414,8 +4414,7 @@ void peer_change_action(struct peer *peer, afi_t afi, safi_t safi,
|
||||
bgp_notify_send(peer, BGP_NOTIFY_CEASE,
|
||||
BGP_NOTIFY_CEASE_CONFIG_CHANGE);
|
||||
} else if (type == peer_change_reset_in) {
|
||||
if (CHECK_FLAG(peer->cap, PEER_CAP_REFRESH_OLD_RCV)
|
||||
|| CHECK_FLAG(peer->cap, PEER_CAP_REFRESH_NEW_RCV))
|
||||
if (CHECK_FLAG(peer->cap, PEER_CAP_REFRESH_RCV))
|
||||
bgp_route_refresh_send(peer, afi, safi, 0, 0, 0,
|
||||
BGP_ROUTE_REFRESH_NORMAL);
|
||||
else {
|
||||
@ -5718,8 +5717,7 @@ void peer_on_policy_change(struct peer *peer, afi_t afi, safi_t safi,
|
||||
if (bgp_soft_reconfig_in(peer, afi, safi))
|
||||
return;
|
||||
|
||||
if (CHECK_FLAG(peer->cap, PEER_CAP_REFRESH_OLD_RCV) ||
|
||||
CHECK_FLAG(peer->cap, PEER_CAP_REFRESH_NEW_RCV))
|
||||
if (CHECK_FLAG(peer->cap, PEER_CAP_REFRESH_RCV))
|
||||
bgp_route_refresh_send(peer, afi, safi, 0, 0, 0,
|
||||
BGP_ROUTE_REFRESH_NORMAL);
|
||||
}
|
||||
@ -7986,8 +7984,7 @@ int peer_clear_soft(struct peer *peer, afi_t afi, safi_t safi,
|
||||
/* If neighbor has route refresh capability, send route
|
||||
refresh
|
||||
message to the peer. */
|
||||
if (CHECK_FLAG(peer->cap, PEER_CAP_REFRESH_OLD_RCV)
|
||||
|| CHECK_FLAG(peer->cap, PEER_CAP_REFRESH_NEW_RCV))
|
||||
if (CHECK_FLAG(peer->cap, PEER_CAP_REFRESH_RCV))
|
||||
bgp_route_refresh_send(
|
||||
peer, afi, safi, 0, 0, 0,
|
||||
BGP_ROUTE_REFRESH_NORMAL);
|
||||
|
@ -1242,8 +1242,7 @@ struct peer {
|
||||
/* Capability flags (reset in bgp_stop) */
|
||||
uint32_t cap;
|
||||
#define PEER_CAP_REFRESH_ADV (1U << 0) /* refresh advertised */
|
||||
#define PEER_CAP_REFRESH_OLD_RCV (1U << 1) /* refresh old received */
|
||||
#define PEER_CAP_REFRESH_NEW_RCV (1U << 2) /* refresh rfc received */
|
||||
#define PEER_CAP_REFRESH_RCV (1U << 2) /* refresh rfc received */
|
||||
#define PEER_CAP_DYNAMIC_ADV (1U << 3) /* dynamic advertised */
|
||||
#define PEER_CAP_DYNAMIC_RCV (1U << 4) /* dynamic received */
|
||||
#define PEER_CAP_RESTART_ADV (1U << 5) /* restart advertised */
|
||||
|
Loading…
Reference in New Issue
Block a user