lib,vtysh,isisd,yang: algo cli/yang/callbacks

Define the IS-IS flex-algo structure in yang, the CLI configuration
commands and the skeletons of frontend and backend functions that are
called by the CLI code.

Signed-off-by: Hiroki Shirokura <hiroki.shirokura@linecorp.com>
Signed-off-by: Eric Kinzie <ekinzie@labn.net>
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
This commit is contained in:
Hiroki Shirokura 2021-12-18 08:11:58 +00:00 committed by Louis Scalbert
parent 735fb37db1
commit 46fb37cf67
8 changed files with 635 additions and 0 deletions

View File

@ -1126,6 +1126,52 @@ void cli_show_isis_purge_origin(struct vty *vty, const struct lyd_node *dnode,
vty_out(vty, " purge-originator\n");
}
/*
* XPath: /frr-isisd:isis/instance/admin-group-send-zero
*/
DEFPY_YANG(isis_admin_group_send_zero, isis_admin_group_send_zero_cmd,
"[no] admin-group-send-zero",
NO_STR
"Allow sending the default admin-group value of 0x00000000.\n")
{
nb_cli_enqueue_change(vty, "./admin-group-send-zero", NB_OP_MODIFY,
no ? "false" : "true");
return nb_cli_apply_changes(vty, NULL);
}
void cli_show_isis_admin_group_send_zero(struct vty *vty,
const struct lyd_node *dnode,
bool show_defaults)
{
if (!yang_dnode_get_bool(dnode, NULL))
vty_out(vty, " no");
vty_out(vty, " admin-group-send-zero\n");
}
/*
* XPath: /frr-isisd:isis/instance/asla-legacy-flag
*/
DEFPY_HIDDEN(isis_asla_legacy_flag, isis_asla_legacy_flag_cmd,
"[no] asla-legacy-flag",
NO_STR "Set the legacy flag (aka. L-FLAG) in the ASLA Sub-TLV.\n")
{
nb_cli_enqueue_change(vty, "./asla-legacy-flag", NB_OP_MODIFY,
no ? "false" : "true");
return nb_cli_apply_changes(vty, NULL);
}
void cli_show_isis_asla_legacy_flag(struct vty *vty,
const struct lyd_node *dnode,
bool show_defaults)
{
if (!yang_dnode_get_bool(dnode, NULL))
vty_out(vty, " no");
vty_out(vty, " asla-legacy-flag\n");
}
/*
* XPath: /frr-isisd:isis/instance/mpls-te
*/
@ -3298,6 +3344,92 @@ void cli_show_isis_mpls_if_ldp_sync_holddown(struct vty *vty,
yang_dnode_get_string(dnode, NULL));
}
DEFPY_YANG_NOSH(flex_algo, flex_algo_cmd, "flex-algo (128-255)$algorithm",
"Flexible Algorithm\n"
"Flexible Algorithm Number\n")
{
return CMD_SUCCESS;
}
DEFPY_YANG(no_flex_algo, no_flex_algo_cmd, "no flex-algo (128-255)$algorithm",
NO_STR
"Flexible Algorithm\n"
"Flexible Algorithm Number\n")
{
return CMD_SUCCESS;
}
DEFPY_YANG(advertise_definition, advertise_definition_cmd,
"[no] advertise-definition",
NO_STR "Advertise Local Flexible Algorithm\n")
{
return CMD_SUCCESS;
}
DEFPY_YANG(affinity_include_any, affinity_include_any_cmd,
"[no] affinity include-any NAME...",
NO_STR
"Affinity configuration\n"
"Any Include with\n"
"Include NAME list\n")
{
return CMD_SUCCESS;
}
DEFPY_YANG(affinity_include_all, affinity_include_all_cmd,
"[no] affinity include-all NAME...",
NO_STR
"Affinity configuration\n"
"All Include with\n"
"Include NAME list\n")
{
return CMD_SUCCESS;
}
DEFPY_YANG(affinity_exclude_any, affinity_exclude_any_cmd,
"[no] affinity exclude-any NAME...",
NO_STR
"Affinity configuration\n"
"Any Exclude with\n"
"Exclude NAME list\n")
{
return CMD_SUCCESS;
}
DEFPY_YANG(prefix_metric, prefix_metric_cmd, "[no] prefix-metric",
NO_STR "Use Flex-Algo Prefix Metric\n")
{
return CMD_SUCCESS;
}
DEFPY_YANG(metric_type, metric_type_cmd,
"[no] metric-type [igp$igp|te$te|delay$delay]",
NO_STR
"Metric-type used by flex-algo calculation\n"
"Use IGP metric (default)\n"
"Use Delay as metric\n"
"Use Traffic Engineering metric\n")
{
return CMD_SUCCESS;
}
DEFPY_YANG(priority, priority_cmd, "[no] priority (0-255)$priority",
NO_STR
"Flex-Algo definition priority\n"
"Priority value\n")
{
return CMD_SUCCESS;
}
void cli_show_isis_flex_algo(struct vty *vty, const struct lyd_node *dnode,
bool show_defaults)
{
}
void cli_show_isis_flex_algo_end(struct vty *vty, const struct lyd_node *dnode)
{
}
void isis_cli_init(void)
{
install_element(CONFIG_NODE, &router_isis_cmd);
@ -3356,6 +3488,9 @@ void isis_cli_init(void)
install_element(ISIS_NODE, &area_purge_originator_cmd);
install_element(ISIS_NODE, &isis_admin_group_send_zero_cmd);
install_element(ISIS_NODE, &isis_asla_legacy_flag_cmd);
install_element(ISIS_NODE, &isis_mpls_te_on_cmd);
install_element(ISIS_NODE, &no_isis_mpls_te_on_cmd);
install_element(ISIS_NODE, &isis_mpls_te_router_addr_cmd);
@ -3439,6 +3574,16 @@ void isis_cli_init(void)
install_element(INTERFACE_NODE, &isis_mpls_if_ldp_sync_cmd);
install_element(INTERFACE_NODE, &isis_mpls_if_ldp_sync_holddown_cmd);
install_element(INTERFACE_NODE, &no_isis_mpls_if_ldp_sync_holddown_cmd);
install_element(ISIS_NODE, &flex_algo_cmd);
install_element(ISIS_NODE, &no_flex_algo_cmd);
install_element(ISIS_FLEX_ALGO_NODE, &advertise_definition_cmd);
install_element(ISIS_FLEX_ALGO_NODE, &affinity_include_any_cmd);
install_element(ISIS_FLEX_ALGO_NODE, &affinity_include_all_cmd);
install_element(ISIS_FLEX_ALGO_NODE, &affinity_exclude_any_cmd);
install_element(ISIS_FLEX_ALGO_NODE, &prefix_metric_cmd);
install_element(ISIS_FLEX_ALGO_NODE, &metric_type_cmd);
install_element(ISIS_FLEX_ALGO_NODE, &priority_cmd);
}
#endif /* ifndef FABRICD */

