]> git.puffer.fish Git - mirror/frr.git/commitdiff
eigrpd: Rename nexthop_entry and prefix_entry to better names
authorDonnie Savage <diivious@hotmail.com>
Fri, 11 Dec 2020 21:09:47 +0000 (16:09 -0500)
committerDonald Sharp <sharpd@nvidia.com>
Tue, 12 Jan 2021 12:45:48 +0000 (07:45 -0500)
Rename struct eigrp_nexthop_entry to struct eigrp_route_descriptor
Rename struct eigrp_prefix_entry to struct eigrp_prefix_descriptor

Fix all the associated function names as well.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Signed-off-by: Donnie SAvage <diivious@hotmail.com>
24 files changed:
eigrpd/eigrp_const.h
eigrpd/eigrp_dump.c
eigrpd/eigrp_dump.h
eigrpd/eigrp_fsm.c
eigrpd/eigrp_interface.c
eigrpd/eigrp_memory.c
eigrpd/eigrp_memory.h
eigrpd/eigrp_neighbor.c
eigrpd/eigrp_neighbor.h
eigrpd/eigrp_network.c
eigrpd/eigrp_network.h
eigrpd/eigrp_packet.c
eigrpd/eigrp_packet.h
eigrpd/eigrp_query.c
eigrpd/eigrp_reply.c
eigrpd/eigrp_routemap.c
eigrpd/eigrp_siaquery.c
eigrpd/eigrp_siareply.c
eigrpd/eigrp_structs.h
eigrpd/eigrp_topology.c
eigrpd/eigrp_topology.h
eigrpd/eigrp_update.c
eigrpd/eigrp_vty.c
eigrpd/eigrp_zebra.c

index d3d9bca82aed1b03467316090ffe1ff5a918d4b0..149cf00efca772c4a0187f44c56904128c98a5d9 100644 (file)
@@ -122,10 +122,10 @@ enum metric_change { METRIC_DECREASE, METRIC_SAME, METRIC_INCREASE };
 #define EIGRP_TOPOLOGY_TYPE_REMOTE_EXTERNAL     2 // Remote external network
 
 /*EIGRP TT entry flags*/
-#define EIGRP_NEXTHOP_ENTRY_SUCCESSOR_FLAG     (1 << 0)
-#define EIGRP_NEXTHOP_ENTRY_FSUCCESSOR_FLAG    (1 << 1)
-#define EIGRP_NEXTHOP_ENTRY_INTABLE_FLAG       (1 << 2)
-#define EIGRP_NEXTHOP_ENTRY_EXTERNAL_FLAG      (1 << 3)
+#define EIGRP_ROUTE_DESCRIPTOR_SUCCESSOR_FLAG (1 << 0)
+#define EIGRP_ROUTE_DESCRIPTOR_FSUCCESSOR_FLAG (1 << 1)
+#define EIGRP_ROUTE_DESCRIPTOR_INTABLE_FLAG (1 << 2)
+#define EIGRP_ROUTE_DESCRIPTOR_EXTERNAL_FLAG (1 << 3)
 
 /*EIGRP FSM state count, event count*/
 #define EIGRP_FSM_STATE_MAX                  5
index dfce2acad4885ed7462f447222a42a2bc4a7cbc5..e1ad51a9dbb1f7d4350accd2788e75a4310e8601 100644 (file)
@@ -236,7 +236,8 @@ void show_ip_eigrp_topology_header(struct vty *vty, struct eigrp *eigrp)
                "Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply\n       r - reply Status, s - sia Status\n\n");
 }
 
-void show_ip_eigrp_prefix_entry(struct vty *vty, struct eigrp_prefix_entry *tn)
+void show_ip_eigrp_prefix_descriptor(struct vty *vty,
+                                    struct eigrp_prefix_descriptor *tn)
 {
        struct list *successors = eigrp_topology_get_successor(tn);
 
@@ -251,14 +252,15 @@ void show_ip_eigrp_prefix_entry(struct vty *vty, struct eigrp_prefix_entry *tn)
                list_delete(&successors);
 }
 
