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

segment-routing config loss after frr restart/node reboot #16694

Closed
2 tasks done
zsoltkrenak opened this issue Aug 30, 2024 · 1 comment · Fixed by #16724
Closed
2 tasks done

segment-routing config loss after frr restart/node reboot #16694

zsoltkrenak opened this issue Aug 30, 2024 · 1 comment · Fixed by #16724
Labels
triage Needs further investigation

Comments

@zsoltkrenak
Copy link

zsoltkrenak commented Aug 30, 2024

Description

When configuring ISIS with segment-routing (in my case srv6) and configuring srv6 locators under segment-routing config mode, after a restart of frr, or a reboot of node causes to lose segment-routing config to be lost under segment-routing config mode.

Version

frr# show version 
FRRouting 10.1 (frr) on Linux(6.6.45-0-lts).
Copyright 1996-2005 Kunihiro Ishiguro, et al.
configured with:
    '--prefix=/usr' '--localstatedir=/run/frr' '--sbindir=/usr/lib/frr' '--sysconfdir=/etc/frr' '--libdir=/usr/lib/frr' '--with-moduledir=/usr/lib/frr/modules' '--disable-dependency-tracking' '--enable-rpki' '--with-libpam' '--enable-doc' '--enable-doc-html' '--enable-snmp' '--enable-fpm' '--disable-protobuf' '--disable-zeromq' '--enable-ospfapi' '--enable-bgp-vnc' '--enable-multipath=256' '--enable-user=frr' '--enable-group=frr' '--enable-vty-group=frrvty' '--enable-configfile-mask=0640' '--enable-logfile-mask=0640' 'CC=gcc' 'CXX=g++' 'PYTHON=python3'

How to reproduce

Take the following (simplified config):

frr# show running-config 
Building configuration...

Current configuration:
!
frr version 10.1
frr defaults traditional
hostname frr
log syslog informational
service integrated-vtysh-config
!
router isis ISIS_CORE
 is-type level-2-only
 net 49.0001.0000.0000.0004.00
 lsp-mtu 1300
 topology ipv6-unicast
 log-adjacency-changes
 segment-routing srv6
  locator ISIS_LOC
exit
!
segment-routing
 srv6
  locators
   locator ISIS_LOC
    prefix X:Y:0:Z::/64 block-len 48 node-len 16 func-bits 16
   exit
   !
   locator BGP_LOC
    prefix X:Y:0:Z:8000::/65 block-len 48 node-len 17 func-bits 15
   exit
   !
  exit
  !
 exit
 !
 traffic-eng
  pcep
  exit
 exit
exit
!
end

Then in case of alpine linux which I have tested on:

frr:~# /etc/init.d/frr restart

Expected behavior

After FRR restart:

frr# show running-config 
Building configuration...

Current configuration:
!
frr version 10.1
frr defaults traditional
hostname frr
log syslog informational
service integrated-vtysh-config
!
router isis ISIS_CORE
 is-type level-2-only
 net 49.0001.0000.0000.0004.00
 lsp-mtu 1300
 topology ipv6-unicast
 log-adjacency-changes
 segment-routing srv6
  locator ISIS_LOC
exit
!
segment-routing
 srv6
  locators
   locator ISIS_LOC
    prefix X:Y:0:Z::/64 block-len 48 node-len 16 func-bits 16
   exit
   !
   locator BGP_LOC
    prefix X:Y:0:Z:8000::/65 block-len 48 node-len 17 func-bits 15
   exit
   !
  exit
  !
 exit
 !
 traffic-eng
  pcep
  exit
 exit
exit
!
end

Actual behavior

frr# show running-config 
Building configuration...

Current configuration:
!
frr version 10.1
frr defaults traditional
hostname frr
log syslog informational
service integrated-vtysh-config
!
router isis ISIS_CORE
 is-type level-2-only
 net 49.0001.0000.0000.0004.00
 lsp-mtu 1300
 topology ipv6-unicast
 log-adjacency-changes
 segment-routing srv6
  locator ISIS_LOC
exit
!
segment-routing
 traffic-eng
  pcep
  exit
 exit
exit
!

Additional context

The issue is clearly caused by missing exit statement in isis routing configuration. Manually editing frr.conf and adding the right exit statement solves the problem:

frr:~# cat /etc/frr/frr.conf
frr version 10.1
frr defaults traditional
hostname frr
log syslog informational
service integrated-vtysh-config
!
router isis ISIS_CORE
 is-type level-2-only
 net 49.0001.0000.0000.0004.00
 lsp-mtu 1300
 topology ipv6-unicast
 log-adjacency-changes
 segment-routing srv6
  locator ISIS_LOC
 exit
exit
!
segment-routing
 srv6
  locators
   locator ISIS_LOC
    prefix X:Y:0:Z::/64 block-len 48 node-len 16 func-bits 16
   exit
   !
   locator BGP_LOC
    prefix X:Y:0:Z:8000::/65 block-len 48 node-len 17 func-bits 15
   exit
   !
  exit
  !
 exit
 !
 traffic-eng
  pcep
  exit
 exit
exit
!

This is also reproducible on 9.1, 10.0 and 10.1.

Checklist

  • I have searched the open issues for this bug.
  • I have not included sensitive information in this report.
@zsoltkrenak zsoltkrenak added the triage Needs further investigation label Aug 30, 2024
@SPYFF
Copy link

SPYFF commented Sep 2, 2024

Happened to me too, but I was unable to find the cause, nice investigation.

This bug is really annoying, I used to dump sh run and copy back, but this bug essentially breaks this workflow for every SRv6 ISIS configs.

