The Phase 2 decision function shall be invoked on completion of Phase
1. The Phase 2 function is a separate process which completes when
it has no further work to do. The Phase 2 process shall consider all
routes that are present in the Adj-RIBs-In, including those received
from BGP speakers located in its own autonomous system and those
received from BGP speakers located in neighboring autonomous systems.
The Phase 2 decision function shall be blocked from running while the
Phase 3 decision function is in process. The Phase 2 function shall
lock all Adj-RIBs-In prior to commencing its function, and shall
unlock them on completion.
If the NEXT_HOP attribute of a BGP route depicts an address to which
the local BGP speaker doesn't have a route in its Loc-RIB, the BGP
route SHOULD be excluded from the Phase 2 decision function.
For each set of destinations for which a feasible route exists in the
Adj-RIBs-In, the local BGP speaker shall identify the route that has:
the highest degree of preference of any route to the same set
of destinations, or
is the only route to that destination, or
is selected as a result of the Phase 2 tie breaking rules
specified in 9.1.2.1.
The local speaker SHALL then install that route in the Loc-RIB,
replacing any route to the same destination that is currently being
held in the Loc-RIB. The local speaker MUST determine the immediate
next hop to the address depicted by the NEXT_HOP attribute of the
selected route by performing a lookup in the IGP and selecting one of
the possible paths in the IGP. This immediate next hop MUST be used
when installing the selected route in the Loc-RIB. If the route to
the address depicted by the NEXT_HOP attribute changes such that the
immediate next hop changes, route selection should be recalculated as
specified above.
Unfeasible routes shall be removed from the Loc-RIB, and
corresponding unfeasible routes shall then be removed from the Adj-
RIBs-In.