mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-06 09:00:55 +00:00
isisd: retrieve default values from the yang model
also fix a minor issue with isis_config_write where we were not incrementing the write variable, which is used to append a new line at the end of the vty string Signed-off-by: Emanuele Di Pascale <emanuele@voltanet.io>
This commit is contained in:
parent
96f2c00903
commit
cc50ddb273
@ -79,6 +79,47 @@ struct isis_circuit *isis_circuit_new()
|
||||
/*
|
||||
* Default values
|
||||
*/
|
||||
#ifndef FABRICD
|
||||
circuit->is_type = yang_get_default_enum(
|
||||
"/frr-interface:lib/interface/frr-isisd:isis/circuit-type");
|
||||
circuit->flags = 0;
|
||||
|
||||
circuit->pad_hellos = yang_get_default_bool(
|
||||
"/frr-interface:lib/interface/frr-isisd:isis/hello/padding");
|
||||
circuit->hello_interval[0] = yang_get_default_uint32(
|
||||
"/frr-interface:lib/interface/frr-isisd:isis/hello/interval/level-1");
|
||||
circuit->hello_interval[1] = yang_get_default_uint32(
|
||||
"/frr-interface:lib/interface/frr-isisd:isis/hello/interval/level-2");
|
||||
circuit->hello_multiplier[0] = yang_get_default_uint32(
|
||||
"/frr-interface:lib/interface/frr-isisd:isis/hello/multiplier/level-1");
|
||||
circuit->hello_multiplier[1] = yang_get_default_uint32(
|
||||
"/frr-interface:lib/interface/frr-isisd:isis/hello/multiplier/level-2");
|
||||
circuit->csnp_interval[0] = yang_get_default_uint16(
|
||||
"/frr-interface:lib/interface/frr-isisd:isis/csnp-interval/level-1");
|
||||
circuit->csnp_interval[1] = yang_get_default_uint16(
|
||||
"/frr-interface:lib/interface/frr-isisd:isis/csnp-interval/level-2");
|
||||
circuit->psnp_interval[0] = yang_get_default_uint16(
|
||||
"/frr-interface:lib/interface/frr-isisd:isis/psnp-interval/level-1");
|
||||
circuit->psnp_interval[1] = yang_get_default_uint16(
|
||||
"/frr-interface:lib/interface/frr-isisd:isis/psnp-interval/level-2");
|
||||
circuit->priority[0] = yang_get_default_uint8(
|
||||
"/frr-interface:lib/interface/frr-isisd:isis/priority/level-1");
|
||||
circuit->priority[1] = yang_get_default_uint8(
|
||||
"/frr-interface:lib/interface/frr-isisd:isis/priority/level-2");
|
||||
circuit->metric[0] = yang_get_default_uint32(
|
||||
"/frr-interface:lib/interface/frr-isisd:isis/metric/level-1");
|
||||
circuit->metric[1] = yang_get_default_uint32(
|
||||
"/frr-interface:lib/interface/frr-isisd:isis/metric/level-2");
|
||||
circuit->te_metric[0] = yang_get_default_uint32(
|
||||
"/frr-interface:lib/interface/frr-isisd:isis/metric/level-1");
|
||||
circuit->te_metric[1] = yang_get_default_uint32(
|
||||
"/frr-interface:lib/interface/frr-isisd:isis/metric/level-2");
|
||||
|
||||
for (i = 0; i < 2; i++) {
|
||||
circuit->level_arg[i].level = i + 1;
|
||||
circuit->level_arg[i].circuit = circuit;
|
||||
}
|
||||
#else
|
||||
circuit->is_type = IS_LEVEL_1_AND_2;
|
||||
circuit->flags = 0;
|
||||
circuit->pad_hellos = 1;
|
||||
@ -93,6 +134,7 @@ struct isis_circuit *isis_circuit_new()
|
||||
circuit->level_arg[i].level = i + 1;
|
||||
circuit->level_arg[i].circuit = circuit;
|
||||
}
|
||||
#endif /* ifndef FABRICD */
|
||||
|
||||
circuit->mtc = mpls_te_circuit_new();
|
||||
|
||||
|
@ -113,10 +113,11 @@ struct isis_area *isis_area_create(const char *area_tag)
|
||||
*/
|
||||
if (fabricd) {
|
||||
area->is_type = IS_LEVEL_2;
|
||||
} else if (listcount(isis->area_list) > 0)
|
||||
area->is_type = IS_LEVEL_1;
|
||||
else
|
||||
} else if (listcount(isis->area_list) == 0)
|
||||
area->is_type = IS_LEVEL_1_AND_2;
|
||||
else
|
||||
area->is_type = yang_get_default_enum(
|
||||
"/frr-isisd:isis/instance/is-type");
|
||||
|
||||
/*
|
||||
* intialize the databases
|
||||
@ -138,6 +139,35 @@ struct isis_area *isis_area_create(const char *area_tag)
|
||||
/*
|
||||
* Default values
|
||||
*/
|
||||
#ifndef FABRICD
|
||||
enum isis_metric_style default_style;
|
||||
|
||||
area->max_lsp_lifetime[0] = yang_get_default_uint16(
|
||||
"/frr-isisd:isis/instance/lsp/maximum-lifetime/level-1");
|
||||
area->max_lsp_lifetime[1] = yang_get_default_uint16(
|
||||
"/frr-isisd:isis/instance/lsp/maximum-lifetime/level-2");
|
||||
area->lsp_refresh[0] = yang_get_default_uint16(
|
||||
"/frr-isisd:isis/instance/lsp/refresh-interval/level-1");
|
||||
area->lsp_refresh[1] = yang_get_default_uint16(
|
||||
"/frr-isisd:isis/instance/lsp/refresh-interval/level-2");
|
||||
area->lsp_gen_interval[0] = yang_get_default_uint16(
|
||||
"/frr-isisd:isis/instance/lsp/generation-interval/level-1");
|
||||
area->lsp_gen_interval[1] = yang_get_default_uint16(
|
||||
"/frr-isisd:isis/instance/lsp/generation-interval/level-2");
|
||||
area->min_spf_interval[0] = yang_get_default_uint16(
|
||||
"/frr-isisd:isis/instance/spf/minimum-interval/level-1");
|
||||
area->min_spf_interval[1] = yang_get_default_uint16(
|
||||
"/frr-isisd:isis/instance/spf/minimum-interval/level-1");
|
||||
area->dynhostname = yang_get_default_bool(
|
||||
"/frr-isisd:isis/instance/dynamic-hostname");
|
||||
default_style =
|
||||
yang_get_default_enum("/frr-isisd:isis/instance/metric-style");
|
||||
area->oldmetric = default_style == ISIS_WIDE_METRIC ? 0 : 1;
|
||||
area->newmetric = default_style == ISIS_NARROW_METRIC ? 0 : 1;
|
||||
area->lsp_frag_threshold = 90; /* not currently configurable */
|
||||
area->lsp_mtu =
|
||||
yang_get_default_uint16("/frr-isisd:isis/instance/lsp/mtu");
|
||||
#else
|
||||
area->max_lsp_lifetime[0] = DEFAULT_LSP_LIFETIME; /* 1200 */
|
||||
area->max_lsp_lifetime[1] = DEFAULT_LSP_LIFETIME; /* 1200 */
|
||||
area->lsp_refresh[0] = DEFAULT_MAX_LSP_GEN_INTERVAL; /* 900 */
|
||||
@ -151,6 +181,7 @@ struct isis_area *isis_area_create(const char *area_tag)
|
||||
area->newmetric = 1;
|
||||
area->lsp_frag_threshold = 90;
|
||||
area->lsp_mtu = DEFAULT_LSP_MTU;
|
||||
#endif /* ifndef FABRICD */
|
||||
|
||||
area_mt_init(area);
|
||||
|
||||
@ -2119,8 +2150,10 @@ int isis_config_write(struct vty *vty)
|
||||
struct lyd_node *dnode;
|
||||
|
||||
dnode = yang_dnode_get(running_config->dnode, "/frr-isisd:isis");
|
||||
if (dnode)
|
||||
if (dnode) {
|
||||
nb_cli_show_dnode_cmds(vty, dnode, false);
|
||||
write++;
|
||||
}
|
||||
|
||||
return write;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user