Skip to content

Conversation

@bl0way
Copy link

@bl0way bl0way commented Oct 24, 2025

Change summary

Add the possibility to change FRR profiles between traditional and datacenter accordingly to the official FRR documentation

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Code style update (formatting, renaming)
  • Refactoring (no functional changes)
  • Migration from an old Vyatta component to vyos-1x, please link to related PR inside obsoleted component
  • Other (please describe):

Related Task(s)

https://vyos.dev/T7896

Related PR(s)

How to test / Smoketest result

Checklist:

@github-actions
Copy link

github-actions bot commented Oct 24, 2025

👍
No issues in PR Title / Commit Title

@github-actions
Copy link

github-actions bot commented Oct 24, 2025

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@bl0way
Copy link
Author

bl0way commented Oct 24, 2025

I have read the CLA Document and I hereby sign the CLA

vyosbot added a commit to vyos/vyos-cla-signatures that referenced this pull request Oct 24, 2025
@c-po c-po added the bp/circinus Create automatic backport for circinus label Oct 24, 2025
@bl0way bl0way requested a review from c-po October 25, 2025 09:24
@bl0way bl0way force-pushed the T7896-frr-profile branch from e66b81c to 219bab8 Compare October 25, 2025 09:27
Copy link
Member

@sever-sever sever-sever left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add ability to set the datacenter profile to FRR

@bl0way
Copy link
Author

bl0way commented Oct 25, 2025

Unfortunately I will need to modify a bit more deeply the code. If the profile is set in daemons file, the statement in frr.conf is taking precedence and this settings is automatically generated by FRR by defaults. Therefore it needs to be modified in frr.conf file too.

@bl0way bl0way force-pushed the T7896-frr-profile branch 3 times, most recently from 54c39a5 to 038481d Compare October 25, 2025 12:18
@c-po
Copy link
Member

c-po commented Oct 25, 2025

@bl0way you can - of course - also build the vyos-1x package and install it to your development router using dpkg.

The execute the smoketests locally as described in https://docs.vyos.io/en/latest/contributing/testing.html#smoketests so in your case

vyos@vyos:~$ /usr/libexec/vyos/tests/smoke/cli/test_system_frr.py

if you are unaware of this feature

@c-po
Copy link
Member

c-po commented Oct 26, 2025

Please also squash all existing commits. Update commit message with CLI example how to sue this addition.

@c-po c-po requested a review from sever-sever October 26, 2025 19:26
@bl0way bl0way force-pushed the T7896-frr-profile branch 2 times, most recently from 471df28 to 6cffa6b Compare October 27, 2025 09:37
@bl0way bl0way force-pushed the T7896-frr-profile branch from 6cffa6b to 5c0d8a4 Compare October 27, 2025 11:02
@bl0way
Copy link
Author

bl0way commented Oct 27, 2025

I implemented your suggestions and fixed the failing test (tested locally), so it should be all clear now, I hope.

I apologize for the spam that this PR created, and I appreciate the patience that you are taking to review and guide me through this PR. I understand better the internal logic, and I hope I will be able to contribute more in the future.

Copy link
Member

@sever-sever sever-sever left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add ability to configure the datacenter profile

vyos@r14# set system frr profile datacenter 
[edit]
vyos@r14# commit
[ system frr ]

WARNING: You need to reboot the router (preferred) or restart FRR to
apply changes in modules settings


[edit]
vyos@r14# run restart all
WARNING: This is a potentially unsafe function!
You may lose the connection to the router or active configuration after
running this command. Use it at your own risk!

