Henk,
My initial assumption was implementation would move to
the BGP4MP_ENTRY subtype for table dumps as it does not encode
the peer AS (and any 32 bit AS numbers would be in the attribute information
which is transparent in MRT). However, given that peer AS info is
likely quite
useful, I'll go ahead and add these subtypes to the TABLE_DUMP
type.
-Larry
Henk Uijterwaal (RIPE NCC) wrote:
Hi all,
Paragraph 4.7 currently does not take 32 bit ASN into account. However,
as of 1/1/2007, these will start to show up in the routing table. To make
this work, I suggest to add 2 new subtypes to the TABLE_DUMP type:
- - -
4.7. TABLE_DUMP Type
The TABLE_DUMP Type is used to encode routing table dumps. The
Subtype is used to encode whether the table entry contains IPv4 or
IPv6 addresses. There are currently two possible values for the
Subtype as shown below.
1 AFI_IPv4
2 AFI_IPv6
- - -
Add:
3 AFI_IPv4_as32
4 AFI_IPv6_as32
for IPv4 and IPv6 in combination with 32 bit ASN. Then modify the
table as follows:
- - -
The format of the TABLE_DUMP Type for subtypes 3 and 4 is illustrated
below.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| View # | Sequence number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Prefix (variable) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Prefix Length | Status |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Originated Time |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Peer IP address (variable) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Peer AS |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Attribute Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| BGP Attribute... (variable)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- - - -
There will be 32 bit ASN in the BGP attributes and the software SHOULD
handle these correctly.
The main advantage that I see is that all existing tools that use table
dumps will either continue to work or are trivial to patch. Just do
something like:
if (subtype == 1 || subtype == 2) {
/* existing code */ }
else {
printf ("Unknown subtype\n");
}
or so.
Henk
------------------------------------------------------------------------------
Henk Uijterwaal Email: henk.uijterwaal(at)ripe.net
RIPE Network Coordination Centre http://www.amsterdamned.org/~henk
P.O.Box 10096 Singel 258 Phone: +31.20.5354414
1001 EB Amsterdam 1016 AB Amsterdam Fax: +31.20.5354445
The Netherlands The Netherlands Mobile: +31.6.55861746
------------------------------------------------------------------------------
_________________________________________________________________
web user interface: http://darkwing.uoregon.edu/~llynch/grow.html
web archive: http://darkwing.uoregon.edu/~llynch/grow/