SVN revisions 916-920 from Zebra. ABR support is almost done.
diff --git a/ospf6d/ospf6_area.h b/ospf6d/ospf6_area.h
index c15960c..734f030 100644
--- a/ospf6d/ospf6_area.h
+++ b/ospf6d/ospf6_area.h
@@ -41,16 +41,17 @@
   /* OSPF Option */
   u_char options[3];
 
-  /* TransitCapability */
-  int transit_capability;
-
   /* Summary routes to be originated (includes Configured Address Ranges) */
-  struct ospf6_route_table *summary_table;
+  struct ospf6_route_table *range_table;
+  struct ospf6_route_table *summary_prefix;
+  struct ospf6_route_table *summary_router;
 
   /* OSPF interface list */
   list if_list;
 
-  struct ospf6_lsdb        *lsdb;
+  struct ospf6_lsdb *lsdb;
+  struct ospf6_lsdb *lsdb_self;
+
   struct ospf6_route_table *spf_table;
   struct ospf6_route_table *route_table;
 
@@ -62,12 +63,21 @@
   u_int32_t router_lsa_size_limit;
 };
 
-#define OSPF6_AREA_DISABLE 0x01
-#define OSPF6_AREA_STUB    0x02
+#define OSPF6_AREA_ENABLE     0x01
+#define OSPF6_AREA_ACTIVE     0x02
+#define OSPF6_AREA_TRANSIT    0x04 /* TransitCapability */
+#define OSPF6_AREA_STUB       0x08
+
+#define BACKBONE_AREA_ID (htonl (0))
+#define IS_AREA_BACKBONE(oa) ((oa)->area_id == BACKBONE_AREA_ID)
+#define IS_AREA_ENABLED(oa) (CHECK_FLAG ((oa)->flag, OSPF6_AREA_ENABLE))
+#define IS_AREA_ACTIVE(oa) (CHECK_FLAG ((oa)->flag, OSPF6_AREA_ACTIVE))
+#define IS_AREA_TRANSIT(oa) (CHECK_FLAG ((oa)->flag, OSPF6_AREA_TRANSIT))
+#define IS_AREA_STUB(oa) (CHECK_FLAG ((oa)->flag, OSPF6_AREA_STUB))
 
 /* prototypes */
 int ospf6_area_cmp (void *va, void *vb);
-int ospf6_area_is_stub (struct ospf6_area *o6a);
+
 struct ospf6_area *ospf6_area_create (u_int32_t, struct ospf6 *);
 void ospf6_area_delete (struct ospf6_area *);
 struct ospf6_area *ospf6_area_lookup (u_int32_t, struct ospf6 *);
@@ -76,6 +86,8 @@
 void ospf6_area_disable (struct ospf6_area *);
 
 void ospf6_area_show (struct vty *, struct ospf6_area *);
+
+void ospf6_area_config_write (struct vty *vty);
 void ospf6_area_init ();
 
 #endif /* OSPF_AREA_H */