Date created: Friday, May 10, 2024 5:50:08 PM. Last modified: Friday, May 10, 2024 5:55:18 PM

BGP Communities

Standard Communities

32-bit (4 byte) payload split into 2x 2-byte values, e.g. as-number:community-value.


Extended Communities

64-bit (8 byte) payload split into 2-or-2-byte type + 7-or-6 byte value:

      Type Field:

         Two classes of Type Field are introduced: Regular type and
         Extended type.

         The size of Type Field for Regular types is 1 octet, and the
         size of the Type Field for Extended types is 2 octets.

         The value of the high-order octet of the Type Field determines
         if an extended community is a Regular type or an Extended type.
         The class of a type (Regular or Extended) is not encoded in the
         structure of the type itself.


Example 1:

byte 1 == 0x80 (meaning "BGP Transitive Extended Community")

byte 2 == 0x06 (meaning "Flowspec traffic rate limit action")

Bytes 3-8 == Specific to the application (FlowSpec, e.g. traffic rate limit in Bytes per second)


Example 2:

byte 1 == 0x00 (meaning "BGP Transitive Extended Community")

byte 2 == 0x02 (meaning "Route Target")

bytes 3-8 == Specific to the application (L3VPN, e.g. 4 byte ASN + 2 byte VPN ID)


Large Communities

96-bit (12 byte) payload split into 3x 4-byte values, e.g. local-as:remote-as:community-value.