Path attributes are fundamental to BGP. A BGP route for a particular NLRI is distinguished from other BGP routes for the same NLRI by its set of path attributes. Each path attribute describes some property of the path and is encoded as a TLV in the Path Attributes field of the Update message. The type field of the TLV identifies the path attribute and the value field carries data specific to the attribute type. There are 4 different categories of path attributes:
Well-known mandatory
These attributes must be recognized by all BGP routers and must be present in every update message that advertises reachable NLRI toward a specific type of neighbor (EBGP or IBGP).
Well-known discretionary
These attributes must be recognized by all BGP routers but are not required in every update message.
Optional transitive
These attributes are allowed to be unrecognized by some BGP routers. If a BGP router does not recognize one of these attributes it accepts it, passes it on to other BGP peers, and sets the Partial bit to 1 in the attribute flags byte.
Optional non-transitive
These attributes are allowed to be unrecognized by some BGP routers. If a BGP router does not recognize one of these attributes it is quietly ignored and not passed on to other BGP peers.
SRĀ OS supports the following path attributes, which are described in detail in upcoming sections:
ORIGIN (well-known mandatory)
AS_PATH (well-known mandatory)
NEXT_HOP (well-known, required only in Update messages with IPv4 prefixes in the NLRI field)
MED (optional non-transitive)
LOCAL_PREF (well-known, required only in Update messages sent to IBGP peers)
ATOMIC_AGGR (well-known discretionary)
AGGREGATOR (optional transitive)
COMMUNITY (optional transitive)
ORIGINATOR_ID (optional non-transitive)
CLUSTER_LIST (optional non-transitive)
MP_REACH_NLRI (optional non-transitive)
MP_UNREACH_NLRI (optional non-transitive)
EXT_COMMUNITY (optional transitive)
AS4_PATH (optional transitive)
AS4_AGGREGATOR (optional transitive)
CONNECTOR (optional transitive)
PMSI_TUNNEL (optional transitive)
TUNNEL_ENCAPSULATION (optional transitive)
AIGP (optional non-transitive)
BGP-LS (optional non-transitive)
LARGE_COMMUNITY (optional transitive)