diff --git a/bgpd/bgp_vty.c b/bgpd/bgp_vty.c index bedfffe342..03d734d62c 100644 --- a/bgpd/bgp_vty.c +++ b/bgpd/bgp_vty.c @@ -465,6 +465,8 @@ afi_t bgp_vty_afi_from_str(const char *afi_str) afi = AFI_IP6; else if (strmatch(afi_str, "l2vpn")) afi = AFI_L2VPN; + else if (strmatch(afi_str, "link-state")) + afi = AFI_LINKSTATE; return afi; } @@ -484,6 +486,10 @@ int argv_find_and_parse_afi(struct cmd_token **argv, int argc, int *index, ret = 1; if (afi) *afi = AFI_L2VPN; + } else if (argv_find(argv, argc, "link-state", index)) { + ret = 1; + if (afi) + *afi = AFI_LINKSTATE; } return ret; } @@ -539,6 +545,10 @@ int argv_find_and_parse_safi(struct cmd_token **argv, int argc, int *index, ret = 1; if (safi) *safi = SAFI_FLOWSPEC; + } else if (argv_find(argv, argc, "link-state", index)) { + ret = 1; + if (safi) + *safi = SAFI_LINKSTATE; } return ret; } @@ -4189,6 +4199,7 @@ DEFPY(bgp_default_afi_safi, bgp_default_afi_safi_cmd, "ipv6-vpn|" "ipv6-labeled-unicast|" "ipv6-flowspec|" + "link-state|" "l2vpn-evpn>$afi_safi", NO_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-labeled-unicast 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") { 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)); char *afi_str = strtok_r(afi_safi_str, "-", &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; + 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 */ @@ -4222,6 +4239,8 @@ DEFPY(bgp_default_afi_safi, bgp_default_afi_safi_cmd, if (strmatch(safi_str, "labeled")) safi = bgp_vty_safi_from_str("labeled-unicast"); + else if (strmatch(afi_safi, "link-state")) + safi = bgp_vty_safi_from_str("link-state"); else safi = bgp_vty_safi_from_str(safi_str);