summaryrefslogtreecommitdiff
path: root/eigrpd/eigrp_vty.c
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2019-02-03 15:47:53 -0500
committerDonald Sharp <sharpd@cumulusnetworks.com>2019-02-03 17:45:08 -0500
commitb0534a89201fd8cc6216f7bbffb37a931b21079f (patch)
treec104a3374736bdcecd9c604571813e9b581571f0 /eigrpd/eigrp_vty.c
parent95fc2ae7911d32056a411c3d0caac5f8b9a628b2 (diff)
eigrpd: Abstract display of an individual entry
Abstract the individual display of a entry in the eigrp topology table. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'eigrpd/eigrp_vty.c')
-rw-r--r--eigrpd/eigrp_vty.c42
1 files changed, 25 insertions, 17 deletions
diff --git a/eigrpd/eigrp_vty.c b/eigrpd/eigrp_vty.c
index f1de59e0aa..a6e03b22b2 100644
--- a/eigrpd/eigrp_vty.c
+++ b/eigrpd/eigrp_vty.c
@@ -455,6 +455,30 @@ DEFUN (no_eigrp_neighbor,
return CMD_SUCCESS;
}
+static void eigrp_vty_display_prefix_entry(struct vty *vty,
+ struct eigrp *eigrp,
+ struct eigrp_prefix_entry *pe,
+ bool all)
+{
+ bool first = true;
+ struct eigrp_nexthop_entry *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);
+ first = false;
+ }
+ }
+}
+
DEFUN (show_ip_eigrp_topology,
show_ip_eigrp_topology_cmd,
"show ip eigrp topology [all-links]",
@@ -465,11 +489,8 @@ DEFUN (show_ip_eigrp_topology,
"Show all links in topology table\n")
{
struct eigrp *eigrp;
- struct listnode *node;
struct eigrp_prefix_entry *tn;
- struct eigrp_nexthop_entry *te;
struct route_node *rn;
- bool first;
eigrp = eigrp_lookup();
if (eigrp == NULL) {
@@ -484,20 +505,7 @@ DEFUN (show_ip_eigrp_topology,
continue;
tn = rn->info;
- first = true;
- for (ALL_LIST_ELEMENTS_RO(tn->entries, node, te)) {
- if (argc == 5
- || (((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);
- first = 0;
- }
- }
+ eigrp_vty_display_prefix_entry(vty, eigrp, tn, argc == 5);
}
return CMD_SUCCESS;