Carry the originator and reflection history
03Two optional non-transitive attributes carry a router identifier and a sequence of cluster identifiers.
The selected headers are 80 0a fc and 90 0a 01 00. Displayed header cells are equal octets; list bodies are summarized.
Source for this drawing: RFC 4456 · Read RFC section 8 ↗
New to this? Start hereA quick picture + helpful background
A message needs an address.
Think of a packet as a small addressed envelope. Devices pass it onward; transport protocols decide what delivery promises an application gets.
Helpful first, if these ideas are unfamiliar
These pictures are analogies to help you learn. The linked RFC explains the actual rules.
Terms in this drawing
Related RFCs and changes
“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.
Preserve an existing originator and prepend the local cluster.
- ORIGINATOR_ID is optional, non-transitive attribute type 9 with a four-octet value. On reflection the RR creates it with the route’s originating BGP Identifier in the local AS. A speaker SHOULD NOT create another one if one already exists; the chosen model preserves the existing value (§8). An optional attribute need not be understood by every BGP speaker. A speaker that does not recognize an optional non-transitive attribute quietly ignores that attribute rather than passing it onward (RFC 4271 §5).
- BGP Identifiers are identifiers, not the packet’s destination or a mandatory forwarding-interface address. Current RFC 6286 §§1–2.1 defines a four-octet unsigned non-zero identifier with AS-wide uniqueness context. The selected identifier 192.0.2.10 is printed in dotted notation and encoded c0 00 02 0a. These are fictional documentation values, not a real routing session.
- CLUSTER_LIST is optional, non-transitive attribute type 10: a sequence of four-byte CLUSTER_ID values. When reflecting, an RR MUST prepend its local ID. If no history exists, it MUST create a list. Thus local .2 and prior list [.1] become [.2,.1], not [.1,.2]. A logical absent/empty history before reflection is distinct from receiving a serialized zero-length attribute (§8; RFC 7606 §7.10).
- BGP attribute headers contain flags, type and a length of the value in octets. Selected short encodings use flags80(hex): optional, non-transitive, Partial0, ExtendedLength0. ORIGINATOR_ID is 80 09 04 c0 00 02 0a. A two-ID CLUSTER_LIST has value length8 and a three-byte short header (RFC 4271 §4.3). Octet means eight bits.
- Length is not always one byte. With 63 cluster IDs the value has252 octets and fits a short length fc; with64 IDs it has256 octets and the selected extended encoding is 90 0a 01 00, followed by256 value octets. ExtendedLength1 selects a two-octet length. RFC4456 Appendix A explicitly removes an older misleading one-octet-only drawing. The field bound alone does not guarantee an entire BGP UPDATE will fit (RFC 4271 §§4,4.3).
- Rejected Technical erratum3898 asks about receiving only one of these attributes. It does not establish a new paired-presence requirement. The selected receiver does not classify an otherwise valid single attribute as malformed merely because its partner is absent.
Fictional offline routing examples. Lines show BGP control sessions or route advertisements, not user-packet forwarding paths. Helpers model selected reflection and attribute rules; they do not implement a BGP daemon, TCP session, full decision process or production configuration.
Read the RFC section ↗