]> git.proxmox.com Git - mirror_frr.git/blobdiff - eigrpd/eigrp_neighbor.c
zebra: Allow ns delete to happen after under/over flow checks
[mirror_frr.git] / eigrpd / eigrp_neighbor.c
index d5fc6a299678440e57005e94cfeddf8e4daf18e3..66dd5f3419b0dc3d8fc1db1066fe4447e4a648ff 100644 (file)
@@ -53,6 +53,7 @@
 #include "eigrpd/eigrp_network.h"
 #include "eigrpd/eigrp_topology.h"
 #include "eigrpd/eigrp_memory.h"
+#include "eigrpd/eigrp_errors.h"
 
 struct eigrp_neighbor *eigrp_nbr_new(struct eigrp_interface *ei)
 {
@@ -206,12 +207,12 @@ int holddown_timer_expired(struct thread *thread)
        return 0;
 }
 
-u_char eigrp_nbr_state_get(struct eigrp_neighbor *nbr)
+uint8_t eigrp_nbr_state_get(struct eigrp_neighbor *nbr)
 {
        return (nbr->state);
 }
 
-void eigrp_nbr_state_set(struct eigrp_neighbor *nbr, u_char state)
+void eigrp_nbr_state_set(struct eigrp_neighbor *nbr, uint8_t state)
 {
        nbr->state = state;
 
@@ -302,7 +303,7 @@ int eigrp_nbr_count_get(void)
        struct listnode *node, *node2, *nnode2;
        struct eigrp_neighbor *nbr;
        struct eigrp *eigrp = eigrp_lookup();
-       u_int32_t counter;
+       uint32_t counter;
 
        if (eigrp == NULL) {
                zlog_debug("EIGRP Routing Process not enabled");
@@ -335,7 +336,8 @@ int eigrp_nbr_count_get(void)
 void eigrp_nbr_hard_restart(struct eigrp_neighbor *nbr, struct vty *vty)
 {
        if (nbr == NULL) {
-               zlog_err("Nbr Hard restart: Neighbor not specified.");
+               flog_err(EC_EIGRP_CONFIG,
+                        "Nbr Hard restart: Neighbor not specified.");
                return;
        }
 
@@ -357,3 +359,12 @@ void eigrp_nbr_hard_restart(struct eigrp_neighbor *nbr, struct vty *vty)
        /* delete neighbor */
        eigrp_nbr_delete(nbr);
 }
+
+int eigrp_nbr_split_horizon_check(struct eigrp_nexthop_entry *ne,
+                                 struct eigrp_interface *ei)
+{
+       if (ne->distance == EIGRP_MAX_METRIC)
+               return 0;
+
+       return (ne->ei == ei);
+}