diff options
Diffstat (limited to 'staticd/static_routes.h')
| -rw-r--r-- | staticd/static_routes.h | 29 |
1 files changed, 12 insertions, 17 deletions
diff --git a/staticd/static_routes.h b/staticd/static_routes.h index 1269621cc9..2211384916 100644 --- a/staticd/static_routes.h +++ b/staticd/static_routes.h @@ -81,12 +81,16 @@ PREDECL_DLIST(static_nexthop_list); /* Static route information */ struct static_route_info { + struct static_vrf *svrf; + safi_t safi; /* path list */ struct static_path_list_head path_list; }; /* Static path information */ struct static_path { + /* Route node back pointer. */ + struct route_node *rn; /* Linkage for static path lists */ struct static_path_list_item list; /* Administrative distance. */ @@ -103,6 +107,8 @@ DECLARE_DLIST(static_path_list, struct static_path, list); /* Static route information. */ struct static_nexthop { + /* Path back pointer. */ + struct static_path *pn; /* For linked list. */ struct static_nexthop_list_item list; @@ -163,19 +169,12 @@ extern struct zebra_privs_t static_privs; void static_fixup_vrf_ids(struct static_vrf *svrf); extern struct static_nexthop * -static_add_nexthop(struct route_node *rn, struct static_path *pn, safi_t safi, - struct static_vrf *svrf, static_types type, +static_add_nexthop(struct static_path *pn, static_types type, struct ipaddr *ipaddr, const char *ifname, const char *nh_vrf, uint32_t color); -extern void static_install_nexthop(struct route_node *rn, - struct static_path *pn, - struct static_nexthop *nh, safi_t safi, - struct static_vrf *svrf, const char *ifname, - static_types type, const char *nh_vrf); +extern void static_install_nexthop(struct static_nexthop *nh); -extern int static_delete_nexthop(struct route_node *rn, struct static_path *pn, - safi_t safi, struct static_vrf *svrf, - struct static_nexthop *nh); +extern void static_delete_nexthop(struct static_nexthop *nh); extern void static_cleanup_vrf_ids(struct static_vrf *disable_svrf); @@ -183,27 +182,23 @@ extern void static_install_intf_nh(struct interface *ifp); extern void static_ifindex_update(struct interface *ifp, bool up); -extern void static_install_path(struct route_node *rn, struct static_path *pn, - safi_t safi, struct static_vrf *svrf); +extern void static_install_path(struct static_path *pn); extern struct route_node *static_add_route(afi_t afi, safi_t safi, struct prefix *p, struct prefix_ipv6 *src_p, struct static_vrf *svrf); -extern void static_del_route(struct route_node *rn, safi_t safi, - struct static_vrf *svrf); +extern void static_del_route(struct route_node *rn); extern struct static_path *static_add_path(struct route_node *rn, uint32_t table_id, uint8_t distance); -extern void static_del_path(struct route_node *rn, struct static_path *pn, - safi_t safi, struct static_vrf *svrf); +extern void static_del_path(struct static_path *pn); extern void static_get_nh_type(static_types stype, char *type, size_t size); extern bool static_add_nexthop_validate(const char *nh_vrf_name, static_types type, struct ipaddr *ipaddr); extern struct stable_info *static_get_stable_info(struct route_node *rn); -extern void static_route_info_init(struct static_route_info *si); extern void zebra_stable_node_cleanup(struct route_table *table, struct route_node *node); |
