summaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
authorChristian Breunig <christian@breunig.cc>2023-12-10 21:13:54 +0100
committerChristian Breunig <christian@breunig.cc>2023-12-11 18:21:26 +0100
commitca301cdd4746187f96ff84e411fda6a84e33f237 (patch)
tree9cc422258208424d18b1f8fb19f3b1ba9f3d2ef2 /data
parentaf46fe54e56cf85d13b62ee771bec3d80f225ac5 (diff)
downloadvyos-1x-ca301cdd4746187f96ff84e411fda6a84e33f237.tar.gz
vyos-1x-ca301cdd4746187f96ff84e411fda6a84e33f237.zip
srv6: T591: initial implementation to support locator definition
VyOS CLI set protocols segment-routing srv6 locator bar prefix '2001:b::/64' set protocols segment-routing srv6 locator foo behavior-usid set protocols segment-routing srv6 locator foo prefix '2001:a::/64' Will generate in FRR segment-routing srv6 locators locator bar prefix 2001:b::/64 block-len 40 node-len 24 func-bits 16 exit ! locator foo prefix 2001:a::/64 block-len 40 node-len 24 func-bits 16 behavior usid exit ! exit ! exit ! exit
Diffstat (limited to 'data')
-rw-r--r--data/configd-include.json1
-rw-r--r--data/templates/frr/zebra.segment_routing.frr.j223
2 files changed, 24 insertions, 0 deletions
diff --git a/data/configd-include.json b/data/configd-include.json
index a762a6d4c..92d3863ce 100644
--- a/data/configd-include.json
+++ b/data/configd-include.json
@@ -53,6 +53,7 @@
"protocols_rip.py",
"protocols_ripng.py",
"protocols_rpki.py",
+"protocols_segment_routing.py",
"protocols_static.py",
"protocols_static_multicast.py",
"qos.py",
diff --git a/data/templates/frr/zebra.segment_routing.frr.j2 b/data/templates/frr/zebra.segment_routing.frr.j2
new file mode 100644
index 000000000..7b12fcdd0
--- /dev/null
+++ b/data/templates/frr/zebra.segment_routing.frr.j2
@@ -0,0 +1,23 @@
+!
+{% if srv6.locator is vyos_defined %}
+segment-routing
+ srv6
+ locators
+{% for locator, locator_config in srv6.locator.items() %}
+ locator {{ locator }}
+{% if locator_config.prefix is vyos_defined %}
+ prefix {{ locator_config.prefix }} block-len {{ locator_config.block_len }} node-len {{ locator_config.node_len }} func-bits {{ locator_config.func_bits }}
+{% endif %}
+{% if locator_config.behavior_usid is vyos_defined %}
+ behavior usid
+{% endif %}
+ exit
+ !
+{% endfor %}
+ exit
+ !
+exit
+!
+exit
+!
+{% endif %}