mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-07-24 14:40:35 +00:00
bgpd: no router bgp check candidate config
For `no router bgp` without ASN check candidate config for default bgp instance presence to avoid failure from checking backend db where bgp instance may not be created. This situation can be seen in transactional cli mode with following config. bharat(config)# router bgp 101 bharat(config-router)# exit bharat(config)# no router bgp % No BGP process is configured bharat(config)# no router bgp % No BGP process is configured bharat(config)# Signed-off-by: Chirag Shah <chirag@nvidia.com>
This commit is contained in:
parent
5e42cb2fb0
commit
4b63e358bc
@ -1311,13 +1311,17 @@ DEFUN_YANG(no_router_bgp,
|
||||
struct bgp *bgp;
|
||||
const char *name = NULL;
|
||||
char base_xpath[XPATH_MAXLEN];
|
||||
const struct lyd_node *bgp_glb_dnode;
|
||||
|
||||
// "no router bgp" without an ASN
|
||||
if (argc == 3) {
|
||||
// Pending: Make VRF option available for ASN less config
|
||||
bgp = bgp_get_default();
|
||||
snprintf(base_xpath, sizeof(base_xpath), FRR_BGP_GLOBAL_XPATH,
|
||||
"frr-bgp:bgp", "bgp", VRF_DEFAULT_NAME);
|
||||
|
||||
if (bgp == NULL) {
|
||||
bgp_glb_dnode = yang_dnode_get(vty->candidate_config->dnode,
|
||||
base_xpath);
|
||||
if (!bgp_glb_dnode) {
|
||||
vty_out(vty, "%% No BGP process is configured\n");
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
}
|
||||
@ -1327,6 +1331,11 @@ DEFUN_YANG(no_router_bgp,
|
||||
return CMD_WARNING_CONFIG_FAILED;
|
||||
}
|
||||
|
||||
/* tcli mode bgp would not be set until apply stage. */
|
||||
bgp = nb_running_get_entry(bgp_glb_dnode, NULL, false);
|
||||
if (!bgp)
|
||||
return CMD_SUCCESS;
|
||||
|
||||
if (bgp->l3vni) {
|
||||
vty_out(vty, "%% Please unconfigure l3vni %u",
|
||||
bgp->l3vni);
|
||||
|
Loading…
Reference in New Issue
Block a user