diff options
| author | Hiroki Shirokura <hiroki.shirokura@linecorp.com> | 2021-12-18 08:11:58 +0000 | 
|---|---|---|
| committer | Louis Scalbert <louis.scalbert@6wind.com> | 2023-04-18 10:13:59 +0200 | 
| commit | 46fb37cf6774e910692f254e870451b2960197f2 (patch) | |
| tree | 51e6ae40ff220e8f525c0b034c44c2211eaf8ec5 /isisd/isis_cli.c | |
| parent | 735fb37db1897f6393680c62d369e339146f004b (diff) | |
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>
Diffstat (limited to 'isisd/isis_cli.c')
| -rw-r--r-- | isisd/isis_cli.c | 145 | 
1 files changed, 145 insertions, 0 deletions
diff --git a/isisd/isis_cli.c b/isisd/isis_cli.c index f4da01bb8e..c93bcaf8fd 100644 --- a/isisd/isis_cli.c +++ b/isisd/isis_cli.c @@ -1127,6 +1127,52 @@ void cli_show_isis_purge_origin(struct vty *vty, const struct lyd_node *dnode,  }  /* + * 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   */  DEFPY_YANG(isis_mpls_te_on, isis_mpls_te_on_cmd, "mpls-te on", @@ -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 */  | 
