draft-ietf-grow-mrt-03.txt | draft-ietf-grow-mrt-04.txt | |||
---|---|---|---|---|
Network Working Group L. Blunk | Network Working Group L. Blunk | |||
Internet-Draft M. Karir | Internet-Draft M. Karir | |||
Expires: December 28, 2006 Merit Network | Intended status: Standards Track Merit Network | |||
C. Labovitz | Expires: September 6, 2007 C. Labovitz | |||
Arbor Networks | Arbor Networks | |||
June 26, 2006 | March 5, 2007 | |||
MRT routing information export format | MRT routing information export format | |||
draft-ietf-grow-mrt-03.txt | draft-ietf-grow-mrt-04.txt | |||
Status of this Memo | Status of this Memo | |||
By submitting this Internet-Draft, each author represents that any | By submitting this Internet-Draft, each author represents that any | |||
applicable patent or other IPR claims of which he or she is aware | applicable patent or other IPR claims of which he or she is aware | |||
have been or will be disclosed, and any of which he or she becomes | have been or will be disclosed, and any of which he or she becomes | |||
aware will be disclosed, in accordance with Section 6 of BCP 79. | aware will be disclosed, in accordance with Section 6 of BCP 79. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
skipping to change at page 1, line 36 | skipping to change at page 1, line 36 | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
This Internet-Draft will expire on December 28, 2006. | This Internet-Draft will expire on September 6, 2007. | |||
Copyright Notice | Copyright Notice | |||
Copyright (C) The Internet Society (2006). | Copyright (C) The IETF Trust (2007). | |||
Abstract | Abstract | |||
This document describes the MRT format for routing information | This document describes the MRT format for routing information | |||
export. This format was developed in concert with the Multi-threaded | export. This format was developed in concert with the Multi-threaded | |||
Routing Toolkit (MRT) from whence the format takes it name. The MRT | Routing Toolkit (MRT) from whence the format takes it name. The | |||
format was initially defined in the MRT Programmer's Guide [9]. The | ||||
format can be used to export routing protocol messages, state | format can be used to export routing protocol messages, state | |||
changes, and routing information base contents. | changes, and routing information base contents. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Requirements notation . . . . . . . . . . . . . . . . . . . . 4 | |||
2. Basic MRT Format . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
3. MRT Control Types . . . . . . . . . . . . . . . . . . . . . . 6 | 3. Basic MRT Format . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
3.1. NULL Type . . . . . . . . . . . . . . . . . . . . . . . . 6 | 4. MRT Control Types . . . . . . . . . . . . . . . . . . . . . . 8 | |||
3.2. START Type . . . . . . . . . . . . . . . . . . . . . . . . 6 | 4.1. NULL Type . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
3.3. DIE Type . . . . . . . . . . . . . . . . . . . . . . . . . 6 | 4.2. START Type . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
3.4. I_AM_DEAD Type . . . . . . . . . . . . . . . . . . . . . . 6 | 4.3. DIE Type . . . . . . . . . . . . . . . . . . . . . . . . . 8 | |||
3.5. PEER_DOWN Type . . . . . . . . . . . . . . . . . . . . . . 6 | 4.4. I_AM_DEAD Type . . . . . . . . . . . . . . . . . . . . . . 8 | |||
4. MRT Routing Information Types . . . . . . . . . . . . . . . . 7 | 4.5. PEER_DOWN Type . . . . . . . . . . . . . . . . . . . . . . 8 | |||
4.1. BGP Type . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 5. MRT Routing Information Types . . . . . . . . . . . . . . . . 9 | |||
4.1.1. BGP_NULL Subtype . . . . . . . . . . . . . . . . . . . 7 | 5.1. BGP Type . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
4.1.2. BGP_UPDATE Subtype . . . . . . . . . . . . . . . . . . 7 | 5.1.1. BGP_NULL Subtype . . . . . . . . . . . . . . . . . . . 9 | |||
4.1.3. BGP_PREF_UPDATE Subtype . . . . . . . . . . . . . . . 8 | 5.1.2. BGP_UPDATE Subtype . . . . . . . . . . . . . . . . . . 10 | |||
4.1.4. BGP_STATE_CHANGE Subtype . . . . . . . . . . . . . . . 8 | 5.1.3. BGP_PREF_UPDATE Subtype . . . . . . . . . . . . . . . 10 | |||
4.1.5. BGP_SYNC Subtype . . . . . . . . . . . . . . . . . . . 8 | 5.1.4. BGP_STATE_CHANGE Subtype . . . . . . . . . . . . . . . 10 | |||
4.1.6. BGP_OPEN . . . . . . . . . . . . . . . . . . . . . . . 9 | 5.1.5. BGP_SYNC Subtype . . . . . . . . . . . . . . . . . . . 11 | |||
4.1.7. BGP_NOTIFY . . . . . . . . . . . . . . . . . . . . . . 9 | 5.1.6. BGP_OPEN Subtype . . . . . . . . . . . . . . . . . . . 11 | |||
4.1.8. BGP_KEEPALIVE . . . . . . . . . . . . . . . . . . . . 9 | 5.1.7. BGP_NOTIFY Subtype . . . . . . . . . . . . . . . . . . 11 | |||
4.2. RIP Type . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 5.1.8. BGP_KEEPALIVE Subtype . . . . . . . . . . . . . . . . 11 | |||
4.3. IDRP Type . . . . . . . . . . . . . . . . . . . . . . . . 10 | 5.2. RIP Type . . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
4.4. RIPNG Type . . . . . . . . . . . . . . . . . . . . . . . . 10 | 5.3. IDRP Type . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
4.5. BGP4PLUS and BGP4PLUS_01 Types . . . . . . . . . . . . . . 10 | 5.4. RIPNG Type . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
4.6. OSPF Type . . . . . . . . . . . . . . . . . . . . . . . . 10 | 5.5. BGP4PLUS and BGP4PLUS_01 Types . . . . . . . . . . . . . . 12 | |||
4.7. TABLE_DUMP Type . . . . . . . . . . . . . . . . . . . . . 11 | 5.6. OSPF Type . . . . . . . . . . . . . . . . . . . . . . . . 13 | |||
4.8. BGP4MP Type . . . . . . . . . . . . . . . . . . . . . . . 12 | 5.7. TABLE_DUMP Type . . . . . . . . . . . . . . . . . . . . . 13 | |||
4.8.1. BGP4MP_STATE_CHANGE Subtype . . . . . . . . . . . . . 12 | 5.8. TABLE_DUMP_V2 Type . . . . . . . . . . . . . . . . . . . . 15 | |||
4.8.2. BGP4MP_MESSAGE Subtype . . . . . . . . . . . . . . . . 13 | 5.9. BGP4MP Type . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
4.8.3. BGP4MP_ENTRY Subtype . . . . . . . . . . . . . . . . . 14 | 5.9.1. BGP4MP_STATE_CHANGE Subtype . . . . . . . . . . . . . 18 | |||
4.8.4. BGP4MP_SNAPSHOT Subtype . . . . . . . . . . . . . . . 14 | 5.9.2. BGP4MP_MESSAGE Subtype . . . . . . . . . . . . . . . . 18 | |||
4.8.5. BGP4MP_MESSAGE_32BIT_AS Subtype . . . . . . . . . . . 15 | 5.9.3. BGP4MP_ENTRY Subtype . . . . . . . . . . . . . . . . . 19 | |||
4.9. BGP4MP_ET . . . . . . . . . . . . . . . . . . . . . . . . 15 | 5.9.4. BGP4MP_SNAPSHOT Subtype . . . . . . . . . . . . . . . 20 | |||
4.10. ISIS Type . . . . . . . . . . . . . . . . . . . . . . . . 16 | 5.9.5. BGP4MP_MESSAGE_AS4 Subtype . . . . . . . . . . . . . . 20 | |||
4.11. ISIS_ET Type . . . . . . . . . . . . . . . . . . . . . . . 16 | 5.10. BGP4MP_ET . . . . . . . . . . . . . . . . . . . . . . . . 21 | |||
4.12. OSPF_ET Type . . . . . . . . . . . . . . . . . . . . . . . 16 | 5.11. ISIS Type . . . . . . . . . . . . . . . . . . . . . . . . 21 | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18 | 5.12. ISIS_ET Type . . . . . . . . . . . . . . . . . . . . . . . 22 | |||
5.1. Type Codes . . . . . . . . . . . . . . . . . . . . . . . . 18 | 5.13. OSPFv3 Type . . . . . . . . . . . . . . . . . . . . . . . 22 | |||
5.2. Subtype Codes . . . . . . . . . . . . . . . . . . . . . . 18 | 5.14. OSPFv3_ET Type . . . . . . . . . . . . . . . . . . . . . . 22 | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 19 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23 | |||
7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 20 | 6.1. Type Codes . . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
7.1. Normative References . . . . . . . . . . . . . . . . . . . 20 | 6.2. Subtype Codes . . . . . . . . . . . . . . . . . . . . . . 23 | |||
7.2. Informative References . . . . . . . . . . . . . . . . . . 20 | 7. Security Considerations . . . . . . . . . . . . . . . . . . . 24 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 21 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 25 | |||
Intellectual Property and Copyright Statements . . . . . . . . . . 22 | 8.1. Normative References . . . . . . . . . . . . . . . . . . . 25 | |||
8.2. Informative References . . . . . . . . . . . . . . . . . . 25 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 26 | ||||
Intellectual Property and Copyright Statements . . . . . . . . . . 27 | ||||
1. Introduction | 1. Requirements notation | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | ||||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | ||||
document are to be interpreted as described in [RFC2119]. | ||||
2. Introduction | ||||
Researchers and engineers often wish to analyze network behavior by | Researchers and engineers often wish to analyze network behavior by | |||
studying routing protocol transactions and routing information base | studying routing protocol transactions and routing information base | |||
snapshots. To this end, the MRT format was developed to encapsulate, | snapshots. To this end, the MRT format was developed to encapsulate, | |||
export, and archive this information in a standardized data | export, and archive this information in a standardized data | |||
representation. The BGP routing protocol, in particular, has been | representation. The BGP routing protocol, in particular, has been | |||
the subject of extensive study and analysis which has been | the subject of extensive study and analysis which has been | |||
significantly aided by the availability of the MRT format. | significantly aided by the availability of the MRT format. The MRT | |||
format was initially defined in the MRT Programmer's Guide [MRT PROG | ||||
GUIDE]. | ||||
This memo serves to document the MRT format as currently implemented | This memo serves to document the MRT format as currently implemented | |||
in publicly available software. The format has been extended since | in publicly available software. The format has been extended since | |||
it's original introduction in the MRT toolset and these extensions | it's original introduction in the MRT toolset and these extensions | |||
are also included in this memo. Further extensions may be introduced | are also included in this memo. Further extensions may be introduced | |||
at a later date through additional definitions of the MRT Type field | at a later date through additional definitions of the MRT Type field | |||
and Subtype fields. | and Subtype fields. | |||
2. Basic MRT Format | 3. Basic MRT Format | |||
All MRT format messages have a common header which includes a | All MRT format messages have a common header which includes a | |||
timestamp, Type, Subtype, and length field. The header is followed | timestamp, Type, Subtype, and length field. The header is followed | |||
by a message field. The basic MRT format is illustrated below. | by a message field. The basic MRT format is illustrated below. | |||
0 1 2 3 | 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 | 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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Timestamp | | | Timestamp | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
skipping to change at page 6, line 5 | skipping to change at page 8, line 5 | |||
Length: | Length: | |||
A 4-octet message length field. The length does not include | A 4-octet message length field. The length does not include | |||
the header. | the header. | |||
Message: | Message: | |||
A variable length message. The contents of this field are | A variable length message. The contents of this field are | |||
context dependent on the Type and Subtype fields. | context dependent on the Type and Subtype fields. | |||
3. MRT Control Types | 4. MRT Control Types | |||
The MRT format defines five Control Type messages. These messages | The MRT format defines five Control Type messages. These messages | |||
are using to relay the current state of MRT message source. The | are using to relay the current state of MRT message source. The | |||
message field may contain an optional ASCII text string for | message field MAY contain an OPTIONAL ASCII text string for | |||
diagnostic purposes. These control messages are unidirectional in | diagnostic purposes. These control messages are unidirectional in | |||
nature and there is no form of an acknowledgment or response from the | nature and there is no form of an acknowledgment or response from the | |||
receiver to the sender. The Subtype field is unused for these Types | receiver to the sender. The Subtype field is unused for these Types | |||
and should be set to 0. | and SHOULD be set to 0. | |||
The MRT Control Types are defined below: | The MRT Control Types are defined below: | |||
0 NULL | 0 NULL | |||
1 START | 1 START | |||
2 DIE | 2 DIE | |||
3 I_AM_DEAD | 3 I_AM_DEAD | |||
4 PEER_DOWN | 4 PEER_DOWN | |||
3.1. NULL Type | 4.1. NULL Type | |||
The NULL Type message causes no operation, A sender may wish to send | The NULL Type message causes no operation, A sender may wish to send | |||
these for synchronization or keep-alive purposes. | these for synchronization or keep-alive purposes. | |||
3.2. START Type | 4.2. START Type | |||
The START Type indicates a sender is about to begin sending MRT | The START Type indicates a sender is about to begin sending MRT | |||
messages | messages | |||
3.3. DIE Type | 4.3. DIE Type | |||
A DIE Type signals that the receiver should shut down. | A DIE Type signals that the receiver should shut down. | |||
3.4. I_AM_DEAD Type | 4.4. I_AM_DEAD Type | |||
A I_AM_DEAD indicates that the sender is shutting down. | A I_AM_DEAD indicates that the sender is shutting down. | |||
3.5. PEER_DOWN Type | 4.5. PEER_DOWN Type | |||
A PEER_DOWN is sent when the sender's peer is down. In practice, a | A PEER_DOWN is sent when the sender's peer is down. In practice, a | |||
sender will likely have multiple peers. It is recommended that the | sender will likely have multiple peers. It is RECOMMENDED that the | |||
sender use the Message field to convey the IP address of the peer | sender use the Message field to convey the IP address of the peer | |||
represented in US-ASCII. | represented in US-ASCII. | |||
4. MRT Routing Information Types | 5. MRT Routing Information Types | |||
The following Types are currently defined for the MRT format. Types | The following Types are currently defined for the MRT format. Types | |||
5-12 were defined in the initial MRT Toolkit package. The BGP4MP | 5-12 were defined in the initial MRT Toolkit package. The BGP4MP | |||
Type, number 16, was initially defined in the Zebra routing software | Type, number 16, was initially defined in the Zebra routing software | |||
package. | package. The ISIS Type was initially defined in the Sprint Labs | |||
Python Routing Toolkit (PyRT). | ||||
5 BGP | 5 BGP *DEPRECATED* | |||
6 RIP | 6 RIP | |||
7 IDRP | 7 IDRP *DEPRECATED* | |||
8 RIPNG | 8 RIPNG | |||
9 BGP4PLUS | 9 BGP4PLUS *DEPRECATED* | |||
10 BGP4PLUS_01 | 10 BGP4PLUS_01 *DEPRECATED* | |||
11 OSPF | 11 OSPF | |||
12 TABLE_DUMP | 12 TABLE_DUMP | |||
13 TABLE_DUMP_V2 | ||||
16 BGP4MP | 16 BGP4MP | |||
17 BGP4MP_ET | 17 BGP4MP_ET | |||
32 ISIS | 32 ISIS | |||
33 ISIS_ET | 33 ISIS_ET | |||
64 OSPF_ET | 48 OSPFv3 | |||
49 OSPFv3_ET | ||||
4.1. BGP Type | 5.1. BGP Type | |||
The BGP Type indicates the Message field contains BGP routing | The BGP Type indicates the Message field contains BGP routing | |||
information. The BGP routing protocol is defined in RFC 1771 [1]. | information. The BGP routing protocol is defined in RFC 4271 | |||
The information in the message is dependent on the Subtype value. | [RFC4271]. The information in the message is dependent on the | |||
The BGP Type is considered to be deprecated by the BGP4MP Type. | Subtype value. The BGP Type and all associated Subtypes are | |||
considered to be DEPRECATED by the BGP4MP Type. | ||||
The following BGP Subtypes are defined for the MRT BGP Type. | The following BGP Subtypes are defined for the MRT BGP Type. | |||
0 BGP_NULL | 0 BGP_NULL | |||
1 BGP_UPDATE | 1 BGP_UPDATE | |||
2 BGP_PREF_UPDATE | 2 BGP_PREF_UPDATE | |||
3 BGP_STATE_CHANGE | 3 BGP_STATE_CHANGE | |||
4 BGP_SYNC | 4 BGP_SYNC | |||
5 BGP_OPEN | 5 BGP_OPEN | |||
6 BGP_NOTIFY | 6 BGP_NOTIFY | |||
7 BGP_KEEPALIVE | 7 BGP_KEEPALIVE | |||
4.1.1. BGP_NULL Subtype | 5.1.1. BGP_NULL Subtype | |||
The BGP_NULL Subtype is a reserved Subtype. | The BGP_NULL Subtype is a reserved Subtype. | |||
4.1.2. BGP_UPDATE Subtype | 5.1.2. BGP_UPDATE Subtype | |||
The BGP_UPDATE Subtype is used to encode BGP UPDATE messages. The | The BGP_UPDATE Subtype is used to encode BGP UPDATE messages. The | |||
format of the MRT Message field for this Subtype is as follows: | format of the MRT Message field for this Subtype is as follows: | |||
0 1 2 3 | 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 | 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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Source AS number | | | Source AS number | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Source IP address | | | Source IP address | | |||
skipping to change at page 8, line 23 | skipping to change at page 10, line 28 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Destination IP address | | | Destination IP address | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| BGP UPDATE Contents (variable) | | BGP UPDATE Contents (variable) | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
The BGP UPDATE contents include the entire BGP UPDATE message which | The BGP UPDATE contents include the entire BGP UPDATE message which | |||
follows the BGP Message Header. The BGP Message Header itself is not | follows the BGP Message Header. The BGP Message Header itself is not | |||
included. | included. | |||
4.1.3. BGP_PREF_UPDATE Subtype | 5.1.3. BGP_PREF_UPDATE Subtype | |||
The BGP_PREF_UPDATE Subtype is not defined. | The BGP_PREF_UPDATE Subtype is not defined. | |||
4.1.4. BGP_STATE_CHANGE Subtype | 5.1.4. BGP_STATE_CHANGE Subtype | |||
The BGP_STATE_CHANGE Subtype is used to record changes in the BGP | The BGP_STATE_CHANGE Subtype is used to record changes in the BGP | |||
finite state machine. These FSM states and their numeric encodings | finite state machine. These FSM states and their numeric encodings | |||
are defined in RFC 1771 [1], Appendix 1. Both the old state value | are defined in RFC 4271 [RFC4271], Appendix 1. Both the old state | |||
and the new state value are encoded as 2-octet numbers. The format | value and the new state value are encoded as 2-octet numbers. The | |||
of the MRT Message field is as follows: | format of the MRT Message field is as follows: | |||
0 1 2 3 | 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 | 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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Source AS number | | | Source AS number | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Source IP address | | | Source IP address | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Old State | New State | | | Old State | New State | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
4.1.5. BGP_SYNC Subtype | 5.1.5. BGP_SYNC Subtype | |||
The BGP_SYNC Subtype is used to indicate a File Name where BGP Table | The BGP_SYNC Subtype is used to indicate a File Name where BGP Table | |||
Dump messages should be recorded. The View # corresponds to the View | Dump messages should be recorded. The View # corresponds to the View | |||
# provided in the TABLE_DUMP Type messages. The following format | # provided in the TABLE_DUMP Type messages. The following format | |||
applies to this Subtype: | applies to this Subtype: | |||
0 1 2 3 | 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 | 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 # | | | View # | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| File Name... (variable) | | File Name... (variable) | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
The File Name is terminated with a NULL (0) character. | The File Name is terminated with a NULL (0) character. | |||
4.1.6. BGP_OPEN | 5.1.6. BGP_OPEN Subtype | |||
The BGP_OPEN Subtype is used to encode BGP OPEN messages. The format | The BGP_OPEN Subtype is used to encode BGP OPEN messages. The format | |||
of the MRT Message field for this Subtype is the same as the | of the MRT Message field for this Subtype is the same as the | |||
BGP_UPDATE, however, the last field contains the contents of the BGP | BGP_UPDATE, however, the last field contains the contents of the BGP | |||
OPEN message. | OPEN message. | |||
4.1.7. BGP_NOTIFY | 5.1.7. BGP_NOTIFY Subtype | |||
The BGP_NOTIFY Subtype is used to encode BGP NOTIFICATION messages. | The BGP_NOTIFY Subtype is used to encode BGP NOTIFICATION messages. | |||
The format of the MRT Message field for this Subtype is the same as | The format of the MRT Message field for this Subtype is the same as | |||
the BGP_UPDATE, however, the last field contains the contents of the | the BGP_UPDATE, however, the last field contains the contents of the | |||
BGP NOTIFICATION message. | BGP NOTIFICATION message. | |||
4.1.8. BGP_KEEPALIVE | 5.1.8. BGP_KEEPALIVE Subtype | |||
The BGP_KEEPALIVE Subtype is used to encode BGP KEEPALIVE messages. | The BGP_KEEPALIVE Subtype is used to encode BGP KEEPALIVE messages. | |||
The format of the MRT Message field for this Subtype is the same as | The format of the MRT Message field for this Subtype is the same as | |||
the BGP_UPDATE, however, the last field contains no information. | the BGP_UPDATE, however, the last field contains no information. | |||
4.2. RIP Type | 5.2. RIP Type | |||
The RIP Type is used to export RIP protocol packets as defined in RFC | The RIP Type is used to export RIP protocol packets as defined in RFC | |||
1058 [2]. The Subtype field is currently reserved for this Type and | 1058 [RFC1058]. The Subtype field is currently reserved for this | |||
should be set to 0. | Type and SHOULD be set to 0. | |||
The format of the MRT Message field for the RIP Type is as follows: | The format of the MRT Message field for the RIP Type is as follows: | |||
0 1 2 3 | 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 | 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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Source IP address | | | Source IP address | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Destination IP address | | | Destination IP address | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| RIP Message Contents (variable) | | RIP Message Contents (variable) | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
4.3. IDRP Type | 5.3. IDRP Type | |||
The IDRP Type is used to export Inter-Domain-Routing Protocol (IDRP) | The IDRP Type is used to export Inter-Domain-Routing Protocol (IDRP) | |||
protocol information as defined in the ISO/IEC 10747 standard. The | protocol information as defined in the ISO/IEC 10747 standard. The | |||
Subtype field is unused. This Type is deprecated due to lack of | Subtype field is unused. This Type is deprecated due to lack of | |||
deployment of IDRP. | deployment of IDRP. | |||
4.4. RIPNG Type | 5.4. RIPNG Type | |||
The RIPNG Type is used to export RIPNG protocol packets as defined in | The RIPNG Type is used to export RIPNG protocol packets as defined in | |||
RFC 2080 [3]. The Subtype field is currently reserved for this Type | RFC 2080 [RFC2080]. The Subtype field is currently reserved for this | |||
and should be set to 0. | Type and SHOULD be set to 0. | |||
The format of the MRT Message field for the RIPNG Type is as follows: | The format of the MRT Message field for the RIPNG Type is as follows: | |||
0 1 2 3 | 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 | 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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Source IP address | | | Source IP address | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Destination IP address | | | Destination IP address | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| RIPNG Message Contents (variable) | | RIPNG Message Contents (variable) | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
4.5. BGP4PLUS and BGP4PLUS_01 Types | 5.5. BGP4PLUS and BGP4PLUS_01 Types | |||
The BGP4PLUS and BGP4PLUS_01 Types were defined to support IPv6 BGP | The BGP4PLUS and BGP4PLUS_01 Types were defined to support IPv6 BGP | |||
routing information. The BGP4PLUS Type was specified based on the | routing information. The BGP4PLUS Type was specified based on the | |||
initial Internet Draft for Multiprotocol Extensions to BGP-4. The | initial Internet Draft for Multiprotocol Extensions to BGP-4. The | |||
BGP4PLUS_01 Type was specified to correspond to the -01 revision of | BGP4PLUS_01 Type was specified to correspond to the -01 revision of | |||
this Internet Draft. The two Types share the same definitions in | this Internet Draft. The two Types share the same definitions in | |||
terms of their MRT format specifications. | terms of their MRT format specifications. | |||
The Subtype field definitions are shared with the BGP Type, however, | The Subtype field definitions are shared with the BGP Type, however, | |||
the address fields in the BGP_UPDATE, BGP_OPEN, BGP_NOTIFY, | the address fields in the BGP_UPDATE, BGP_OPEN, BGP_NOTIFY, | |||
BGP_KEEPALIVE, and BGP_STATE_CHANGE Subtype messages are extended to | BGP_KEEPALIVE, and BGP_STATE_CHANGE Subtype messages are extended to | |||
16 octets for IPv6 addresses. As with the BGP Type, the BGP4PLUS and | 16 octets for IPv6 addresses. As with the BGP Type, the BGP4PLUS and | |||
BGP4PLUS_01 Types are deprecated as they superseded by the BGP4MP | BGP4PLUS_01 Types are deprecated as they superseded by the BGP4MP | |||
Type. | Type. | |||
4.6. OSPF Type | 5.6. OSPF Type | |||
This Type supports the OSPF Protocol as defined in RFC 2328 [4]. The | This Type supports the OSPF Protocol as defined in RFC 2328 | |||
Subtype field may contain two possible values: | [RFC2328]. The Subtype field may contain two possible values: | |||
0 OSPF_STATE_CHANGE | 0 OSPF_STATE_CHANGE | |||
1 OSPF_LSA_UPDATE | 1 OSPF_LSA_UPDATE | |||
The format of the MRT Message field for the OSPF Type is as follows: | The format of the MRT Message field for the OSPF Type is as follows: | |||
0 1 2 3 | 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 | 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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Source IP address | | | Source IP address | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Destination IP address | | | Destination IP address | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| OSPF Message Contents (variable) | | OSPF Message Contents (variable) | |||
skipping to change at page 11, line 16 | skipping to change at page 13, line 27 | |||
0 1 2 3 | 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 | 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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Source IP address | | | Source IP address | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Destination IP address | | | Destination IP address | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| OSPF Message Contents (variable) | | OSPF Message Contents (variable) | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
4.7. TABLE_DUMP Type | 5.7. TABLE_DUMP Type | |||
The TABLE_DUMP Type is used to encode routing table dumps. The | The TABLE_DUMP Type is used to encode the contents of a BGP Routing | |||
Subtype is used to encode whether the table entry contains IPv4 or | Information Base (RIB). Each RIB entry is encoded in a distinct | |||
IPv6 addresses. There are currently two possible values for the | sequential MRT record. The Subtype field is used to encode whether | |||
Subtype as shown below. | the RIB entry contains IPv4 or IPv6 addresses. There are currently | |||
two possible values for the Subtype as shown below. | ||||
1 AFI_IPv4 | 1 AFI_IPv4 | |||
2 AFI_IPv6 | 2 AFI_IPv6 | |||
The format of the TABLE_DUMP Type is illustrated below. | The format of the TABLE_DUMP Type is illustrated below. | |||
0 1 2 3 | 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 | 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 | | | View # | Sequence number | | |||
skipping to change at page 11, line 48 | skipping to change at page 14, line 25 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Peer IP address (variable) | | | Peer IP address (variable) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Peer AS | Attribute Length | | | Peer AS | Attribute Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| BGP Attribute... (variable) | | BGP Attribute... (variable) | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
The View field is normally 0 and is intended for cases where an | The View field is normally 0 and is intended for cases where an | |||
implementation may have multiple RIB views (such as a route server). | implementation may have multiple RIB views (such as a route server). | |||
The Sequence field is a simple incremental counter for a concatenated | The Sequence field is a simple incremental counter for each RIB | |||
series of TABLE_DUMP Type messages. | entry. A typical RIB dump will exceed the 16-bit bounds of this | |||
counter and implementation should simply wrap back to zero and | ||||
continue incrementing the counter in such cases. | ||||
The Prefix field contains the IP address of a particular routing | The Prefix field contains the IP address of a particular routing RIB | |||
table dump entry. The size of this field is dependent on the value | entry. The size of this field is dependent on the value of the | |||
of the Subtype for this message. For AFI_IPv4, this field is 4 | Subtype for this message. For AFI_IPv4, this field is 4 octets, for | |||
octets, for AFI_IPv6, it is 16 octets in length. The Prefix Length | AFI_IPv6, it is 16 octets in length. The Prefix Length field | |||
field indicates the length in bits of the prefix mask for the | indicates the length in bits of the prefix mask for the preceding | |||
preceding Prefix field. | Prefix field. | |||
The Status octet is not used in the TABLE_DUMP Type and should be set | The Status octet is not used in the TABLE_DUMP Type and SHOULD be set | |||
to 1. | to 1. | |||
The Originated Time contains the 4-octet time at which this prefix | The Originated Time contains the 4-octet time at which this prefix | |||
was heard. The value represents the time in seconds since 1 January | was heard. The value represents the time in seconds since 1 January | |||
1970 00:00:00 UTC. | 1970 00:00:00 UTC. | |||
The Peer ID field is the IP address of the peer which provided the | The Peer IP field is the IP address of the peer which provided the | |||
update for this routing table entry. As with the Prefix field, the | update for this RIB entry. As with the Prefix field, the size of | |||
size of this field is dependent on the Subtype. AFI_IPv4 indicates a | this field is dependent on the Subtype. AFI_IPv4 indicates a 4 octet | |||
4 octet field and an IPv4 address, while a Subtype of AFI_IPv6 | field and an IPv4 address, while a Subtype of AFI_IPv6 requires a 16 | |||
requires a 16 octet field and an IPv6 address. The Peer AS field | octet field and an IPv6 address. The Peer AS field contains the AS | |||
contains the AS number of the peer. | number of the peer. | |||
Attribute length is the length of Attribute field and is 2-octets. | Attribute length is the length of Attribute field and is 2-octets. | |||
The Attribute field contains the attribute information for the route | The Attribute field contains the attribute information for the RIB | |||
table entry. | entry. | |||
4.8. BGP4MP Type | 5.8. TABLE_DUMP_V2 Type | |||
The TABLE_DUMP_V2 type updates the TABLE_DUMP type to include 32-bit | ||||
ASN support and full support for BGP Multiprotocol extensions. It | ||||
also improves upon the space efficiency of the TABLE_DUMP type by | ||||
employing an index table for peers and permitting a single MRT record | ||||
per NLRI entry. The following subtypes are used with the | ||||
TABLE_DUMP_V2 type. | ||||
1 INDEX_TABLE | ||||
2 RIB_IPV4_UNICAST | ||||
3 RIB_IPV4_MULTICAST | ||||
4 RIB_IPV6_UNICAST | ||||
5 RIB_IPV6_MULTICAST | ||||
6 RIB_GENERIC | ||||
An initial INDEX_TABLE MRT record provides the BGP ID of the | ||||
collector, an optional view name, and a list of indexed peers. | ||||
Following the INDEX_TABLE MRT record, a series of MRT records are | ||||
used to encode RIB table entries. The header of the INDEX_TABLE | ||||
Subtype is shown below. The View Name is optional and if not | ||||
present, the View Name Length MUST be set to 0. | ||||
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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Collector BGP ID | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| View Name Length | View Name (variable) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Peer Count | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
The Peer Type field is a bit field which encodes the type of the AS | ||||
and IP address as follows: | ||||
Bit 0 - unset for IPv4 Peer IP address, set of IPv6 | ||||
Bit 1 - unset when Peer AS field is 16 bits, set when it's 32 bits | ||||
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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Peer Type | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Peer BGP ID | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Peer IP address (variable) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Peer AS (variable) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
The Peer Type, Peer BGP ID, Peer IP, and Peer AS fields are repeated | ||||
as indicated by the Peer Count field. The position of the Peer in | ||||
the INDEX_TABLE is used as an index in the subsequent TABLE_DUMP_V2 | ||||
MRT records. The index number begins with 0. | ||||
The records which follow the INDEX_TABLE record constitute the RIB | ||||
entries and include a header which specify a sequence number, NLRI, | ||||
and a count of the number of RIB entries which follow. | ||||
The RIB_IPV4_UNICAST, RIB_IPV4_MULTICAST, RIB_IPV6_UNICAST, and | ||||
RIB_IPV6_MULTICAST headers are shown below. The Prefix Length and | ||||
Prefix fields are encoded in the same manner as the BGP NLRI encoding | ||||
for IPV4 and IPV6 prefixes. Namely, the Prefix field contains | ||||
address prefixes followed by enough trailing bits to make the end of | ||||
the field fall on an octet boundary. Note that the value of trailing | ||||
bits is irrelevant. | ||||
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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Sequence number | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Prefix Length | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Prefix (variable) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Entry Count | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
The RIB_GENERIC header is shown below. It includes Address Family | ||||
Identifier (AFI), Subsequent AFI and a single NLRI entry. The NLRI | ||||
information is specific to the AFI and SAFI values. An | ||||
implementation which does not recognize particular AFI and SAFI | ||||
values SHOULD discard the remainder of the MRT record. | ||||
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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Sequence number | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Address Family Identifier |Subsequent AFI | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Network Layer Reachability Information (variable) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Entry Count | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
The RIB entry headers are followed by a series of RIB entries which | ||||
are repeated Entry Count times. These entries share a common format | ||||
as shown below. They include a Peer Index from the INDEX_TABLE MRT | ||||
record, an originated time for the RIB entry, and the BGP path | ||||
attribute length and attributes encoded as provided in a BGP Update | ||||
message. | ||||
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 | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Peer Index | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Originated Time | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Attribute Length | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| BGP Attributes... (variable) | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
There is one exception to the encoding of BGP attributes for the BGP | ||||
MP_REACH_NLRI attribute (BGP Type Code 14) [RFC 4760]. Since the | ||||
AFI, SAFI, and NLRI information is already encoded in the | ||||
MULTIPROTOCOL header, only the Next Hop Address Length and Next Hop | ||||
Address fields are included. The Reserved field is omitted. The | ||||
attribute length is also adjusted to reflect only the length of the | ||||
Next Hop Address Length and Next Hop Address fields. | ||||
5.9. BGP4MP Type | ||||
This Type was initially defined in the Zebra software package for the | This Type was initially defined in the Zebra software package for the | |||
BGP protocol with multiprotocol extension support as defined by RFC | BGP protocol with multiprotocol extension support as defined by RFC | |||
2858 [5]. It supersedes the BGP, BGP4PLUS, BGP4PLUS_01 Types. The | 4760 [RFC4760]. It supersedes the BGP, BGP4PLUS, BGP4PLUS_01 Types. | |||
BGP4MP Type has four Subtypes which are defined as follows: | The BGP4MP Type has four Subtypes which are defined as follows: | |||
0 BGP4MP_STATE_CHANGE | 0 BGP4MP_STATE_CHANGE | |||
1 BGP4MP_MESSAGE | 1 BGP4MP_MESSAGE | |||
2 BGP4MP_ENTRY | 2 BGP4MP_ENTRY *DEPRECATED* | |||
3 BGP4MP_SNAPSHOT | 3 BGP4MP_SNAPSHOT | |||
4 BGP4MP_MESSAGE_32BIT_AS | 4 BGP4MP_STATE_CHANGE_AS4 | |||
5 BGP4MP_MESSAGE_AS4 | ||||
4.8.1. BGP4MP_STATE_CHANGE Subtype | 5.9.1. BGP4MP_STATE_CHANGE Subtype | |||
This record is used to encode state changes in the BGP finite state | This record is used to encode state changes in the BGP finite state | |||
machine. As with the BGP_STATE_CHANGE Subtype, the BGP FSM states | machine. As with the BGP_STATE_CHANGE Subtype, the BGP FSM states | |||
are encoded in the Old State and New State fields to indicate the | are encoded in the Old State and New State fields to indicate the | |||
previous and current state. The format is illustrated below: | previous and current state. The format is illustrated below: | |||
0 1 2 3 | 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 | 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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Source AS number | Destination AS number | | | Source AS number | Destination AS number | | |||
skipping to change at page 13, line 20 | skipping to change at page 18, line 34 | |||
| Interface Index | Address Family | | | Interface Index | Address Family | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Source IP address (variable) | | | Source IP address (variable) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Destination IP address (variable) | | | Destination IP address (variable) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Old State | New State | | | Old State | New State | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
While BGP4MP_STATE_CHANGE message is similar to the BGP_STATE_CHANGE | While BGP4MP_STATE_CHANGE message is similar to the BGP_STATE_CHANGE | |||
message, however, it also includes interface index and Address Family | message, it also includes interface index and Address Family fields. | |||
fields. As with the BGP_STATE_CHANGE message, the FSM states and | As with the BGP_STATE_CHANGE message, the FSM states and their | |||
their numeric encodings are defined in RFC 1771 [1], Appendix 1. | numeric encodings are defined in RFC 4271 [RFC4271], Appendix 1. The | |||
Future updates to the BGP protocol specification will introduce a new | interface index provides the interface number of the peering session. | |||
state machine and thus render this message Type obsolete. The | The index value is OPTIONAL and MAY be zero if unknown or | |||
interface index provides the interface number of the peering session | unsupported. The Address Family indicates what types of addresses | |||
and the Address Family indicates what Types of addresses are in the | are in the the address fields. At present, the following AFI Types | |||
the address fields. At present, only the following AFI Types are | are supported: | |||
supported: | ||||
1 AFI_IPv4 | 1 AFI_IPv4 | |||
2 AFI_IPv6 | 2 AFI_IPv6 | |||
4.8.2. BGP4MP_MESSAGE Subtype | 5.9.2. BGP4MP_MESSAGE Subtype | |||
This Subtype is used to encode BGP Messages. It is similar to the | This Subtype is used to encode BGP Messages. It is similar to the | |||
BGP_UPDATE Subtype, except that is can be used to encode any Type of | BGP_UPDATE Subtype, except that is can be used to encode any Type of | |||
message (not just BGP UPDATES). In order to determine the BGP | message (not just BGP UPDATES). In order to determine the BGP | |||
message Type, the entire BGP message, including the BGP header, is | message Type, the entire BGP message, including the BGP header, is | |||
included in the BGP Message field. The BGP4MP_MESSAGE fields are | included in the BGP Message field. The BGP4MP_MESSAGE fields are | |||
shown below: | shown below: | |||
0 1 2 3 | 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 | 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 | |||
skipping to change at page 14, line 19 | skipping to change at page 19, line 20 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Interface Index | Address Family | | | Interface Index | Address Family | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Source IP address (variable) | | | Source IP address (variable) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Destination IP address (variable) | | | Destination IP address (variable) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| BGP Message... (variable) | | BGP Message... (variable) | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
4.8.3. BGP4MP_ENTRY Subtype | The interface index provides the interface number of the peering | |||
session. The index value is OPTIONAL and MAY be zero if unknown or | ||||
unsupported. The Address Family indicates what types of addresses | ||||
are in the the subsequent address fields. At present, the following | ||||
AFI Types are supported: | ||||
This Subtype is used to record routing table entries. It is similar | 1 AFI_IPv4 | |||
to the TABLE_DUMP Type. The primary difference being that the | 2 AFI_IPv6 | |||
Address Family is encoded in the Message itself. Further, a | ||||
Subsequence Address Family field (SAFI) is included as well. | Note that the Address Family value only applies to the IP addresses | |||
contained in the MRT header. The BGP4MP_MESSAGE Subtype is otherwise | ||||
transparent to the contents of the actual message which may contain | ||||
any valid AFI/SAFI values. Only one BGP message may be encoded in | ||||
the BGP4MP_MESSAGE Subtype. | ||||
5.9.3. BGP4MP_ENTRY Subtype | ||||
This Subtype is similar to the TABLE_DUMP Type and is used to record | ||||
RIB table entries. It extends the TABLE_DUMP Type to include true | ||||
multiprotocol support. However, this type does not support 32-bit AS | ||||
numbers and has not been widely implemented. This type is deprecated | ||||
in favor of the TABLE_DUMP_V2 which includes 32-bit AS number support | ||||
and a more compact format. | ||||
0 1 2 3 | 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 | 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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Source AS number | Destination AS number | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Interface Index | Address Family | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Source IP address (variable) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| Destination IP address (variable) | | ||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ||||
| View # | Status | | | View # | Status | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Time last change | | | Time last change | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Address Family | SAFI | Next-Hop-Len | | | Address Family | SAFI | Next-Hop-Len | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Next Hop Address (variable) | | | Next Hop Address (variable) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Prefix Length | | | Prefix Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Address Prefix (variable) | | | Address Prefix (variable) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Attribute Length | | | Attribute Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| BGP Attribute... (variable) | | BGP Attribute... (variable) | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
4.8.4. BGP4MP_SNAPSHOT Subtype | 5.9.4. BGP4MP_SNAPSHOT Subtype | |||
This Subtype is used to indicate a filename containing BGP4MP_ENTRY | This Subtype is used to indicate a filename containing BGP4MP_ENTRY | |||
records. It is similar to the BGP_SYNC message Subtype and shares | records. It is similar to the BGP_SYNC message Subtype and shares | |||
the same fields. | the same fields. | |||
0 1 2 3 | 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 | 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 # | | | View # | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| File Name... (variable) | | File Name... (variable) | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
4.8.5. BGP4MP_MESSAGE_32BIT_AS Subtype | 5.9.5. BGP4MP_MESSAGE_AS4 Subtype | |||
This Subtype updates the BGP4MP_MESSAGE Subtype to support 32BIT | This Subtype updates the BGP4MP_MESSAGE Subtype to support 32BIT | |||
Autonomous System numbers. As the current 16 bit Autonomous System | Autonomous System numbers. The BGP4MP_MESSAGE_AS4 fields are shown | |||
number space nears exhaustion, the introduction of 32 bit numbers | below: | |||
will be required to support future Autonomous System number | ||||
allocations. The BGP4MP_MESSAGE_32BIT_AS fields are shown below: | ||||
0 1 2 3 | 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 | 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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Source AS number | | | Source AS number | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Destination AS number | | | Destination AS number | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Interface Index | Address Family | | | Interface Index | Address Family | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Source IP address (variable) | | | Source IP address (variable) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Destination IP address (variable) | | | Destination IP address (variable) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| BGP Message... (variable) | | BGP Message... (variable) | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
4.9. BGP4MP_ET | 5.10. BGP4MP_ET | |||
This Type was initially defined in the Sprint Labs Python Routing | This Type was initially defined in the Sprint Labs Python Routing | |||
Toolkit (PyRT). It extends the header field of the BGP4MP Type to | Toolkit (PyRT). It extends the header field of the BGP4MP Type to | |||
include a 32-bit microsecond timestamp field. The Subtypes and other | include a 32-bit microsecond timestamp field. The Subtypes and other | |||
field definitions remain as defined for the BGP4MP Type. The 32-bit | field definitions remain as defined for the BGP4MP Type. The 32-bit | |||
microsecond timestamp immediately follows the length field in the | microsecond timestamp immediately follows the length field in the | |||
BGP4MP Type and precedes all other fields in the message. The header | BGP4MP Type and precedes all other fields in the message. The header | |||
modification is illustrated below. | modification is illustrated below. | |||
0 1 2 3 | 0 1 2 3 | |||
skipping to change at page 16, line 19 | skipping to change at page 21, line 45 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Type | Subtype | | | Type | Subtype | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Length | | | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| microsecond timestamp | | | microsecond timestamp | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Message... (variable) | | Message... (variable) | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
4.10. ISIS Type | 5.11. ISIS Type | |||
This Type was initially defined in the Sprint Labs Python Routing and | This Type was initially defined in the Sprint Labs Python Routing and | |||
supports the IS-IS routing protocol as defined in RFC 1195 [6]. | supports the IS-IS routing protocol as defined in RFC 1195 [RFC1195]. | |||
There is no Type specific header for the ISIS Type. The Subtype code | There is no Type specific header for the ISIS Type. The Subtype code | |||
for this Type is undefined. The ISIS PDU directly follows the MRT | for this Type is undefined. The ISIS PDU directly follows the MRT | |||
common header fields. | common header fields. | |||
4.11. ISIS_ET Type | 5.12. ISIS_ET Type | |||
The ISIS_ET Type extends the the ISIS Type to support microsecond | The ISIS_ET Type extends the the ISIS Type to support microsecond | |||
timestamps. As with the BGP4MP_ET Type, a 32-bit microsecond | timestamps. As with the BGP4MP_ET Type, a 32-bit microsecond | |||
timestamp field is appended to the MRT common header after the length | timestamp field is appended to the MRT common header after the length | |||
field. The ISIS_ET Type is otherwise identical to the ISIS Type. | field. The ISIS_ET Type is otherwise identical to the ISIS Type. | |||
4.12. OSPF_ET Type | 5.13. OSPFv3 Type | |||
The OSPF_ET Type extends the the OSPF Type to support microsecond | The OSPFv3 Type extends the original OSPF Type to support IPv6 | |||
timestamps. As with the BGP4MP_ET and ISIS_ET Types, a 32-bit | addresses for the OSPFv3 protocol as defined in RFC 2740 [RFC2740]. | |||
microsecond timestamp field is appended to the MRT common header | The format of the MRT Message field for the OSPFv3 Type is as | |||
after the length field. The OSPF_ET Type also extends the OSPF Type | follows: | |||
to support IPv6 addresses for the OSPFv3 protocol as defined in RFC | ||||
2740 [7]. The format of the MRT Message field for the OSPF_ET Type | ||||
is as follows: | ||||
0 1 2 3 | 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 | 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 | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Address Family | | | Address Family | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Source IP address (variable) | | | Source IP address (variable) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Destination IP address (variable) | | | Destination IP address (variable) | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| OSPF Message Contents (variable) | | OSPF Message Contents (variable) | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
5. IANA Considerations | 5.14. OSPFv3_ET Type | |||
The OSPFv3_ET Type extends the the OSPFv3 Type to support microsecond | ||||
timestamps. As with the BGP4MP_ET Type, a 32-bit microsecond | ||||
timestamp field is appended to the MRT common header after the length | ||||
field. The OSPFv3_ET Type is otherwise identical to the OSPFv3 Type. | ||||
6. IANA Considerations | ||||
This section provides guidance to the Internet Assigned Numbers | This section provides guidance to the Internet Assigned Numbers | |||
Authority (IANA) regarding registration of values related to the MRT | Authority (IANA) regarding registration of values related to the MRT | |||
specification, in accordance with BCP 26, RFC 2434 [8]. | specification, in accordance with BCP 26, RFC 2434 [RFC2434]. | |||
There are two name spaces in MRT that require registration: Type | There are two name spaces in MRT that require registration: Type | |||
Codes and Subtype Codes. | Codes and Subtype Codes. | |||
MRT is not intended as a general-purpose specification for protocol | MRT is not intended as a general-purpose specification for protocol | |||
information export, and allocations should not be made for purposes | information export, and allocations should not be made for purposes | |||
unrelated to routing protocol information export. | unrelated to routing protocol information export. | |||
The following policies are used here with the meanings defined in BCP | The following policies are used here with the meanings defined in BCP | |||
26: "Specification Required", "IETF Consensus". | 26: "Specification Required", "IETF Consensus". | |||
5.1. Type Codes | 6.1. Type Codes | |||
Type Codes have a range from 0 to 65535, of which 0-64 have been | Type Codes have a range from 0 to 65535, of which 0-64 have been | |||
allocated. New Type Codes should be allocated starting at 65. Type | allocated. New Type Codes MUST be allocated starting at 65. Type | |||
Codes 65 - 32767 are to be assigned by IETF Consensus. Type Codes | Codes 65 - 32767 are to be assigned by IETF Consensus. Type Codes | |||
32768 - 65535 are assigned based on Specification Required. | 32768 - 65535 are assigned based on Specification Required. | |||
5.2. Subtype Codes | 6.2. Subtype Codes | |||
Subtype Codes have a range from 0 to 65535. Subtype definitions are | Subtype Codes have a range from 0 to 65535. Subtype definitions are | |||
specific to a particular Type Code definition. New Subtype Code | specific to a particular Type Code definition. New Subtype Code | |||
definition must reference an existing Type Code to which the Subtype | definition must reference an existing Type Code to which the Subtype | |||
belongs. As Subtype Codes are specific to Type Codes, new numbers | belongs. As Subtype Codes are specific to Type Codes, new numbers | |||
must be unique for the particular Type Code to which the Subtype | must be unique for the particular Type Code to which the Subtype | |||
applies. Subtype Codes specific to the Type Codes 0 - 32767 are | applies. Subtype Codes specific to the Type Codes 0 - 32767 are | |||
assigned by IETF Consensus. Suptype Codes specific to Type Codes | assigned by IETF Consensus. Suptype Codes specific to Type Codes | |||
32768 - 65535 are assigned based on Specification Required. | 32768 - 65535 are assigned based on Specification Required. | |||
6. Security Considerations | 7. Security Considerations | |||
The MRT Format utilizes a structure which can store routing protocol | The MRT Format utilizes a structure which can store routing protocol | |||
information data. The fields defined in the MRT specification are of | information data. The fields defined in the MRT specification are of | |||
a descriptive nature and provide information that is useful to | a descriptive nature and provide information that is useful to | |||
facilitate the analysis of routing data. As such, the fields | facilitate the analysis of routing data. As such, the fields | |||
currently defined in the MRT specification do not in themselves | currently defined in the MRT specification do not in themselves | |||
create additional security risks, since the fields are not used to | create additional security risks, since the fields are not used to | |||
induce any particular behavior by the recipient application. | induce any particular behavior by the recipient application. | |||
7. References | 8. References | |||
7.1. Normative References | ||||
[1] Rekhter, Y. and T. Li, "A Border Gateway Protocol 4 (BGP-4)", | 8.1. Normative References | |||
RFC 1771, March 1995. | ||||
[2] Hedrick, C., "Routing Information Protocol", RFC 1058, | [RFC1058] Hedrick, C., "Routing Information Protocol", RFC 1058, | |||
June 1988. | June 1988. | |||
[3] Malkin, G. and R. Minnear, "RIPng for IPv6", RFC 2080, | [RFC1195] Callon, R., "Use of OSI IS-IS for routing in TCP/IP and | |||
dual environments", RFC 1195, December 1990. | ||||
[RFC2080] Malkin, G. and R. Minnear, "RIPng for IPv6", RFC 2080, | ||||
January 1997. | January 1997. | |||
[4] Moy, J., "OSPF Version 2", STD 54, RFC 2328, April 1998. | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, March 1997. | ||||
[5] Bates, T., Rekhter, Y., Chandra, R., and D. Katz, "Multiprotocol | [RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, April 1998. | |||
Extensions for BGP-4", RFC 2858, June 2000. | ||||
[6] Callon, R., "Use of OSI IS-IS for routing in TCP/IP and dual | [RFC2434] Narten, T. and H. Alvestrand, "Guidelines for Writing an | |||
environments", RFC 1195, December 1990. | IANA Considerations Section in RFCs", BCP 26, RFC 2434, | |||
October 1998. | ||||
[7] Coltun, R., Ferguson, D., and J. Moy, "OSPF for IPv6", RFC 2740, | [RFC2740] Coltun, R., Ferguson, D., and J. Moy, "OSPF for IPv6", | |||
December 1999. | RFC 2740, December 1999. | |||
[8] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA | [RFC4271] Rekhter, Y., Li, T., and S. Hares, "A Border Gateway | |||
Considerations Section in RFCs", BCP 26, RFC 2434, October 1998. | Protocol 4 (BGP-4)", RFC 4271, January 2006. | |||
7.2. Informative References | [RFC4760] Bates, T., Chandra, R., Katz, D., and Y. Rekhter, | |||
"Multiprotocol Extensions for BGP-4", RFC 4760, | ||||
January 2007. | ||||
[9] "MRT Programmer's Guide", November 1999, | 8.2. Informative References | |||
[MRT PROG GUIDE] | ||||
Labovitz, C., "MRT Programmer's Guide", November 1999, | ||||
<http://www.merit.edu/nrd/resources/mrtprogrammer.pdf>. | <http://www.merit.edu/nrd/resources/mrtprogrammer.pdf>. | |||
Authors' Addresses | Authors' Addresses | |||
Larry Blunk | Larry Blunk | |||
Merit Network | Merit Network | |||
Email: ljb@merit.edu | Email: ljb@merit.edu | |||
Manish Karir | Manish Karir | |||
Merit Network | Merit Network | |||
Email: mkarir@merit.edu | Email: mkarir@merit.edu | |||
Craig Labovitz | Craig Labovitz | |||
Arbor Networks | Arbor Networks | |||
Email: labovit@arbor.net | Email: labovit@arbor.net | |||
Intellectual Property Statement | Full Copyright Statement | |||
Copyright (C) The IETF Trust (2007). | ||||
This document is subject to the rights, licenses and restrictions | ||||
contained in BCP 78, and except as set forth therein, the authors | ||||
retain all their rights. | ||||
This document and the information contained herein are provided on an | ||||
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | ||||
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND | ||||
THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS | ||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF | ||||
THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED | ||||
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | ||||
Intellectual Property | ||||
The IETF takes no position regarding the validity or scope of any | The IETF takes no position regarding the validity or scope of any | |||
Intellectual Property Rights or other rights that might be claimed to | Intellectual Property Rights or other rights that might be claimed to | |||
pertain to the implementation or use of the technology described in | pertain to the implementation or use of the technology described in | |||
this document or the extent to which any license under such rights | this document or the extent to which any license under such rights | |||
might or might not be available; nor does it represent that it has | might or might not be available; nor does it represent that it has | |||
made any independent effort to identify any such rights. Information | made any independent effort to identify any such rights. Information | |||
on the procedures with respect to rights in RFC documents can be | on the procedures with respect to rights in RFC documents can be | |||
found in BCP 78 and BCP 79. | found in BCP 78 and BCP 79. | |||
skipping to change at page 22, line 29 | skipping to change at page 27, line 45 | |||
such proprietary rights by implementers or users of this | such proprietary rights by implementers or users of this | |||
specification can be obtained from the IETF on-line IPR repository at | specification can be obtained from the IETF on-line IPR repository at | |||
http://www.ietf.org/ipr. | http://www.ietf.org/ipr. | |||
The IETF invites any interested party to bring to its attention any | The IETF invites any interested party to bring to its attention any | |||
copyrights, patents or patent applications, or other proprietary | copyrights, patents or patent applications, or other proprietary | |||
rights that may cover technology that may be required to implement | rights that may cover technology that may be required to implement | |||
this standard. Please address the information to the IETF at | this standard. Please address the information to the IETF at | |||
ietf-ipr@ietf.org. | ietf-ipr@ietf.org. | |||
Disclaimer of Validity | ||||
This document and the information contained herein are provided on an | ||||
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | ||||
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET | ||||
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, | ||||
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE | ||||
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED | ||||
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | ||||
Copyright Statement | ||||
Copyright (C) The Internet Society (2006). This document is subject | ||||
to the rights, licenses and restrictions contained in BCP 78, and | ||||
except as set forth therein, the authors retain all their rights. | ||||
Acknowledgment | Acknowledgment | |||
Funding for the RFC Editor function is currently provided by the | Funding for the RFC Editor function is provided by the IETF | |||
Internet Society. | Administrative Support Activity (IASA). | |||
End of changes. 92 change blocks. | ||||
198 lines changed or deleted | 373 lines changed or added | |||
This html diff was produced by rfcdiff 1.33. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |