aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAsbjørn Sloth Tønnesen <asbjorn@labitat.dk>2021-06-18 21:34:39 +0000
committerAsbjørn Sloth Tønnesen <asbjorn@labitat.dk>2021-06-18 22:36:38 +0000
commit6456863d1350340a8d6cfad183332e80b334bd8d (patch)
tree5574c70cc133529aa50c8c282b3d899241c5b965
parent0b9f7c5cfad16602bf2df5276a5bee18888fd618 (diff)
downloadlabitat-ansible-6456863d1350340a8d6cfad183332e80b334bd8d.tar.gz
labitat-ansible-6456863d1350340a8d6cfad183332e80b334bd8d.tar.xz
labitat-ansible-6456863d1350340a8d6cfad183332e80b334bd8d.zip
space_server: bird: prepare large communities
This patch prepares us for adopting Large BGP Communities (RFC 8092). Basic format of Large BGP Communities: <uint32_t asn>:<uint32_t function>:<uint32_t value> We use function 1 for storing prefix type (or relation). We then assign a value to transit, peering, customer and originated prefixes. Large BGP Communities http://largebgpcommunities.net/ https://tools.ietf.org/html/rfc8092 https://tools.ietf.org/html/rfc8195
-rw-r--r--roles/space_server/files/bird.conf14
1 files changed, 14 insertions, 0 deletions
diff --git a/roles/space_server/files/bird.conf b/roles/space_server/files/bird.conf
index fbd426a..5e48427 100644
--- a/roles/space_server/files/bird.conf
+++ b/roles/space_server/files/bird.conf
@@ -60,8 +60,22 @@ define hafnium_prefixes_v6 = [
2a0e:8f02:f034::/48
];
+# large communities
+define lc_f_type = 1;
+
+define lc_type_transit = 1;
+define lc_type_peering = 2;
+define lc_type_customer = 3;
+define lc_type_originate = 4;
+
# functions and filters
+function set_peer_type(int new_type)
+{
+ bgp_large_community.delete([(local_asn, lc_f_type, *)]);
+ bgp_large_community.add( (local_asn, lc_f_type, new_type));
+}
+
function is_default_route() {
case net.type {
NET_IP4: if net = 0.0.0.0/0 then return true;