After switching to the new FRR config logic with frr-reload.py, we have got a lot of improvements but lost one important ability - to configure FRR manually, for example when VyOS does not have appropriate CLI items.
One of the current real problems produced by this change is DHCP inoperability. DHCP client uses the vtysh to inject DHCP routes directly into staticd, but these changes are overwritten with each commit.
There might be several solutions:
- Quick and easy. Add exceptions inside the modify_section for config items that we know to be controlled externally. For example, in the case of DHCP, these are routes with tag 210. But this solution does not allow to add truly custom configs and only fix our own problems.
- More complex. Define custom FRR config file/files, sections from which will be included into resulted configuration before processing it with the frr-reload.py to allow any config customization.
- Other suggestions?
A case with a custom FRR config is not rare actually. Many features start their way to the CLI from vtysh commands in the postconfig-bootup scripts. Also as numerous small customer-specific solutions exist as vtysh commands since there is no sense in adding them to CLI.