Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

frr-reload: backport fixes from master for stable/9.0 #15323

Merged
merged 7 commits into from
Feb 8, 2024

Conversation

c-po
Copy link
Contributor

@c-po c-po commented Feb 7, 2024

This is a combined backport PR with all later fixes in master to stable/9.0.

Closes #15299

idryzhov and others added 7 commits February 7, 2024 20:39
When reloading the following config:
```
router ospf6
 area 0 range 2001:db8::/32 advertise
exit
!
interface eth0
 ipv6 ospf6 area 0
exit
```
frr-reload.py doesn't execute "exit" commands. Because of that, it tries
to execute "interface eth0" inside the "router ospf6" context and fails.

To always execute all commands from the correct context, frr-reload.py
should properly exit from every entered node.

Fixes FRRouting#10132.

Signed-off-by: Igor Ryzhov <[email protected]>
(cherry picked from commit 792ada4)
When no ip pim is performed subsequent pim related
configs under the interface also implicitly deleted.

When doing this via frr-reload requires to remove any
explicit no ip pim <blah> lines so delete list.

Testing Done:

running-config:
interface lo
 ip pim
 ip pim use-source 6.0.0.1
exit

frr.conf:
remove two pim config lines.
interface lo
exit

Before fix:
2023-06-29 23:44:26,062  INFO: Failed to execute interface lo  no ip pim use-source 6.0.0.1
2023-06-29 23:44:26,142  INFO: Failed to execute interface lo  no ip pim use-source
2023-06-29 23:44:26,221  INFO: Executed "interface lo  no ip pim"

After fix:
Only no ip pim executed and rest of the other lines removed from delete
list.

2023-06-30 01:07:32,618  INFO: Executed "interface lo  no ip pim"

Signed-off-by: Chirag Shah <[email protected]>
(cherry picked from commit 623af04)
OSPFv2 no area x stub no-summary only resets
'no-summary' config. From frr-reload if the config
line 'area x stub no-summary' is removed then
it needs to remove completely. Before this change
it took two frr-roload to remove the config which is
inconsistent behavior.
Fix is to frr-reload to add extra line to delete
'no area x stub'.

Ticket:#3514775
Testing Done:

Running config:

router ospf
 ospf router-id 6.6.6.6
 area 0.0.0.1 stub no-summary
 area 0.0.0.2 stub
exit
!
router ospf vrf sym_1
 area 0.0.1.1 range 24.1.1.0/24
 area 0.0.1.2 stub no-summary
exit

changed frr.conf:
router ospf
 ospf router-id 6.6.6.6
 area 0.0.0.2 stub
exit
!
router ospf vrf sym_1
 area 0.0.1.1 range 24.1.1.0/24
exit

Lines To Delete
===============
router ospf
 no area 0.0.0.1 stub  <<<< newly added
router ospf vrf sym_1
 no area 0.0.1.2 stub  <<<< newly added
router ospf
 no area 0.0.0.1 stub no-summary
router ospf vrf sym_1
 no area 0.0.1.2 stub no-summary

After fix new running-config post reload:
i
router ospf
 ospf router-id 6.6.6.6
 area 0.0.0.2 stub
exit
!
router ospf vrf sym_1
 area 0.0.1.1 range 24.1.1.0/24
exit

Before fix running-config post 1st reload:

router ospf
 ospf router-id 6.6.6.6
 area 0.0.0.1 stub
 area 0.0.0.2 stub
exit
!
router ospf vrf sym_1
 area 0.0.1.1 range 24.1.1.0/24
 area 0.0.1.2 stub
exit

Signed-off-by: Chirag Shah <[email protected]>
(cherry picked from commit 84f543a)
When deleting a key chain with frr-reload track if the whole root node
is being removed or not.

Signed-off-by: Rafael Zalamena <[email protected]>
(cherry picked from commit 96f76f7)
Signed-off-by: Donatas Abraitis <[email protected]>
(cherry picked from commit 885613e)
Ensure to change description for index 0 from the list.

Ticket: #3628756
Testing Done:

After fix:
start with three interfaces description delete in lines_to_del:
(Pdb) lines_to_del
[(('interface swp1',), "description swp1 -> sp1's swp1"),
(('interface swp2',), "description swp2 -> sp2's swp
1"), (('interface swp3',), "description swp3 -> sp3's swp1")]

After first iteration swp1:
(Pdb) index
0
(Pdb) lines_to_del
[(('interface swp1',), 'description'), (('interface swp2',),
"description swp2 -> sp2's swp1"), (('interface swp
1s2',), "description swp3 -> sp3's swp1")]

After second iteration swp2:
(Pdb) lines_to_del
[(('interface swp1',), 'description'), (('interface swp2',),
'description'), (('interface swp3',), "description
swp3 -> sp3's swp1")]

After third iteration swp3 fix
(Pdb) lines_to_del
[(('interface swp1',), 'description'), (('interface swp2',),
'description'), (('interface swp3',), 'description'
)]

Signed-off-by: Chirag Shah <[email protected]>
(cherry picked from commit 8a5c6e4)
…eload.py

Signed-off-by: Donatas Abraitis <[email protected]>
(cherry picked from commit 2045084)
@c-po c-po changed the title frr-reload: backport fixes from master frr-reload: backport fixes from master for stable/9.0 Feb 7, 2024
@c-po
Copy link
Contributor Author

c-po commented Feb 7, 2024

If this is accepted I can prepare a version for stable/9.1, too

@donaldsharp
Copy link
Member

why don't you go ahead and do one for 9.1. Once I get CI to finish I will get this in.

@donaldsharp donaldsharp merged commit 1f6df17 into FRRouting:stable/9.0 Feb 8, 2024
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants