isisd: initialize circuit to match area is_type

New circuits should be initialized to match the is_type
of their area. Also add an additional check to make sure
that no IIHs are sent for levels which are not enabled.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
Acked-by: Donald Sharp <sharpd@cumulusnetworks.com>
diff --git a/isisd/isis_circuit.c b/isisd/isis_circuit.c
index 2ef43cc..6ecaca6 100644
--- a/isisd/isis_circuit.c
+++ b/isisd/isis_circuit.c
@@ -122,13 +122,13 @@
   circuit->area = area;
 
   /*
-   * The level for the circuit is same as for the area, unless configured
-   * otherwise.
+   * Whenever the is-type of an area is changed, the is-type of each circuit
+   * in that area is updated to a non-empty subset of the area is-type.
+   * Inversely, when configuring a new circuit, this property should be
+   * ensured as well.
    */
-  if (area->is_type != IS_LEVEL_1_AND_2 && area->is_type != circuit->is_type)
-    zlog_warn ("circut %s is_type %d mismatch with area %s is_type %d",
-               circuit->interface->name, circuit->is_type,
-               circuit->area->area_tag, area->is_type);
+  if (area->is_type != IS_LEVEL_1_AND_2)
+    circuit->is_type = area->is_type;
 
   /*
    * Add the circuit into area