]> git.puffer.fish Git - mirror/frr.git/commitdiff
* isis_circuit.[ch]: Some preliminary support for specifying wide
authorhasso <hasso>
Mon, 26 Sep 2005 17:05:55 +0000 (17:05 +0000)
committerhasso <hasso>
Mon, 26 Sep 2005 17:05:55 +0000 (17:05 +0000)
  circuit metrics. Needs more thinking though, but should do for now.

isisd/ChangeLog
isisd/isis_circuit.c
isisd/isis_circuit.h

index 139985e39697a216f8d25b96f64c92c22f1689db..04f048a4650ae7c809c87362d7ec3c801f045fa7 100644 (file)
@@ -1,3 +1,8 @@
+2005-09-26 Hasso Tepper <hasso at quagga.net>
+
+       * isis_circuit.[ch]: Some preliminary support for specifying wide
+         circuit metrics. Needs more thinking though, but should do for now.
+
 2005-09-26 Hasso Tepper <hasso at quagga.net>
 
        * isisd.[ch]: Introduce oldmetric flag for area and transition
index e885a658812e162efd02f57fc7bb320dc532c40b..23cb0ac73e414055a343db55e1f44c1a96b8cb17 100644 (file)
@@ -77,6 +77,7 @@ isis_circuit_new ()
          circuit->metrics[i].metric_expense = METRICS_UNSUPPORTED;
          circuit->metrics[i].metric_error = METRICS_UNSUPPORTED;
          circuit->metrics[i].metric_delay = METRICS_UNSUPPORTED;
+         circuit->te_metric[i] = DEFAULT_CIRCUIT_METRICS;
        }
     }
   else
@@ -785,12 +786,12 @@ isis_interface_config_write (struct vty *vty)
                }
            }
          /* ISIS - Metric */
-         if (c->metrics[0].metric_default == c->metrics[1].metric_default)
+         if (c->te_metric[0] == c->te_metric[1])
            {
-             if (c->metrics[0].metric_default != DEFAULT_CIRCUIT_METRICS)
+             if (c->te_metric[0] != DEFAULT_CIRCUIT_METRICS)
                {
-                 vty_out (vty, " isis metric %d%s",
-                          c->metrics[0].metric_default, VTY_NEWLINE);
+                 vty_out (vty, " isis metric %d%s", c->te_metric[0],
+                          VTY_NEWLINE);
                  write++;
                }
            }
@@ -798,11 +799,10 @@ isis_interface_config_write (struct vty *vty)
            {
              for (i = 0; i < 2; i++)
                {
-                 if (c->metrics[i].metric_default != DEFAULT_CIRCUIT_METRICS)
+                 if (c->te_metric[i] != DEFAULT_CIRCUIT_METRICS)
                    {
                      vty_out (vty, " isis metric %d level-%d%s",
-                              c->metrics[i].metric_default, i + 1,
-                              VTY_NEWLINE);
+                              c->te_metric[i], i + 1, VTY_NEWLINE);
                      write++;
                    }
                }
@@ -1235,7 +1235,7 @@ ALIAS (no_isis_priority_l2,
 /* Metric command */
   DEFUN (isis_metric,
        isis_metric_cmd,
-       "isis metric <0-63>",
+       "isis metric <0-16777215>",
        "IS-IS commands\n"
        "Set default metric for circuit\n"
        "Default metric value\n")
@@ -1254,6 +1254,12 @@ ALIAS (no_isis_priority_l2,
 
   met = atoi (argv[0]);
 
+  circuit->te_metric[0] = met;
+  circuit->te_metric[1] = met;
+
+  if (met > 63)
+    met = 63;
+
   circuit->metrics[0].metric_default = met;
   circuit->metrics[1].metric_default = met;
 
@@ -1278,6 +1284,8 @@ DEFUN (no_isis_metric,
     }
   assert (circuit);
 
+  circuit->te_metric[0] = DEFAULT_CIRCUIT_METRICS;
+  circuit->te_metric[1] = DEFAULT_CIRCUIT_METRICS;
   circuit->metrics[0].metric_default = DEFAULT_CIRCUIT_METRICS;
   circuit->metrics[1].metric_default = DEFAULT_CIRCUIT_METRICS;
 
@@ -1286,14 +1294,14 @@ DEFUN (no_isis_metric,
 
 ALIAS (no_isis_metric,
        no_isis_metric_arg_cmd,
-       "no isis metric <0-127>",
+       "no isis metric <0-16777215>",
        NO_STR
        "IS-IS commands\n"
        "Set default metric for circuit\n"
        "Default metric value\n")
 
 /* end of metrics */
-  DEFUN (isis_hello_interval,
+DEFUN (isis_hello_interval,
        isis_hello_interval_cmd,
        "isis hello-interval (<1-65535>|minimal)",
        "IS-IS commands\n"
index 484c057595bda9b756ee8f96027dcf7ff16f79c0..b5ef269c9041ac1c6e5a7fdca97ddc5bce92e9db 100644 (file)
@@ -108,6 +108,7 @@ struct isis_circuit
   u_int16_t csnp_interval[2];  /* level-1 csnp-interval in seconds */
   u_int16_t psnp_interval[2];  /* level-1 psnp-interval in seconds */
   struct metric metrics[2];    /* l1XxxMetric */
+  u_int32_t te_metric[2];
   struct password *c_rx_passwds;       /* circuitReceivePasswords */
   struct password *c_tc_passwd;        /* circuitTransmitPassword */
   int ip_router;               /* Route IP ? */