]> git.puffer.fish Git - matthieu/frr.git/commitdiff
bgpd: Deprecate Prestandard Route Refresh capability (128)
authorDonatas Abraitis <donatas@opensourcerouting.org>
Fri, 7 Jul 2023 13:01:19 +0000 (16:01 +0300)
committerDonatas Abraitis <donatas@opensourcerouting.org>
Fri, 7 Jul 2023 13:19:54 +0000 (16:19 +0300)
More details: https://www.rfc-editor.org/rfc/rfc8810.html

Not sure if we want to maintain the old code more.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
bgpd/bgp_open.c
bgpd/bgp_open.h
bgpd/bgp_packet.c
bgpd/bgp_routemap.c
bgpd/bgp_vty.c
bgpd/bgpd.c
bgpd/bgpd.h

index d6151db3a4790da8045d9b81a0eaa1073b20fd38..84f770f7db79da26d2c4671ba8601004a2ad71dc 100644 (file)
@@ -36,7 +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_REFRESH_OLD, "Route Refresh (Old)"},
        {CAPABILITY_CODE_ORF_OLD, "ORF (Old)"},
        {CAPABILITY_CODE_FQDN, "FQDN"},
        {CAPABILITY_CODE_ENHANCED_RR, "Enhanced Route Refresh"},
@@ -56,7 +55,6 @@ static const size_t cap_minsizes[] = {
                [CAPABILITY_CODE_ADDPATH] = CAPABILITY_CODE_ADDPATH_LEN,
                [CAPABILITY_CODE_DYNAMIC] = 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,
@@ -80,7 +78,6 @@ static const size_t cap_modsizes[] = {
                [CAPABILITY_CODE_ADDPATH] = 4,
                [CAPABILITY_CODE_DYNAMIC] = 1,
                [CAPABILITY_CODE_ENHE] = 6,
-               [CAPABILITY_CODE_REFRESH_OLD] = 1,
                [CAPABILITY_CODE_ORF_OLD] = 1,
                [CAPABILITY_CODE_FQDN] = 1,
                [CAPABILITY_CODE_ENHANCED_RR] = 1,
@@ -1008,7 +1005,6 @@ 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:
@@ -1072,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:
@@ -1764,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);
index 3be66c0b6bceee75e166a608af2c0200d1f19b18..c767100293cebfe704d28a96e7b462e064e07b38 100644 (file)
@@ -38,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 */
index 0cac58ade1b34d525f4698d416e2d78432399611..d30ba68347fdd4d4eb6242787da7fb94e315625f 100644 (file)
@@ -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);
index 2f6480b75361a14136afec1766a66bb6c8180900..c0365d8e3b830a920dfc46506cdfbc7da03d0c86 100644 (file)
@@ -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)",
index e1cc59a318190a41f535b1e3ac5cbe146fc6aba4..cf74919e9724c81277b343e67a3ae7162b112296 100644 (file)
@@ -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");
                        }
 
index 5690b032cfb04a1de848032070a400808d1079e8..5544c59df88a0a4f4d7909f214d10860b01a9322 100644 (file)
@@ -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);
index 50cd9d17f775e5f2d8be4a27f0bacd3b3086df2e..b8208ceceecb6e8031c63a6886ce52f970afa950 100644 (file)
@@ -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 */