diff options
author | Asbjørn Sloth Tønnesen <asbjorn@labitat.dk> | 2021-06-18 21:34:39 +0000 |
---|---|---|
committer | Asbjørn Sloth Tønnesen <asbjorn@labitat.dk> | 2021-06-18 22:36:38 +0000 |
commit | 6456863d1350340a8d6cfad183332e80b334bd8d (patch) | |
tree | 5574c70cc133529aa50c8c282b3d899241c5b965 | |
parent | 0b9f7c5cfad16602bf2df5276a5bee18888fd618 (diff) | |
download | labitat-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.conf | 14 |
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; |