X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=eigrpd%2Feigrp_topology.h;h=d7f79057aba468c12e332d094a11c21d80caf95c;hb=a1fc0cb01e2ae004cf178c2f2eb712a0fb2c86d9;hp=718cece40383ad9e814b18106982ea5d26b39b46;hpb=4e279d01b749413b5630af368ae7e492b8dcec70;p=mirror_frr.git diff --git a/eigrpd/eigrp_topology.h b/eigrpd/eigrp_topology.h index 718cece40..d7f79057a 100644 --- a/eigrpd/eigrp_topology.h +++ b/eigrpd/eigrp_topology.h @@ -32,46 +32,54 @@ #ifndef _ZEBRA_EIGRP_TOPOLOGY_H #define _ZEBRA_EIGRP_TOPOLOGY_H +#include "memory.h" + +DECLARE_MTYPE(EIGRP_PREFIX_DESCRIPTOR); + /* EIGRP Topology table related functions. */ extern struct route_table *eigrp_topology_new(void); extern void eigrp_topology_init(struct route_table *table); -extern struct eigrp_prefix_entry *eigrp_prefix_entry_new(void); -extern struct eigrp_nexthop_entry *eigrp_nexthop_entry_new(void); +extern struct eigrp_prefix_descriptor *eigrp_prefix_descriptor_new(void); +extern struct eigrp_route_descriptor *eigrp_route_descriptor_new(void); extern void eigrp_topology_free(struct eigrp *eigrp, struct route_table *table); -extern void eigrp_prefix_entry_add(struct route_table *table, - struct eigrp_prefix_entry *pe); -extern void eigrp_nexthop_entry_add(struct eigrp *eigrp, - struct eigrp_prefix_entry *pe, - struct eigrp_nexthop_entry *ne); -extern void eigrp_prefix_entry_delete(struct eigrp *eigrp, - struct route_table *table, - struct eigrp_prefix_entry *pe); -extern void eigrp_nexthop_entry_delete(struct eigrp *eigrp, - struct eigrp_prefix_entry *pe, - struct eigrp_nexthop_entry *ne); +extern void eigrp_prefix_descriptor_add(struct route_table *table, + struct eigrp_prefix_descriptor *pe); +extern void eigrp_route_descriptor_add(struct eigrp *eigrp, + struct eigrp_prefix_descriptor *pe, + struct eigrp_route_descriptor *ne); +extern void eigrp_prefix_descriptor_delete(struct eigrp *eigrp, + struct route_table *table, + struct eigrp_prefix_descriptor *pe); +extern void eigrp_route_descriptor_delete(struct eigrp *eigrp, + struct eigrp_prefix_descriptor *pe, + struct eigrp_route_descriptor *ne); extern void eigrp_topology_delete_all(struct eigrp *eigrp, struct route_table *table); -extern struct eigrp_prefix_entry * +extern struct eigrp_prefix_descriptor * eigrp_topology_table_lookup_ipv4(struct route_table *table, struct prefix *p); -extern struct list *eigrp_topology_get_successor(struct eigrp_prefix_entry *pe); extern struct list * -eigrp_topology_get_successor_max(struct eigrp_prefix_entry *pe, +eigrp_topology_get_successor(struct eigrp_prefix_descriptor *pe); +extern struct list * +eigrp_topology_get_successor_max(struct eigrp_prefix_descriptor *pe, unsigned int maxpaths); -extern struct eigrp_nexthop_entry * -eigrp_prefix_entry_lookup(struct list *entries, struct eigrp_neighbor *neigh); +extern struct eigrp_route_descriptor * +eigrp_route_descriptor_lookup(struct list *entries, + struct eigrp_neighbor *neigh); extern struct list *eigrp_neighbor_prefixes_lookup(struct eigrp *eigrp, struct eigrp_neighbor *n); extern void eigrp_topology_update_all_node_flags(struct eigrp *eigrp); -extern void eigrp_topology_update_node_flags(struct eigrp *eigrp, - struct eigrp_prefix_entry *pe); +extern void +eigrp_topology_update_node_flags(struct eigrp *eigrp, + struct eigrp_prefix_descriptor *pe); extern enum metric_change eigrp_topology_update_distance(struct eigrp_fsm_action_message *msg); extern void eigrp_update_routing_table(struct eigrp *eigrp, - struct eigrp_prefix_entry *pe); + struct eigrp_prefix_descriptor *pe); extern void eigrp_topology_neighbor_down(struct eigrp *eigrp, struct eigrp_neighbor *neigh); -extern void eigrp_update_topology_table_prefix(struct eigrp *eigrp, - struct route_table *table, - struct eigrp_prefix_entry *pe); +extern void +eigrp_update_topology_table_prefix(struct eigrp *eigrp, + struct route_table *table, + struct eigrp_prefix_descriptor *pe); #endif