diff options
author | Ondrej Zajicek (work) <santiago@crfreenet.org> | 2016-10-04 00:31:43 +0200 |
---|---|---|
committer | Ondrej Zajicek (work) <santiago@crfreenet.org> | 2016-10-04 00:31:43 +0200 |
commit | cec4a73ccb22ed412e87560e4210b6df40832aad (patch) | |
tree | b94b8b2e479ef691971623bc3e4c961673a00d84 | |
parent | 60566c5c804070c145fafd75ef2c17efb489a1eb (diff) |
Doc: Documentation for large communities
-rw-r--r-- | doc/bird.sgml | 38 |
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/˜/ and <cf/!˜/ 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/˜/ + and <cf/!˜/ 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 |