private static SortedSet<VerboseEigrpEdge> getEigrpEdges(
Map<String, Configuration> configs, Topology topology) {
Network<EigrpInterface, EigrpEdge> eigrpTopology =
EigrpTopology.initEigrpTopology(configs, topology);
NetworkConfigurations nc = NetworkConfigurations.of(configs);
SortedSet<VerboseEigrpEdge> eigrpEdges = new TreeSet<>();
for (Configuration c : configs.values()) {
String hostname = c.getHostname();
for (Vrf vrf : c.getVrfs().values()) {
eigrpEdges.addAll(
vrf.getInterfaceNames().stream()
.map(ifaceName -> new EigrpInterface(hostname, ifaceName, vrf.getName()))
.filter(eigrpTopology.nodes()::contains)
.flatMap(n -> eigrpTopology.inEdges(n).stream())
.map(edge -> new VerboseEigrpEdge(edge, edge.toIpEdge(nc)))
.collect(ImmutableSortedSet.toImmutableSortedSet(Comparator.naturalOrder())));
}
}
return eigrpEdges;
}