summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOndrej Zajicek (work) <santiago@crfreenet.org>2016-10-04 00:31:43 +0200
committerOndrej Zajicek (work) <santiago@crfreenet.org>2016-10-04 00:31:43 +0200
commitcec4a73ccb22ed412e87560e4210b6df40832aad (patch)
treeb94b8b2e479ef691971623bc3e4c961673a00d84
parent60566c5c804070c145fafd75ef2c17efb489a1eb (diff)
Doc: Documentation for large communities
-rw-r--r--doc/bird.sgml38
1 files changed, 34 insertions, 4 deletions
diff --git a/doc/bird.sgml b/doc/bird.sgml
index 26673f03..bb88dc61 100644
--- a/doc/bird.sgml
+++ b/doc/bird.sgml
@@ -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