Continue? [y/N] y
[6928|mgmtd] sending configuration
[6929|zebra] sending configuration
[6930|ripd] sending configuration
[6931|ripngd] sending configuration
[6929|zebra] done
[6930|ripd] done
[6935|bgpd] sending configuration
[6933|ospf6d] sending configuration
[6936|isisd] sending configuration
[6934|ldpd] sending configuration
[6932|ospfd] sending configuration
[6938|nhrpd] sending configuration
[6940|babeld] sending configuration
[6931|ripngd] done
[6932|ospfd] done
[6934|ldpd] done
[6928|mgmtd] done
[6933|ospf6d] done
[6935|bgpd] done
[6936|isisd] done
Waiting for children to finish applying config...
[6938|nhrpd] done
[6949|pim6d] sending configuration
[6942|fabricd] sending configuration
[6943|watchfrr] sending configuration
[6945|staticd] sending configuration
[6940|babeld] done
[6946|bfdd] sending configuration
[6949|pim6d] done
[6942|fabricd] done
[6943|watchfrr] done
[6945|staticd] done
[6946|bfdd] done
[edit]
vyos@r14# 
[edit]
vyos@r14# ps ax | grep frr
   1375 ?        S<s    0:11 /usr/lib/frr/watchfrr -d -F traditional zebra mgmtd bgpd ripd ripngd ospfd ospf6d isisd babeld pim6d ldpd nhrpd staticd bfdd fabricd
   6869 ?        Ssl    0:00 /usr/lib/frr/zebra -d -F datacenter --daemon -A 127.0.0.1 -s 90000000
   6874 ?        Ss     0:00 /usr/lib/frr/mgmtd -d -F datacenter --daemon -A 127.0.0.1
   6876 ?        Ssl    0:00 /usr/lib/frr/bgpd -d -F datacenter --daemon -A 127.0.0.1 -M rpki
   6883 ?        Ss     0:00 /usr/lib/frr/ripd -d -F datacenter --daemon -A 127.0.0.1
   6886 ?        Ss     0:00 /usr/lib/frr/ripngd -d -F datacenter --daemon -A ::1
   6889 ?        Ss     0:00 /usr/lib/frr/ospfd -d -F datacenter --daemon -A 127.0.0.1
   6892 ?        Ss     0:00 /usr/lib/frr/ospf6d -d -F datacenter --daemon -A ::1
   6895 ?        Ss     0:00 /usr/lib/frr/isisd -d -F datacenter --daemon -A 127.0.0.1
   6898 ?        Ss     0:00 /usr/lib/frr/babeld -d -F datacenter --daemon -A 127.0.0.1
   6901 ?        Ss     0:00 /usr/lib/frr/pim6d -d -F datacenter --daemon -A ::1
   6906 ?        S      0:00 /usr/lib/frr/ldpd -L -u frr -g frr
   6907 ?        S      0:00 /usr/lib/frr/ldpd -E -u frr -g frr
   6909 ?        Ss     0:00 /usr/lib/frr/ldpd -d -F datacenter --daemon -A 127.0.0.1
   6913 ?        Ss     0:00 /usr/lib/frr/nhrpd -d -F datacenter --daemon -A 127.0.0.1
   6917 ?        Ss     0:00 /usr/lib/frr/staticd -d -F datacenter --daemon -A 127.0.0.1
   6922 ?        Ss     0:00 /usr/lib/frr/bfdd -d -F datacenter --daemon -A 127.0.0.1
   6925 ?        Ss     0:00 /usr/lib/frr/fabricd -d -F datacenter --daemon -A 127.0.0.1
   6976 pts/0    S+     0:00 grep frr
[edit]
vyos@r14# 
[edit]
vyos@r14# cat /etc/fr
freeipmi/ frr/      
[edit]
vyos@r14# cat /etc/frr/daemons | grep profil
frr_profile="datacenter"
[edit]
vyos@r14# 

By default traditional

vyos@r14# delete system frr 
[edit]
vyos@r14# commit
[ system frr ]

WARNING: You need to reboot the router (preferred) or restart FRR to
apply changes in modules settings


[edit]
vyos@r14# cat /etc/frr/daemons | grep profil
frr_profile="traditional"
[edit]
vyos@r14# 

@github-actions
Copy link

CI integration 👍 passed!

Details

CI logs

  • CLI Smoketests (no interfaces) 👍 passed
  • CLI Smoketests VPP 👍 passed
  • CLI Smoketests (interfaces only) 👍 passed
  • Config tests 👍 passed
  • Config tests VPP 👍 passed
  • RAID1 tests 👍 passed
  • TPM tests 👍 passed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bp/circinus Create automatic backport for circinus current

Development

Successfully merging this pull request may close these issues.

3 participants