View File

@ -102,6 +102,20 @@ const struct frr_yang_module_info frr_isisd_info = {
.modify = isis_instance_purge_originator_modify,
},
},
{
.xpath = "/frr-isisd:isis/instance/admin-group-send-zero",
.cbs = {
.cli_show = cli_show_isis_admin_group_send_zero,
.modify = isis_instance_admin_group_send_zero_modify,
},
},
{
.xpath = "/frr-isisd:isis/instance/asla-legacy-flag",
.cbs = {
.cli_show = cli_show_isis_asla_legacy_flag,
.modify = isis_instance_asla_legacy_flag_modify,
},
},
{
.xpath = "/frr-isisd:isis/instance/lsp/mtu",
.cbs = {
@ -722,6 +736,84 @@ const struct frr_yang_module_info frr_isisd_info = {
.modify = isis_instance_segment_routing_algorithm_prefix_sid_n_flag_clear_modify,
},
},
{
.xpath = "/frr-isisd:isis/instance/flex-algos/flex-algo",
.cbs = {
.cli_show = cli_show_isis_flex_algo,
.cli_show_end = cli_show_isis_flex_algo_end,
.create = isis_instance_flex_algo_create,
.destroy = isis_instance_flex_algo_destroy,
},
},
{
.xpath = "/frr-isisd:isis/instance/flex-algos/flex-algo/advertise-definition",
.cbs = {
.modify = isis_instance_flex_algo_advertise_definition_modify,
.destroy = isis_instance_flex_algo_advertise_definition_destroy,
},
},
{
.xpath = "/frr-isisd:isis/instance/flex-algos/flex-algo/affinity-include-alls/affinity-include-all",
.cbs = {
.create = isis_instance_flex_algo_affinity_include_all_create,
.destroy = isis_instance_flex_algo_affinity_include_all_destroy,
},
},
{
.xpath = "/frr-isisd:isis/instance/flex-algos/flex-algo/affinity-include-anies/affinity-include-any",
.cbs = {
.create = isis_instance_flex_algo_affinity_include_any_create,
.destroy = isis_instance_flex_algo_affinity_include_any_destroy,
},
},
{
.xpath = "/frr-isisd:isis/instance/flex-algos/flex-algo/affinity-exclude-anies/affinity-exclude-any",
.cbs = {
.create = isis_instance_flex_algo_affinity_exclude_any_create,
.destroy = isis_instance_flex_algo_affinity_exclude_any_destroy,
},
},
{
.xpath = "/frr-isisd:isis/instance/flex-algos/flex-algo/prefix-metric",
.cbs = {
.create = isis_instance_flex_algo_prefix_metric_create,
.destroy = isis_instance_flex_algo_prefix_metric_destroy,
},
},
{
.xpath = "/frr-isisd:isis/instance/flex-algos/flex-algo/metric-type",
.cbs = {
.modify = isis_instance_flex_algo_metric_type_modify,
},
},
{
.xpath = "/frr-isisd:isis/instance/flex-algos/flex-algo/dplane-sr-mpls",
.cbs = {
.create = isis_instance_flex_algo_dplane_sr_mpls_create,
.destroy = isis_instance_flex_algo_dplane_sr_mpls_destroy,
},
},
{
.xpath = "/frr-isisd:isis/instance/flex-algos/flex-algo/dplane-srv6",
.cbs = {
.create = isis_instance_flex_algo_dplane_srv6_create,
.destroy = isis_instance_flex_algo_dplane_srv6_destroy,
},
},
{
.xpath = "/frr-isisd:isis/instance/flex-algos/flex-algo/dplane-ip",
.cbs = {
.create = isis_instance_flex_algo_dplane_ip_create,
.destroy = isis_instance_flex_algo_dplane_ip_destroy,
},
},
{
.xpath = "/frr-isisd:isis/instance/flex-algos/flex-algo/priority",
.cbs = {
.modify = isis_instance_flex_algo_priority_modify,
.destroy = isis_instance_flex_algo_priority_destroy,
},
},
{
.xpath = "/frr-isisd:isis/instance/mpls/ldp-sync",
.cbs = {

View File

@ -29,6 +29,8 @@ int isis_instance_overload_on_startup_modify(struct nb_cb_modify_args *args);
int isis_instance_advertise_high_metrics_modify(struct nb_cb_modify_args *args);
int isis_instance_metric_style_modify(struct nb_cb_modify_args *args);
int isis_instance_purge_originator_modify(struct nb_cb_modify_args *args);
int isis_instance_admin_group_send_zero_modify(struct nb_cb_modify_args *args);
int isis_instance_asla_legacy_flag_modify(struct nb_cb_modify_args *args);
int isis_instance_lsp_mtu_modify(struct nb_cb_modify_args *args);
int isis_instance_advertise_passive_only_modify(struct nb_cb_modify_args *args);
int isis_instance_lsp_refresh_interval_level_1_modify(
@ -265,6 +267,51 @@ int isis_instance_segment_routing_algorithm_prefix_sid_last_hop_behavior_modify(
struct nb_cb_modify_args *args);
int isis_instance_segment_routing_algorithm_prefix_sid_n_flag_clear_modify(
struct nb_cb_modify_args *args);
int isis_instance_flex_algo_create(struct nb_cb_create_args *args);
int isis_instance_flex_algo_destroy(struct nb_cb_destroy_args *args);
int isis_instance_flex_algo_advertise_definition_modify(
struct nb_cb_modify_args *args);
int isis_instance_flex_algo_advertise_definition_destroy(
struct nb_cb_destroy_args *args);
int isis_instance_flex_algo_affinity_include_any_create(
struct nb_cb_create_args *args);
int isis_instance_flex_algo_affinity_include_any_destroy(
struct nb_cb_destroy_args *args);
int isis_instance_flex_algo_affinity_include_all_create(
struct nb_cb_create_args *args);
int isis_instance_flex_algo_affinity_include_all_destroy(
struct nb_cb_destroy_args *args);
int isis_instance_flex_algo_affinity_exclude_any_create(
struct nb_cb_create_args *args);
int isis_instance_flex_algo_affinity_exclude_any_destroy(
struct nb_cb_destroy_args *args);
int isis_instance_flex_algo_prefix_metric_create(
struct nb_cb_create_args *args);
int isis_instance_flex_algo_prefix_metric_destroy(
struct nb_cb_destroy_args *args);
int isis_instance_flex_algo_dplane_sr_mpls_create(
struct nb_cb_create_args *args);
int isis_instance_flex_algo_dplane_sr_mpls_destroy(
struct nb_cb_destroy_args *args);
int isis_instance_flex_algo_dplane_srv6_create(struct nb_cb_create_args *args);
int isis_instance_flex_algo_dplane_srv6_destroy(
struct nb_cb_destroy_args *args);
int isis_instance_flex_algo_dplane_ip_create(struct nb_cb_create_args *args);
int isis_instance_flex_algo_dplane_ip_destroy(struct nb_cb_destroy_args *args);
int isis_instance_flex_algo_metric_type_modify(struct nb_cb_modify_args *args);
int isis_instance_flex_algo_priority_modify(struct nb_cb_modify_args *args);
int isis_instance_flex_algo_priority_destroy(struct nb_cb_destroy_args *args);
int isis_instance_flex_algo_frr_disable_modify(struct nb_cb_modify_args *args);
int isis_instance_flex_algo_frr_disable_destroy(
struct nb_cb_destroy_args *args);
int isis_instance_flex_algo_affinity_mapping_create(
struct nb_cb_create_args *args);
int isis_instance_flex_algo_affinity_mapping_destroy(
struct nb_cb_destroy_args *args);
int isis_instance_flex_algo_affinity_mapping_value_modify(
struct nb_cb_modify_args *args);
int isis_instance_flex_algo_affinity_mapping_value_destroy(
struct nb_cb_destroy_args *args);
int isis_instance_mpls_ldp_sync_destroy(struct nb_cb_destroy_args *args);
int isis_instance_mpls_ldp_sync_create(struct nb_cb_create_args *args);
int isis_instance_mpls_ldp_sync_holddown_modify(struct nb_cb_modify_args *args);
@ -511,6 +558,12 @@ void cli_show_isis_purge_origin(struct vty *vty, const struct lyd_node *dnode,
bool show_defaults);
void cli_show_isis_mpls_te(struct vty *vty, const struct lyd_node *dnode,
bool show_defaults);
void cli_show_isis_admin_group_send_zero(struct vty *vty,
const struct lyd_node *dnode,
bool show_defaults);
void cli_show_isis_asla_legacy_flag(struct vty *vty,
const struct lyd_node *dnode,
bool show_defaults);
void cli_show_isis_mpls_te_router_addr(struct vty *vty,
const struct lyd_node *dnode,
bool show_defaults);
@ -642,6 +695,9 @@ void cli_show_isis_mpls_if_ldp_sync(struct vty *vty,
void cli_show_isis_mpls_if_ldp_sync_holddown(struct vty *vty,
const struct lyd_node *dnode,
bool show_defaults);
void cli_show_isis_flex_algo(struct vty *vty, const struct lyd_node *dnode,
bool show_defaults);
void cli_show_isis_flex_algo_end(struct vty *vty, const struct lyd_node *dnode);
/* Notifications. */
void isis_notif_db_overload(const struct isis_area *area, bool overload);

View File

@ -416,6 +416,24 @@ int isis_instance_purge_originator_modify(struct nb_cb_modify_args *args)
return NB_OK;
}
/*
* XPath: /frr-isisd:isis/instance/admin-group-send-zero
*/
int isis_instance_admin_group_send_zero_modify(struct nb_cb_modify_args *args)
{
return NB_OK;
}
/*
* XPath: /frr-isisd:isis/instance/asla-legacy-flag
*/
int isis_instance_asla_legacy_flag_modify(struct nb_cb_modify_args *args)
{
return NB_OK;
}
/*
* XPath: /frr-isisd:isis/instance/lsp/mtu
*/
@ -2674,6 +2692,170 @@ int isis_instance_segment_routing_algorithm_prefix_sid_n_flag_clear_modify(
return NB_OK;
}
/*
* XPath: /frr-isisd:isis/instance/flex-algos/flex-algo
*/
int isis_instance_flex_algo_create(struct nb_cb_create_args *args)
{
return NB_OK;
}
int isis_instance_flex_algo_destroy(struct nb_cb_destroy_args *args)
{
return NB_OK;
}
/*
* XPath: /frr-isisd:isis/instance/flex-algos/flex-algo/advertise-definition
*/
int isis_instance_flex_algo_advertise_definition_modify(
struct nb_cb_modify_args *args)
{
return NB_OK;
}
int isis_instance_flex_algo_advertise_definition_destroy(
struct nb_cb_destroy_args *args)
{
return NB_OK;
}
/*
* XPath:
* /frr-isisd:isis/instance/flex-algos/flex-algo/affinity-include-anies/affinity-include-any
*/
int isis_instance_flex_algo_affinity_include_any_create(
struct nb_cb_create_args *args)
{
return NB_OK;
}
int isis_instance_flex_algo_affinity_include_any_destroy(
struct nb_cb_destroy_args *args)
{
return NB_OK;
}
/*
* XPath:
* /frr-isisd:isis/instance/flex-algos/flex-algo/affinity-include-alls/affinity-include-all
*/
int isis_instance_flex_algo_affinity_include_all_create(
struct nb_cb_create_args *args)
{
return NB_OK;
}
int isis_instance_flex_algo_affinity_include_all_destroy(
struct nb_cb_destroy_args *args)
{
return NB_OK;
}
/*
* XPath:
* /frr-isisd:isis/instance/flex-algos/flex-algo/affinity-exclude-anies/affinity-exclude-any
*/
int isis_instance_flex_algo_affinity_exclude_any_create(
struct nb_cb_create_args *args)
{
return NB_OK;
}
int isis_instance_flex_algo_affinity_exclude_any_destroy(
struct nb_cb_destroy_args *args)
{
/* TODO: implement me. */
return NB_OK;
}
/*
* XPath: /frr-isisd:isis/instance/flex-algos/flex-algo/prefix-metric
*/
int isis_instance_flex_algo_prefix_metric_create(struct nb_cb_create_args *args)
{
/* TODO: implement me. */
return NB_OK;
}
int isis_instance_flex_algo_prefix_metric_destroy(
struct nb_cb_destroy_args *args)
{
/* TODO: implement me. */
return NB_OK;
}
/*
* XPath: /frr-isisd:isis/instance/flex-algos/flex-algo/dplane-sr-mpls
*/
int isis_instance_flex_algo_dplane_sr_mpls_create(
struct nb_cb_create_args *args)
{
return NB_OK;
}
int isis_instance_flex_algo_dplane_sr_mpls_destroy(
struct nb_cb_destroy_args *args)
{
return NB_OK;
}
/*
* XPath: /frr-isisd:isis/instance/flex-algos/flex-algo/dplane-srv6
*/
int isis_instance_flex_algo_dplane_srv6_create(struct nb_cb_create_args *args)
{
return NB_OK;
}
int isis_instance_flex_algo_dplane_srv6_destroy(struct nb_cb_destroy_args *args)
{
return NB_OK;
}
/*
* XPath: /frr-isisd:isis/instance/flex-algos/flex-algo/dplane-ip
*/
int isis_instance_flex_algo_dplane_ip_create(struct nb_cb_create_args *args)
{
return NB_OK;
}
int isis_instance_flex_algo_dplane_ip_destroy(struct nb_cb_destroy_args *args)
{
return NB_OK;
}
/*
* XPath: /frr-isisd:isis/instance/flex-algos/flex-algo/metric-type
*/
int isis_instance_flex_algo_metric_type_modify(struct nb_cb_modify_args *args)
{
return NB_OK;
}
/*
* XPath: /frr-isisd:isis/instance/flex-algos/flex-algo/priority
*/
int isis_instance_flex_algo_priority_modify(struct nb_cb_modify_args *args)
{
/* TODO: implement me. */
return NB_OK;
}
int isis_instance_flex_algo_priority_destroy(struct nb_cb_destroy_args *args)
{
/* TODO: implement me. */
return NB_OK;
}
/*
* XPath: /frr-isisd:isis/instance/mpls/ldp-sync
*/

View File

@ -3771,6 +3771,13 @@ struct cmd_node router_node = {
.prompt = "%s(config-router)# ",
.config_write = isis_config_write,
};
struct cmd_node isis_flex_algo_node = {
.name = "isis-flex-algo",
.node = ISIS_FLEX_ALGO_NODE,
.parent_node = ISIS_NODE,
.prompt = "%s(config-router-flex-algo)# ",
};
#endif /* ifdef FABRICD */
void isis_init(void)
@ -3880,6 +3887,10 @@ void isis_init(void)
install_element(ROUTER_NODE, &log_adj_changes_cmd);
install_element(ROUTER_NODE, &no_log_adj_changes_cmd);
#endif /* ifdef FABRICD */
#ifndef FABRICD
install_node(&isis_flex_algo_node);
install_default(ISIS_FLEX_ALGO_NODE);
#endif /* ifdnef FABRICD */
spf_backoff_cmd_init();
}

View File

@ -129,6 +129,7 @@ enum node_type {
LDP_L2VPN_NODE, /* LDP L2VPN node */
LDP_PSEUDOWIRE_NODE, /* LDP Pseudowire node */
ISIS_NODE, /* ISIS protocol mode */
ISIS_FLEX_ALGO_NODE, /* ISIS Flex Algo mode */
ACCESS_NODE, /* Access list node. */
PREFIX_NODE, /* Prefix list node. */
ACCESS_IPV6_NODE, /* Access list node. */

View File

@ -1175,6 +1175,13 @@ static struct cmd_node isis_node = {
.parent_node = CONFIG_NODE,
.prompt = "%s(config-router)# ",
};
static struct cmd_node isis_flex_algo_node = {
.name = "isis-flex-algo",
.node = ISIS_FLEX_ALGO_NODE,
.parent_node = ISIS_NODE,
.prompt = "%s(config-router-flex-algo)# ",
};
#endif /* HAVE_ISISD */
#ifdef HAVE_FABRICD
@ -2095,6 +2102,14 @@ DEFUNSH(VTYSH_ISISD, router_isis, router_isis_cmd,
vty->node = ISIS_NODE;
return CMD_SUCCESS;
}
DEFUNSH(VTYSH_ISISD, isis_flex_algo, isis_flex_algo_cmd, "flex-algo (128-255)",
"Flexible Algorithm\n"
"Flexible Algorithm Number\n")
{
vty->node = ISIS_FLEX_ALGO_NODE;
return CMD_SUCCESS;
}
#endif /* HAVE_ISISD */
#ifdef HAVE_FABRICD
@ -2578,6 +2593,18 @@ DEFUNSH(VTYSH_ISISD, vtysh_quit_isisd, vtysh_quit_isisd_cmd, "quit",
{
return vtysh_exit_isisd(self, vty, argc, argv);
}
DEFUNSH(VTYSH_ISISD, vtysh_exit_isis_flex_algo, vtysh_exit_isis_flex_algo_cmd,
"exit", "Exit current mode and down to previous mode\n")
{
return vtysh_exit(vty);
}
DEFUNSH(VTYSH_ISISD, vtysh_quit_isis_flex_algo, vtysh_quit_isis_flex_algo_cmd,
"quit", "Exit current mode and down to previous mode\n")
{
return vtysh_exit_isisd(self, vty, argc, argv);
}
#endif /* HAVE_ISISD */
#if HAVE_BFDD > 0
@ -4702,6 +4729,12 @@ void vtysh_init_vty(void)
install_element(ISIS_NODE, &vtysh_exit_isisd_cmd);
install_element(ISIS_NODE, &vtysh_quit_isisd_cmd);
install_element(ISIS_NODE, &vtysh_end_all_cmd);
install_node(&isis_flex_algo_node);
install_element(ISIS_NODE, &isis_flex_algo_cmd);
install_element(ISIS_FLEX_ALGO_NODE, &vtysh_exit_isis_flex_algo_cmd);
install_element(ISIS_FLEX_ALGO_NODE, &vtysh_quit_isis_flex_algo_cmd);
install_element(ISIS_FLEX_ALGO_NODE, &vtysh_end_all_cmd);
#endif /* HAVE_ISISD */
/* fabricd */

View File

@ -1212,6 +1212,20 @@ module frr-isisd {
"Advertise prefixes of passive interfaces only";
}
leaf admin-group-send-zero {
type boolean;
default "false";
description
"Allow sending the default admin-group value of 0x00000000";
}
leaf asla-legacy-flag {
type boolean;
default "false";
description
"Set the legacy flag (aka. L-FLAG) in the ASLA Sub-TLV.";
}
container lsp {
description
"Configuration of Link-State Packets (LSP) parameters";
@ -1623,6 +1637,107 @@ module frr-isisd {
}
}
container flex-algos {
description
"Flex-Algo Table";
list flex-algo {
key "flex-algo";
description
"Configuration for an IS-IS Flex-Algo";
leaf advertise-definition {
type boolean;
description
"If TRUE, Flex-Algo definition is advertised";
}
container affinity-include-alls {
description
"Set the include-all affinity";
leaf-list affinity-include-all {
type string;
max-elements "256";
description
"Array of Attribute Names";
}
}
container affinity-include-anies {
description
"Set the include-any affinity";
leaf-list affinity-include-any {
type string;
max-elements "256";
description
"Array of Attribute Names";
}
}
container affinity-exclude-anies {
description
"Set the exclude-any affinity";
leaf-list affinity-exclude-any {
type string;
max-elements "256";
description
"Array of Attribute Names";
}
}
leaf prefix-metric {
type empty;
description
"Use Flex-algo Prefix Metric";
}
leaf metric-type {
default "igp";
description
"Set the Flex-Algo metric-type";
type enumeration {
enum "igp" {
value 0;
description
"IGP Metric";
}
enum "min-uni-link-delay" {
value 1;
description
"RFC 8570 Sec 4.2 Min Unidirectional Link Delay";
}
enum "te-default" {
value 2;
description
"RFC 5305 Sec 3.7 Traffic Engineering Default Metric";
}
}
}
leaf priority {
type uint32 {
range "0..255";
}
description
"Set the Flex-Algo priority";
}
leaf dplane-sr-mpls {
type empty;
description
"Advertise and participate in the Flex-Algo Segment-Routing MPLS data-plane";
}
leaf dplane-srv6 {
type empty;
description
"Advertise and participate in the Flex-Algo Segment-Routing SRv6 data-plane";
}
leaf dplane-ip {
type empty;
description
"Advertise and participate in the Flex-Algo IP data-plane";
}
leaf flex-algo {
type uint32 {
range "128..255";
}
description
"Flex-Algo";
}
}
}
container segment-routing {
description
"Segment Routing global configuration.";