diff options
author | Ondrej Zajicek (work) <santiago@crfreenet.org> | 2021-05-18 19:54:18 +0200 |
---|---|---|
committer | Ondrej Zajicek (work) <santiago@crfreenet.org> | 2021-05-18 19:54:18 +0200 |
commit | dd8481cc1c92af32ec69cded42b985b7bad40b26 (patch) | |
tree | 3ff60df9e9c75dc61b3d0ca6857c3b2205ddf1db /doc/bird.sgml | |
parent | e5468d16855600aeb8172e29936789c46ea58da0 (diff) |
Flowspec: Do not use comma for bitmask operators
For numeric operators, comma is used for disjunction in expressions like
"10, 20, 30..40". But for bitmask operators, comma is used for
conjunction in a way that does not really make much sense. Use always
explicit logical operators (&& and ||) to connect bitmask operators.
Thanks to Matt Corallo for the bugreport.
Diffstat (limited to 'doc/bird.sgml')
-rw-r--r-- | doc/bird.sgml | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/doc/bird.sgml b/doc/bird.sgml index 51a92ce9..ff599216 100644 --- a/doc/bird.sgml +++ b/doc/bird.sgml @@ -5080,20 +5080,21 @@ options (<cf/bfd/ and <cf/weight 1/), the second nexthop has just <cf/weight 2/. <p>The flow specification are rules for routers and firewalls for filtering purpose. It is described by <rfc id="5575">. There are 3 types of arguments: -<m/inet4/ or <m/inet6/ prefixes, bitmasks matching expressions and numbers +<m/inet4/ or <m/inet6/ prefixes, numeric matching expressions and bitmask matching expressions. -Bitmasks matching is written using <m/value/<cf>/</cf><m/mask/ or -<cf/!/<m/value/<cf>/</cf><m/mask/ pairs. It means that <cf/(/<m/data/ <cf/&/ -<m/mask/<cf/)/ is or is not equal to <m/value/. - -Numbers matching is a matching sequence of numbers and ranges separeted by a +Numeric matching is a matching sequence of numbers and ranges separeted by a commas (<cf/,/) (e.g. <cf/10,20,30/). Ranges can be written using double dots <cf/../ notation (e.g. <cf/80..90,120..124/). An alternative notation are sequence of one or more pairs of relational operators and values separated by logical operators <cf/&&/ or <cf/||/. Allowed relational operators are <cf/=/, <cf/!=/, <cf/</, <cf/<=/, <cf/>/, <cf/>=/, <cf/true/ and <cf/false/. +Bitmask matching is written using <m/value/<cf>/</cf><m/mask/ or +<cf/!/<m/value/<cf>/</cf><m/mask/ pairs. It means that <cf/(/<m/data/ <cf/&/ +<m/mask/<cf/)/ is or is not equal to <m/value/. It is also possible to use +multiple value/mask pairs connected by logical operators <cf/&&/ or <cf/||/. + <sect2>IPv4 Flowspec <p><descrip> @@ -5199,7 +5200,7 @@ protocol static { next header = 23; sport > 24 && < 30 || = 40 || 50,60,70..80; dport = 50; - tcp flags 0x03/0x0f, !0/0xff || 0x33/0x33; + tcp flags 0x03/0x0f && !0/0xff || 0x33/0x33; fragment !is_fragment || !first_fragment; label 0xaaaa/0xaaaa && 0x33/0x33; }; |