aboutsummaryrefslogtreecommitdiffstats
path: root/roles/space_server/files
diff options
context:
space:
mode:
Diffstat (limited to 'roles/space_server/files')
-rw-r--r--roles/space_server/files/bird.conf15
1 files changed, 7 insertions, 8 deletions
diff --git a/roles/space_server/files/bird.conf b/roles/space_server/files/bird.conf
index 943cd6c..a893cc9 100644
--- a/roles/space_server/files/bird.conf
+++ b/roles/space_server/files/bird.conf
@@ -83,18 +83,17 @@ function is_default_route() {
return false;
}
-function is_customer_route() {
- case net.type {
- NET_IP4: if net ~ local_prefixes_v4 then return true;
- NET_IP6: if net ~ local_prefixes_v6 then return true;
- }
- return false;
+function is_propagated_route() {
+ return bgp_large_community ~ [
+ (local_asn, lc_f_type, lc_type_customer),
+ (local_asn, lc_f_type, lc_type_originate)
+ ];
}
filter kernel_export {
if source !~ [ RTS_BGP, RTS_STATIC ] then reject;
if is_default_route() then accept;
- if is_customer_route() then accept;
+ if is_propagated_route() then accept;
reject;
}
@@ -112,7 +111,7 @@ filter transit_import {
}
filter transit_export {
- if is_customer_route() then accept;
+ if is_propagated_route() then accept;
reject;
}