-void show_ip_eigrp_nexthop_entry(struct vty *vty, struct eigrp *eigrp,
-                                struct eigrp_nexthop_entry *te, bool *first)
+void show_ip_eigrp_route_descriptor(struct vty *vty, struct eigrp *eigrp,
+                                   struct eigrp_route_descriptor *te,
+                                   bool *first)
 {
        if (te->reported_distance == EIGRP_MAX_METRIC)
                return;
 
        if (*first) {
-               show_ip_eigrp_prefix_entry(vty, te->prefix);
+               show_ip_eigrp_prefix_descriptor(vty, te->prefix);
                *first = false;
        }
 
index 348356bb3c74bff2fa7939acdbd97f581bbdfefc..0d512fc63fdd1b1fd7b9acfcb979adc8b7592f08 100644 (file)
@@ -151,11 +151,11 @@ extern void show_ip_eigrp_interface_sub(struct vty *, struct eigrp *,
                                        struct eigrp_interface *);
 extern void show_ip_eigrp_neighbor_sub(struct vty *, struct eigrp_neighbor *,
                                       int);
-extern void show_ip_eigrp_prefix_entry(struct vty *,
-                                      struct eigrp_prefix_entry *);
-extern void show_ip_eigrp_nexthop_entry(struct vty *vty, struct eigrp *eigrp,
-                                       struct eigrp_nexthop_entry *ne,
-                                       bool *first);
+extern void show_ip_eigrp_prefix_descriptor(struct vty *vty,
+                                           struct eigrp_prefix_descriptor *tn);
+extern void show_ip_eigrp_route_descriptor(struct vty *vty, struct eigrp *eigrp,
+                                          struct eigrp_route_descriptor *ne,
+                                          bool *first);
 
 extern void eigrp_debug_init(void);
 
index a69a3eec0a214535e098f70cf209f0f5359182d4..fb7336879e65b669107197338c47df91224a33e2 100644 (file)
@@ -262,13 +262,13 @@ eigrp_get_fsm_event(struct eigrp_fsm_action_message *msg)
 {
        // Loading base information from message
        // struct eigrp *eigrp = msg->eigrp;
-       struct eigrp_prefix_entry *prefix = msg->prefix;
-       struct eigrp_nexthop_entry *entry = msg->entry;
+       struct eigrp_prefix_descriptor *prefix = msg->prefix;
+       struct eigrp_route_descriptor *entry = msg->entry;
        uint8_t actual_state = prefix->state;
        enum metric_change change;
 
        if (entry == NULL) {
-               entry = eigrp_nexthop_entry_new();
+               entry = eigrp_route_descriptor_new();
                entry->adv_router = msg->adv_router;
                entry->ei = msg->adv_router->ei;
                entry->prefix = prefix;
@@ -286,7 +286,7 @@ eigrp_get_fsm_event(struct eigrp_fsm_action_message *msg)
 
        switch (actual_state) {
        case EIGRP_FSM_STATE_PASSIVE: {
-               struct eigrp_nexthop_entry *head =
+               struct eigrp_route_descriptor *head =
                        listnode_head(prefix->entries);
 
                if (head->reported_distance < prefix->fdistance) {
@@ -307,7 +307,7 @@ eigrp_get_fsm_event(struct eigrp_fsm_action_message *msg)
        }
        case EIGRP_FSM_STATE_ACTIVE_0: {
                if (msg->packet_type == EIGRP_OPC_REPLY) {
-                       struct eigrp_nexthop_entry *head =
+                       struct eigrp_route_descriptor *head =
                                listnode_head(prefix->entries);
 
                        listnode_delete(prefix->rij, entry->adv_router);
@@ -322,7 +322,7 @@ eigrp_get_fsm_event(struct eigrp_fsm_action_message *msg)
                        return EIGRP_FSM_EVENT_LR_FCN;
                } else if (msg->packet_type == EIGRP_OPC_QUERY
                           && (entry->flags
-                              & EIGRP_NEXTHOP_ENTRY_SUCCESSOR_FLAG)) {
+                              & EIGRP_ROUTE_DESCRIPTOR_SUCCESSOR_FLAG)) {
                        return EIGRP_FSM_EVENT_QACT;
                }
 
@@ -332,14 +332,14 @@ eigrp_get_fsm_event(struct eigrp_fsm_action_message *msg)
        }
        case EIGRP_FSM_STATE_ACTIVE_1: {
                if (msg->packet_type == EIGRP_OPC_QUERY
-                   && (entry->flags & EIGRP_NEXTHOP_ENTRY_SUCCESSOR_FLAG)) {
+                   && (entry->flags & EIGRP_ROUTE_DESCRIPTOR_SUCCESSOR_FLAG)) {
                        return EIGRP_FSM_EVENT_QACT;
                } else if (msg->packet_type == EIGRP_OPC_REPLY) {
                        listnode_delete(prefix->rij, entry->adv_router);
 
                        if (change == METRIC_INCREASE
                            && (entry->flags
-                               & EIGRP_NEXTHOP_ENTRY_SUCCESSOR_FLAG)) {
+                               & EIGRP_ROUTE_DESCRIPTOR_SUCCESSOR_FLAG)) {
                                return EIGRP_FSM_EVENT_DINC;
                        } else if (prefix->rij->count) {
                                return EIGRP_FSM_KEEP_STATE;
@@ -350,7 +350,7 @@ eigrp_get_fsm_event(struct eigrp_fsm_action_message *msg)
                } else if (msg->packet_type == EIGRP_OPC_UPDATE
                           && change == METRIC_INCREASE
                           && (entry->flags
-                              & EIGRP_NEXTHOP_ENTRY_SUCCESSOR_FLAG)) {
+                              & EIGRP_ROUTE_DESCRIPTOR_SUCCESSOR_FLAG)) {
                        return EIGRP_FSM_EVENT_DINC;
                }
                return EIGRP_FSM_KEEP_STATE;
@@ -359,7 +359,7 @@ eigrp_get_fsm_event(struct eigrp_fsm_action_message *msg)
        }
        case EIGRP_FSM_STATE_ACTIVE_2: {
                if (msg->packet_type == EIGRP_OPC_REPLY) {
-                       struct eigrp_nexthop_entry *head =
+                       struct eigrp_route_descriptor *head =
                                listnode_head(prefix->entries);
 
                        listnode_delete(prefix->rij, entry->adv_router);
@@ -385,7 +385,7 @@ eigrp_get_fsm_event(struct eigrp_fsm_action_message *msg)
 
                        if (change == METRIC_INCREASE
                            && (entry->flags
-                               & EIGRP_NEXTHOP_ENTRY_SUCCESSOR_FLAG)) {
+                               & EIGRP_ROUTE_DESCRIPTOR_SUCCESSOR_FLAG)) {
                                return EIGRP_FSM_EVENT_DINC;
                        } else if (prefix->rij->count) {
                                return EIGRP_FSM_KEEP_STATE;
@@ -396,7 +396,7 @@ eigrp_get_fsm_event(struct eigrp_fsm_action_message *msg)
                } else if (msg->packet_type == EIGRP_OPC_UPDATE
                           && change == METRIC_INCREASE
                           && (entry->flags
-                              & EIGRP_NEXTHOP_ENTRY_SUCCESSOR_FLAG)) {
+                              & EIGRP_ROUTE_DESCRIPTOR_SUCCESSOR_FLAG)) {
                        return EIGRP_FSM_EVENT_DINC;
                }
                return EIGRP_FSM_KEEP_STATE;
@@ -434,9 +434,9 @@ int eigrp_fsm_event(struct eigrp_fsm_action_message *msg)
 int eigrp_fsm_event_nq_fcn(struct eigrp_fsm_action_message *msg)
 {
        struct eigrp *eigrp = msg->eigrp;
-       struct eigrp_prefix_entry *prefix = msg->prefix;
+       struct eigrp_prefix_descriptor *prefix = msg->prefix;
        struct list *successors = eigrp_topology_get_successor(prefix);
-       struct eigrp_nexthop_entry *ne;
+       struct eigrp_route_descriptor *ne;
 
        assert(successors); // If this is NULL we have shit the bed, fun huh?
 
@@ -461,9 +461,9 @@ int eigrp_fsm_event_nq_fcn(struct eigrp_fsm_action_message *msg)
 int eigrp_fsm_event_q_fcn(struct eigrp_fsm_action_message *msg)
 {
        struct eigrp *eigrp = msg->eigrp;
-       struct eigrp_prefix_entry *prefix = msg->prefix;
+       struct eigrp_prefix_descriptor *prefix = msg->prefix;
        struct list *successors = eigrp_topology_get_successor(prefix);
-       struct eigrp_nexthop_entry *ne;
+       struct eigrp_route_descriptor *ne;
 
        assert(successors); // If this is NULL somebody poked us in the eye.
 
@@ -487,8 +487,8 @@ int eigrp_fsm_event_q_fcn(struct eigrp_fsm_action_message *msg)
 int eigrp_fsm_event_keep_state(struct eigrp_fsm_action_message *msg)
 {
        struct eigrp *eigrp = msg->eigrp;
-       struct eigrp_prefix_entry *prefix = msg->prefix;
-       struct eigrp_nexthop_entry *ne = listnode_head(prefix->entries);
+       struct eigrp_prefix_descriptor *prefix = msg->prefix;
+       struct eigrp_route_descriptor *ne = listnode_head(prefix->entries);
 
        if (prefix->state == EIGRP_FSM_STATE_PASSIVE) {
                if (!eigrp_metrics_is_same(prefix->reported_metric,
@@ -515,8 +515,8 @@ int eigrp_fsm_event_keep_state(struct eigrp_fsm_action_message *msg)
 int eigrp_fsm_event_lr(struct eigrp_fsm_action_message *msg)
 {
        struct eigrp *eigrp = msg->eigrp;
-       struct eigrp_prefix_entry *prefix = msg->prefix;
-       struct eigrp_nexthop_entry *ne = listnode_head(prefix->entries);
+       struct eigrp_prefix_descriptor *prefix = msg->prefix;
+       struct eigrp_route_descriptor *ne = listnode_head(prefix->entries);
 
        prefix->fdistance = prefix->distance = prefix->rdistance = ne->distance;
        prefix->reported_metric = ne->total_metric;
@@ -545,7 +545,7 @@ int eigrp_fsm_event_lr(struct eigrp_fsm_action_message *msg)
 int eigrp_fsm_event_dinc(struct eigrp_fsm_action_message *msg)
 {
        struct list *successors = eigrp_topology_get_successor(msg->prefix);
-       struct eigrp_nexthop_entry *ne;
+       struct eigrp_route_descriptor *ne;
 
        assert(successors); // Trump and his big hands
 
@@ -566,8 +566,8 @@ int eigrp_fsm_event_dinc(struct eigrp_fsm_action_message *msg)
 int eigrp_fsm_event_lr_fcs(struct eigrp_fsm_action_message *msg)
 {
        struct eigrp *eigrp = msg->eigrp;
-       struct eigrp_prefix_entry *prefix = msg->prefix;
-       struct eigrp_nexthop_entry *ne = listnode_head(prefix->entries);
+       struct eigrp_prefix_descriptor *prefix = msg->prefix;
+       struct eigrp_route_descriptor *ne = listnode_head(prefix->entries);
 
        prefix->state = EIGRP_FSM_STATE_PASSIVE;
        prefix->distance = prefix->rdistance = ne->distance;
@@ -598,8 +598,8 @@ int eigrp_fsm_event_lr_fcs(struct eigrp_fsm_action_message *msg)
 int eigrp_fsm_event_lr_fcn(struct eigrp_fsm_action_message *msg)
 {
        struct eigrp *eigrp = msg->eigrp;
-       struct eigrp_prefix_entry *prefix = msg->prefix;
-       struct eigrp_nexthop_entry *best_successor;
+       struct eigrp_prefix_descriptor *prefix = msg->prefix;
+       struct eigrp_route_descriptor *best_successor;
        struct list *successors = eigrp_topology_get_successor(prefix);
 
        assert(successors); // Routing without a stack
@@ -628,7 +628,7 @@ int eigrp_fsm_event_lr_fcn(struct eigrp_fsm_action_message *msg)
 int eigrp_fsm_event_qact(struct eigrp_fsm_action_message *msg)
 {
        struct list *successors = eigrp_topology_get_successor(msg->prefix);
-       struct eigrp_nexthop_entry *ne;
+       struct eigrp_route_descriptor *ne;
 
        assert(successors); // Cats and no Dogs
 
index dd43dd047857612d88b2f5e5b749557309dcfa46..8400102c8a76892309cac6f97d59e3572bb09de2 100644 (file)
@@ -229,8 +229,8 @@ void eigrp_del_if_params(struct eigrp_if_params *eip)
 
 int eigrp_if_up(struct eigrp_interface *ei)
 {
-       struct eigrp_prefix_entry *pe;
-       struct eigrp_nexthop_entry *ne;
+       struct eigrp_prefix_descriptor *pe;
+       struct eigrp_route_descriptor *ne;
        struct eigrp_metrics metric;
        struct eigrp_interface *ei2;
        struct listnode *node, *nnode;
@@ -263,14 +263,14 @@ int eigrp_if_up(struct eigrp_interface *ei)
 
        /*Add connected entry to topology table*/
 
-       ne = eigrp_nexthop_entry_new();
+       ne = eigrp_route_descriptor_new();
        ne->ei = ei;
        ne->reported_metric = metric;
        ne->total_metric = metric;
        ne->distance = eigrp_calculate_metrics(eigrp, metric);
        ne->reported_distance = 0;
        ne->adv_router = eigrp->neighbor_self;
-       ne->flags = EIGRP_NEXTHOP_ENTRY_SUCCESSOR_FLAG;
+       ne->flags = EIGRP_ROUTE_DESCRIPTOR_SUCCESSOR_FLAG;
 
        struct prefix dest_addr;
 
@@ -280,7 +280,7 @@ int eigrp_if_up(struct eigrp_interface *ei)
                                              &dest_addr);
 
        if (pe == NULL) {
-               pe = eigrp_prefix_entry_new();
+               pe = eigrp_prefix_descriptor_new();
                pe->serno = eigrp->serno;
                pe->destination = (struct prefix *)prefix_ipv4_new();
                prefix_copy(pe->destination, &dest_addr);
@@ -292,10 +292,10 @@ int eigrp_if_up(struct eigrp_interface *ei)
                pe->state = EIGRP_FSM_STATE_PASSIVE;
                pe->fdistance = eigrp_calculate_metrics(eigrp, metric);
                pe->req_action |= EIGRP_FSM_NEED_UPDATE;
-               eigrp_prefix_entry_add(eigrp->topology_table, pe);
+               eigrp_prefix_descriptor_add(eigrp->topology_table, pe);
                listnode_add(eigrp->topology_changes_internalIPV4, pe);
 
-               eigrp_nexthop_entry_add(eigrp, pe, ne);
+               eigrp_route_descriptor_add(eigrp, pe, ne);
 
                for (ALL_LIST_ELEMENTS(eigrp->eiflist, node, nnode, ei2)) {
                        eigrp_update_send(ei2);
@@ -307,7 +307,7 @@ int eigrp_if_up(struct eigrp_interface *ei)
                struct eigrp_fsm_action_message msg;
 
                ne->prefix = pe;
-               eigrp_nexthop_entry_add(eigrp, pe, ne);
+               eigrp_route_descriptor_add(eigrp, pe, ne);
 
                msg.packet_type = EIGRP_OPC_UPDATE;
                msg.eigrp = eigrp;
@@ -416,7 +416,7 @@ uint8_t eigrp_default_iftype(struct interface *ifp)
 void eigrp_if_free(struct eigrp_interface *ei, int source)
 {
        struct prefix dest_addr;
-       struct eigrp_prefix_entry *pe;
+       struct eigrp_prefix_descriptor *pe;
        struct eigrp *eigrp = ei->eigrp;
 
        if (source == INTERFACE_DOWN_BY_VTY) {
@@ -429,7 +429,8 @@ void eigrp_if_free(struct eigrp_interface *ei, int source)
        pe = eigrp_topology_table_lookup_ipv4(eigrp->topology_table,
                                              &dest_addr);
        if (pe)
-               eigrp_prefix_entry_delete(eigrp, eigrp->topology_table, pe);
+               eigrp_prefix_descriptor_delete(eigrp, eigrp->topology_table,
+                                              pe);
 
        eigrp_if_down(ei);
 
index 85b14c28cec402b7a4c465f07362dfa1b5985940..57ca785340d63cc5108c9fd4a9e1d867fc0dec87 100644 (file)
@@ -37,6 +37,6 @@ DEFINE_MTYPE(EIGRPD, EIGRP_IPV4_INT_TLV, "EIGRP IPv4 TLV")
 DEFINE_MTYPE(EIGRPD, EIGRP_SEQ_TLV, "EIGRP SEQ TLV")
 DEFINE_MTYPE(EIGRPD, EIGRP_AUTH_TLV, "EIGRP AUTH TLV")
 DEFINE_MTYPE(EIGRPD, EIGRP_AUTH_SHA256_TLV, "EIGRP SHA TLV")
-DEFINE_MTYPE(EIGRPD, EIGRP_PREFIX_ENTRY, "EIGRP Prefix")
-DEFINE_MTYPE(EIGRPD, EIGRP_NEXTHOP_ENTRY, "EIGRP Nexthop Entry")
+DEFINE_MTYPE(EIGRPD, EIGRP_PREFIX_DESCRIPTOR, "EIGRP Prefix")
+DEFINE_MTYPE(EIGRPD, EIGRP_ROUTE_DESCRIPTOR, "EIGRP Nexthop Entry")
 DEFINE_MTYPE(EIGRPD, EIGRP_FSM_MSG, "EIGRP FSM Message")
index e4d02c09d490926d7e16420e54ca6764c97aa51c..21ecba2aaed00c8f8c23d75db91635fe34973ca8 100644 (file)
@@ -36,8 +36,8 @@ DECLARE_MTYPE(EIGRP_IPV4_INT_TLV)
 DECLARE_MTYPE(EIGRP_SEQ_TLV)
 DECLARE_MTYPE(EIGRP_AUTH_TLV)
 DECLARE_MTYPE(EIGRP_AUTH_SHA256_TLV)
-DECLARE_MTYPE(EIGRP_PREFIX_ENTRY)
-DECLARE_MTYPE(EIGRP_NEXTHOP_ENTRY)
+DECLARE_MTYPE(EIGRP_PREFIX_DESCRIPTOR)
+DECLARE_MTYPE(EIGRP_ROUTE_DESCRIPTOR)
 DECLARE_MTYPE(EIGRP_FSM_MSG)
 
 #endif /* _FRR_EIGRP_MEMORY_H */
index 2d5bb0a7d13e9969ff089abf2f0ead200086931e..1da2f7a10826df43036ec544552d852ce1591ee2 100644 (file)
@@ -343,7 +343,7 @@ void eigrp_nbr_hard_restart(struct eigrp_neighbor *nbr, struct vty *vty)
        eigrp_nbr_delete(nbr);
 }
 
-int eigrp_nbr_split_horizon_check(struct eigrp_nexthop_entry *ne,
+int eigrp_nbr_split_horizon_check(struct eigrp_route_descriptor *ne,
                                  struct eigrp_interface *ei)
 {
        if (ne->distance == EIGRP_MAX_METRIC)
index 1c308fa981d69de5f53471b371063f827ec7dd12..80ab1eded51af5d88e1e3576250527252b45ae8e 100644 (file)
@@ -54,6 +54,6 @@ 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,
+extern int eigrp_nbr_split_horizon_check(struct eigrp_route_descriptor *ne,
                                         struct eigrp_interface *ei);
 #endif /* _ZEBRA_EIGRP_NEIGHBOR_H */
index 51b499895946a504f2ae76f8f3ef319ebbeea10c..cb8f52c6d9bc22111a5f58316c223df09945b3d3 100644 (file)
@@ -380,7 +380,7 @@ uint32_t eigrp_calculate_metrics(struct eigrp *eigrp,
 }
 
 uint32_t eigrp_calculate_total_metrics(struct eigrp *eigrp,
-                                      struct eigrp_nexthop_entry *entry)
+                                      struct eigrp_route_descriptor *entry)
 {
        struct eigrp_interface *ei = entry->ei;
 
index 7839fc946b5e6fd398ed34e0d747c2142986a4db..831810abeb04ea1ec306da33db54b807fc91d7e3 100644 (file)
@@ -45,7 +45,7 @@ extern void eigrp_adjust_sndbuflen(struct eigrp *, unsigned int);
 
 extern uint32_t eigrp_calculate_metrics(struct eigrp *, struct eigrp_metrics);
 extern uint32_t eigrp_calculate_total_metrics(struct eigrp *,
-                                             struct eigrp_nexthop_entry *);
+                                             struct eigrp_route_descriptor *);
 extern uint8_t eigrp_metrics_is_same(struct eigrp_metrics,
                                     struct eigrp_metrics);
 extern void eigrp_external_routes_refresh(struct eigrp *, int);
index f5f6ab5dffe55bdcfc394e0513b4bb7340bdda0a..252cd647a2b5804d8ba7d3e2af7d7a1d4019593d 100644 (file)
@@ -1144,7 +1144,7 @@ struct TLV_IPv4_Internal_type *eigrp_read_ipv4_tlv(struct stream *s)
 }
 
 uint16_t eigrp_add_internalTLV_to_stream(struct stream *s,
-                                        struct eigrp_prefix_entry *pe)
+                                        struct eigrp_prefix_descriptor *pe)
 {
        uint16_t length;
 
index f354615fdb5f94cdd9ad91ab80307b6a575b4fe3..ed8c212a23847930028d9de1fc894c8bf0225f26 100644 (file)
@@ -56,8 +56,9 @@ extern void eigrp_fifo_reset(struct eigrp_fifo *);
 extern void eigrp_send_packet_reliably(struct eigrp_neighbor *);
 
 extern struct TLV_IPv4_Internal_type *eigrp_read_ipv4_tlv(struct stream *);
-extern uint16_t eigrp_add_internalTLV_to_stream(struct stream *,
-                                               struct eigrp_prefix_entry *);
+extern uint16_t
+eigrp_add_internalTLV_to_stream(struct stream *s,
+                               struct eigrp_prefix_descriptor *pe);
 extern uint16_t eigrp_add_authTLV_MD5_to_stream(struct stream *,
                                                struct eigrp_interface *);
 extern uint16_t eigrp_add_authTLV_SHA256_to_stream(struct stream *,
@@ -113,8 +114,8 @@ extern uint32_t eigrp_query_send_all(struct eigrp *);
 /*
  * These externs are found in eigrp_reply.c
  */
-extern void eigrp_send_reply(struct eigrp_neighbor *,
-                            struct eigrp_prefix_entry *);
+extern void eigrp_send_reply(struct eigrp_neighbor *neigh,
+                            struct eigrp_prefix_descriptor *pe);
 extern void eigrp_reply_receive(struct eigrp *, struct ip *,
                                struct eigrp_header *, struct stream *,
                                struct eigrp_interface *, int);
@@ -122,8 +123,8 @@ extern void eigrp_reply_receive(struct eigrp *, struct ip *,
 /*
  * These externs are found in eigrp_siaquery.c
  */
-extern void eigrp_send_siaquery(struct eigrp_neighbor *,
-                               struct eigrp_prefix_entry *);
+extern void eigrp_send_siaquery(struct eigrp_neighbor *neigh,
+                               struct eigrp_prefix_descriptor *pe);
 extern void eigrp_siaquery_receive(struct eigrp *, struct ip *,
                                   struct eigrp_header *, struct stream *,
                                   struct eigrp_interface *, int);
@@ -131,8 +132,8 @@ extern void eigrp_siaquery_receive(struct eigrp *, struct ip *,
 /*
  * These externs are found in eigrp_siareply.c
  */
-extern void eigrp_send_siareply(struct eigrp_neighbor *,
-                               struct eigrp_prefix_entry *);
+extern void eigrp_send_siareply(struct eigrp_neighbor *neigh,
+                               struct eigrp_prefix_descriptor *pe);
 extern void eigrp_siareply_receive(struct eigrp *, struct ip *,
                                   struct eigrp_header *, struct stream *,
                                   struct eigrp_interface *, int);
index 84dcf5e2d55a081b6dae3685aea58e12b2cf092f..0ab7b59dbb323c777d973aff0e40497c7f3f496b 100644 (file)
@@ -58,7 +58,7 @@ uint32_t eigrp_query_send_all(struct eigrp *eigrp)
 {
        struct eigrp_interface *iface;
        struct listnode *node, *node2, *nnode2;
-       struct eigrp_prefix_entry *pe;
+       struct eigrp_prefix_descriptor *pe;
        uint32_t counter;
 
        if (eigrp == NULL) {
@@ -118,7 +118,7 @@ void eigrp_query_receive(struct eigrp *eigrp, struct ip *iph,
                        dest_addr.family = AF_INET;
                        dest_addr.u.prefix4 = tlv->destination;
                        dest_addr.prefixlen = tlv->prefix_length;
-                       struct eigrp_prefix_entry *dest =
+                       struct eigrp_prefix_descriptor *dest =
                                eigrp_topology_table_lookup_ipv4(
                                        eigrp->topology_table, &dest_addr);
 
@@ -126,9 +126,9 @@ void eigrp_query_receive(struct eigrp *eigrp, struct ip *iph,
                         * know)*/
                        if (dest != NULL) {
                                struct eigrp_fsm_action_message msg;
-                               struct eigrp_nexthop_entry *entry =
-                                       eigrp_prefix_entry_lookup(dest->entries,
-                                                                 nbr);
+                               struct eigrp_route_descriptor *entry =
+                                       eigrp_route_descriptor_lookup(
+                                               dest->entries, nbr);
                                msg.packet_type = EIGRP_OPC_QUERY;
                                msg.eigrp = eigrp;
                                msg.data_type = EIGRP_INT;
@@ -164,7 +164,7 @@ void eigrp_send_query(struct eigrp_interface *ei)
        uint16_t length = EIGRP_HEADER_LEN;
        struct listnode *node, *nnode, *node2, *nnode2;
        struct eigrp_neighbor *nbr;
-       struct eigrp_prefix_entry *pe;
+       struct eigrp_prefix_descriptor *pe;
        bool has_tlv = false;
        bool new_packet = true;
        uint16_t eigrp_mtu = EIGRP_PACKET_MTU(ei->ifp->mtu);
index 26bb27d7ac6e9b30ca898211912d6f196ff09909..d16482173c009da82a418e2b6e472a065e5c7b2f 100644 (file)
 #include "eigrpd/eigrp_memory.h"
 #include "eigrpd/eigrp_errors.h"
 
-void eigrp_send_reply(struct eigrp_neighbor *nbr, struct eigrp_prefix_entry *pe)
+void eigrp_send_reply(struct eigrp_neighbor *nbr,
+                     struct eigrp_prefix_descriptor *pe)
 {
        struct eigrp_packet *ep;
        uint16_t length = EIGRP_HEADER_LEN;
        struct eigrp_interface *ei = nbr->ei;
        struct eigrp *eigrp = ei->eigrp;
-       struct eigrp_prefix_entry *pe2;
+       struct eigrp_prefix_descriptor *pe2;
 
        // TODO: Work in progress
        /* Filtering */
        /* get list from eigrp process */
-       pe2 = XCALLOC(MTYPE_EIGRP_PREFIX_ENTRY,
-                     sizeof(struct eigrp_prefix_entry));
-       memcpy(pe2, pe, sizeof(struct eigrp_prefix_entry));
+       pe2 = XCALLOC(MTYPE_EIGRP_PREFIX_DESCRIPTOR,
+                     sizeof(struct eigrp_prefix_descriptor));
+       memcpy(pe2, pe, sizeof(struct eigrp_prefix_descriptor));
 
        if (eigrp_update_prefix_apply(eigrp, ei, EIGRP_FILTER_OUT,
                                      pe2->destination)) {
@@ -122,7 +123,7 @@ void eigrp_send_reply(struct eigrp_neighbor *nbr, struct eigrp_prefix_entry *pe)
                eigrp_send_packet_reliably(nbr);
        }
 
-       XFREE(MTYPE_EIGRP_PREFIX_ENTRY, pe2);
+       XFREE(MTYPE_EIGRP_PREFIX_DESCRIPTOR, pe2);
 }
 
 /*EIGRP REPLY read function*/
@@ -161,7 +162,7 @@ void eigrp_reply_receive(struct eigrp *eigrp, struct ip *iph,
                dest_addr.family = AF_INET;
                dest_addr.u.prefix4 = tlv->destination;
                dest_addr.prefixlen = tlv->prefix_length;
-               struct eigrp_prefix_entry *dest =
+               struct eigrp_prefix_descriptor *dest =
                        eigrp_topology_table_lookup_ipv4(eigrp->topology_table,
                                                         &dest_addr);
                /*
@@ -177,8 +178,8 @@ void eigrp_reply_receive(struct eigrp *eigrp, struct ip *iph,
                }
 
                struct eigrp_fsm_action_message msg;
-               struct eigrp_nexthop_entry *entry =
-                       eigrp_prefix_entry_lookup(dest->entries, nbr);
+               struct eigrp_route_descriptor *entry =
+                       eigrp_route_descriptor_lookup(dest->entries, nbr);
 
                if (eigrp_update_prefix_apply(eigrp, ei, EIGRP_FILTER_IN,
                                              &dest_addr)) {
index e15f777954aad9e229c096593a90a7c86546dd87..5183e645e596c65123c5e12c7aba52dcb579d12f 100644 (file)
@@ -265,8 +265,8 @@ route_match_metric(void *rule, struct prefix *prefix, route_map_object_t type,
        //  uint32_t *metric;
        //  uint32_t  check;
        //  struct rip_info *rinfo;
-       //  struct eigrp_nexthop_entry *te;
-       //  struct eigrp_prefix_entry *pe;
+       //  struct eigrp_route_descriptor *te;
+       //  struct eigrp_prefix_descriptor *pe;
        //  struct listnode *node, *node2, *nnode, *nnode2;
        //  struct eigrp *e;
        //
index ff383254651a7759fc4bc968ca90d73ee9d7e65a..027700fe11a95322fefcd2d920c303b629bbb6b0 100644 (file)
@@ -87,7 +87,7 @@ void eigrp_siaquery_receive(struct eigrp *eigrp, struct ip *iph,
                        dest_addr.family = AFI_IP;
                        dest_addr.u.prefix4 = tlv->destination;
                        dest_addr.prefixlen = tlv->prefix_length;
-                       struct eigrp_prefix_entry *dest =
+                       struct eigrp_prefix_descriptor *dest =
                                eigrp_topology_table_lookup_ipv4(
                                        eigrp->topology_table, &dest_addr);
 
@@ -95,9 +95,9 @@ void eigrp_siaquery_receive(struct eigrp *eigrp, struct ip *iph,
                         * know)*/
                        if (dest != NULL) {
                                struct eigrp_fsm_action_message msg;
-                               struct eigrp_nexthop_entry *entry =
-                                       eigrp_prefix_entry_lookup(dest->entries,
-                                                                 nbr);
+                               struct eigrp_route_descriptor *entry =
+                                       eigrp_route_descriptor_lookup(
+                                               dest->entries, nbr);
                                msg.packet_type = EIGRP_OPC_SIAQUERY;
                                msg.eigrp = eigrp;
                                msg.data_type = EIGRP_INT;
@@ -114,7 +114,7 @@ void eigrp_siaquery_receive(struct eigrp *eigrp, struct ip *iph,
 }
 
 void eigrp_send_siaquery(struct eigrp_neighbor *nbr,
-                        struct eigrp_prefix_entry *pe)
+                        struct eigrp_prefix_descriptor *pe)
 {
        struct eigrp_packet *ep;
        uint16_t length = EIGRP_HEADER_LEN;
index d3dd123f909cb4f79862e77914b1ae10c370a777..590b224d68ec2c8e5ae2f39e020de05f530eccde 100644 (file)
@@ -86,7 +86,7 @@ void eigrp_siareply_receive(struct eigrp *eigrp, struct ip *iph,
                        dest_addr.family = AFI_IP;
                        dest_addr.u.prefix4 = tlv->destination;
                        dest_addr.prefixlen = tlv->prefix_length;
-                       struct eigrp_prefix_entry *dest =
+                       struct eigrp_prefix_descriptor *dest =
                                eigrp_topology_table_lookup_ipv4(
                                        eigrp->topology_table, &dest_addr);
 
@@ -94,9 +94,9 @@ void eigrp_siareply_receive(struct eigrp *eigrp, struct ip *iph,
                         * know)*/
                        if (dest != NULL) {
                                struct eigrp_fsm_action_message msg;
-                               struct eigrp_nexthop_entry *entry =
-                                       eigrp_prefix_entry_lookup(dest->entries,
-                                                                 nbr);
+                               struct eigrp_route_descriptor *entry =
+                                       eigrp_route_descriptor_lookup(
+                                               dest->entries, nbr);
                                msg.packet_type = EIGRP_OPC_SIAQUERY;
                                msg.eigrp = eigrp;
                                msg.data_type = EIGRP_INT;
@@ -113,7 +113,7 @@ void eigrp_siareply_receive(struct eigrp *eigrp, struct ip *iph,
 }
 
 void eigrp_send_siareply(struct eigrp_neighbor *nbr,
-                        struct eigrp_prefix_entry *pe)
+                        struct eigrp_prefix_descriptor *pe)
 {
        struct eigrp_packet *ep;
        uint16_t length = EIGRP_HEADER_LEN;
index 3ac6d0261f0ba4f0238a4883185da09a6edc398b..cddab57dd54ee4c35f8209ffe66bf417d3a92d4b 100644 (file)
@@ -48,6 +48,16 @@ struct eigrp_metrics {
        uint8_t flags;
 };
 
+struct eigrp_extdata {
+       uint32_t orig;
+       uint32_t as;
+       uint32_t tag;
+       uint32_t metric;
+       uint16_t reserved;
+       uint8_t protocol;
+       uint8_t flags;
+};
+
 struct eigrp {
        vrf_id_t vrf_id;
 
@@ -430,7 +440,7 @@ enum GR_type { EIGRP_GR_MANUAL, EIGRP_GR_FILTER };
 //---------------------------------------------------------------------------------------------------------------------------------------------
 
 /* EIGRP Topology table node structure */
-struct eigrp_prefix_entry {
+struct eigrp_prefix_descriptor {
        struct list *entries, *rij;
        uint32_t fdistance;                   // FD
        uint32_t rdistance;                   // RD
@@ -453,8 +463,14 @@ struct eigrp_prefix_entry {
 };
 
 /* EIGRP Topology table record structure */
-struct eigrp_nexthop_entry {
-       struct eigrp_prefix_entry *prefix;
+struct eigrp_route_descriptor {
+       uint16_t type;
+       uint16_t afi;
+
+       struct eigrp_prefix_descriptor *prefix;
+       struct eigrp_neighbor *adv_router;
+       struct in_addr nexthop;
+
        uint32_t reported_distance; // distance reported by neighbor
        uint32_t distance;        // sum of reported distance and link cost to
                                    // advertised neighbor
@@ -462,7 +478,9 @@ struct eigrp_nexthop_entry {
        struct eigrp_metrics reported_metric;
        struct eigrp_metrics total_metric;
 
-       struct eigrp_neighbor *adv_router; // ip address of advertising neighbor
+       struct eigrp_metrics metric;
+       struct eigrp_extdata extdata;
+
        uint8_t flags;                     // used for marking successor and FS
 
        struct eigrp_interface *ei; // pointer for case of connected entry
@@ -481,8 +499,8 @@ struct eigrp_fsm_action_message {
        uint8_t packet_type;               // UPDATE, QUERY, SIAQUERY, SIAREPLY
        struct eigrp *eigrp;               // which thread sent mesg
        struct eigrp_neighbor *adv_router; // advertising neighbor
-       struct eigrp_nexthop_entry *entry;
-       struct eigrp_prefix_entry *prefix;
+       struct eigrp_route_descriptor *entry;
+       struct eigrp_prefix_descriptor *prefix;
        msg_data_t data_type; // internal or external tlv type
        struct eigrp_metrics metrics;
        enum metric_change change;
index 2dbee166946f6003f238ea87de71d5ad0e6fd04f..8c3de2a9016b6edd119237c4f0d826a74ecd2084 100644 (file)
@@ -52,8 +52,8 @@
 #include "eigrpd/eigrp_fsm.h"
 #include "eigrpd/eigrp_memory.h"
 
-static int eigrp_nexthop_entry_cmp(struct eigrp_nexthop_entry *,
-                                  struct eigrp_nexthop_entry *);
+static int eigrp_route_descriptor_cmp(struct eigrp_route_descriptor *rd1,
+                                     struct eigrp_route_descriptor *rd2);
 
 /*
  * Returns linkedlist used as topology table
@@ -70,14 +70,14 @@ struct route_table *eigrp_topology_new(void)
  * Returns new created toplogy node
  * cmp - assigned function for comparing topology entry
  */
-struct eigrp_prefix_entry *eigrp_prefix_entry_new(void)
+struct eigrp_prefix_descriptor *eigrp_prefix_descriptor_new(void)
 {
-       struct eigrp_prefix_entry *new;
-       new = XCALLOC(MTYPE_EIGRP_PREFIX_ENTRY,
-                     sizeof(struct eigrp_prefix_entry));
+       struct eigrp_prefix_descriptor *new;
+       new = XCALLOC(MTYPE_EIGRP_PREFIX_DESCRIPTOR,
+                     sizeof(struct eigrp_prefix_descriptor));
        new->entries = list_new();
        new->rij = list_new();
-       new->entries->cmp = (int (*)(void *, void *))eigrp_nexthop_entry_cmp;
+       new->entries->cmp = (int (*)(void *, void *))eigrp_route_descriptor_cmp;
        new->distance = new->fdistance = new->rdistance = EIGRP_MAX_METRIC;
        new->destination = NULL;
 
@@ -87,8 +87,8 @@ struct eigrp_prefix_entry *eigrp_prefix_entry_new(void)
 /*
  * Topology entry comparison
  */
-static int eigrp_nexthop_entry_cmp(struct eigrp_nexthop_entry *entry1,
-                                  struct eigrp_nexthop_entry *entry2)
+static int eigrp_route_descriptor_cmp(struct eigrp_route_descriptor *entry1,
+                                     struct eigrp_route_descriptor *entry2)
 {
        if (entry1->distance < entry2->distance)
                return -1;
@@ -102,12 +102,12 @@ static int eigrp_nexthop_entry_cmp(struct eigrp_nexthop_entry *entry1,
  * Returns new topology entry
  */
 
-struct eigrp_nexthop_entry *eigrp_nexthop_entry_new(void)
+struct eigrp_route_descriptor *eigrp_route_descriptor_new(void)
 {
-       struct eigrp_nexthop_entry *new;
+       struct eigrp_route_descriptor *new;
 
-       new = XCALLOC(MTYPE_EIGRP_NEXTHOP_ENTRY,
-                     sizeof(struct eigrp_nexthop_entry));
+       new = XCALLOC(MTYPE_EIGRP_ROUTE_DESCRIPTOR,
+                     sizeof(struct eigrp_route_descriptor));
        new->reported_distance = EIGRP_MAX_METRIC;
        new->distance = EIGRP_MAX_METRIC;
 
@@ -126,8 +126,8 @@ void eigrp_topology_free(struct eigrp *eigrp, struct route_table *table)
 /*
  * Adding topology node to topology table
  */
-void eigrp_prefix_entry_add(struct route_table *topology,
-                           struct eigrp_prefix_entry *pe)
+void eigrp_prefix_descriptor_add(struct route_table *topology,
+                                struct eigrp_prefix_descriptor *pe)
 {
        struct route_node *rn;
 
@@ -146,9 +146,9 @@ void eigrp_prefix_entry_add(struct route_table *topology,
 /*
  * Adding topology entry to topology node
  */
-void eigrp_nexthop_entry_add(struct eigrp *eigrp,
-                            struct eigrp_prefix_entry *node,
-                            struct eigrp_nexthop_entry *entry)
+void eigrp_route_descriptor_add(struct eigrp *eigrp,
+                               struct eigrp_prefix_descriptor *node,
+                               struct eigrp_route_descriptor *entry)
 {
        struct list *l = list_new();
 
@@ -168,10 +168,11 @@ void eigrp_nexthop_entry_add(struct eigrp *eigrp,
 /*
  * Deleting topology node from topology table
  */
-void eigrp_prefix_entry_delete(struct eigrp *eigrp, struct route_table *table,
-                              struct eigrp_prefix_entry *pe)
+void eigrp_prefix_descriptor_delete(struct eigrp *eigrp,
+                                   struct route_table *table,
+                                   struct eigrp_prefix_descriptor *pe)
 {
-       struct eigrp_nexthop_entry *ne;
+       struct eigrp_route_descriptor *ne;
        struct listnode *node, *nnode;
        struct route_node *rn;
 
@@ -189,7 +190,7 @@ void eigrp_prefix_entry_delete(struct eigrp *eigrp, struct route_table *table,
        listnode_delete(eigrp->topology_changes_internalIPV4, pe);
 
        for (ALL_LIST_ELEMENTS(pe->entries, node, nnode, ne))
-               eigrp_nexthop_entry_delete(eigrp, pe, ne);
+               eigrp_route_descriptor_delete(eigrp, pe, ne);
        list_delete(&pe->entries);
        list_delete(&pe->rij);
        eigrp_zebra_route_delete(eigrp, pe->destination);
@@ -198,20 +199,20 @@ void eigrp_prefix_entry_delete(struct eigrp *eigrp, struct route_table *table,
        rn->info = NULL;
        route_unlock_node(rn); // Lookup above
        route_unlock_node(rn); // Initial creation
-       XFREE(MTYPE_EIGRP_PREFIX_ENTRY, pe);
+       XFREE(MTYPE_EIGRP_PREFIX_DESCRIPTOR, pe);
 }
 
 /*
  * Deleting topology entry from topology node
  */
-void eigrp_nexthop_entry_delete(struct eigrp *eigrp,
-                               struct eigrp_prefix_entry *node,
-                               struct eigrp_nexthop_entry *entry)
+void eigrp_route_descriptor_delete(struct eigrp *eigrp,
+                                  struct eigrp_prefix_descriptor *node,
+                                  struct eigrp_route_descriptor *entry)
 {
        if (listnode_lookup(node->entries, entry) != NULL) {
                listnode_delete(node->entries, entry);
                eigrp_zebra_route_delete(eigrp, node->destination);
-               XFREE(MTYPE_EIGRP_NEXTHOP_ENTRY, entry);
+               XFREE(MTYPE_EIGRP_ROUTE_DESCRIPTOR, entry);
        }
 }
 
@@ -222,7 +223,7 @@ void eigrp_topology_delete_all(struct eigrp *eigrp,
                               struct route_table *topology)
 {
        struct route_node *rn;
-       struct eigrp_prefix_entry *pe;
+       struct eigrp_prefix_descriptor *pe;
 
        for (rn = route_top(topology); rn; rn = route_next(rn)) {
                pe = rn->info;
@@ -230,15 +231,15 @@ void eigrp_topology_delete_all(struct eigrp *eigrp,
                if (!pe)
                        continue;
 
-               eigrp_prefix_entry_delete(eigrp, topology, pe);
+               eigrp_prefix_descriptor_delete(eigrp, topology, pe);
        }
 }
 
-struct eigrp_prefix_entry *
+struct eigrp_prefix_descriptor *
 eigrp_topology_table_lookup_ipv4(struct route_table *table,
                                 struct prefix *address)
 {
-       struct eigrp_prefix_entry *pe;
+       struct eigrp_prefix_descriptor *pe;
        struct route_node *rn;
 
        rn = route_node_lookup(table, address);
@@ -259,14 +260,15 @@ eigrp_topology_table_lookup_ipv4(struct route_table *table,
  * That way we can clean up all the list_new and list_delete's
  * that we are doing.  DBS
  */
-struct list *eigrp_topology_get_successor(struct eigrp_prefix_entry *table_node)
+struct list *
+eigrp_topology_get_successor(struct eigrp_prefix_descriptor *table_node)
 {
        struct list *successors = list_new();
-       struct eigrp_nexthop_entry *data;
+       struct eigrp_route_descriptor *data;
        struct listnode *node1, *node2;
 
        for (ALL_LIST_ELEMENTS(table_node->entries, node1, node2, data)) {
-               if (data->flags & EIGRP_NEXTHOP_ENTRY_SUCCESSOR_FLAG) {
+               if (data->flags & EIGRP_ROUTE_DESCRIPTOR_SUCCESSOR_FLAG) {
                        listnode_add(successors, data);
                }
        }
@@ -283,7 +285,7 @@ struct list *eigrp_topology_get_successor(struct eigrp_prefix_entry *table_node)
 }
 
 struct list *
-eigrp_topology_get_successor_max(struct eigrp_prefix_entry *table_node,
+eigrp_topology_get_successor_max(struct eigrp_prefix_descriptor *table_node,
                                 unsigned int maxpaths)
 {
        struct list *successors = eigrp_topology_get_successor(table_node);
@@ -300,10 +302,10 @@ eigrp_topology_get_successor_max(struct eigrp_prefix_entry *table_node,
        return successors;
 }
 
-struct eigrp_nexthop_entry *
-eigrp_prefix_entry_lookup(struct list *entries, struct eigrp_neighbor *nbr)
+struct eigrp_route_descriptor *
+eigrp_route_descriptor_lookup(struct list *entries, struct eigrp_neighbor *nbr)
 {
-       struct eigrp_nexthop_entry *data;
+       struct eigrp_route_descriptor *data;
        struct listnode *node, *nnode;
        for (ALL_LIST_ELEMENTS(entries, node, nnode, data)) {
                if (data->adv_router == nbr) {
@@ -319,8 +321,8 @@ struct list *eigrp_neighbor_prefixes_lookup(struct eigrp *eigrp,
                                            struct eigrp_neighbor *nbr)
 {
        struct listnode *node2, *node22;
-       struct eigrp_nexthop_entry *entry;
-       struct eigrp_prefix_entry *pe;
+       struct eigrp_route_descriptor *entry;
+       struct eigrp_prefix_descriptor *pe;
        struct route_node *rn;
 
        /* create new empty list for prefixes storage */
@@ -348,8 +350,8 @@ enum metric_change
 eigrp_topology_update_distance(struct eigrp_fsm_action_message *msg)
 {
        struct eigrp *eigrp = msg->eigrp;
-       struct eigrp_prefix_entry *prefix = msg->prefix;
-       struct eigrp_nexthop_entry *entry = msg->entry;
+       struct eigrp_prefix_descriptor *prefix = msg->prefix;
+       struct eigrp_route_descriptor *entry = msg->entry;
        enum metric_change change = METRIC_SAME;
        uint32_t new_reported_distance;
 
@@ -413,7 +415,7 @@ distance_done:
 
 void eigrp_topology_update_all_node_flags(struct eigrp *eigrp)
 {
-       struct eigrp_prefix_entry *pe;
+       struct eigrp_prefix_descriptor *pe;
        struct route_node *rn;
 
        if (!eigrp)
@@ -430,10 +432,10 @@ void eigrp_topology_update_all_node_flags(struct eigrp *eigrp)
 }
 
 void eigrp_topology_update_node_flags(struct eigrp *eigrp,
-                                     struct eigrp_prefix_entry *dest)
+                                     struct eigrp_prefix_descriptor *dest)
 {
        struct listnode *node;
-       struct eigrp_nexthop_entry *entry;
+       struct eigrp_route_descriptor *entry;
 
        for (ALL_LIST_ELEMENTS_RO(dest->entries, node, entry)) {
                if (entry->reported_distance < dest->fdistance) {
@@ -444,29 +446,29 @@ void eigrp_topology_update_node_flags(struct eigrp *eigrp,
                            && entry->distance != EIGRP_MAX_METRIC) {
                                // is successor
                                entry->flags |=
-                                       EIGRP_NEXTHOP_ENTRY_SUCCESSOR_FLAG;
+                                       EIGRP_ROUTE_DESCRIPTOR_SUCCESSOR_FLAG;
                                entry->flags &=
-                                       ~EIGRP_NEXTHOP_ENTRY_FSUCCESSOR_FLAG;
+                                       ~EIGRP_ROUTE_DESCRIPTOR_FSUCCESSOR_FLAG;
                        } else {
                                // is feasible successor only
                                entry->flags |=
-                                       EIGRP_NEXTHOP_ENTRY_FSUCCESSOR_FLAG;
+                                       EIGRP_ROUTE_DESCRIPTOR_FSUCCESSOR_FLAG;
                                entry->flags &=
-                                       ~EIGRP_NEXTHOP_ENTRY_SUCCESSOR_FLAG;
+                                       ~EIGRP_ROUTE_DESCRIPTOR_SUCCESSOR_FLAG;
                        }
                } else {
-                       entry->flags &= ~EIGRP_NEXTHOP_ENTRY_FSUCCESSOR_FLAG;
-                       entry->flags &= ~EIGRP_NEXTHOP_ENTRY_SUCCESSOR_FLAG;
+                       entry->flags &= ~EIGRP_ROUTE_DESCRIPTOR_FSUCCESSOR_FLAG;
+                       entry->flags &= ~EIGRP_ROUTE_DESCRIPTOR_SUCCESSOR_FLAG;
                }
        }
 }
 
 void eigrp_update_routing_table(struct eigrp *eigrp,
-                               struct eigrp_prefix_entry *prefix)
+                               struct eigrp_prefix_descriptor *prefix)
 {
        struct list *successors;
        struct listnode *node;
-       struct eigrp_nexthop_entry *entry;
+       struct eigrp_route_descriptor *entry;
 
        successors = eigrp_topology_get_successor_max(prefix, eigrp->max_paths);
 
@@ -474,13 +476,13 @@ void eigrp_update_routing_table(struct eigrp *eigrp,
                eigrp_zebra_route_add(eigrp, prefix->destination, successors,
                                      prefix->fdistance);
                for (ALL_LIST_ELEMENTS_RO(successors, node, entry))
-                       entry->flags |= EIGRP_NEXTHOP_ENTRY_INTABLE_FLAG;
+                       entry->flags |= EIGRP_ROUTE_DESCRIPTOR_INTABLE_FLAG;
 
                list_delete(&successors);
        } else {
                eigrp_zebra_route_delete(eigrp, prefix->destination);
                for (ALL_LIST_ELEMENTS_RO(prefix->entries, node, entry))
-                       entry->flags &= ~EIGRP_NEXTHOP_ENTRY_INTABLE_FLAG;
+                       entry->flags &= ~EIGRP_ROUTE_DESCRIPTOR_INTABLE_FLAG;
        }
 }
 
@@ -488,8 +490,8 @@ void eigrp_topology_neighbor_down(struct eigrp *eigrp,
                                  struct eigrp_neighbor *nbr)
 {
        struct listnode *node2, *node22;
-       struct eigrp_prefix_entry *pe;
-       struct eigrp_nexthop_entry *entry;
+       struct eigrp_prefix_descriptor *pe;
+       struct eigrp_route_descriptor *entry;
        struct route_node *rn;
 
        for (rn = route_top(eigrp->topology_table); rn; rn = route_next(rn)) {
@@ -521,18 +523,18 @@ void eigrp_topology_neighbor_down(struct eigrp *eigrp,
 
 void eigrp_update_topology_table_prefix(struct eigrp *eigrp,
                                        struct route_table *table,
-                                       struct eigrp_prefix_entry *prefix)
+                                       struct eigrp_prefix_descriptor *prefix)
 {
        struct listnode *node1, *node2;
 
-       struct eigrp_nexthop_entry *entry;
+       struct eigrp_route_descriptor *entry;
        for (ALL_LIST_ELEMENTS(prefix->entries, node1, node2, entry)) {
                if (entry->distance == EIGRP_MAX_METRIC) {
-                       eigrp_nexthop_entry_delete(eigrp, prefix, entry);
+                       eigrp_route_descriptor_delete(eigrp, prefix, entry);
                }
        }
        if (prefix->distance == EIGRP_MAX_METRIC
            && prefix->nt != EIGRP_TOPOLOGY_TYPE_CONNECTED) {
-               eigrp_prefix_entry_delete(eigrp, table, prefix);
+               eigrp_prefix_descriptor_delete(eigrp, table, prefix);
        }
 }
index 718cece40383ad9e814b18106982ea5d26b39b46..26fa1a11b0be1ed54317c8068bb3dc4a707368a5 100644 (file)
 /* 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
index cd30eb5ab5f60fe0d4110ecfaed468aa70ae73bb..db7b6d203e41588645f1b95734a26e43247abaf7 100644 (file)
@@ -101,11 +101,12 @@ bool eigrp_update_prefix_apply(struct eigrp *eigrp, struct eigrp_interface *ei,
  * Function is used for removing received prefix
  * from list of neighbor prefixes
  */
-static void remove_received_prefix_gr(struct list *nbr_prefixes,
-                                     struct eigrp_prefix_entry *recv_prefix)
+static void
+remove_received_prefix_gr(struct list *nbr_prefixes,
+                         struct eigrp_prefix_descriptor *recv_prefix)
 {
        struct listnode *node1, *node11;
-       struct eigrp_prefix_entry *prefix = NULL;
+       struct eigrp_prefix_descriptor *prefix = NULL;
 
        /* iterate over all prefixes in list */
        for (ALL_LIST_ELEMENTS(nbr_prefixes, node1, node11, prefix)) {
@@ -136,7 +137,7 @@ static void eigrp_update_receive_GR_ask(struct eigrp *eigrp,
                                        struct list *nbr_prefixes)
 {
        struct listnode *node1;
-       struct eigrp_prefix_entry *prefix;
+       struct eigrp_prefix_descriptor *prefix;
        struct eigrp_fsm_action_message fsm_msg;
 
        /* iterate over all prefixes which weren't advertised by neighbor */
@@ -148,8 +149,8 @@ static void eigrp_update_receive_GR_ask(struct eigrp *eigrp,
                /* set delay to MAX */
                fsm_msg.metrics.delay = EIGRP_MAX_METRIC;
 
-               struct eigrp_nexthop_entry *entry =
-                       eigrp_prefix_entry_lookup(prefix->entries, nbr);
+               struct eigrp_route_descriptor *entry =
+                       eigrp_route_descriptor_lookup(prefix->entries, nbr);
 
                fsm_msg.packet_type = EIGRP_OPC_UPDATE;
                fsm_msg.eigrp = eigrp;
@@ -172,8 +173,8 @@ void eigrp_update_receive(struct eigrp *eigrp, struct ip *iph,
 {
        struct eigrp_neighbor *nbr;
        struct TLV_IPv4_Internal_type *tlv;
-       struct eigrp_prefix_entry *pe;
-       struct eigrp_nexthop_entry *ne;
+       struct eigrp_prefix_descriptor *pe;
+       struct eigrp_route_descriptor *ne;
        uint32_t flags;
        uint16_t type;
        uint16_t length;
@@ -304,7 +305,7 @@ void eigrp_update_receive(struct eigrp *eigrp, struct ip *iph,
                        dest_addr.family = AF_INET;
                        dest_addr.u.prefix4 = tlv->destination;
                        dest_addr.prefixlen = tlv->prefix_length;
-                       struct eigrp_prefix_entry *dest =
+                       struct eigrp_prefix_descriptor *dest =
                                eigrp_topology_table_lookup_ipv4(
                                        eigrp->topology_table, &dest_addr);
 
@@ -317,9 +318,9 @@ void eigrp_update_receive(struct eigrp *eigrp, struct ip *iph,
                                                                  dest);
 
                                struct eigrp_fsm_action_message msg;
-                               struct eigrp_nexthop_entry *entry =
-                                       eigrp_prefix_entry_lookup(dest->entries,
-                                                                 nbr);
+                               struct eigrp_route_descriptor *entry =
+                                       eigrp_route_descriptor_lookup(
+                                               dest->entries, nbr);
 
                                msg.packet_type = EIGRP_OPC_UPDATE;
                                msg.eigrp = eigrp;
@@ -331,7 +332,7 @@ void eigrp_update_receive(struct eigrp *eigrp, struct ip *iph,
                                eigrp_fsm_event(&msg);
                        } else {
                                /*Here comes topology information save*/
-                               pe = eigrp_prefix_entry_new();
+                               pe = eigrp_prefix_descriptor_new();
                                pe->serno = eigrp->serno;
                                pe->destination =
                                        (struct prefix *)prefix_ipv4_new();
@@ -340,7 +341,7 @@ void eigrp_update_receive(struct eigrp *eigrp, struct ip *iph,
                                pe->state = EIGRP_FSM_STATE_PASSIVE;
                                pe->nt = EIGRP_TOPOLOGY_TYPE_REMOTE;
 
-                               ne = eigrp_nexthop_entry_new();
+                               ne = eigrp_route_descriptor_new();
                                ne->ei = ei;
                                ne->adv_router = nbr;
                                ne->reported_metric = tlv->metric;
@@ -361,11 +362,12 @@ void eigrp_update_receive(struct eigrp *eigrp, struct ip *iph,
                                pe->fdistance = pe->distance = pe->rdistance =
                                        ne->distance;
                                ne->prefix = pe;
-                               ne->flags = EIGRP_NEXTHOP_ENTRY_SUCCESSOR_FLAG;
+                               ne->flags =
+                                       EIGRP_ROUTE_DESCRIPTOR_SUCCESSOR_FLAG;
 
-                               eigrp_prefix_entry_add(eigrp->topology_table,
-                                                      pe);
-                               eigrp_nexthop_entry_add(eigrp, pe, ne);
+                               eigrp_prefix_descriptor_add(
+                                       eigrp->topology_table, pe);
+                               eigrp_route_descriptor_add(eigrp, pe, ne);
                                pe->distance = pe->fdistance = pe->rdistance =
                                        ne->distance;
                                pe->reported_metric = ne->total_metric;
@@ -527,8 +529,8 @@ void eigrp_update_send_EOT(struct eigrp_neighbor *nbr)
 {
        struct eigrp_packet *ep;
        uint16_t length = EIGRP_HEADER_LEN;
-       struct eigrp_nexthop_entry *te;
-       struct eigrp_prefix_entry *pe;
+       struct eigrp_route_descriptor *te;
+       struct eigrp_prefix_descriptor *pe;
        struct listnode *node2, *nnode2;
        struct eigrp_interface *ei = nbr->ei;
        struct eigrp *eigrp = ei->eigrp;
@@ -600,7 +602,7 @@ void eigrp_update_send(struct eigrp_interface *ei)
 {
        struct eigrp_packet *ep;
        struct listnode *node, *nnode;
-       struct eigrp_prefix_entry *pe;
+       struct eigrp_prefix_descriptor *pe;
        uint8_t has_tlv;
        struct eigrp *eigrp = ei->eigrp;
        struct prefix *dest_addr;
@@ -626,7 +628,7 @@ void eigrp_update_send(struct eigrp_interface *ei)
        has_tlv = 0;
        for (ALL_LIST_ELEMENTS(ei->eigrp->topology_changes_internalIPV4, node,
                               nnode, pe)) {
-               struct eigrp_nexthop_entry *ne;
+               struct eigrp_route_descriptor *ne;
 
                if (!(pe->req_action & EIGRP_FSM_NEED_UPDATE))
                        continue;
@@ -707,7 +709,7 @@ void eigrp_update_send_all(struct eigrp *eigrp,
 {
        struct eigrp_interface *iface;
        struct listnode *node, *node2, *nnode2;
-       struct eigrp_prefix_entry *pe;
+       struct eigrp_prefix_descriptor *pe;
 
        for (ALL_LIST_ELEMENTS_RO(eigrp->eiflist, node, iface)) {
                if (iface != exception) {
@@ -745,7 +747,7 @@ static void eigrp_update_send_GR_part(struct eigrp_neighbor *nbr)
 {
        struct eigrp_packet *ep;
        uint16_t length = EIGRP_HEADER_LEN;
-       struct eigrp_prefix_entry *pe;
+       struct eigrp_prefix_descriptor *pe;
        struct prefix *dest_addr;
        struct eigrp_interface *ei = nbr->ei;
        struct eigrp *eigrp = ei->eigrp;
@@ -837,8 +839,8 @@ static void eigrp_update_send_GR_part(struct eigrp_neighbor *nbr)
                        /* prepare message for FSM */
                        struct eigrp_fsm_action_message fsm_msg;
 
-                       struct eigrp_nexthop_entry *entry =
-                               eigrp_prefix_entry_lookup(pe->entries, nbr);
+                       struct eigrp_route_descriptor *entry =
+                               eigrp_route_descriptor_lookup(pe->entries, nbr);
 
                        fsm_msg.packet_type = EIGRP_OPC_UPDATE;
                        fsm_msg.eigrp = eigrp;
@@ -956,7 +958,7 @@ int eigrp_update_send_GR_thread(struct thread *thread)
 void eigrp_update_send_GR(struct eigrp_neighbor *nbr, enum GR_type gr_type,
                          struct vty *vty)
 {
-       struct eigrp_prefix_entry *pe2;
+       struct eigrp_prefix_descriptor *pe2;
        struct list *prefixes;
        struct route_node *rn;
        struct eigrp_interface *ei = nbr->ei;
index 66dfbaa5385dc5dc98050d35bff73c4c11b6ebf7..0809ac2cf08e63cb07dec3de540433d419a2b0c0 100644 (file)
 #include "eigrpd/eigrp_vty_clippy.c"
 #endif
 
-static void eigrp_vty_display_prefix_entry(struct vty *vty,
-                                          struct eigrp *eigrp,
-                                          struct eigrp_prefix_entry *pe,
+static void eigrp_vty_display_prefix_entry(struct vty *vty, struct eigrp *eigrp,
+                                          struct eigrp_prefix_descriptor *pe,
                                           bool all)
 {
        bool first = true;
-       struct eigrp_nexthop_entry *te;
+       struct eigrp_route_descriptor *te;
        struct listnode *node;
 
        for (ALL_LIST_ELEMENTS_RO(pe->entries, node, te)) {
                if (all
-                   || (((te->flags
-                         & EIGRP_NEXTHOP_ENTRY_SUCCESSOR_FLAG)
-                        == EIGRP_NEXTHOP_ENTRY_SUCCESSOR_FLAG)
-                       || ((te->flags
-                            & EIGRP_NEXTHOP_ENTRY_FSUCCESSOR_FLAG)
-                           == EIGRP_NEXTHOP_ENTRY_FSUCCESSOR_FLAG))) {
-                       show_ip_eigrp_nexthop_entry(vty, eigrp, te,
-                                                   &first);
+                   || (((te->flags & EIGRP_ROUTE_DESCRIPTOR_SUCCESSOR_FLAG)
+                        == EIGRP_ROUTE_DESCRIPTOR_SUCCESSOR_FLAG)
+                       || ((te->flags & EIGRP_ROUTE_DESCRIPTOR_FSUCCESSOR_FLAG)
+                           == EIGRP_ROUTE_DESCRIPTOR_FSUCCESSOR_FLAG))) {
+                       show_ip_eigrp_route_descriptor(vty, eigrp, te, &first);
                        first = false;
                }
        }
@@ -104,7 +100,7 @@ static struct eigrp *eigrp_vty_get_eigrp(struct vty *vty, const char *vrf_name)
 static void eigrp_topology_helper(struct vty *vty, struct eigrp *eigrp,
                                  const char *all)
 {
-       struct eigrp_prefix_entry *tn;
+       struct eigrp_prefix_descriptor *tn;
        struct route_node *rn;
 
        show_ip_eigrp_topology_header(vty, eigrp);
@@ -168,7 +164,7 @@ DEFPY (show_ip_eigrp_topology,
        "For a specific prefix\n")
 {
        struct eigrp *eigrp;
-       struct eigrp_prefix_entry *tn;
+       struct eigrp_prefix_descriptor *tn;
        struct route_node *rn;
        struct prefix cmp;
 
index 0795fbd6df510892b4c3226d8bb0eb89bcb09536..ec6b7d49de00215eafb4e4089277cb72b777a3a5 100644 (file)
@@ -194,7 +194,7 @@ void eigrp_zebra_route_add(struct eigrp *eigrp, struct prefix *p,
 {
        struct zapi_route api;
        struct zapi_nexthop *api_nh;
-       struct eigrp_nexthop_entry *te;
+       struct eigrp_route_descriptor *te;
        struct listnode *node;
        int count = 0;