Visual RFC.
ALL RFCs / RFC 5492
Read the RFC ↗
RFC 5492 / BGP CAPABILITY ADVERTISEMENT

Accept equivalent lists and repeated records

03

Preferred transmission and mandatory receive compatibility are different rules.

RFC 5492 · § 4EXAMPLE
4 / 4
Accept equivalent lists and repeated recordsRFC 5492 capability-advertisement example. Two Code 1 records can describe separate IPv4-unicast and IPv6-unicast Multiprotocol tuples. Their code-specific values, not just their shared Code, identify the advertised support.Different containers can convey the same setSame Code, different Multiprotocol tuplesCode 1 · AFI 1 / SAFI 1 · IPv4 unicastCode 1 · AFI 2 / SAFI 1 · IPv6 unicastCompare code-specific valuesMP IPv4/unicastMP IPv6/unicastMultiple different Values MAY be advertisedThese optional tuples do not replace base BGP IPv4 supportRFC 5492 · chapter 3 · state 4 · selected teaching example
04
Keep different AFI/SAFI values distinct

Two Code 1 records can describe separate IPv4-unicast and IPv6-unicast Multiprotocol tuples. Their code-specific values, not just their shared Code, identify the advertised support.

Source for this drawing: RFC 5492 · Read RFC section 4 ↗

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
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.

Related RFCs and changes

“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.

KEY POINT

The Capabilities Optional Parameter SHOULD appear only once in an OPEN, with the capabilities listed as TLVs in it. For backward compatibility, a receiver MUST be prepared to accept multiple such Optional Parameters and process the same capability set equivalently (§4).

  • The Capabilities Optional Parameter SHOULD appear only once in an OPEN, with the capabilities listed as TLVs in it. For backward compatibility, a receiver MUST be prepared to accept multiple such Optional Parameters and process the same capability set equivalently (§4).
  • Our single combined parameter is ten bytes. Splitting Route Refresh and Multiprotocol into two parameters adds a second outer header: four plus eight equals twelve bytes. The two encodings convey the same two capability records. More container bytes do not create another feature (§4).
  • A sender SHOULD NOT include multiple instances with identical Capability Code, Length and Value. A receiver nevertheless MUST be prepared to accept those duplicates; they do not change the announced capability’s meaning. The decoder preserves raw records while the selected semantic comparison deduplicates them (§4).
  • Multiple instances of one Capability Code with non-zero Length and different Values MAY appear. Their processing MUST be described by that capability’s specification. For Multiprotocol, separate AFI/SAFI tuples appear as separate capabilities (RFC4760 §8).
  • Our IPv4-unicast and IPv6-unicast Multiprotocol examples have different AFI values. Comparing only Code 1 would confuse them. The Reserved byte is ignored when comparing those tuples. Absence of an optional Multiprotocol IPv4 tuple is not a claim that base BGP cannot exchange IPv4 routes.
DETAILS

Worked examples use selected capability formats and classic OPEN optional-parameter framing. This is not a full BGP parser, state machine, routing implementation or authentication check.

Read the RFC section ↗

All chapters in RFC 5492

Drawing view

Scroll the drawing to see every part. Playback controls stay above it.

RFC 9700 / CHAPTERS

Chapters

For full details, tables, algorithms, and exceptions, read the original RFC.

RFC status and corrections ↗