]> git.proxmox.com Git - mirror_frr.git/blobdiff - ospf6d/ospf6_area.h
redhat: Remove tab's with spaces in frr.spec.in to make it better readable
[mirror_frr.git] / ospf6d / ospf6_area.h
index c15960cd759120b732a5946962b4883bccc7e123..3b752d948c119e46e5642e84bedde49951314a60 100644 (file)
@@ -41,42 +41,91 @@ struct ospf6_area
   /* 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;
+
+  /* Area type */
+  int no_summary;
 
   /* OSPF interface list */
-  list if_list;
+  struct list *if_list;
+
+  struct ospf6_lsdb *lsdb;
+  struct ospf6_lsdb *lsdb_self;
 
-  struct ospf6_lsdb        *lsdb;
   struct ospf6_route_table *spf_table;
   struct ospf6_route_table *route_table;
 
-  struct thread  *thread_spf_calculation;
-  struct thread  *thread_route_calculation;
+  u_int32_t spf_calculation;   /* SPF calculation count */
 
   struct thread *thread_router_lsa;
   struct thread *thread_intra_prefix_lsa;
   u_int32_t router_lsa_size_limit;
+
+  /* Area announce list */
+  struct
+  {
+    char *name;
+    struct access_list *list;
+  } _export;
+#define EXPORT_NAME(A)  (A)->_export.name
+#define EXPORT_LIST(A)  (A)->_export.list
+
+  /* Area acceptance list */
+  struct
+  {
+    char *name;
+    struct access_list *list;
+  } import;
+#define IMPORT_NAME(A)  (A)->import.name
+#define IMPORT_LIST(A)  (A)->import.list
+
+  /* Type 3 LSA Area prefix-list */
+  struct
+  {
+    char *name;
+    struct prefix_list *list;
+  } plist_in;
+#define PREFIX_NAME_IN(A)  (A)->plist_in.name
+#define PREFIX_LIST_IN(A)  (A)->plist_in.list
+
+  struct
+  {
+    char *name;
+    struct prefix_list *list;
+  } plist_out;
+#define PREFIX_NAME_OUT(A)  (A)->plist_out.name
+#define PREFIX_LIST_OUT(A)  (A)->plist_out.list
+
+  /* Time stamps. */
+  struct timeval ts_spf;               /* SPF calculation time stamp. */
 };
 
-#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 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 *);
+extern int ospf6_area_cmp (void *va, void *vb);
 
-void ospf6_area_enable (struct ospf6_area *);
-void ospf6_area_disable (struct ospf6_area *);
+extern struct ospf6_area *ospf6_area_create (u_int32_t, struct ospf6 *);
+extern void ospf6_area_delete (struct ospf6_area *);
+extern struct ospf6_area *ospf6_area_lookup (u_int32_t, struct ospf6 *);
 
-void ospf6_area_show (struct vty *, struct ospf6_area *);
-void ospf6_area_init ();
+extern void ospf6_area_enable (struct ospf6_area *);
+extern void ospf6_area_disable (struct ospf6_area *);
 
-#endif /* OSPF_AREA_H */
+extern void ospf6_area_show (struct vty *, struct ospf6_area *);
 
+extern void ospf6_area_config_write (struct vty *vty);
+extern void ospf6_area_init (void);
+
+#endif /* OSPF_AREA_H */