]> git.proxmox.com Git - mirror_frr.git/blobdiff - ospf6d/ospf6_area.h
zebra: Convert socket interface to use `union sockunion`
[mirror_frr.git] / ospf6d / ospf6_area.h
index 8e2368b1665b8b68522029e598703d3ef5fd1f33..ba497a168e987b9ed3d60a897e0cc6b67e30482b 100644 (file)
 
 #include "ospf6_top.h"
 
-struct ospf6_area
-{
-  /* Reference to Top data structure */
-  struct ospf6 *ospf6;
+struct ospf6_area {
+       /* Reference to Top data structure */
+       struct ospf6 *ospf6;
 
-  /* Area-ID */
-  u_int32_t area_id;
+       /* Area-ID */
+       uint32_t area_id;
 
-  /* Area-ID string */
-  char name[16];
+#define OSPF6_AREA_FMT_DOTTEDQUAD 1
+#define OSPF6_AREA_FMT_DECIMAL    2
+       /* Area-ID string */
+       char name[16];
 
-  /* flag */
-  u_char flag;
+       /* flag */
+       uint8_t flag;
 
-  /* OSPF Option */
-  u_char options[3];
+       /* OSPF Option */
+       uint8_t options[3];
 
-  /* Summary routes to be originated (includes Configured Address Ranges) */
-  struct ospf6_route_table *range_table;
-  struct ospf6_route_table *summary_prefix;
-  struct ospf6_route_table *summary_router;
+       /* Summary routes to be originated (includes Configured Address Ranges)
+        */
+       struct ospf6_route_table *range_table;
+       struct ospf6_route_table *summary_prefix;
+       struct ospf6_route_table *summary_router;
 
-  /* Area type */
-  int no_summary;
+       /* Area type */
+       int no_summary;
 
-  /* OSPF interface list */
-  struct list *if_list;
+       /* Brouter traversal protection */
+       int intra_brouter_calc;
 
-  struct ospf6_lsdb *lsdb;
-  struct ospf6_lsdb *lsdb_self;
+       /* OSPF interface list */
+       struct list *if_list;
 
-  struct ospf6_route_table *spf_table;
-  struct ospf6_route_table *route_table;
+       struct ospf6_lsdb *lsdb;
+       struct ospf6_lsdb *lsdb_self;
+       struct ospf6_lsdb *temp_router_lsa_lsdb;
 
-  u_int32_t spf_calculation;   /* SPF calculation count */
+       struct ospf6_route_table *spf_table;
+       struct ospf6_route_table *route_table;
 
-  struct thread *thread_router_lsa;
-  struct thread *thread_intra_prefix_lsa;
-  u_int32_t router_lsa_size_limit;
+       uint32_t spf_calculation; /* SPF calculation count */
 
-  /* Area announce list */
-  struct
-  {
-    char *name;
-    struct access_list *list;
-  } _export;
+       struct thread *thread_router_lsa;
+       struct thread *thread_intra_prefix_lsa;
+       uint32_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;
+       /* 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;
+       /* 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;
+       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. */
+       /* Time stamps. */
+       struct timeval ts_spf; /* SPF calculation time stamp. */
+
+       uint32_t full_nbrs; /* Fully adjacent neighbors. */
+       uint8_t intra_prefix_originate; /* Force intra_prefix lsa originate */
 };
 
 #define OSPF6_AREA_ENABLE     0x01
@@ -113,18 +118,19 @@ struct ospf6_area
 #define IS_AREA_STUB(oa) (CHECK_FLAG ((oa)->flag, OSPF6_AREA_STUB))
 
 /* prototypes */
-extern int ospf6_area_cmp (void *va, void *vb);
+extern int ospf6_area_cmp(void *va, void *vb);
 
-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 *);
+extern struct ospf6_area *ospf6_area_create(uint32_t, struct ospf6 *, int);
+extern void ospf6_area_delete(struct ospf6_area *);
+extern struct ospf6_area *ospf6_area_lookup(uint32_t, struct ospf6 *);
 
-extern void ospf6_area_enable (struct ospf6_area *);
-extern void ospf6_area_disable (struct ospf6_area *);
+extern void ospf6_area_enable(struct ospf6_area *);
+extern void ospf6_area_disable(struct ospf6_area *);
 
-extern void ospf6_area_show (struct vty *, struct ospf6_area *);
+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);
+extern void ospf6_area_plist_update(struct prefix_list *plist, int add);
+extern void ospf6_area_config_write(struct vty *vty);
+extern void ospf6_area_init(void);
 
 #endif /* OSPF_AREA_H */