summaryrefslogtreecommitdiff
path: root/python/vyos/frrender.py
AgeCommit message (Collapse)Author
2025-04-22ospf: T7383: Fixed unconfigured redistribution of nhrp into ospfaapostoliuk
Fixed unconfigured redistribution of nhrp into ospf.
2025-04-04frrender: T7273: always start from the configs root levelChristian Breunig
Working on T7273 revealed that when committing the following CLI config "set interfaces vxlan vxlan0 parameters neighbor-suppress" the CLI level queried via conf.get_level() was at ['interfaces', 'vxlan']. This had the side effect that queries on the configuration like: conf.exists(['protocols', 'bgp']) returned False, as it would look accidently at the level: ['interfaces', 'vxlan', 'protocols', 'bgp'] This error was there from the beginning of the FRRender class implementation.
2025-01-09nhrp: T2326: NHRP migration to FRRaapostoliuk
NHRP migration to FRR
2024-12-31frrender: T6991: do not loose DHCP default route when no static route is definedChristian Breunig
The reason is that DHCP routes are not re-generated during FRRrender as long as there is no protocols static entry in the configuration at all. Move out the DHCP configuration read-in from the static section.
2024-12-30frr: T6746: additional improvements after 10.2 upgrade (#4259)Christian Breunig
* smoketest: T6746: add substring search in getFRRconfig() Some daemons (e.g. bgpd) have several nested substrings/sections like router bgp 100 address-family ipv4 unicast .. exit-address-family exit We can now use getFRRconfig() with the substring option to extract only address-family ipv4 unicast .. exit-address-family Making config validation more granular * frrender: T6746: only re-render FRR config if config_dict did change * frrender: T6746: fix naming glitch isis/eigrp * frrender: T6746: add --stdout option when running with debug flags * smoketest: T6746: remove unneeded commit_guard time It was an invalid workarround as the underlaying issue seems to be a race condition in CStore. The commit process is not finished until all pending files from VYATTA_CHANGES_ONLY_DIR are copied to VYATTA_ACTIVE_CONFIGURATION_DIR. This is done inside libvyatta-cfg1 and the FUSE UnionFS part. On large non-interactive commits FUSE UnionFS might not replicate the real state in time, leading to errors when querying the working and effective configuration. TO BE DELETED AFTER SWITCH TO IN MEMORY CONFIG
2024-12-18frrender: T6746: move get_frrender_dict from vyos.configdict to this moduleChristian Breunig
Keep all FRRender stuff in one place.
2024-12-18frrender: T6746: rename config -> config_dictChristian Breunig
2024-12-18frrender: T6746: support dynamic enable/disable of debug outputChristian Breunig
Always evaluate if the debug file exsits and not once during module init. Thus we can always eanble/disable FRR command debugging during runtime even under vyos-configd.
2024-12-17frrender: T6746: do not render candidate FRR config to running FRR config ↵Christian Breunig
file path
2024-12-17frrender: T6746: ensure there are no empty lines in the rendered FRR ↵Christian Breunig
configuration
2024-12-16frr: T6746: reference common daemon definition in vyos.frrenderChristian Breunig
Do not use custom daemon definitions like bgpd - re-use them from e.g. vyos.frrender.bgp_daemon
2024-12-16frr: T6746: remove superseeded vyos.frr moduleChristian Breunig
2024-12-16frr: T6746: handle "system ip" and "system ipv6" with FRRender classChristian Breunig
FRR 10.2 will use "[no] ip forwarding" and "[no] ipv6 forwarding" to enable or disable IP(v6) forwarding. We no longer rely on sysctl as this was overridden by FRR later on. Remove code path for sysctl setting and solely rely on FRR.
2024-12-16configd: T6746: handle FRR config reload as last step in commitChristian Breunig
2024-12-16frr: T6746: integrate FRRender class into vyos-configdChristian Breunig
When running under vyos-configd only a single apply() is done as last step in the commit algorithm. FRRender class address is provided via an attribute from vyos-configd process.
2024-12-16frr: T6746: add default entry for config debug fileChristian Breunig
A lot of services have dynamic debug capabilities which will be turned on by creating a file in /tmp. These scripts have the path hardcoded and sometimes accross multiple places (bad). This commit introduces vyos.defaults.frr_debug_enable to get the path for the debug file from a single location.
2024-12-16frr: T6747: migrate protocols to unified FRRender classChristian Breunig
With FRR 10.0 daemons started to be migrated to integrated FRR mgmtd and a northbound interface. This led to some drawbacks in the current state how changes to FRR are handled. The current implementation will use frr-reload.py and specifies excatly WHICH daemon needs a config update and will only replace this part inside FRR. With FRR10 and mgmtd when a partial configuration is sent to mgmtd, it will remove configuration parts from other daemons like bgpd or ospfd which have not yet been migrated to mgmtd. It's not possible to call frr-reload.py with daemon mgmtd - it will error out. This commit will also change the CLI for static routes: CLI command "set protocols static route 10.0.0.0/8 next-hop 1.2.3.4 bfd multi-hop source 1.1.1.1" will be split into: * set protocols static route 10.0.0.0/8 next-hop 1.2.3.4 bfd source-address 1.1.1.1 * set protocols static route 10.0.0.0/8 next-hop 1.2.3.4 bfd multi-hop To make the XML blocks reusable, and comply with the FRR CLI - this was actually a wrong implementation from the beginning as you can not have multiple BFD source addresses. CLI command "set protocols static route 10.0.0.0/8 next-hop 1.2.3.4 bfd multi-hop source 1.1.1.1 profile bar" is changed to: * set protocols static route 10.0.0.0/8 next-hop 1.2.3.4 bfd profile bar CLI commands "set protocols static multicast interface-route" is moved to: * set protocols static multicast route <x.x.x.x/x> interface To have an identical look and feel with regular static routes.