in openr/py/openr/cli/commands/fib.py [0:0]
def run(self, cli_opts):
all_success = True
try:
decision_route_db = None
fib_route_db = None
lm_links = None
with get_openr_ctrl_client(cli_opts.host, cli_opts) as client:
# fetch routes from decision module
decision_route_db = client.getRouteDbComputed("")
# fetch routes from fib module
fib_route_db = client.getRouteDb()
# fetch link_db from link-monitor module
lm_links = client.getInterfaces().interfaceDetails
(decision_unicast_routes, decision_mpls_routes) = utils.get_routes(
decision_route_db
)
(fib_unicast_routes, fib_mpls_routes) = utils.get_routes(fib_route_db)
# fetch route from net_agent module
agent_unicast_routes = self.client.getRouteTableByClient(
self.client.client_id
)
except Exception as e:
print("Failed to validate Fib routes.")
print("Exception: {}".format(e))
raise e
# return 1
(ret, _) = utils.compare_route_db(
decision_unicast_routes,
fib_unicast_routes,
"unicast",
["Openr-Decision:unicast", "Openr-Fib:unicast"],
)
all_success = all_success and ret
(ret, _) = utils.compare_route_db(
decision_mpls_routes,
fib_mpls_routes,
"mpls",
["Openr-Decision:mpls", "Openr-Fib:mpls"],
)
all_success = all_success and ret
(ret, _) = utils.compare_route_db(
fib_unicast_routes,
agent_unicast_routes,
"unicast",
["Openr-Fib:unicast", "FibAgent:unicast"],
)
all_success = all_success and ret
# for backward compatibily of Open/R binary
try:
agent_mpls_routes = self.client.getMplsRouteTableByClient(
self.client.client_id
)
(ret, _) = utils.compare_route_db(
fib_mpls_routes,
agent_mpls_routes,
"mpls",
["Openr-Fib:mpls", "FibAgent:mpls"],
)
all_success = all_success and ret
except Exception:
pass
(ret, _) = utils.validate_route_nexthops(
fib_unicast_routes, lm_links, ["Openr-Fib:unicast", "LinkMonitor"]
)
all_success = all_success and ret
return 0 if all_success else -1