* isisd.[ch]: Introduce oldmetric flag for area and transition

metricstyle command. With metricstyle wide only extended TLVs
	  should be used.
This commit is contained in:
hasso 2005-09-26 16:49:07 +00:00
parent ffe543af88
commit 2984d26eb0
3 changed files with 36 additions and 14 deletions

View File

@ -1,3 +1,9 @@
2005-09-26 Hasso Tepper <hasso at quagga.net>
* isisd.[ch]: Introduce oldmetric flag for area and transition
metricstyle command. With metricstyle wide only extended TLVs
should be used.
2005-09-25 Hasso Tepper <hasso at quagga.net> 2005-09-25 Hasso Tepper <hasso at quagga.net>
* dict.[ch]: Revert all nonfunctional changes. It's external module * dict.[ch]: Revert all nonfunctional changes. It's external module

View File

@ -126,6 +126,7 @@ isis_area_create ()
area->min_spf_interval[0] = MINIMUM_SPF_INTERVAL; area->min_spf_interval[0] = MINIMUM_SPF_INTERVAL;
area->min_spf_interval[1] = MINIMUM_SPF_INTERVAL; area->min_spf_interval[1] = MINIMUM_SPF_INTERVAL;
area->dynhostname = 1; area->dynhostname = 1;
area->oldmetric = 1;
area->lsp_frag_threshold = 90; area->lsp_frag_threshold = 90;
#ifdef TOPOLOGY_GENERATE #ifdef TOPOLOGY_GENERATE
memcpy (area->topology_baseis, DEFAULT_TOPOLOGY_BASEIS, ISIS_SYS_ID_LEN); memcpy (area->topology_baseis, DEFAULT_TOPOLOGY_BASEIS, ISIS_SYS_ID_LEN);
@ -1356,40 +1357,50 @@ ALIAS (no_lsp_gen_interval_l2,
DEFUN (metric_style, DEFUN (metric_style,
metric_style_cmd, metric_style_cmd,
"metric-style (narrow|wide)", "metric-style (narrow|transition|wide)",
"Use old-style (ISO 10589) or new-style packet formats\n" "Use old-style (ISO 10589) or new-style packet formats\n"
"Use old style of TLVs with narrow metric\n" "Use old style of TLVs with narrow metric\n"
"Send and accept both styles of TLVs during transition\n"
"Use new style of TLVs to carry wider metric\n") "Use new style of TLVs to carry wider metric\n")
{ {
struct isis_area *area; struct isis_area *area;
area = vty->index; area = vty->index;
assert (area); assert (area);
if (!strcmp (argv[0], "wide"))
if (strncmp (argv[0], "w", 1) == 0)
{
area->newmetric = 1; area->newmetric = 1;
else area->oldmetric = 0;
}
else if (strncmp (argv[0], "t", 1) == 0)
{
area->newmetric = 1;
area->oldmetric = 1;
}
else if (strncmp (argv[0], "n", 1) == 0)
{
area->newmetric = 0; area->newmetric = 0;
area->oldmetric = 1;
}
return CMD_SUCCESS; return CMD_SUCCESS;
} }
DEFUN (no_metric_style, DEFUN (no_metric_style,
no_metric_style_cmd, no_metric_style_cmd,
"no metric-style (narrow|wide)", "no metric-style",
NO_STR NO_STR
"Use old-style (ISO 10589) or new-style packet formats\n" "Use old-style (ISO 10589) or new-style packet formats\n")
"Use old style of TLVs with narrow metric\n"
"Use new style of TLVs to carry wider metric\n")
{ {
struct isis_area *area; struct isis_area *area;
area = vty->index; area = vty->index;
assert (area); assert (area);
if (!strcmp (argv[0], "wide")) /* Default is narrow metric. */
area->newmetric = 0; area->newmetric = 0;
else area->oldmetric = 1;
area->newmetric = 1;
return CMD_SUCCESS; return CMD_SUCCESS;
} }
@ -1891,9 +1902,13 @@ isis_config_write (struct vty *vty)
/* ISIS - Metric-Style - when true displays wide */ /* ISIS - Metric-Style - when true displays wide */
if (area->newmetric) if (area->newmetric)
{ {
if (!area->oldmetric)
vty_out (vty, " metric-style wide%s", VTY_NEWLINE); vty_out (vty, " metric-style wide%s", VTY_NEWLINE);
else
vty_out (vty, " metric-style transition%s", VTY_NEWLINE);
write++; write++;
} }
/* ISIS - Area is-type (level-1-2 is default) */ /* ISIS - Area is-type (level-1-2 is default) */
if (area->is_type == IS_LEVEL_1) if (area->is_type == IS_LEVEL_1)
{ {

View File

@ -104,6 +104,7 @@ struct isis_area
char dynhostname; char dynhostname;
/* do we support new style metrics? */ /* do we support new style metrics? */
char newmetric; char newmetric;
char oldmetric;
/* identifies the routing instance */ /* identifies the routing instance */
char *area_tag; char *area_tag;
/* area addresses for this area */ /* area addresses for this area */