summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorOndrej Zajicek (work) <santiago@crfreenet.org>2020-05-18 16:25:08 +0200
committerOndrej Zajicek (work) <santiago@crfreenet.org>2020-05-18 16:25:08 +0200
commitec430a7feefd3b32ee39c641a48c44528d0eab25 (patch)
tree2faac868b9ad1daddc3bea6253ac7d1de7560323 /doc
parent5fc8407177fd34f2d57441a8ff9a068f4162fbfb (diff)
Nest: Implement BGP path mask loop operator
Implement regex-like '+' operator in BGP path masks to match previous path mask item multiple times. This is useful as ASNs may appear multiple times in paths due to path prepending for traffic engineering purposes.
Diffstat (limited to 'doc')
-rw-r--r--doc/bird.sgml15
1 files changed, 10 insertions, 5 deletions
diff --git a/doc/bird.sgml b/doc/bird.sgml
index 1808d04c..786f124b 100644
--- a/doc/bird.sgml
+++ b/doc/bird.sgml
@@ -1471,11 +1471,16 @@ in the foot).
<cf/*/ matches any (even empty) sequence of arbitrary AS numbers and
<cf/?/ matches one arbitrary AS number. For example, if <cf>bgp_path</cf>
is 4 3 2 1, then: <tt>bgp_path &tilde; [= * 4 3 * =]</tt> is true,
- but <tt>bgp_path &tilde; [= * 4 5 * =]</tt> is false. BGP mask
- expressions can also contain integer expressions enclosed in parenthesis
- and integer variables, for example <tt>[= * 4 (1+2) a =]</tt>. You can
- also use ranges (e.g. <tt>[= * 3..5 2 100..200 * =]</tt>) and sets
- (e.g. <tt>[= 1 2 [3, 5, 7] * =]</tt>).
+ but <tt>bgp_path &tilde; [= * 4 5 * =]</tt> is false. There is also
+ <cf/+/ operator which matches one or multiple instances of previous
+ expression, e.g. <tt>[= 1 2+ 3 =]</tt> matches both path 1 2 3 and path
+ 1 2 2 2 3, but not 1 3 nor 1 2 4 3. Note that while <cf/*/ and <cf/?/
+ are wildcard-style operators, <cf/+/ is regex-style operator.
+
+ BGP mask expressions can also contain integer expressions enclosed in
+ parenthesis and integer variables, for example <tt>[= * 4 (1+2) a =]</tt>.
+ You can also use ranges (e.g. <tt>[= * 3..5 2 100..200 * =]</tt>)
+ and sets (e.g. <tt>[= 1 2 [3, 5, 7] * =]</tt>).
<tag><label id="type-clist">clist</tag>
Clist is similar to a set, except that unlike other sets, it can be