SSF.OS.BGP4 Example: Selecting from Multiple Route Options

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

Network Graph

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.)