Subcodes for BGP Finite State Machine Error
updates
- rfc-4271 — A Border Gateway Protocol 4 (BGP-4)
Extracted elements (7)
More specific FSM error subcodes were introduced to provide additional diagnostic information to network operators and developers when BGP FSM issues occur, enabling better correlation of network events beyond what the generic FSM Error code alone could convey.
If a BGP speaker receives an unexpected message (e.g., OPEN) in Established state, it MUST send a NOTIFICATION with Error Code Finite State Machine Error and subcode 'Receive Unexpected Message in Established State'. The Data field is a 1-octet unsigned integer indicating the type of the unexpected message.
RFC 6608 defines four subcodes for the BGP Finite State Machine Error: 0 (Unspecified Error), 1 (Receive Unexpected Message in OpenSent State), 2 (Receive Unexpected Message in OpenConfirm State), and 3 (Receive Unexpected Message in Established State).
IANA created the 'BGP Finite State Machine Error Subcodes' registry within the 'BGP Error Subcodes' registry, with Registration Procedure 'Standards Action'. Initial values are: 0 (Unspecified Error), 1 (Receive Unexpected Message in OpenSent State), 2 (Receive Unexpected Message in OpenConfirm State), 3 (Receive Unexpected Message in Established State).
Specification, implementation, and deployment of BGP FSM Error subcodes could make BGP implementation fingerprinting easier and more accurate, since different implementations may send distinct subcodes. Operators should consider this as an operational security concern when making BGP deployment decisions.
BGP FSM error subcodes map to three session states where unexpected messages may be received: OpenSent (subcode 1), OpenConfirm (subcode 2), and Established (subcode 3). Receipt of an unexpected message in any of these states triggers a NOTIFICATION and session teardown.
The Data field in NOTIFICATION messages for FSM Error subcodes is a 1-octet unsigned integer that encodes the BGP message type of the unexpected message that triggered the error.