diff options
author | Ondrej Zajicek (work) <santiago@crfreenet.org> | 2020-05-18 16:25:08 +0200 |
---|---|---|
committer | Ondrej Zajicek (work) <santiago@crfreenet.org> | 2020-05-18 16:25:08 +0200 |
commit | ec430a7feefd3b32ee39c641a48c44528d0eab25 (patch) | |
tree | 2faac868b9ad1daddc3bea6253ac7d1de7560323 /filter/config.Y | |
parent | 5fc8407177fd34f2d57441a8ff9a068f4162fbfb (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 'filter/config.Y')
-rw-r--r-- | filter/config.Y | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/filter/config.Y b/filter/config.Y index 77424a8b..557a951f 100644 --- a/filter/config.Y +++ b/filter/config.Y @@ -662,6 +662,7 @@ bgp_path_tail: } | '*' bgp_path_tail { $$ = f_new_inst(FI_CONSTANT, (struct f_val) { .type = T_PATH_MASK_ITEM, .val.pmi = { .kind = PM_ASTERISK }, }); $$->next = $2; } | '?' bgp_path_tail { $$ = f_new_inst(FI_CONSTANT, (struct f_val) { .type = T_PATH_MASK_ITEM, .val.pmi = { .kind = PM_QUESTION }, }); $$->next = $2; } + | '+' bgp_path_tail { $$ = f_new_inst(FI_CONSTANT, (struct f_val) { .type = T_PATH_MASK_ITEM, .val.pmi = { .kind = PM_LOOP }, }); $$->next = $2; } | bgp_path_expr bgp_path_tail { $$ = $1; $$->next = $2; } | { $$ = NULL; } ; |