cscarpitta added a commit to cscarpitta/frr that referenced this issue Sep 2, 2024
```
router isis ISIS_CORE
 is-type level-2-only
 net 49.0001.0000.0000.0004.00
 lsp-mtu 1300
 topology ipv6-unicast
 log-adjacency-changes
 segment-routing srv6
  locator ISIS_LOC
 exit   <<<<<<<<<<<<<<<<<<<<<<<<
exit
```

Fixes FRRouting#16694

Signed-off-by: Carmine Scarpitta <[email protected]>
mergify bot pushed a commit that referenced this issue Sep 4, 2024
Add missing `exit` statement to `show running-config` output.

```
router isis ISIS_CORE
 is-type level-2-only
 net 49.0001.0000.0000.0004.00
 lsp-mtu 1300
 topology ipv6-unicast
 log-adjacency-changes
 segment-routing srv6
  locator ISIS_LOC
 exit   <<<<<<<<<<<<<<<<<<<<<<<<
exit
```

Fixes #16694

Signed-off-by: Carmine Scarpitta <[email protected]>
(cherry picked from commit 8be8864)
mergify bot pushed a commit that referenced this issue Sep 4, 2024
Add missing `exit` statement to `show running-config` output.

```
router isis ISIS_CORE
 is-type level-2-only
 net 49.0001.0000.0000.0004.00
 lsp-mtu 1300
 topology ipv6-unicast
 log-adjacency-changes
 segment-routing srv6
  locator ISIS_LOC
 exit   <<<<<<<<<<<<<<<<<<<<<<<<
exit
```

Fixes #16694

Signed-off-by: Carmine Scarpitta <[email protected]>
(cherry picked from commit 8be8864)
mergify bot pushed a commit that referenced this issue Sep 4, 2024
Add missing `exit` statement to `show running-config` output.

```
router isis ISIS_CORE
 is-type level-2-only
 net 49.0001.0000.0000.0004.00
 lsp-mtu 1300
 topology ipv6-unicast
 log-adjacency-changes
 segment-routing srv6
  locator ISIS_LOC
 exit   <<<<<<<<<<<<<<<<<<<<<<<<
exit
```

Fixes #16694

Signed-off-by: Carmine Scarpitta <[email protected]>
(cherry picked from commit 8be8864)
mergify bot pushed a commit that referenced this issue Sep 4, 2024
Add missing `exit` statement to `show running-config` output.

```
router isis ISIS_CORE
 is-type level-2-only
 net 49.0001.0000.0000.0004.00
 lsp-mtu 1300
 topology ipv6-unicast
 log-adjacency-changes
 segment-routing srv6
  locator ISIS_LOC
 exit   <<<<<<<<<<<<<<<<<<<<<<<<
exit
```

Fixes #16694

Signed-off-by: Carmine Scarpitta <[email protected]>
(cherry picked from commit 8be8864)

# Conflicts:
#	isisd/isis_cli.c
#	isisd/isis_nb.c
#	isisd/isis_nb.h
jvoss added a commit to jvoss/frr that referenced this issue Dec 25, 2024
Add missing `exit` statements to `show running-config output.

Before:
```
router isis ISIS_CORE
 [...]
 segment-routing srv6
  locator ISIS_LOC
 exit    <<<<<<< always placed after locator
 node-msd
   [...]
 exit    <<<<<<< was missng
 interface dum6
exit
```

After:
```
router isis ISIS_CORE
 [...]
 segment-routing srv6
  locator ISIS_LOC
  node-msd
   [...]
  exit
  interface dum6
 exit
exit
```

Related FRRouting#16694

Signed-off-by: Jonathan Voss <[email protected]>
jvoss added a commit to jvoss/frr that referenced this issue Dec 25, 2024
Fix missing and misplaced `exit` statements to `show running-config` output.

Before:
```
router isis ISIS_CORE
 [...]
 segment-routing srv6
  locator ISIS_LOC
 exit    <<<<<<< always placed after locator
 node-msd
   [...]
 exit    <<<<<<< missng
 interface dum6
exit
```

After:
```
router isis ISIS_CORE
 [...]
 segment-routing srv6
  locator ISIS_LOC
  node-msd
   [...]
  exit
  interface dum6
 exit
exit
```

Related FRRouting#16694

Signed-off-by: Jonathan Voss <[email protected]>
jvoss added a commit to jvoss/frr that referenced this issue Dec 25, 2024
Fix missing and misplaced `exit` statements to `show running-config` output.

Before:
```
router isis ISIS_CORE
 [...]
 segment-routing srv6
  locator ISIS_LOC
 exit    <<<<<<< always placed after locator
 node-msd
   [...]
 exit    <<<<<<< missng
 interface dum6
exit
```

After:
```
router isis ISIS_CORE
 [...]
 segment-routing srv6
  locator ISIS_LOC
  node-msd
   [...]
  exit
  interface dum6
 exit
exit
```

Related FRRouting#16694

Signed-off-by: Jonathan Voss <[email protected]>
jvoss added a commit to jvoss/frr that referenced this issue Dec 25, 2024
Fix missing and misplaced `exit` statements to `show running-config` output.

Before:
```
router isis ISIS_CORE
 [...]
 segment-routing srv6
  locator ISIS_LOC
 exit    <<<<<<< always placed after locator
  node-msd
    [...]
  exit    <<<<<<< missng
  interface dum6
exit
```

After:
```
router isis ISIS_CORE
 [...]
 segment-routing srv6
  locator ISIS_LOC
  node-msd
   [...]
  exit
  interface dum6
 exit
exit
```

Related FRRouting#16694

Signed-off-by: Jonathan Voss <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
triage Needs further investigation
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants