Disclaimer
This implementation of BGP-4 is constantly improving and evolving, and
examples are not always immediately updated to reflect the most
current version. It is usually (though not always) safe to assume
that an example still runs properly, but the DML files and the output
files may look different than the way there are described in some of
the accompanying documentation.
Compatibility
This example is up-to-date with SSF.OS.BGP4 version 1.1.0.
Conventions
For an explanation of
the debugging output used in this example, refer to BGP Debugging Output Conventions.
Overview
This example exhibits how routes are chosen when there is more than
one option to a particular destination.
Files
primary source: select.dml
library source: dictionary.dml
schema source: net.dml
raw output: select.out
Running
To run this example, SSFNet must be installed and the three source
files, as listed in the previous subsection, must be accessible. As
an example, if the three source files were together in the same
directory, the following command could be used to run the
simulation:
java SSF.Net.Net 10 select.dml dictionary.dml net.dml
Discussion
This example uses a simulation with three ASes connected in a triangle
shape. Shortly after the simulation is started, each BGP speaker
advertises its AS to its peers. Then the peers forward this routing
information to their peers. Because there is a loop in the graph of
the network, the routing information can take more than one path from
the BGP speaker that originally advertised it to any given BGP speaker
in another AS. We will examine the flow of routing information which
originates at AS1 and arrives at AS3. The configuration file used was
select.dml. (It may be useful at
this point to open that file in a separate window.)
Here's the output from the simulation, followed by an analysis of it:
001> 0.0 bgp@0:0 AS 3 id 0.0.0.17/32 prefix 0.0.0.16/29 002> 0.0 bgp@0:0 adding 0.0.0.16/29 (DoP = 100) to local route table 003> 0.0 bgp@1:0 AS 2 id 0.0.0.9/32 prefix 0.0.0.8/29 004> 0.0 bgp@1:0 adding 0.0.0.8/29 (DoP = 100) to local route table 005> 0.0 bgp@2:0 AS 1 id 0.0.0.1/32 prefix 0.0.0.0/29 006> 0.0 bgp@2:0 adding 0.0.0.0/29 (DoP = 100) to local route table 007> 5.52E-4 bgp@2:0 executing Decision Process Phase 3 008> 5.52E-4 bgp@2:0 building outgoing RIBs 009> 5.52E-4 bgp@2:0 adding 0.0.0.0/29 to outgoing RIB for bgp@0:0 [CFRI] 010> 5.52E-4 bgp@2:0 adding 0.0.0.0/29 to outgoing route table for peer 0 011> 5.52E-4 bgp@2:0 adding 0.0.0.0/29 to outgoing RIB for bgp@1:0 [CFRI] 012> 5.52E-4 bgp@2:0 adding 0.0.0.0/29 to outgoing route table for peer 1 013> 5.52E-4 bgp@2:0 snd update advertising my AS to bgp@1:0 rte=0.0.0.0/29 014> 5.52E-4 bgp@1:0 executing Decision Process Phase 3 015> 5.52E-4 bgp@1:0 building outgoing RIBs 016> 5.52E-4 bgp@1:0 adding 0.0.0.8/29 to outgoing RIB for bgp@0:0 [CFRI] 017> 5.52E-4 bgp@1:0 adding 0.0.0.8/29 to outgoing route table for peer 0 018> 5.52E-4 bgp@1:0 adding 0.0.0.8/29 to outgoing RIB for bgp@2:0 [CFRI] 019> 5.52E-4 bgp@1:0 adding 0.0.0.8/29 to outgoing route table for peer 1 020> 5.52E-4 bgp@1:0 snd update advertising my AS to bgp@2:0 rte=0.0.0.8/29 021> 5.52E-4 bgp@1:0 executing Decision Process Phase 3 022> 5.52E-4 bgp@1:0 building outgoing RIBs 023> 5.52E-4 bgp@1:0 skip rte to 0.0.0.8/29 (already put in RIB-Out for bgp@0:0) 024> 5.52E-4 bgp@1:0 skip rte to 0.0.0.8/29 (already put in RIB-Out for bgp@2:0) 025> 5.52E-4 bgp@1:0 snd update advertising my AS to bgp@0:0 rte=0.0.0.8/29 026> 5.52E-4 bgp@0:0 executing Decision Process Phase 3 027> 5.52E-4 bgp@0:0 building outgoing RIBs 028> 5.52E-4 bgp@0:0 adding 0.0.0.16/29 to outgoing RIB for bgp@1:0 [CFRI] 029> 5.52E-4 bgp@0:0 adding 0.0.0.16/29 to outgoing route table for peer 0 030> 5.52E-4 bgp@0:0 adding 0.0.0.16/29 to outgoing RIB for bgp@2:0 [CFRI] 031> 5.52E-4 bgp@0:0 adding 0.0.0.16/29 to outgoing route table for peer 1 032> 5.52E-4 bgp@0:0 snd update advertising my AS to bgp@1:0 rte=0.0.0.16/29 033> 5.52E-4 bgp@2:0 executing Decision Process Phase 3 034> 5.52E-4 bgp@2:0 building outgoing RIBs 035> 5.52E-4 bgp@2:0 skip rte to 0.0.0.0/29 (already put in RIB-Out for bgp@0:0) 036> 5.52E-4 bgp@2:0 skip rte to 0.0.0.0/29 (already put in RIB-Out for bgp@1:0) 037> 5.52E-4 bgp@2:0 snd update advertising my AS to bgp@0:0 rte=0.0.0.0/29 038> 5.52E-4 bgp@0:0 executing Decision Process Phase 3 039> 5.52E-4 bgp@0:0 building outgoing RIBs 040> 5.52E-4 bgp@0:0 skip rte to 0.0.0.16/29 (already put in RIB-Out for bgp@1:0) 041> 5.52E-4 bgp@0:0 skip rte to 0.0.0.16/29 (already put in RIB-Out for bgp@2:0) 042> 5.52E-4 bgp@0:0 snd update advertising my AS to bgp@2:0 rte=0.0.0.16/29 043> 6.83E-4 bgp@2:0 rcv update frm bgp@1:0 rte=0.0.0.8/29 044> 6.83E-4 bgp@2:0 adding 0.0.0.8/29 to incoming routes table (from bgp@1:0) 045> 6.83E-4 bgp@2:0 executing Decision Process Phase 1 046> 6.83E-4 bgp@2:0 degree of preference for 0.0.0.8/29 calculated to be 99 047> 6.83E-4 bgp@2:0 executing Decision Process Phase 2 048> 6.83E-4 bgp@2:0 selecting routes to install from bgp@0:0 049> 6.83E-4 bgp@2:0 selecting routes to install from bgp@1:0 050> 6.83E-4 bgp@2:0 adding 0.0.0.8/29 (DoP = 99) to local route table [CBRI] 051> 6.83E-4 bgp@2:0 adding 0.0.0.8/29 (DoP = 99) to local route table 052> 6.83E-4 bgp@2:0 executing Decision Process Phase 3 053> 6.83E-4 bgp@2:0 building outgoing RIBs 054> 6.83E-4 bgp@2:0 skip rte to 0.0.0.0/29 (already put in RIB-Out for bgp@0:0) 055> 6.83E-4 bgp@2:0 skip rte to 0.0.0.0/29 (already put in RIB-Out for bgp@1:0) 056> 6.83E-4 bgp@2:0 adding 0.0.0.8/29 to outgoing RIB for bgp@0:0 [CFRI] 057> 6.83E-4 bgp@2:0 adding 0.0.0.8/29 to outgoing route table for peer 0 058> 6.83E-4 bgp@2:0 skip rte to 0.0.0.8/29 (was received from bgp@1:0) 059> 6.83E-4 bgp@2:0 snd update to bgp@0:0 rte=0.0.0.8/29 060> 6.83E-4 bgp@0:0 rcv update frm bgp@1:0 rte=0.0.0.8/29 061> 6.83E-4 bgp@0:0 adding 0.0.0.8/29 to incoming routes table (from bgp@1:0) 062> 6.83E-4 bgp@0:0 executing Decision Process Phase 1 063> 6.83E-4 bgp@0:0 degree of preference for 0.0.0.8/29 calculated to be 99 064> 6.83E-4 bgp@0:0 executing Decision Process Phase 2 065> 6.83E-4 bgp@0:0 selecting routes to install from bgp@1:0 066> 6.83E-4 bgp@0:0 adding 0.0.0.8/29 (DoP = 99) to local route table [CBRI] 067> 6.83E-4 bgp@0:0 adding 0.0.0.8/29 (DoP = 99) to local route table 068> 6.83E-4 bgp@0:0 selecting routes to install from bgp@2:0 069> 6.83E-4 bgp@0:0 executing Decision Process Phase 3 070> 6.83E-4 bgp@0:0 building outgoing RIBs 071> 6.83E-4 bgp@0:0 skip rte to 0.0.0.8/29 (was received from bgp@1:0) 072> 6.83E-4 bgp@0:0 adding 0.0.0.8/29 to outgoing RIB for bgp@2:0 [CFRI] 073> 6.83E-4 bgp@0:0 adding 0.0.0.8/29 to outgoing route table for peer 1 074> 6.83E-4 bgp@0:0 skip rte to 0.0.0.16/29 (already put in RIB-Out for bgp@1:0) 075> 6.83E-4 bgp@0:0 skip rte to 0.0.0.16/29 (already put in RIB-Out for bgp@2:0) 076> 6.83E-4 bgp@0:0 snd update to bgp@2:0 rte=0.0.0.8/29 077> 6.83E-4 bgp@1:0 rcv update frm bgp@0:0 rte=0.0.0.16/29 078> 6.83E-4 bgp@1:0 adding 0.0.0.16/29 to incoming routes table (from bgp@0:0) 079> 6.83E-4 bgp@1:0 executing Decision Process Phase 1 080> 6.83E-4 bgp@1:0 degree of preference for 0.0.0.16/29 calculated to be 99 081> 6.83E-4 bgp@1:0 executing Decision Process Phase 2 082> 6.83E-4 bgp@1:0 selecting routes to install from bgp@0:0 083> 6.83E-4 bgp@1:0 adding 0.0.0.16/29 (DoP = 99) to local route table [CBRI] 084> 6.83E-4 bgp@1:0 adding 0.0.0.16/29 (DoP = 99) to local route table 085> 6.83E-4 bgp@1:0 selecting routes to install from bgp@2:0 086> 6.83E-4 bgp@1:0 executing Decision Process Phase 3 087> 6.83E-4 bgp@1:0 building outgoing RIBs 088> 6.83E-4 bgp@1:0 skip rte to 0.0.0.8/29 (already put in RIB-Out for bgp@0:0) 089> 6.83E-4 bgp@1:0 skip rte to 0.0.0.8/29 (already put in RIB-Out for bgp@2:0) 090> 6.83E-4 bgp@1:0 skip rte to 0.0.0.16/29 (was received from bgp@0:0) 091> 6.83E-4 bgp@1:0 adding 0.0.0.16/29 to outgoing RIB for bgp@2:0 [CFRI] 092> 6.83E-4 bgp@1:0 adding 0.0.0.16/29 to outgoing route table for peer 1 093> 6.83E-4 bgp@1:0 snd update to bgp@2:0 rte=0.0.0.16/29 094> 6.83E-4 bgp@0:0 rcv update frm bgp@2:0 rte=0.0.0.0/29 095> 6.83E-4 bgp@0:0 adding 0.0.0.0/29 to incoming routes table (from bgp@2:0) 096> 6.83E-4 bgp@0:0 executing Decision Process Phase 1 097> 6.83E-4 bgp@0:0 degree of preference for 0.0.0.0/29 calculated to be 99 098> 6.83E-4 bgp@0:0 executing Decision Process Phase 2 099> 6.83E-4 bgp@0:0 selecting routes to install from bgp@1:0 100> 6.83E-4 bgp@0:0 passing over route to 0.0.0.8/29 (identical to current one) 101> 6.83E-4 bgp@0:0 selecting routes to install from bgp@2:0 102> 6.83E-4 bgp@0:0 adding 0.0.0.0/29 (DoP = 99) to local route table [CBRI] 103> 6.83E-4 bgp@0:0 adding 0.0.0.0/29 (DoP = 99) to local route table 104> 6.83E-4 bgp@0:0 executing Decision Process Phase 3 105> 6.83E-4 bgp@0:0 building outgoing RIBs 106> 6.83E-4 bgp@0:0 adding 0.0.0.0/29 to outgoing RIB for bgp@1:0 [CFRI] 107> 6.83E-4 bgp@0:0 adding 0.0.0.0/29 to outgoing route table for peer 0 108> 6.83E-4 bgp@0:0 skip rte to 0.0.0.0/29 (was received from bgp@2:0) 109> 6.83E-4 bgp@0:0 skip rte to 0.0.0.8/29 (was received from bgp@1:0) 110> 6.83E-4 bgp@0:0 skip rte to 0.0.0.8/29 (already put in RIB-Out for bgp@2:0) 111> 6.83E-4 bgp@0:0 skip rte to 0.0.0.16/29 (already put in RIB-Out for bgp@1:0) 112> 6.83E-4 bgp@0:0 skip rte to 0.0.0.16/29 (already put in RIB-Out for bgp@2:0) 113> 6.83E-4 bgp@0:0 snd update to bgp@1:0 rte=0.0.0.0/29 114> 6.83E-4 bgp@2:0 rcv update frm bgp@0:0 rte=0.0.0.16/29 115> 6.83E-4 bgp@2:0 adding 0.0.0.16/29 to incoming routes table (from bgp@0:0) 116> 6.83E-4 bgp@2:0 executing Decision Process Phase 1 117> 6.83E-4 bgp@2:0 degree of preference for 0.0.0.16/29 calculated to be 99 118> 6.83E-4 bgp@2:0 executing Decision Process Phase 2 119> 6.83E-4 bgp@2:0 selecting routes to install from bgp@0:0 120> 6.83E-4 bgp@2:0 adding 0.0.0.16/29 (DoP = 99) to local route table [CBRI] 121> 6.83E-4 bgp@2:0 adding 0.0.0.16/29 (DoP = 99) to local route table 122> 6.83E-4 bgp@2:0 selecting routes to install from bgp@1:0 123> 6.83E-4 bgp@2:0 passing over route to 0.0.0.8/29 (identical to current one) 124> 6.83E-4 bgp@2:0 executing Decision Process Phase 3 125> 6.83E-4 bgp@2:0 building outgoing RIBs 126> 6.83E-4 bgp@2:0 skip rte to 0.0.0.0/29 (already put in RIB-Out for bgp@0:0) 127> 6.83E-4 bgp@2:0 skip rte to 0.0.0.0/29 (already put in RIB-Out for bgp@1:0) 128> 6.83E-4 bgp@2:0 skip rte to 0.0.0.8/29 (already put in RIB-Out for bgp@0:0) 129> 6.83E-4 bgp@2:0 skip rte to 0.0.0.8/29 (was received from bgp@1:0) 130> 6.83E-4 bgp@2:0 skip rte to 0.0.0.16/29 (was received from bgp@0:0) 131> 6.83E-4 bgp@2:0 adding 0.0.0.16/29 to outgoing RIB for bgp@1:0 [CFRI] 132> 6.83E-4 bgp@2:0 adding 0.0.0.16/29 to outgoing route table for peer 1 133> 6.83E-4 bgp@2:0 snd update to bgp@1:0 rte=0.0.0.16/29 134> 6.83E-4 bgp@1:0 rcv update frm bgp@2:0 rte=0.0.0.0/29 135> 6.83E-4 bgp@1:0 adding 0.0.0.0/29 to incoming routes table (from bgp@2:0) 136> 6.83E-4 bgp@1:0 executing Decision Process Phase 1 137> 6.83E-4 bgp@1:0 degree of preference for 0.0.0.0/29 calculated to be 99 138> 6.83E-4 bgp@1:0 executing Decision Process Phase 2 139> 6.83E-4 bgp@1:0 selecting routes to install from bgp@0:0 140> 6.83E-4 bgp@1:0 passing over route to 0.0.0.16/29 (identical to current one) 141> 6.83E-4 bgp@1:0 selecting routes to install from bgp@2:0 142> 6.83E-4 bgp@1:0 adding 0.0.0.0/29 (DoP = 99) to local route table [CBRI] 143> 6.83E-4 bgp@1:0 adding 0.0.0.0/29 (DoP = 99) to local route table 144> 6.83E-4 bgp@1:0 executing Decision Process Phase 3 145> 6.83E-4 bgp@1:0 building outgoing RIBs 146> 6.83E-4 bgp@1:0 adding 0.0.0.0/29 to outgoing RIB for bgp@0:0 [CFRI] 147> 6.83E-4 bgp@1:0 adding 0.0.0.0/29 to outgoing route table for peer 0 148> 6.83E-4 bgp@1:0 skip rte to 0.0.0.0/29 (was received from bgp@2:0) 149> 6.83E-4 bgp@1:0 skip rte to 0.0.0.8/29 (already put in RIB-Out for bgp@0:0) 150> 6.83E-4 bgp@1:0 skip rte to 0.0.0.8/29 (already put in RIB-Out for bgp@2:0) 151> 6.83E-4 bgp@1:0 skip rte to 0.0.0.16/29 (was received from bgp@0:0) 152> 6.83E-4 bgp@1:0 skip rte to 0.0.0.16/29 (already put in RIB-Out for bgp@2:0) 153> 6.83E-4 bgp@1:0 snd update to bgp@0:0 rte=0.0.0.0/29 154> 8.14E-4 bgp@0:0 rcv update frm bgp@2:0 rte=0.0.0.8/29 155> 8.14E-4 bgp@0:0 adding 0.0.0.8/29 to incoming routes table (from bgp@2:0) 156> 8.14E-4 bgp@0:0 executing Decision Process Phase 1 157> 8.14E-4 bgp@0:0 degree of preference for 0.0.0.8/29 calculated to be 98 158> 8.14E-4 bgp@0:0 executing Decision Process Phase 2 159> 8.14E-4 bgp@0:0 selecting routes to install from bgp@1:0 160> 8.14E-4 bgp@0:0 passing over route to 0.0.0.8/29 (identical to current one) 161> 8.14E-4 bgp@0:0 selecting routes to install from bgp@2:0 162> 8.14E-4 bgp@0:0 passing over route to 0.0.0.0/29 (identical to current one) 163> 8.14E-4 bgp@0:0 passing over route to 0.0.0.8/29 (DoP not better (98)) 164> 8.14E-4 bgp@0:0 executing Decision Process Phase 3 165> 8.14E-4 bgp@0:0 building outgoing RIBs 166> 8.14E-4 bgp@0:0 skip rte to 0.0.0.0/29 (already put in RIB-Out for bgp@1:0) 167> 8.14E-4 bgp@0:0 skip rte to 0.0.0.0/29 (was received from bgp@2:0) 168> 8.14E-4 bgp@0:0 skip rte to 0.0.0.8/29 (was received from bgp@1:0) 169> 8.14E-4 bgp@0:0 skip rte to 0.0.0.8/29 (already put in RIB-Out for bgp@2:0) 170> 8.14E-4 bgp@0:0 skip rte to 0.0.0.16/29 (already put in RIB-Out for bgp@1:0) 171> 8.14E-4 bgp@0:0 skip rte to 0.0.0.16/29 (already put in RIB-Out for bgp@2:0) 172> 8.14E-4 bgp@2:0 rcv update frm bgp@0:0 rte=0.0.0.8/29 173> 8.14E-4 bgp@2:0 adding 0.0.0.8/29 to incoming routes table (from bgp@0:0) 174> 8.14E-4 bgp@2:0 executing Decision Process Phase 1 175> 8.14E-4 bgp@2:0 degree of preference for 0.0.0.8/29 calculated to be 98 176> 8.14E-4 bgp@2:0 executing Decision Process Phase 2 177> 8.14E-4 bgp@2:0 selecting routes to install from bgp@0:0 178> 8.14E-4 bgp@2:0 passing over route to 0.0.0.8/29 (DoP not better (98)) 179> 8.14E-4 bgp@2:0 passing over route to 0.0.0.16/29 (identical to current one) 180> 8.14E-4 bgp@2:0 selecting routes to install from bgp@1:0 181> 8.14E-4 bgp@2:0 passing over route to 0.0.0.8/29 (identical to current one) 182> 8.14E-4 bgp@2:0 executing Decision Process Phase 3 183> 8.14E-4 bgp@2:0 building outgoing RIBs 184> 8.14E-4 bgp@2:0 skip rte to 0.0.0.0/29 (already put in RIB-Out for bgp@0:0) 185> 8.14E-4 bgp@2:0 skip rte to 0.0.0.0/29 (already put in RIB-Out for bgp@1:0) 186> 8.14E-4 bgp@2:0 skip rte to 0.0.0.8/29 (already put in RIB-Out for bgp@0:0) 187> 8.14E-4 bgp@2:0 skip rte to 0.0.0.8/29 (was received from bgp@1:0) 188> 8.14E-4 bgp@2:0 skip rte to 0.0.0.16/29 (was received from bgp@0:0) 189> 8.14E-4 bgp@2:0 skip rte to 0.0.0.16/29 (already put in RIB-Out for bgp@1:0) 190> 8.14E-4 bgp@2:0 rcv update frm bgp@1:0 rte=0.0.0.16/29 191> 8.14E-4 bgp@2:0 adding 0.0.0.16/29 to incoming routes table (from bgp@1:0) 192> 8.14E-4 bgp@2:0 executing Decision Process Phase 1 193> 8.14E-4 bgp@2:0 degree of preference for 0.0.0.16/29 calculated to be 98 194> 8.14E-4 bgp@2:0 executing Decision Process Phase 2 195> 8.14E-4 bgp@2:0 selecting routes to install from bgp@0:0 196> 8.14E-4 bgp@2:0 passing over route to 0.0.0.8/29 (DoP not better (98)) 197> 8.14E-4 bgp@2:0 passing over route to 0.0.0.16/29 (identical to current one) 198> 8.14E-4 bgp@2:0 selecting routes to install from bgp@1:0 199> 8.14E-4 bgp@2:0 passing over route to 0.0.0.8/29 (identical to current one) 200> 8.14E-4 bgp@2:0 passing over route to 0.0.0.16/29 (DoP not better (98)) 201> 8.14E-4 bgp@2:0 executing Decision Process Phase 3 202> 8.14E-4 bgp@2:0 building outgoing RIBs 203> 8.14E-4 bgp@2:0 skip rte to 0.0.0.0/29 (already put in RIB-Out for bgp@0:0) 204> 8.14E-4 bgp@2:0 skip rte to 0.0.0.0/29 (already put in RIB-Out for bgp@1:0) 205> 8.14E-4 bgp@2:0 skip rte to 0.0.0.8/29 (already put in RIB-Out for bgp@0:0) 206> 8.14E-4 bgp@2:0 skip rte to 0.0.0.8/29 (was received from bgp@1:0) 207> 8.14E-4 bgp@2:0 skip rte to 0.0.0.16/29 (was received from bgp@0:0) 208> 8.14E-4 bgp@2:0 skip rte to 0.0.0.16/29 (already put in RIB-Out for bgp@1:0) 209> 8.44E-4 bgp@1:0 rcv update frm bgp@2:0 rte=0.0.0.16/29 210> 8.44E-4 bgp@1:0 adding 0.0.0.16/29 to incoming routes table (from bgp@2:0) 211> 8.44E-4 bgp@1:0 executing Decision Process Phase 1 212> 8.44E-4 bgp@1:0 degree of preference for 0.0.0.16/29 calculated to be 98 213> 8.44E-4 bgp@1:0 executing Decision Process Phase 2 214> 8.44E-4 bgp@1:0 selecting routes to install from bgp@0:0 215> 8.44E-4 bgp@1:0 passing over route to 0.0.0.16/29 (identical to current one) 216> 8.44E-4 bgp@1:0 selecting routes to install from bgp@2:0 217> 8.44E-4 bgp@1:0 passing over route to 0.0.0.0/29 (identical to current one) 218> 8.44E-4 bgp@1:0 passing over route to 0.0.0.16/29 (DoP not better (98)) 219> 8.44E-4 bgp@1:0 executing Decision Process Phase 3 220> 8.44E-4 bgp@1:0 building outgoing RIBs 221> 8.44E-4 bgp@1:0 skip rte to 0.0.0.0/29 (already put in RIB-Out for bgp@0:0) 222> 8.44E-4 bgp@1:0 skip rte to 0.0.0.0/29 (was received from bgp@2:0) 223> 8.44E-4 bgp@1:0 skip rte to 0.0.0.8/29 (already put in RIB-Out for bgp@0:0) 224> 8.44E-4 bgp@1:0 skip rte to 0.0.0.8/29 (already put in RIB-Out for bgp@2:0) 225> 8.44E-4 bgp@1:0 skip rte to 0.0.0.16/29 (was received from bgp@0:0) 226> 8.44E-4 bgp@1:0 skip rte to 0.0.0.16/29 (already put in RIB-Out for bgp@2:0) 227> 8.44E-4 bgp@0:0 rcv update frm bgp@1:0 rte=0.0.0.0/29 228> 8.44E-4 bgp@0:0 adding 0.0.0.0/29 to incoming routes table (from bgp@1:0) 229> 8.44E-4 bgp@0:0 executing Decision Process Phase 1 230> 8.44E-4 bgp@0:0 degree of preference for 0.0.0.0/29 calculated to be 98 231> 8.44E-4 bgp@0:0 executing Decision Process Phase 2 232> 8.44E-4 bgp@0:0 selecting routes to install from bgp@1:0 233> 8.44E-4 bgp@0:0 passing over route to 0.0.0.0/29 (DoP not better (98)) 234> 8.44E-4 bgp@0:0 passing over route to 0.0.0.8/29 (identical to current one) 235> 8.44E-4 bgp@0:0 selecting routes to install from bgp@2:0 236> 8.44E-4 bgp@0:0 passing over route to 0.0.0.0/29 (identical to current one) 237> 8.44E-4 bgp@0:0 passing over route to 0.0.0.8/29 (DoP not better (98)) 238> 8.44E-4 bgp@0:0 executing Decision Process Phase 3 239> 8.44E-4 bgp@0:0 building outgoing RIBs 240> 8.44E-4 bgp@0:0 skip rte to 0.0.0.0/29 (already put in RIB-Out for bgp@1:0) 241> 8.44E-4 bgp@0:0 skip rte to 0.0.0.0/29 (was received from bgp@2:0) 242> 8.44E-4 bgp@0:0 skip rte to 0.0.0.8/29 (was received from bgp@1:0) 243> 8.44E-4 bgp@0:0 skip rte to 0.0.0.8/29 (already put in RIB-Out for bgp@2:0) 244> 8.44E-4 bgp@0:0 skip rte to 0.0.0.16/29 (already put in RIB-Out for bgp@1:0) 245> 8.44E-4 bgp@0:0 skip rte to 0.0.0.16/29 (already put in RIB-Out for bgp@2:0) 246> 8.44E-4 bgp@1:0 rcv update frm bgp@0:0 rte=0.0.0.0/29 247> 8.44E-4 bgp@1:0 adding 0.0.0.0/29 to incoming routes table (from bgp@0:0) 248> 8.44E-4 bgp@1:0 executing Decision Process Phase 1 249> 8.44E-4 bgp@1:0 degree of preference for 0.0.0.0/29 calculated to be 98 250> 8.44E-4 bgp@1:0 executing Decision Process Phase 2 251> 8.44E-4 bgp@1:0 selecting routes to install from bgp@0:0 252> 8.44E-4 bgp@1:0 passing over route to 0.0.0.0/29 (DoP not better (98)) 253> 8.44E-4 bgp@1:0 passing over route to 0.0.0.16/29 (identical to current one) 254> 8.44E-4 bgp@1:0 selecting routes to install from bgp@2:0 255> 8.44E-4 bgp@1:0 passing over route to 0.0.0.0/29 (identical to current one) 256> 8.44E-4 bgp@1:0 passing over route to 0.0.0.16/29 (DoP not better (98)) 257> 8.44E-4 bgp@1:0 executing Decision Process Phase 3 258> 8.44E-4 bgp@1:0 building outgoing RIBs 259> 8.44E-4 bgp@1:0 skip rte to 0.0.0.0/29 (already put in RIB-Out for bgp@0:0) 260> 8.44E-4 bgp@1:0 skip rte to 0.0.0.0/29 (was received from bgp@2:0) 261> 8.44E-4 bgp@1:0 skip rte to 0.0.0.8/29 (already put in RIB-Out for bgp@0:0) 262> 8.44E-4 bgp@1:0 skip rte to 0.0.0.8/29 (already put in RIB-Out for bgp@2:0) 263> 8.44E-4 bgp@1:0 skip rte to 0.0.0.16/29 (was received from bgp@0:0) 264> 8.44E-4 bgp@1:0 skip rte to 0.0.0.16/29 (already put in RIB-Out for bgp@2:0) |
On lines 13 and 37, the BGP speaker at AS 1 originates routing information for AS 1 by advertising it to its two peers at AS 2 and AS 3. On line 94, BGP at AS 3 receives such an advertisement. On line 134, BGP at AS 2 receives its copy of the advertisement. Since we are only interested in the routing information flowing from AS 1 to AS 3, we'll ignore the fact that BGP at AS 3 forwards this information on to AS 2 (line 113). We will follow it from BGP at AS 2, however. Line 153 indicates that this speaker forwards the information on to AS 3.
On line 227, BGP at AS 3 receives this information from AS 2. (Note that this occurs after the information was received directly from AS 1 (line 94). Because all links used in this simulation are identical, it takes about twice as long to go from 1 to 2 to 3 than directly from 1 to 3.) On line 230, the degree of preference is calculated for this route to AS 1. (It is calculated to be 98, or 100 - (number_of_hops), according to policy at this BGP speaker. Higher values mean higher preference.) Line 232 indicates that the speaker is selecting which new routes received from AS 2, if any, should be installed for use. Line 233 shows that the route which was just received was passed over for inclusion in the local forwarding table because its degree of preference was not better than the current route being used for that destination. (Note on line 97 that the direct route from AS 3 to AS 1 had a degree of preference of 99, better than 98.) (Also note that a symmetric trace could be done given any source-destination pair in this simulation.)