BGP Attributes are pieces of information that a BGP router attaches to describe different prefixes included in it’s BGP update messages. There is a variable sequence of BGP attributes in every update message except for those that carries only withdrawn routes.
Each attribute is a TLV that consists of attribute type, attribute length and attribute value. Each attribute type consists of two octets, one for flag and the other is the type as described briefly in the following section.
BGP attributes have different distinctive types that defines how routes are going to use and propagate a certain attribute to it’s neighbors. The types are explained in details in our post BGP Attribute types and Flags.
Well known BGP attribute types:
- Well-known mandatory: Attributes of this type must be understood by all BGP implementations and must EXIST in the BGP update messages.
- Well-known discretionary: Attributes of this type must be understood by all BGP implementations but they don’t have to exist in all BGP updates to all neighbors.
Optional BGP attribute types:
Optional transitive: optional BGP attributes as the name implies don’t need to be understood by all BGP implementations, but since the transitive flag is set they will be passed to other neighbors.
Optional non-transitive: Attributes of this type are also optional as the name implies and will not be passed to other neighbors.
BGP Attributes list:
|Type Code value||Attribute Name||Attribute Type|
|4||MULTI_EXIT_DISC (MED)||Optional non-transitive|
|10||Cluster List||Optional non-transitive|
|11||DPA||Designation Point Attribute|
|12||Advertiser||BGP/IDRP Route Server|
|13||RCID_PATH/CLUSTER_ID||BGP/IDRP Route Server|
|14||Multiprotocol Reachable NLRI||Optional non-transitive|
|15||Multiprotocol Unreachable NLRI||Optional non-transitive|
|256||Reserved for future development|
These list of path attributes is used by every BGP router along the path to compare different network paths and the select the ones to move to the BGP table to the routing table.
One more attribute that is not included in this list, is the weight attribute. The weight is a Cisco proprietary local attribute that is not propagated in BGP update messages but is used by Cisco routers for path selection.