aboutsummaryrefslogtreecommitdiffstats
path: root/filter
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2022-10-03 20:06:13 +0200
committerOndrej Zajicek <santiago@crfreenet.org>2023-10-04 13:07:28 +0200
commitbcff3ae79acfd938459869ac98db4f83e3d422b6 (patch)
treeeabbe667de33fcf3b077421511d70ee151ba0615 /filter
parent9ca86ef69cc56cb75e48e6f46bfdbe1b1e3e99b6 (diff)
downloadbird-bcff3ae79acfd938459869ac98db4f83e3d422b6.tar.gz
L3VPN: BGP/MPLS VPNs using MPLS backbone
The L3VPN protocol implements RFC 4364 BGP/MPLS VPNs using MPLS backbone. It works similarly to pipe. It connects IP table (one per VRF) with (global) VPN table. Routes passed from VPN table to IP table are stripped of RD and filtered by import targets, routes passed in the other direction are extended with RD, MPLS labels and export targets in extended communities. A separate MPLS channel is used to announce MPLS routes for the labels.
Diffstat (limited to 'filter')
-rw-r--r--filter/config.Y7
1 files changed, 6 insertions, 1 deletions
diff --git a/filter/config.Y b/filter/config.Y
index a15683f5..cf25d874 100644
--- a/filter/config.Y
+++ b/filter/config.Y
@@ -387,7 +387,7 @@ CF_KEYWORDS(FUNCTION, PRINT, PRINTN, UNSET, RETURN,
%type <ecs> ec_kind
%type <fret> break_command
%type <i32> cnum
-%type <e> pair_item ec_item lc_item set_item switch_item set_items switch_items switch_body
+%type <e> pair_item ec_item lc_item set_item switch_item ec_items set_items switch_items switch_body
%type <trie> fprefix_set
%type <v> set_atom switch_atom fipa
%type <px> fprefix
@@ -716,6 +716,11 @@ switch_item:
| switch_atom DDOT switch_atom { $$ = f_new_item($1, $3); }
;
+ec_items:
+ ec_item
+ | ec_items ',' ec_item { $$ = f_merge_items($1, $3); }
+ ;
+
set_items:
set_item
| set_items ',' set_item { $$ = f_merge_items($1, $3); }