public List<String> printFibEntries() {
List<String> result = new ArrayList<String>();
result.add(String.format(" %-7s %-20s %-20s %-7s %-7s", "RD", "Prefix", "NextHop", "Label", "Origin"));
result.add("-------------------------------------------------------------------");
InstanceIdentifier<FibEntries> id = InstanceIdentifier.create(FibEntries.class);
Optional<FibEntries> fibEntries = FibUtil.read(dataBroker, LogicalDatastoreType.CONFIGURATION, id);
if (fibEntries.isPresent()) {
List<VrfTables> vrfTables = fibEntries.get().getVrfTables();
for (VrfTables vrfTable : vrfTables) {
for (VrfEntry vrfEntry : vrfTable.getVrfEntry()) {
for (String nextHop : vrfEntry.getNextHopAddressList()) {
result.add(String.format(" %-7s %-20s %-20s %-7s %-7s",
vrfTable.getRouteDistinguisher(),
vrfEntry.getDestPrefix(), nextHop, vrfEntry.getLabel(), vrfEntry.getOrigin()));
}
if (vrfEntry.getNextHopAddressList().isEmpty()) {
result.add(String.format(" %-7s %-20s %-20s %-7s %-7s",
vrfTable.getRouteDistinguisher(),
vrfEntry.getDestPrefix(), "local", vrfEntry.getLabel(), vrfEntry.getOrigin()));
}
}
}
}
return result;
}