]> git.proxmox.com Git - mirror_frr.git/blobdiff - ospfd/ospf_route.h
lib: enforce vrf_name_to_id by returning default_vrf when name is null
[mirror_frr.git] / ospfd / ospf_route.h
index 4de3a3da165b2595a5da101f5310b23371bfd93d..8cb5d32a8ac7a3aecfc801cd2bf4f3f5bcea2d12 100644 (file)
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
- * along with GNU Zebra; see the file COPYING.  If not, write to the Free
- * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
+ * You should have received a copy of the GNU General Public License along
+ * with this program; see the file COPYING; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
 #ifndef _ZEBRA_OSPF_ROUTE_H
 #define OSPF_PATH_MAX                  5
 
 /* OSPF Path. */
-struct ospf_path
-{
-  struct in_addr nexthop;
-  struct in_addr adv_router;
-  unsigned int ifindex;
-  unsigned char unnumbered;
+struct ospf_path {
+       struct in_addr nexthop;
+       struct in_addr adv_router;
+       ifindex_t ifindex;
+       unsigned char unnumbered;
 };
 
 /* Below is the structure linked to every
@@ -55,113 +53,103 @@ struct ospf_path
    nr->info is a (struct ospf_router_route *) for OSPF_DESTINATION_ROUTER
 */
 
-struct route_standard
-{
-  /* Link Sate Origin. */
-  struct lsa_header *origin;
+struct route_standard {
+       /* Link Sate Origin. */
+       struct lsa_header *origin;
 
-  /* Associated Area. */
-  struct in_addr area_id;      /* The area the route belongs to */
+       /* Associated Area. */
+       struct in_addr area_id; /* The area the route belongs to */
 
-  /*  Area Type */
-  int external_routing;
+       /*  Area Type */
+       int external_routing;
 
-  /* Optional Capability. */
-  u_char options;              /* Get from LSA header. */
+       /* Optional Capability. */
+       uint8_t options; /* Get from LSA header. */
 
-  /*  */
-  u_char flags;                /* From router-LSA */
+       /*  */
+       uint8_t flags; /* From router-LSA */
 };
 
-struct route_external
-{
-  /* Link State Origin. */
-  struct ospf_lsa *origin;
+struct route_external {
+       /* Link State Origin. */
+       struct ospf_lsa *origin;
 
-  /* Link State Cost Type2. */
-  u_int32_t type2_cost;
+       /* Link State Cost Type2. */
+       uint32_t type2_cost;
 
-  /* Tag value. */
-  u_int32_t tag;
+       /* Tag value. */
+       uint32_t tag;
 
-  /* ASBR route. */
-  struct ospf_route *asbr;
+       /* ASBR route. */
+       struct ospf_route *asbr;
 };
 
-struct ospf_route
-{
-  /* Create time. */
-  time_t ctime;
+struct ospf_route {
+       /* Destination Type. */
+       uint8_t type;
 
-  /* Modified time. */
-  time_t mtime;
+       /* Destination ID. */ /* i.e. Link State ID. */
+       struct in_addr id;
 
-  /* Destination Type. */
-  u_char type;
+       /* Address Mask. */
+       struct in_addr mask; /* Only valid for networks. */
 
-  /* Destination ID. */                /* i.e. Link State ID. */
-  struct in_addr id;
+       /* Path Type. */
+       uint8_t path_type;
 
-  /* Address Mask. */
-  struct in_addr mask;         /* Only valid for networks. */
+       /* List of Paths. */
+       struct list *paths;
 
-  /* Path Type. */
-  u_char path_type;
+       /* Link State Cost. */
+       uint32_t cost; /* i.e. metric. */
 
-  /* List of Paths. */
-  struct list *paths;
-
-  /* Link State Cost. */
-  u_int32_t cost;              /* i.e. metric. */
-
-  /* Route specific info. */
-  union
-  {
-    struct route_standard std;
-    struct route_external ext;
-  } u;
+       /* Route specific info. */
+       union {
+               struct route_standard std;
+               struct route_external ext;
+       } u;
 };
 
-extern struct ospf_path *ospf_path_new (void);
-extern void ospf_path_free (struct ospf_path *);
-extern struct ospf_path *ospf_path_lookup (struct list *, struct ospf_path *);
-extern struct ospf_route *ospf_route_new (void);
-extern void ospf_route_free (struct ospf_route *);
-extern void ospf_route_delete (struct route_table *);
-extern void ospf_route_table_free (struct route_table *);
+extern struct ospf_path *ospf_path_new(void);
+extern void ospf_path_free(struct ospf_path *);
+extern struct ospf_path *ospf_path_lookup(struct list *, struct ospf_path *);
+extern struct ospf_route *ospf_route_new(void);
+extern void ospf_route_free(struct ospf_route *);
+extern void ospf_route_delete(struct ospf *, struct route_table *);
+extern void ospf_route_table_free(struct route_table *);
+
+extern void ospf_route_install(struct ospf *, struct route_table *);
+extern void ospf_route_table_dump(struct route_table *);
 
-extern void ospf_route_install (struct ospf *, struct route_table *);
-extern void ospf_route_table_dump (struct route_table *);
+extern void ospf_intra_add_router(struct route_table *, struct vertex *,
+                                 struct ospf_area *);
 
-extern void ospf_intra_add_router (struct route_table *, struct vertex *,
+extern void ospf_intra_add_transit(struct route_table *, struct vertex *,
                                   struct ospf_area *);
 
-extern void ospf_intra_add_transit (struct route_table *, struct vertex *,
-                                   struct ospf_area *);
-
-extern void ospf_intra_add_stub (struct route_table *,
-                                struct router_lsa_link *, struct vertex *,
-                                struct ospf_area *,
-                                int parent_is_root, int);
-
-extern int ospf_route_cmp (struct ospf *, struct ospf_route *,
-                          struct ospf_route *);
-extern void ospf_route_copy_nexthops (struct ospf_route *, struct list *);
-extern void ospf_route_copy_nexthops_from_vertex (struct ospf_route *,
-                                                 struct vertex *);
-
-extern void ospf_route_subst (struct route_node *, struct ospf_route *,
-                             struct ospf_route *);
-extern void ospf_route_add (struct route_table *, struct prefix_ipv4 *,
-                           struct ospf_route *, struct ospf_route *);
-
-extern void ospf_route_subst_nexthops (struct ospf_route *, struct list *);
-extern void ospf_prune_unreachable_networks (struct route_table *);
-extern void ospf_prune_unreachable_routers (struct route_table *);
-extern int ospf_add_discard_route (struct route_table *, struct ospf_area *,
-                                  struct prefix_ipv4 *);
-extern void ospf_delete_discard_route (struct route_table *, struct prefix_ipv4 *);
-extern int ospf_route_match_same (struct route_table *, struct prefix_ipv4 *,
-                                 struct ospf_route *);
+extern void ospf_intra_add_stub(struct route_table *, struct router_lsa_link *,
+                               struct vertex *, struct ospf_area *,
+                               int parent_is_root, int);
+
+extern int ospf_route_cmp(struct ospf *, struct ospf_route *,
+                         struct ospf_route *);
+extern void ospf_route_copy_nexthops(struct ospf_route *, struct list *);
+extern void ospf_route_copy_nexthops_from_vertex(struct ospf_route *,
+                                                struct vertex *);
+
+extern void ospf_route_subst(struct route_node *, struct ospf_route *,
+                            struct ospf_route *);
+extern void ospf_route_add(struct route_table *, struct prefix_ipv4 *,
+                          struct ospf_route *, struct ospf_route *);
+
+extern void ospf_route_subst_nexthops(struct ospf_route *, struct list *);
+extern void ospf_prune_unreachable_networks(struct route_table *);
+extern void ospf_prune_unreachable_routers(struct route_table *);
+extern int ospf_add_discard_route(struct ospf *, struct route_table *,
+                                 struct ospf_area *, struct prefix_ipv4 *);
+extern void ospf_delete_discard_route(struct ospf *, struct route_table *,
+                                     struct prefix_ipv4 *);
+extern int ospf_route_match_same(struct route_table *, struct prefix_ipv4 *,
+                                struct ospf_route *);
 
 #endif /* _ZEBRA_OSPF_ROUTE_H */