What Are BGP Messages?
BGP peers exchange four types of messages over a TCP session on port 179. Every message begins with a common 19-byte header, and the Type field in the header identifies the kind of message. This article explains the structure of each message and then looks at the actual contents using a packet capture taken in an IOS XR (XRd) lab. For the basics of how BGP works, see BGP (Border Gateway Protocol).
| Type | Message | Role |
|---|---|---|
| 1 | OPEN | Sent first after the session is established; conveys the AS number, Hold Time, and supported capabilities. |
| 2 | UPDATE | Advertises and withdraws routes. |
| 3 | NOTIFICATION | Reports an error and tears down the session. |
| 4 | KEEPALIVE | Sent periodically to maintain the session. |
Common Header
| Field | Size | Description |
|---|---|---|
| Marker | 16 bytes | A fixed value with all bits set to 1, used to detect message boundaries. |
| Length | 2 bytes | The total length of the message in bytes, including the header. Minimum 19 (KEEPALIVE), maximum 4096. |
| Type | 1 byte | The message type (1 to 4). |
OPEN Message
Once the TCP session is established, both sides first send an OPEN message. If a peer can accept the other’s OPEN, it replies with a KEEPALIVE and the session becomes Established.
| Field | Size | Description |
|---|---|---|
| Version | 1 byte | The BGP version, currently 4. |
| My Autonomous System | 2 bytes | The sender’s AS number. When a 4-byte AS number is used, 23456 (AS_TRANS) is placed here and the real number is conveyed in a capability. |
| Hold Time | 2 bytes | If neither a KEEPALIVE nor an UPDATE is received within this time (seconds), the session is torn down. The smaller of the two proposed values is used. The Cisco default is 180. |
| BGP Identifier | 4 bytes | The sender’s BGP Router ID. |
| Opt Parm Len | 1 byte | The length of the Optional Parameters in bytes. |
| Optional Parameters | variable | Lists the supported capabilities. |
The Optional Parameters list the router’s supported features as capabilities (RFC 5492). Common ones are shown below.
| Capability | Code | Description |
|---|---|---|
| Multiprotocol Extensions | 1 | The address families (AFI / SAFI) the router can handle. IPv4 unicast is AFI 1 / SAFI 1. |
| Route Refresh | 2 | Allows requesting that a peer resend its routes without a reset. |
| Extended Next Hop Encoding | 5 | Allows an IPv6 address as the next hop of IPv4 routes. |
| 4-octet AS Number | 65 | Indicates support for 4-byte AS numbers and conveys the router’s real AS number. |
UPDATE Message
An UPDATE message carries routing information. A single UPDATE can carry both routes to withdraw (Withdrawn Routes) and new routes (NLRI) that share the same set of path attributes.
| Field | Size | Description |
|---|---|---|
| Withdrawn Routes Length | 2 bytes | The length of the Withdrawn Routes in bytes. |
| Withdrawn Routes | variable | The list of prefixes being withdrawn. |
| Total Path Attribute Length | 2 bytes | The length of the Path Attributes in bytes. |
| Path Attributes | variable | The path attributes shared by the NLRI that follows (ORIGIN, AS_PATH, NEXT_HOP, and so on). |
| NLRI | variable | The list of prefixes being advertised (Network Layer Reachability Information). |
The types and roles of path attributes are covered in BGP Path Attributes and Best Path Selection.
Advertising and Withdrawing Routes
An UPDATE message is used both to advertise routes and to withdraw them.
| Purpose | Withdrawn Routes | Path Attributes / NLRI |
|---|---|---|
| Advertising a route | empty | contains the prefixes being advertised and their path attributes |
| Withdrawing a route | contains the prefixes being withdrawn | empty |
When a route that was being advertised becomes unusable, for example because an interface goes down, the router sends an UPDATE with that route in the Withdrawn Routes to its peers. A withdrawal needs no path attributes, so the UPDATE has a Total Path Attribute Length of 0 and an empty NLRI. A router receiving it removes the route from its BGP table and passes the withdrawal on to its own peers, so a withdrawal propagates across ASes in a chain.
KEEPALIVE Message
A KEEPALIVE message consists of the common header only and is 19 bytes long. It is sent at one third of the Hold Time (every 60 seconds with the Cisco defaults), and if neither a KEEPALIVE nor an UPDATE arrives within the Hold Time, the peer tears down the session. It is also used to signal acceptance of the peer’s OPEN.
NOTIFICATION Message
A NOTIFICATION message is sent when an error is detected, and the TCP session is closed after it is sent.
| Error code | Meaning | Typical subcodes |
|---|---|---|
| 1 | Message Header Error | Connection not synchronized, bad message length, bad message type |
| 2 | OPEN Message Error | Unsupported version, bad peer AS, bad BGP Identifier, unacceptable Hold Time |
| 3 | UPDATE Message Error | Malformed attribute list, missing well-known attribute, invalid NEXT_HOP, malformed AS_PATH, and so on |
| 4 | Hold Timer Expired | Nothing was received within the Hold Time |
| 5 | Finite State Machine Error | A message was received that is not allowed in the current state |
| 6 | Cease | Teardown for any other reason, such as an administrative shutdown or reset, or exceeding the maximum prefix count (RFC 4486) |
Verification on Real Devices
I use the same lab as in BGP (Border Gateway Protocol): four IOS XR (XRd) routers spread across three ASes. R1 - R2 is an iBGP peering, R2 - R3 and R3 - R4 are eBGP peerings, and each router advertises its Loopback1 network (192.168.N.0/24) into BGP.
While capturing packets on TCP port 179 on the R2 - R3 (eBGP) link, I performed the following operations.
| Operation | Purpose |
|---|---|
clear bgp 10.2.3.3 on R2 | Tear down and re-establish the session (NOTIFICATION / OPEN / KEEPALIVE / UPDATE) |
shutdown on interface Loopback1 of R4 | Withdraw 192.168.4.0/24 |
no shutdown on interface Loopback1 of R4 | Re-advertise 192.168.4.0/24 |
Below is the packet list as displayed by tshark, which ships with Wireshark; it contains all four message types as well as a route withdrawal.
1 0.000000 10.2.3.2 → 10.2.3.3 BGP 75 NOTIFICATION Message
2 0.000266 10.2.3.2 → 10.2.3.3 TCP 54 179 → 19652 [FIN, ACK] Seq=22 Ack=1 Win=32559 Len=0
3 0.003450 10.2.3.3 → 10.2.3.2 TCP 54 19652 → 179 [ACK] Seq=1 Ack=23 Win=32595 Len=0
4 0.005387 10.2.3.3 → 10.2.3.2 TCP 54 19652 → 179 [FIN, ACK] Seq=1 Ack=23 Win=32595 Len=0
5 0.007794 10.2.3.2 → 10.2.3.3 TCP 54 179 → 19652 [ACK] Seq=23 Ack=2 Win=32559 Len=0
6 0.798224 10.2.3.2 → 10.2.3.3 TCP 62 61661 → 179 [SYN] Seq=0 Win=32768 Len=0 MSS=1240 WS=1
7 0.802226 10.2.3.3 → 10.2.3.2 TCP 62 179 → 61661 [SYN, ACK] Seq=0 Ack=1 Win=16384 Len=0 MSS=1240 WS=1
8 0.805094 10.2.3.2 → 10.2.3.3 TCP 54 61661 → 179 [ACK] Seq=1 Ack=1 Win=32768 Len=0
9 0.806853 10.2.3.2 → 10.2.3.3 BGP 129 OPEN Message
10 0.875909 10.2.3.3 → 10.2.3.2 TCP 54 179 → 61661 [RST, ACK] Seq=1 Ack=1 Win=16384 Len=0
11 30.000920 10.2.3.2 → 10.2.3.3 TCP 54 179 → 19652 [RST, ACK] Seq=23 Ack=2 Win=32559 Len=0
12 38.840964 10.2.3.3 → 10.2.3.2 TCP 62 35164 → 179 [SYN] Seq=0 Win=32768 Len=0 MSS=1240 WS=1
13 38.845366 10.2.3.2 → 10.2.3.3 TCP 62 179 → 35164 [SYN, ACK] Seq=0 Ack=1 Win=16384 Len=0 MSS=1240 WS=1
14 38.848041 10.2.3.3 → 10.2.3.2 TCP 54 35164 → 179 [ACK] Seq=1 Ack=1 Win=32768 Len=0
15 38.849087 10.2.3.3 → 10.2.3.2 BGP 129 OPEN Message
16 40.850179 10.2.3.3 → 10.2.3.2 TCP 129 [TCP Retransmission] 35164 → 179 [PSH, ACK] Seq=1 Ack=1 Win=32768 Len=75
17 40.855228 10.2.3.2 → 10.2.3.3 TCP 54 179 → 35164 [ACK] Seq=1 Ack=76 Win=32768 Len=0
18 40.855434 10.2.3.2 → 10.2.3.3 BGP 148 OPEN Message, KEEPALIVE Message
19 40.859768 10.2.3.3 → 10.2.3.2 BGP 73 KEEPALIVE Message
20 40.895317 10.2.3.2 → 10.2.3.3 BGP 190 UPDATE Message, UPDATE Message, UPDATE Message
21 40.898045 10.2.3.3 → 10.2.3.2 BGP 194 UPDATE Message, UPDATE Message, UPDATE Message
22 41.101392 10.2.3.2 → 10.2.3.3 TCP 54 179 → 35164 [ACK] Seq=231 Ack=235 Win=32609 Len=0
23 70.889654 10.2.3.3 → 10.2.3.2 BGP 187 UPDATE Message, UPDATE Message, KEEPALIVE Message
24 71.093729 10.2.3.2 → 10.2.3.3 TCP 54 179 → 35164 [ACK] Seq=231 Ack=368 Win=32476 Len=0
25 81.452121 10.2.3.3 → 10.2.3.2 BGP 81 UPDATE Message
26 81.655926 10.2.3.2 → 10.2.3.3 TCP 54 179 → 35164 [ACK] Seq=231 Ack=395 Win=32449 Len=0
27 100.896608 10.2.3.2 → 10.2.3.3 BGP 73 KEEPALIVE Message
28 101.100919 10.2.3.3 → 10.2.3.2 TCP 54 35164 → 179 [ACK] Seq=395 Ack=250 Win=32519 Len=0
29 129.985465 10.2.3.3 → 10.2.3.2 BGP 111 UPDATE Message
30 130.188911 10.2.3.2 → 10.2.3.3 TCP 54 179 → 35164 [ACK] Seq=250 Ack=452 Win=32392 Len=0
31 160.897052 10.2.3.2 → 10.2.3.3 BGP 73 KEEPALIVE Message
32 161.101276 10.2.3.3 → 10.2.3.2 TCP 54 35164 → 179 [ACK] Seq=452 Ack=269 Win=32500 Len=0
33 189.986189 10.2.3.3 → 10.2.3.2 BGP 73 KEEPALIVE Message
34 190.189786 10.2.3.2 → 10.2.3.3 TCP 54 179 → 35164 [ACK] Seq=269 Ack=471 Win=32373 Len=0| No. | Description |
|---|---|
| 1 to 5 | clear bgp makes R2 send a NOTIFICATION and close the TCP session. |
| 6 to 10 | R2 immediately tries to reconnect, but R3, just after the reset, refuses with an RST. |
| 12 to 17 | About 38 seconds later, a TCP three-way handshake initiated by R3 completes and R3 sends an OPEN (No. 16 is a TCP retransmission because no ACK came back). |
| 18 to 19 | R2 returns an OPEN and a KEEPALIVE, R3 returns a KEEPALIVE, and the session becomes Established. |
| 20 to 21 | Both sides advertise their routes with UPDATEs. The last one is the End-of-RIB marker signaling that the initial advertisement is complete. |
| 23 | R3 advertises the routes it received from R2 back to R2 with its own AS number prepended to the AS_PATH (R2 detects its own AS and discards them). |
| 25 | Because Loopback1 on R4 was shut down, R3 sends an UPDATE withdrawing 192.168.4.0/24. |
| 29 | Because Loopback1 on R4 was brought back up, R3 advertises 192.168.4.0/24 again. |
| 27, 31, 33 | Each router sends a KEEPALIVE every 60 seconds to maintain the session. |
Inside the OPEN Message
The OPEN message sent by R3 in No. 15. The header Type is 1, the Version is 4, the AS number is 65002, the Hold Time is 180 seconds, and the BGP Identifier is 10.0.0.3. The Optional Parameters carry the Multiprotocol Extensions, Route Refresh, 4-octet AS Number, and Extended Next Hop Encoding capabilities.
Border Gateway Protocol - OPEN Message
Marker: ffffffffffffffffffffffffffffffff
Length: 75
Type: OPEN Message (1)
Version: 4
My AS: 65002
Hold Time: 180
BGP Identifier: 10.0.0.3
Optional Parameters Length: 46
Optional Parameters
Optional Parameter: Capability
Parameter Type: Capability (2)
Parameter Length: 6
Capability: Multiprotocol extensions capability
Type: Multiprotocol extensions capability (1)
Length: 4
AFI: IPv4 (1)
Reserved: 00
SAFI: Unicast (1)
Optional Parameter: Capability
Parameter Type: Capability (2)
Parameter Length: 2
Capability: Route Refresh Capability (Cisco)
Type: Route Refresh Capability (Cisco) (128)
Length: 0
Optional Parameter: Capability
Parameter Type: Capability (2)
Parameter Length: 2
Capability: Route refresh capability
Type: Route refresh capability (2)
Length: 0
Optional Parameter: Capability
Parameter Type: Capability (2)
Parameter Length: 6
Capability: Support for 4-octet AS number capability
Type: Support for 4-octet AS number capability (65)
Length: 4
AS Number: 65002
Optional Parameter: Capability
Parameter Type: Capability (2)
Parameter Length: 20
Capability: Extended Next Hop Encoding
Type: Extended Next Hop Encoding (5)
Length: 18
AFI: IPv4 (1)
SAFI: Unicast (1)
Next hop AFI: IPv6 (2)
AFI: IPv4 (1)
SAFI: Multicast (2)
Next hop AFI: IPv6 (2)
AFI: IPv4 (1)
SAFI: Labeled VPN Unicast (128)
Next hop AFI: IPv6 (2)Looking at the bytes of the same packet, after the 16 ff bytes of the Marker come the Length 00 4b (75 bytes), Type 01, Version 04, AS number fd ea (65002), Hold Time 00 b4 (180), BGP Identifier 0a 00 00 03 (10.0.0.3), and Opt Parm Len 2e (46), exactly as the structure describes.
0020 03 02 89 5c 00 b3 c2 27 be e7 08 e5 d1 36 50 18 ...\...'.....6P.
0030 80 00 40 7b 00 00 ff ff ff ff ff ff ff ff ff ff ..@{............
0040 ff ff ff ff ff ff 00 4b 01 04 fd ea 00 b4 0a 00 .......K........
0050 00 03 2e 02 06 01 04 00 01 00 01 02 02 80 00 02 ................
0060 02 02 00 02 06 41 04 00 00 fd ea 02 14 05 12 00 .....A..........
0070 01 00 01 00 02 00 01 00 02 00 02 00 01 00 80 00 ................
0080 02 .Inside the KEEPALIVE Message
The KEEPALIVE with which R3 accepted the OPEN in No. 19. It is 19 bytes, the common header only.
Download just this No.19 (KEEPALIVE) (bgp-no19.pcap)Border Gateway Protocol - KEEPALIVE Message
Marker: ffffffffffffffffffffffffffffffff
Length: 19
Type: KEEPALIVE Message (4)Inside the UPDATE Message (Advertising a Route)
The TCP segment in No. 21 contains three UPDATEs. The first advertises 192.168.3.0/24 from R3, with the path attributes ORIGIN, AS_PATH, and MULTI_EXIT_DISC.
Border Gateway Protocol - UPDATE Message
Marker: ffffffffffffffffffffffffffffffff
Length: 60
Type: UPDATE Message (2)
Withdrawn Routes Length: 0
Total Path Attribute Length: 37
Path attributes
Path Attribute - MP_REACH_NLRI
Flags: 0x90, Optional, Extended-Length, Non-transitive, Complete
1... .... = Optional: Set
.0.. .... = Transitive: Not set
..0. .... = Partial: Not set
...1 .... = Extended-Length: Set
.... 0000 = Unused: 0x0
Type Code: MP_REACH_NLRI (14)
Length: 13
Address family identifier (AFI): IPv4 (1)
Subsequent address family identifier (SAFI): Unicast (1)
Next hop: 10.2.3.3
IPv4 Address: 10.2.3.3
Number of Subnetwork points of attachment (SNPA): 0
Network Layer Reachability Information (NLRI)
192.168.3.0/24
MP Reach NLRI prefix length: 24
MP Reach NLRI IPv4 prefix: 192.168.3.0
Path Attribute - ORIGIN: IGP
Flags: 0x40, Transitive, Well-known, Complete
0... .... = Optional: Not set
.1.. .... = Transitive: Set
..0. .... = Partial: Not set
...0 .... = Extended-Length: Not set
.... 0000 = Unused: 0x0
Type Code: ORIGIN (1)
Length: 1
Origin: IGP (0)
Path Attribute - AS_PATH: 65002
Flags: 0x40, Transitive, Well-known, Complete
0... .... = Optional: Not set
.1.. .... = Transitive: Set
..0. .... = Partial: Not set
...0 .... = Extended-Length: Not set
.... 0000 = Unused: 0x0
Type Code: AS_PATH (2)
Length: 6
AS Path segment: 65002
Segment type: AS_SEQUENCE (2)
Segment length (number of ASN): 1
AS4: 65002
Path Attribute - MULTI_EXIT_DISC: 0
Flags: 0x80, Optional, Non-transitive, Complete
1... .... = Optional: Set
.0.. .... = Transitive: Not set
..0. .... = Partial: Not set
...0 .... = Extended-Length: Not set
.... 0000 = Unused: 0x0
Type Code: MULTI_EXIT_DISC (4)
Length: 4
Multiple exit discriminator: 0MP_REACH_NLRI attribute (RFC 4760) rather than in the NLRI field of the UPDATE body. In the basic form defined in RFC 4271, the next hop is carried in the NEXT_HOP attribute and the prefixes in the NLRI field.The third UPDATE is the 23-byte End-of-RIB marker with no attributes and no NLRI, indicating that the initial advertisement is complete.
Border Gateway Protocol - UPDATE Message
Marker: ffffffffffffffffffffffffffffffff
Length: 23
Type: UPDATE Message (2)
Withdrawn Routes Length: 0
Total Path Attribute Length: 0Inside the UPDATE Message (Withdrawing a Route)
Shutting down Loopback1 on R4 makes 192.168.4.0/24 no longer advertisable.
RP/0/RP0/CPU0:R4#show running-config interface Loopback1
Sat Sep 5 04:13:22.993 UTC
interface Loopback1
description advertised network 192.168.4.0/24
ipv4 address 192.168.4.1 255.255.255.0
shutdown
!The withdrawal propagates from R4 to R3 to R2 to R1. On the R2 - R3 link it appears as the UPDATE in No. 25. 192.168.4.0/24 is in the Withdrawn Routes, the Total Path Attribute Length is 0, and there are no path attributes and no NLRI.
Border Gateway Protocol - UPDATE Message
Marker: ffffffffffffffffffffffffffffffff
Length: 27
Type: UPDATE Message (2)
Withdrawn Routes Length: 4
Withdrawn Routes
192.168.4.0/24
Withdrawn route prefix length: 24
Withdrawn prefix: 192.168.4.0
Total Path Attribute Length: 0In the raw bytes, the Length 00 1b (27 bytes) and Type 02 (UPDATE) are followed by the Withdrawn Routes Length 00 04, the prefix length 18 (24), the prefix c0 a8 04 00 (192.168.4.0), and the Total Path Attribute Length 00 00.
0020 03 02 89 5c 00 b3 c2 27 c0 56 08 e5 d2 1c 50 18 ...\...'.V....P.
0030 7f 1a 64 23 00 00 ff ff ff ff ff ff ff ff ff ff ..d#............
0040 ff ff ff ff ff ff 00 1b 02 00 04 18 c0 a8 04 00 ................
0050 00 .Before the withdrawal, R2’s BGP table held four routes.
RP/0/RP0/CPU0:R2#show bgp
<snip>
Status codes: s suppressed, d damped, h history, * valid, > best
i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*>i192.168.1.0/24 10.0.0.1 0 100 0 i
*> 192.168.2.0/24 0.0.0.0 0 32768 i
*> 192.168.3.0/24 10.2.3.3 0 0 65002 i
*> 192.168.4.0/24 10.2.3.3 0 65002 65003 i
Processed 4 prefixes, 4 pathsAfter the withdrawal, 192.168.4.0/24 is gone and three routes remain.
RP/0/RP0/CPU0:R2#show bgp
<snip>
Status codes: s suppressed, d damped, h history, * valid, > best
i - internal, r RIB-failure, S stale, N Nexthop-discard
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*>i192.168.1.0/24 10.0.0.1 0 100 0 i
*> 192.168.2.0/24 0.0.0.0 0 32768 i
*> 192.168.3.0/24 10.2.3.3 0 0 65002 i
Processed 3 prefixes, 3 pathsThe same route is also removed from the routing table of R1, deeper inside AS 65001.
RP/0/RP0/CPU0:R1#show route bgp
Sat Sep 5 04:13:44.000 UTC
B 192.168.2.0/24 [200/0] via 10.0.0.2, 01:02:47
B 192.168.3.0/24 [200/0] via 10.2.3.3, 00:01:14Bringing Loopback1 on R4 back up with no shutdown re-advertises 192.168.4.0/24 in the UPDATE of No. 29, and it reappears in R1’s routing table.
RP/0/RP0/CPU0:R1#show route bgp
Sat Sep 5 04:15:06.708 UTC
B 192.168.2.0/24 [200/0] via 10.0.0.2, 01:04:09
B 192.168.3.0/24 [200/0] via 10.2.3.3, 00:02:37
B 192.168.4.0/24 [200/0] via 10.2.3.3, 00:01:08show bgp neighbor on R3 counts how many prefixes it advertised to R2 and how many it withdrew.
RP/0/RP0/CPU0:R3#show bgp neighbor 10.2.3.2 | include Prefix advertised
Sat Sep 5 04:14:46.469 UTC
Prefix advertised 5, suppressed 0, withdrawn 1Inside the NOTIFICATION Message
The NOTIFICATION sent by R2 in No. 1. Because the teardown was caused by clear bgp, the Error code is 6 (Cease) and the subcode is 4 (Administratively Reset).
Border Gateway Protocol - NOTIFICATION Message
Marker: ffffffffffffffffffffffffffffffff
Length: 21
Type: NOTIFICATION Message (3)
Major error Code: Cease (6)
Minor error Code (Cease): Administratively Reset (4)Checking the Message Counters
show bgp neighbor shows the number of messages exchanged with a peer, the capabilities exchanged in the OPEN, and the Hold Time and KEEPALIVE interval.
RP/0/RP0/CPU0:R2#show bgp neighbor 10.2.3.3
Sat Sep 5 04:14:33.229 UTC
BGP neighbor is 10.2.3.3
Remote AS 65002, local AS 65001, external link
Description: eBGP to R3
Remote router ID 10.0.0.3
BGP state = Established, up for 00:02:04
Previous State: Idle
Last Received Message: Update
NSR State: None
Last read 00:00:35, Last read before reset 00:03:04
Hold time is 180, keepalive interval is 60 seconds
Configured hold time: 180, keepalive: 60, min acceptable hold time: 3
Precedence: internet
Non-stop routing is enabled
Enforcing first AS is enabled
Multi-protocol capability received
Neighbor capabilities:
Route refresh: advertised (old + new) and received (old + new)
4-byte AS: advertised and received
Address family IPv4 Unicast: advertised and received
Received 79 messages, 0 notifications, 0 in queue
Sent 77 messages, 1 notifications, 0 in queue
Minimum time between advertisement runs is 30 secsConfiguration Files
Download R1 config (r1_bgp-message.cfg)
Download R2 config (r2_bgp-message.cfg)
Download R3 config (r3_bgp-message.cfg)
Download R4 config (r4_bgp-message.cfg)
Command Outputs
The output of show route, show bgp, show bgp <prefix> (for all four prefixes), show bgp summary, and show bgp neighbor, collected per router.
Download R1 output (r1_bgp-message_show.txt)
Download R2 output (r2_bgp-message_show.txt)
Download R3 output (r3_bgp-message_show.txt)
Download R4 output (r4_bgp-message_show.txt)
References
| Source | Title | Summary |
|---|---|---|
| IANA | Border Gateway Protocol (BGP) Parameters | The registry of numbers used by BGP: message types, path attributes, capability codes, NOTIFICATION error codes and subcodes, and more. |
| RFC 4271 | A Border Gateway Protocol 4 (BGP-4) | The base specification of BGP-4, defining the format of each message. |
| RFC 5492 | Capabilities Advertisement with BGP-4 | Defines the capabilities carried in the OPEN message. |
| RFC 4486 | Subcodes for BGP Cease Notification Message | Defines the subcodes of the Cease NOTIFICATION. |
| RFC 4724 | Graceful Restart Mechanism for BGP | Defines the End-of-RIB marker. |
| RFC 4760 | Multiprotocol Extensions for BGP-4 | Defines the MP_REACH_NLRI / MP_UNREACH_NLRI attributes. |