Doc: Documentation for large communities

This commit is contained in:
Ondrej Zajicek (work) 2016-10-04 00:31:43 +02:00
parent 60566c5c80
commit cec4a73ccb

View file

@ -1048,7 +1048,16 @@ foot).
for <cf/key/ and <cf/value/ parts, (e.g. <cf/(ro, myas, 3*10)/, where
<cf/myas/ is an integer variable).
<tag/int|pair|quad|ip|prefix|ec|enum set/
<tag/lc/
This is a specialized type used to represent BGP large community
values. It is essentially a triplet of 32bit values, where the first
value is reserved for the AS number of the issuer, while meaning of
remaining parts is defined by the issuer. Literals of this type are
written as <cf/(123, 456, 789)/, with any integer values. Similarly to
pairs, LCs can be constructed using expressions for its parts, (e.g.
<cf/(myas, 10+20, 3*10)/, where <cf/myas/ is an integer variable).
<tag/int|pair|quad|ip|prefix|ec|lc|enum set/
Filters recognize four types of sets. Sets are similar to strings: you
can pass them around but you can't modify them. Literals of type <cf>int
set</cf> look like <cf> [ 1, 2, 5..7 ]</cf>. As you can see, both simple
@ -1067,9 +1076,15 @@ foot).
(like <cf/(rt, *, 3)/) are not allowed (as they usually have 4B range
for ASNs).
You can also use expressions for int, pair and EC set values. However it
must be possible to evaluate these expressions before daemon boots. So
you can use only constants inside them. E.g.
Also LC sets use similar expressions like pair sets. You can use ranges
and wildcards, but if one field uses that, more specific (later) fields
must be wildcards. E.g., <cf/(10, 20..30, *)/ or <cf/(10, 20, 30..40)/
is valid, while <cf/(10, *, 20..30)/ or <cf/(10, 20..30, 40)/ is not
valid.
You can also use expressions for int, pair, EC and LC set values.
However, it must be possible to evaluate these expressions before daemon
boots. So you can use only constants inside them. E.g.
<code>
define one=1;
@ -1205,6 +1220,13 @@ foot).
The same operations (like <cf/add/, <cf/delete/ or <cf/&tilde;/ and
<cf/!&tilde;/ membership operators) can be used to modify or test
eclists, with ECs instead of pairs as arguments.
<tag/lclist/
Lclist is a data type used for BGP large community lists. Like eclists,
lclists are very similar to clists, but they are sets of LCs instead of
pairs. The same operations (like <cf/add/, <cf/delete/ or <cf/&tilde;/
and <cf/!&tilde;/ membership operators) can be used to modify or test
lclists, with LCs instead of pairs as arguments.
</descrip>
@ -2193,6 +2215,14 @@ some of them (marked with `<tt/O/') are optional.
field. Individual community values are represented using an <cf/ec/ data
type inside the filters.
<tag>lclist <cf/bgp_large_community/ [O]</tag>
List of large community values associated with the route. Large BGP
communities is another variant of communities, but contrary to extended
communities they behave very much the same way as regular communities,
just larger -- they are uniform untyped triplets of 32bit numbers.
Individual community values are represented using an <cf/lc/ data type
inside the filters.
<tag>quad <cf/bgp_originator_id/ [I, O]</tag>
This attribute is created by the route reflector when reflecting the
route and contains the router ID of the originator of the route in the