When merging the frr.conf.local with the frr.conf, some lines cannot be
merged and we need to add custom frr config lines to the rust
configuration. Add the vec of lines and just dump them into the
template.

Co-authored-by: Stefan Hanreich <[email protected]>
Signed-off-by: Gabriel Goller <[email protected]>
---
 proxmox-frr-templates/templates/frr.conf.jinja | 3 +++
 proxmox-frr/src/ser/mod.rs                     | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/proxmox-frr-templates/templates/frr.conf.jinja 
b/proxmox-frr-templates/templates/frr.conf.jinja
index f8802f845332..68c159199f4e 100644
--- a/proxmox-frr-templates/templates/frr.conf.jinja
+++ b/proxmox-frr-templates/templates/frr.conf.jinja
@@ -1,4 +1,7 @@
 {% include "isisd.jinja" %}
+{% for line in custom_frr_config %}
+{{ line }}
+{% endfor %}
 {% include "fabricd.jinja" %}
 {% include "ospfd.jinja" %}
 {% include "access_lists.jinja" %}
diff --git a/proxmox-frr/src/ser/mod.rs b/proxmox-frr/src/ser/mod.rs
index fd491c9a0390..584c21eb5627 100644
--- a/proxmox-frr/src/ser/mod.rs
+++ b/proxmox-frr/src/ser/mod.rs
@@ -200,6 +200,8 @@ pub struct FrrConfig {
     pub routemaps: BTreeMap<RouteMapName, Vec<RouteMapEntry>>,
     #[serde(default)]
     pub access_lists: BTreeMap<AccessListName, Vec<AccessListRule>>,
+    #[serde(default)]
+    pub custom_frr_config: Vec<String>,
 }
 
 #[derive(Clone, Debug, PartialEq, Eq, Default, Serialize, Deserialize)]
-- 
2.47.3




Reply via email to