Commit cec4a73c authored by Ondrej Zajicek (work)'s avatar Ondrej Zajicek (work)
Browse files

Doc: Documentation for large communities

parent 60566c5c
Loading
Loading
Loading
Loading
+34 −4
Original line number Diff line number Diff line
@@ -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