mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-04-30 22:06:20 +00:00
eigrpd: Convert eigrp_neighor.c to not use VRF_DEFAULT
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
parent
17c0e58653
commit
2ea6b572b5
@ -445,7 +445,7 @@ int eigrp_fsm_event_nq_fcn(struct eigrp_fsm_action_message *msg)
|
||||
prefix->rdistance = prefix->distance = prefix->fdistance = ne->distance;
|
||||
prefix->reported_metric = ne->total_metric;
|
||||
|
||||
if (eigrp_nbr_count_get()) {
|
||||
if (eigrp_nbr_count_get(eigrp)) {
|
||||
prefix->req_action |= EIGRP_FSM_NEED_QUERY;
|
||||
listnode_add(eigrp->topology_changes_internalIPV4, prefix);
|
||||
} else {
|
||||
@ -471,7 +471,7 @@ int eigrp_fsm_event_q_fcn(struct eigrp_fsm_action_message *msg)
|
||||
prefix->state = EIGRP_FSM_STATE_ACTIVE_3;
|
||||
prefix->rdistance = prefix->distance = prefix->fdistance = ne->distance;
|
||||
prefix->reported_metric = ne->total_metric;
|
||||
if (eigrp_nbr_count_get()) {
|
||||
if (eigrp_nbr_count_get(eigrp)) {
|
||||
prefix->req_action |= EIGRP_FSM_NEED_QUERY;
|
||||
listnode_add(eigrp->topology_changes_internalIPV4, prefix);
|
||||
} else {
|
||||
@ -612,7 +612,7 @@ int eigrp_fsm_event_lr_fcn(struct eigrp_fsm_action_message *msg)
|
||||
prefix->rdistance = prefix->distance = best_successor->distance;
|
||||
prefix->reported_metric = best_successor->total_metric;
|
||||
|
||||
if (eigrp_nbr_count_get()) {
|
||||
if (eigrp_nbr_count_get(eigrp)) {
|
||||
prefix->req_action |= EIGRP_FSM_NEED_QUERY;
|
||||
listnode_add(eigrp->topology_changes_internalIPV4, prefix);
|
||||
} else {
|
||||
|
@ -194,13 +194,12 @@ void eigrp_nbr_delete(struct eigrp_neighbor *nbr)
|
||||
|
||||
int holddown_timer_expired(struct thread *thread)
|
||||
{
|
||||
struct eigrp_neighbor *nbr;
|
||||
|
||||
nbr = THREAD_ARG(thread);
|
||||
struct eigrp_neighbor *nbr = THREAD_ARG(thread);
|
||||
struct eigrp *eigrp = nbr->ei->eigrp;
|
||||
|
||||
zlog_info("Neighbor %s (%s) is down: holding time expired",
|
||||
inet_ntoa(nbr->src),
|
||||
ifindex2ifname(nbr->ei->ifp->ifindex, VRF_DEFAULT));
|
||||
ifindex2ifname(nbr->ei->ifp->ifindex, eigrp->vrf_id));
|
||||
nbr->state = EIGRP_NEIGHBOR_DOWN;
|
||||
eigrp_nbr_delete(nbr);
|
||||
|
||||
@ -297,19 +296,13 @@ void eigrp_nbr_state_update(struct eigrp_neighbor *nbr)
|
||||
}
|
||||
}
|
||||
|
||||
int eigrp_nbr_count_get(void)
|
||||
int eigrp_nbr_count_get(struct eigrp *eigrp)
|
||||
{
|
||||
struct eigrp_interface *iface;
|
||||
struct listnode *node, *node2, *nnode2;
|
||||
struct eigrp_neighbor *nbr;
|
||||
struct eigrp *eigrp = eigrp_lookup(VRF_DEFAULT);
|
||||
uint32_t counter;
|
||||
|
||||
if (eigrp == NULL) {
|
||||
zlog_debug("EIGRP Routing Process not enabled");
|
||||
return 0;
|
||||
}
|
||||
|
||||
counter = 0;
|
||||
for (ALL_LIST_ELEMENTS_RO(eigrp->eiflist, node, iface)) {
|
||||
for (ALL_LIST_ELEMENTS(iface->nbrs, node2, nnode2, nbr)) {
|
||||
@ -335,20 +328,16 @@ int eigrp_nbr_count_get(void)
|
||||
*/
|
||||
void eigrp_nbr_hard_restart(struct eigrp_neighbor *nbr, struct vty *vty)
|
||||
{
|
||||
if (nbr == NULL) {
|
||||
flog_err(EC_EIGRP_CONFIG,
|
||||
"Nbr Hard restart: Neighbor not specified.");
|
||||
return;
|
||||
}
|
||||
struct eigrp *eigrp = nbr->ei->eigrp;
|
||||
|
||||
zlog_debug("Neighbor %s (%s) is down: manually cleared",
|
||||
inet_ntoa(nbr->src),
|
||||
ifindex2ifname(nbr->ei->ifp->ifindex, VRF_DEFAULT));
|
||||
ifindex2ifname(nbr->ei->ifp->ifindex, eigrp->vrf_id));
|
||||
if (vty != NULL) {
|
||||
vty_time_print(vty, 0);
|
||||
vty_out(vty, "Neighbor %s (%s) is down: manually cleared\n",
|
||||
inet_ntoa(nbr->src),
|
||||
ifindex2ifname(nbr->ei->ifp->ifindex, VRF_DEFAULT));
|
||||
ifindex2ifname(nbr->ei->ifp->ifindex, eigrp->vrf_id));
|
||||
}
|
||||
|
||||
/* send Hello with Peer Termination TLV */
|
||||
|
@ -33,24 +33,25 @@
|
||||
#define _ZEBRA_EIGRP_NEIGHBOR_H
|
||||
|
||||
/* Prototypes */
|
||||
extern struct eigrp_neighbor *eigrp_nbr_get(struct eigrp_interface *,
|
||||
struct eigrp_header *, struct ip *);
|
||||
extern struct eigrp_neighbor *eigrp_nbr_new(struct eigrp_interface *);
|
||||
extern void eigrp_nbr_delete(struct eigrp_neighbor *);
|
||||
extern struct eigrp_neighbor *eigrp_nbr_get(struct eigrp_interface *ei,
|
||||
struct eigrp_header *,
|
||||
struct ip *addr);
|
||||
extern struct eigrp_neighbor *eigrp_nbr_new(struct eigrp_interface *ei);
|
||||
extern void eigrp_nbr_delete(struct eigrp_neighbor *neigh);
|
||||
|
||||
extern int holddown_timer_expired(struct thread *);
|
||||
extern int holddown_timer_expired(struct thread *thread);
|
||||
|
||||
extern int eigrp_neighborship_check(struct eigrp_neighbor *,
|
||||
struct TLV_Parameter_Type *);
|
||||
extern void eigrp_nbr_state_update(struct eigrp_neighbor *);
|
||||
extern void eigrp_nbr_state_set(struct eigrp_neighbor *, uint8_t state);
|
||||
extern uint8_t eigrp_nbr_state_get(struct eigrp_neighbor *);
|
||||
extern int eigrp_nbr_count_get(void);
|
||||
extern const char *eigrp_nbr_state_str(struct eigrp_neighbor *);
|
||||
extern struct eigrp_neighbor *eigrp_nbr_lookup_by_addr(struct eigrp_interface *,
|
||||
struct in_addr *);
|
||||
extern struct eigrp_neighbor *eigrp_nbr_lookup_by_addr_process(struct eigrp *,
|
||||
struct in_addr);
|
||||
extern int eigrp_neighborship_check(struct eigrp_neighbor *neigh,
|
||||
struct TLV_Parameter_Type *tlv);
|
||||
extern void eigrp_nbr_state_update(struct eigrp_neighbor *neigh);
|
||||
extern void eigrp_nbr_state_set(struct eigrp_neighbor *neigh, uint8_t state);
|
||||
extern uint8_t eigrp_nbr_state_get(struct eigrp_neighbor *neigh);
|
||||
extern int eigrp_nbr_count_get(struct eigrp *eigrp);
|
||||
extern const char *eigrp_nbr_state_str(struct eigrp_neighbor *neigh);
|
||||
extern struct eigrp_neighbor *
|
||||
eigrp_nbr_lookup_by_addr(struct eigrp_interface *ei, struct in_addr *addr);
|
||||
extern struct eigrp_neighbor *
|
||||
eigrp_nbr_lookup_by_addr_process(struct eigrp *eigrp, struct in_addr addr);
|
||||
extern void eigrp_nbr_hard_restart(struct eigrp_neighbor *nbr, struct vty *vty);
|
||||
|
||||
extern int eigrp_nbr_split_horizon_check(struct eigrp_nexthop_entry *ne,
|
||||
|
Loading…
Reference in New Issue
Block a user