mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-09 05:58:17 +00:00
bgpd: add bgp default link-state command
Add the "bgp default link-state" command to the "router bgp" context. > router bgp 65000 > bgp default link-state When this command is set, the "link-state/link-state" AFI/SAFI is activated on all neighbors that are directly specified within the "router bgp" unless explicitly deactivated: > router bgp 65000 > bgp default link-state > neighbor 10.0.0.1 remote-as 65001 > address-family link-state link-state > no neighbor 10.0.0.1 activate Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
This commit is contained in:
parent
39fb34275f
commit
38a7e20fc9
@ -465,6 +465,8 @@ afi_t bgp_vty_afi_from_str(const char *afi_str)
|
|||||||
afi = AFI_IP6;
|
afi = AFI_IP6;
|
||||||
else if (strmatch(afi_str, "l2vpn"))
|
else if (strmatch(afi_str, "l2vpn"))
|
||||||
afi = AFI_L2VPN;
|
afi = AFI_L2VPN;
|
||||||
|
else if (strmatch(afi_str, "link-state"))
|
||||||
|
afi = AFI_LINKSTATE;
|
||||||
return afi;
|
return afi;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -484,6 +486,10 @@ int argv_find_and_parse_afi(struct cmd_token **argv, int argc, int *index,
|
|||||||
ret = 1;
|
ret = 1;
|
||||||
if (afi)
|
if (afi)
|
||||||
*afi = AFI_L2VPN;
|
*afi = AFI_L2VPN;
|
||||||
|
} else if (argv_find(argv, argc, "link-state", index)) {
|
||||||
|
ret = 1;
|
||||||
|
if (afi)
|
||||||
|
*afi = AFI_LINKSTATE;
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -539,6 +545,10 @@ int argv_find_and_parse_safi(struct cmd_token **argv, int argc, int *index,
|
|||||||
ret = 1;
|
ret = 1;
|
||||||
if (safi)
|
if (safi)
|
||||||
*safi = SAFI_FLOWSPEC;
|
*safi = SAFI_FLOWSPEC;
|
||||||
|
} else if (argv_find(argv, argc, "link-state", index)) {
|
||||||
|
ret = 1;
|
||||||
|
if (safi)
|
||||||
|
*safi = SAFI_LINKSTATE;
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -4189,6 +4199,7 @@ DEFPY(bgp_default_afi_safi, bgp_default_afi_safi_cmd,
|
|||||||
"ipv6-vpn|"
|
"ipv6-vpn|"
|
||||||
"ipv6-labeled-unicast|"
|
"ipv6-labeled-unicast|"
|
||||||
"ipv6-flowspec|"
|
"ipv6-flowspec|"
|
||||||
|
"link-state|"
|
||||||
"l2vpn-evpn>$afi_safi",
|
"l2vpn-evpn>$afi_safi",
|
||||||
NO_STR
|
NO_STR
|
||||||
BGP_STR
|
BGP_STR
|
||||||
@ -4203,6 +4214,7 @@ DEFPY(bgp_default_afi_safi, bgp_default_afi_safi_cmd,
|
|||||||
"Activate ipv6-vpn for a peer by default\n"
|
"Activate ipv6-vpn for a peer by default\n"
|
||||||
"Activate ipv6-labeled-unicast for a peer by default\n"
|
"Activate ipv6-labeled-unicast for a peer by default\n"
|
||||||
"Activate ipv6-flowspec for a peer by default\n"
|
"Activate ipv6-flowspec for a peer by default\n"
|
||||||
|
"Activate link-state for a peer by default\n"
|
||||||
"Activate l2vpn-evpn for a peer by default\n")
|
"Activate l2vpn-evpn for a peer by default\n")
|
||||||
{
|
{
|
||||||
VTY_DECLVAR_CONTEXT(bgp, bgp);
|
VTY_DECLVAR_CONTEXT(bgp, bgp);
|
||||||
@ -4212,9 +4224,14 @@ DEFPY(bgp_default_afi_safi, bgp_default_afi_safi_cmd,
|
|||||||
strlcpy(afi_safi_str, afi_safi, sizeof(afi_safi_str));
|
strlcpy(afi_safi_str, afi_safi, sizeof(afi_safi_str));
|
||||||
char *afi_str = strtok_r(afi_safi_str, "-", &afi_safi_str_tok);
|
char *afi_str = strtok_r(afi_safi_str, "-", &afi_safi_str_tok);
|
||||||
char *safi_str = strtok_r(NULL, "-", &afi_safi_str_tok);
|
char *safi_str = strtok_r(NULL, "-", &afi_safi_str_tok);
|
||||||
afi_t afi = bgp_vty_afi_from_str(afi_str);
|
afi_t afi;
|
||||||
safi_t safi;
|
safi_t safi;
|
||||||
|
|
||||||
|
if (strmatch(afi_safi, "link-state"))
|
||||||
|
afi = bgp_vty_afi_from_str("link-state");
|
||||||
|
else
|
||||||
|
afi = bgp_vty_afi_from_str(afi_str);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Impossible situation but making coverity happy
|
* Impossible situation but making coverity happy
|
||||||
*/
|
*/
|
||||||
@ -4222,6 +4239,8 @@ DEFPY(bgp_default_afi_safi, bgp_default_afi_safi_cmd,
|
|||||||
|
|
||||||
if (strmatch(safi_str, "labeled"))
|
if (strmatch(safi_str, "labeled"))
|
||||||
safi = bgp_vty_safi_from_str("labeled-unicast");
|
safi = bgp_vty_safi_from_str("labeled-unicast");
|
||||||
|
else if (strmatch(afi_safi, "link-state"))
|
||||||
|
safi = bgp_vty_safi_from_str("link-state");
|
||||||
else
|
else
|
||||||
safi = bgp_vty_safi_from_str(safi_str);
|
safi = bgp_vty_safi_from_str(safi_str);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user