]> git.puffer.fish Git - mirror/frr.git/commitdiff
Revert "bgpd: Temp fix to allow numbered peers to be part of a peer group"
authorIgor Ryzhov <iryzhov@nfware.com>
Thu, 13 May 2021 22:42:19 +0000 (01:42 +0300)
committerIgor Ryzhov <iryzhov@nfware.com>
Tue, 3 Aug 2021 19:20:52 +0000 (22:20 +0300)
This reverts commit 2a059a5448c37699eabd8802b44427978ec645ac.

bgpd/bgp_vty.c

index 61666eb16488aa92d986707c20097e2251b8300b..81712c5893f9983feba1a8563387422657d4c43d 100644 (file)
@@ -5167,63 +5167,27 @@ ALIAS_HIDDEN(no_neighbor_activate, no_neighbor_activate_hidden_cmd,
             NO_STR NEIGHBOR_STR NEIGHBOR_ADDR_STR2
             "Enable the Address Family for this Neighbor\n")
 
-DEFUN (neighbor_set_peer_group,
-       neighbor_set_peer_group_cmd,
-       "neighbor <A.B.C.D|X:X::X:X|WORD> peer-group PGNAME",
-       NEIGHBOR_STR
-       NEIGHBOR_ADDR_STR2
-       "Member of the peer-group\n"
-       "Peer-group name\n")
+DEFUN_YANG (neighbor_set_peer_group,
+           neighbor_set_peer_group_cmd,
+           "neighbor <A.B.C.D|X:X::X:X|WORD> peer-group PGNAME",
+           NEIGHBOR_STR
+           NEIGHBOR_ADDR_STR2
+           "Member of the peer-group\n"
+           "Peer-group name\n")
 {
-       VTY_DECLVAR_CONTEXT(bgp, bgp);
        int idx_peer = 1;
        int idx_word = 3;
-       int ret;
-       as_t as;
-       union sockunion su;
-       struct peer *peer;
-       struct peer_group *group;
-
-       ret = str2sockunion(argv[idx_peer]->arg, &su);
-       if (ret < 0) {
-               peer = peer_lookup_by_conf_if(bgp, argv[idx_peer]->arg);
-               if (!peer) {
-                       vty_out(vty, "%% Malformed address or name: %s\n",
-                               argv[idx_peer]->arg);
-                       return CMD_WARNING_CONFIG_FAILED;
-               }
-       } else {
-               if (peer_address_self_check(bgp, &su)) {
-                       vty_out(vty,
-                               "%% Can not configure the local system as neighbor\n");
-                       return CMD_WARNING_CONFIG_FAILED;
-               }
-
-               /* Disallow for dynamic neighbor. */
-               peer = peer_lookup(bgp, &su);
-               if (peer && peer_dynamic_neighbor(peer)) {
-                       vty_out(vty,
-                               "%% Operation not allowed on a dynamic neighbor\n");
-                       return CMD_WARNING_CONFIG_FAILED;
-               }
-       }
+       char base_xpath[XPATH_MAXLEN];
 
-       group = peer_group_lookup(bgp, argv[idx_word]->arg);
-       if (!group) {
-               vty_out(vty, "%% Configure the peer-group first\n");
+       if (peer_and_group_lookup_nb(vty, argv[idx_peer]->arg, base_xpath,
+                                    sizeof(base_xpath), NULL)
+           < 0)
                return CMD_WARNING_CONFIG_FAILED;
-       }
-
-       ret = peer_group_bind(bgp, &su, peer, group, &as);
 
-       if (ret == BGP_ERR_PEER_GROUP_PEER_TYPE_DIFFERENT) {
-               vty_out(vty,
-                       "%% Peer with AS %u cannot be in this peer-group, members must be all internal or all external\n",
-                       as);
-               return CMD_WARNING_CONFIG_FAILED;
-       }
+       nb_cli_enqueue_change(vty, "./peer-group", NB_OP_MODIFY,
+                             argv[idx_word]->arg);
 
-       return bgp_vty_return(vty, ret);
+       return nb_cli_apply_changes(vty, base_xpath);
 }
 
 ALIAS_HIDDEN(neighbor_set_peer_group, neighbor_set_peer_group_hidden_cmd,