FRRouting / frr

The FRRouting Protocol Suite

Home Page:https://frrouting.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Segment Routing : unable to configure segment-list with segment type E (RFC9256 : NAI prefix and local iface)

wso37 opened this issue · comments

commented

Description

The daemon pathd can not retrieve adjacency SID based on a remote node-SID (prefix) and a local unnumbered interface.

segment-list definition with nai adjacency works fine if the interface are configured with in point-to-point with the peers address.

          ┌─────────┐             
          │  sr-01  │             
          └─┬─────┬─┘             
   eth3.131 │     │ eth3.132      
            │     │               
    VLAN 131│     │VLAN 132       
            │     │               
            │     │               
   eth1.131 │     │ eth1.132      
          ┌─┴─────┴─┐             
          │  sr-02  │             
          └─────────┘             

sr-01 :
interface eth3.131
ip address 10.1.0.1 peer 10.1.0.3/32

segment-routing
traffic-eng
mpls-te on
mpls-te import isis
segment-list sl-01
index 10 nai adjacency 10.1.0.1 10.1.0.3
exit
policy color 1 endpoint 0.0.0.0
binding-sid 25000
candidate-path preference 10 name cp-01 explicit segment-list sl-01
exit
exit
exit


sr-03 :
interface eth1.131
ip address 10.1.0.3 peer 10.1.0.1/32


However I want to configure adjacency without specifying the peer address in the point-to-point interface and by using prefix and local iface index.


sr-01 :
interface eth3.131
ip address 10.1.0.1/32

segment-routing
traffic-eng
mpls-te on
mpls-te import isis
segment-list sl-01
index 10 nai prefix 3.3.3.3/32 iface 7
exit


sr-03 :
interface eth1.131
ip address 10.1.0.3/32

Version

Tested with the following version and architecture :
 - Alpine Linux 3.20, ARM64, FRR 10.0 & FRR 9.1
 - Debian 12.5, AMD64, FRR 10.0 
 
 
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

          ┌─────────┐             
          │  sr-01  │             
          └─┬─────┬─┘             
   eth3.131 │     │ eth3.132      
            │     │               
    VLAN 131│     │VLAN 132       
            │     │               
            │     │               
   eth1.131 │     │ eth1.132      
          ┌─┴─────┴─┐             
          │  sr-02  │             
          └─────────┘             

sr-01 configuration

Current configuration:
!
frr version 10.0
frr defaults traditional
hostname sr-01
log file /tmp/frr.log
hostname FRR-01
service integrated-vtysh-config
!
debug isis sr-events
debug isis te-events
debug isis events
debug pathd mpls-te
debug pathd policy
!
interface eth3.131
ip address 10.1.0.1/32
ip router isis sr
isis network point-to-point
mpls enable
link-params
exit-link-params
exit
!
interface eth3.132
ip address 10.2.0.1/32
ip router isis sr
isis network point-to-point
mpls enable
link-params
exit-link-params
exit
!
interface lo
ip address 1.1.1.1/32
ip router isis sr
isis passive
mpls enable
exit
!
router isis sr
is-type level-2-only
net 49.0000.0000.0001.00
mpls-te on
mpls-te router-address 1.1.1.1
mpls-te export
segment-routing on
segment-routing node-msd 8
segment-routing prefix 1.1.1.1/32 index 1 no-php-flag
exit
!
segment-routing
traffic-eng
mpls-te on
mpls-te import isis
segment-list sl-01
index 10 nai prefix 3.3.3.3/32 iface 7
exit
policy color 1 endpoint 0.0.0.0
binding-sid 25000
candidate-path preference 10 name cp-01 explicit segment-list sl-01
exit
exit
exit
!
end

sr-03 configuration

Current configuration:
!
frr version 10.0
frr defaults traditional
hostname sr-03
hostname FRR-03
service integrated-vtysh-config
!
interface eth1.131
ip address 10.1.0.3/32
ip router isis sr
isis network point-to-point
mpls enable
link-params
exit-link-params
exit
!
interface eth1.132
ip address 10.2.0.3/32
ip router isis sr
isis network point-to-point
mpls enable
link-params
exit-link-params
exit
!
interface eth2
shutdown
exit
!
interface eth3
shutdown
exit
!
interface lo
ip address 3.3.3.3/32
ip router isis sr
isis passive
mpls enable
exit
!
router isis sr
is-type level-2-only
net 49.0000.0000.0003.00
mpls-te on
mpls-te router-address 3.3.3.3
mpls-te export
segment-routing on
segment-routing node-msd 8
segment-routing prefix 3.3.3.3/32 index 3 no-php-flag
exit
!
segment-routing
traffic-eng
mpls-te on
mpls-te import isis
exit
exit
!
end

Expected behavior

Success of the TED query type E to retrieve the adjacency SID.

Actual behavior

Below the ERROR in the log file of pathd:

PATH: [J6ABG-ASJFH] segment_list_has_prefix: [rcv ted] CLI NOT FOUND Continue query_type_e PREFIX (3.3.3.3/32) IFACE (7) sid:(-1)!
PATH: [MWDWH-347ZK] Segment list name (10) index (sl-01)
PATH: [GGA79-HSVDR] srte_ted_do_query_type_e: PATHD-TED: SL: ERROR query E : ted-sid (-1)
PATH: [M3PYG-1S2M8] policy: SR-TE(0.0.0.0, 1): best candidate changed from cp-01 to none

Additional context

          ┌─────────┐             
          │  sr-01  │             
          └─┬─────┬─┘             
   eth3.131 │     │ eth3.132      
            │     │               
    VLAN 131│     │VLAN 132       
            │     │               
            │     │               
   eth1.131 │     │ eth1.132      
          ┌─┴─────┴─┐             
          │  sr-02  │             
          └─────────┘             

####################################

FRR-01# show isis mpls-te database detail
Area sr:

    Traffic Engineering Database: ISIS (key: 1)

Vertex (1): sr-01 Router Id: 1.1.1.1 Origin: ISIS_L2 Status: Sync
Segment Routing Capabilities:
SRGB: [16000/23999] SRLB: [15000/15999] Algo: SPF S-SPF MSD: 8
Outgoing Edges: 2
To: sr-03(3.3.3.3) Local: 10.1.0.1 Remote: 10.1.0.3
To: sr-03(3.3.3.3) Local: 10.2.0.1 Remote: 10.2.0.3
Incoming Edges: 0
Subnets: 3
Prefix: 1.1.1.1/32
Prefix: 10.1.0.1/32
Prefix: 10.2.0.1/32

Vertex (3): sr-03 Router Id: 3.3.3.3 Origin: ISIS_L2 Status: Sync
Segment Routing Capabilities:
SRGB: [16000/23999] SRLB: [15000/15999] Algo: SPF S-SPF MSD: 8
Outgoing Edges: 0
Incoming Edges: 2
From: sr-01(1.1.1.1) Local: 10.1.0.1 Remote: 10.1.0.3
From: sr-01(1.1.1.1) Local: 10.2.0.1 Remote: 10.2.0.3
Subnets: 3
Prefix: 3.3.3.3/32
Prefix: 10.1.0.3/32
Prefix: 10.2.0.3/32

Edge (10.1.0.1): 10.1.0.1 Adv. Vertex: 0000.0000.0001 Metric: 10 Status: Sync
Origin: ISIS_L2
Local IPv4 address: 10.1.0.1
Remote IPv4 address: 10.1.0.3
Maximum Bandwidth: 1.25e+06 (Bytes/s)
Maximum Reservable Bandwidth: 1.25e+06 (Bytes/s)
Unreserved Bandwidth per Class Type
[0]: 1.25e+06 (Bytes/sec) [1]: 1.25e+06 (Bytes/s)
[2]: 1.25e+06 (Bytes/sec) [3]: 1.25e+06 (Bytes/s)
[4]: 1.25e+06 (Bytes/sec) [5]: 1.25e+06 (Bytes/s)
[6]: 1.25e+06 (Bytes/sec) [7]: 1.25e+06 (Bytes/s)
IPv4 Adjacency-SID: 15000 Flags: 0x30 Weight: 0x0

Edge (10.2.0.1): 10.2.0.1 Adv. Vertex: 0000.0000.0001 Metric: 10 Status: Sync
Origin: ISIS_L2
Local IPv4 address: 10.2.0.1
Remote IPv4 address: 10.2.0.3
Maximum Bandwidth: 1.25e+06 (Bytes/s)
Maximum Reservable Bandwidth: 1.25e+06 (Bytes/s)
Unreserved Bandwidth per Class Type
[0]: 1.25e+06 (Bytes/sec) [1]: 1.25e+06 (Bytes/s)
[2]: 1.25e+06 (Bytes/sec) [3]: 1.25e+06 (Bytes/s)
[4]: 1.25e+06 (Bytes/sec) [5]: 1.25e+06 (Bytes/s)
[6]: 1.25e+06 (Bytes/sec) [7]: 1.25e+06 (Bytes/s)
IPv4 Adjacency-SID: 15001 Flags: 0x30 Weight: 0x0

Subnet: 1.1.1.1/32 Adv. Vertex: 0000.0000.0001 Metric: 10 Status: Sync
Origin: ISIS_L2
SID: 1 Algorithm: 0 Flags: 0x60

Subnet: 3.3.3.3/32 Adv. Vertex: 0000.0000.0003 Metric: 10 Status: Sync
Origin: ISIS_L2
SID: 3 Algorithm: 0 Flags: 0x60

Subnet: 10.1.0.1/32 Adv. Vertex: 0000.0000.0001 Metric: 10 Status: Sync
Origin: ISIS_L2

Subnet: 10.1.0.3/32 Adv. Vertex: 0000.0000.0003 Metric: 10 Status: Sync
Origin: ISIS_L2

Subnet: 10.2.0.1/32 Adv. Vertex: 0000.0000.0001 Metric: 10 Status: Sync
Origin: ISIS_L2

Subnet: 10.2.0.3/32 Adv. Vertex: 0000.0000.0003 Metric: 10 Status: Sync
Origin: ISIS_L2

    Total: 2 Vertices, 2 Edges, 6 Subnets

#######################################

FRR-03# show isis mpls-te database detail
Area sr:

    Traffic Engineering Database: ISIS (key: 1)

Vertex (1): sr-01 Router Id: 1.1.1.1 Origin: ISIS_L2 Status: Sync
Segment Routing Capabilities:
SRGB: [16000/23999] SRLB: [15000/15999] Algo: SPF S-SPF MSD: 8
Outgoing Edges: 2
To: sr-03(3.3.3.3) Local: 10.1.0.1 Remote: 10.1.0.3
To: sr-03(3.3.3.3) Local: 10.2.0.1 Remote: 10.2.0.3
Incoming Edges: 0
Subnets: 3
Prefix: 1.1.1.1/32
Prefix: 10.1.0.1/32
Prefix: 10.2.0.1/32

Vertex (3): sr-03 Router Id: 3.3.3.3 Origin: ISIS_L2 Status: Sync
Segment Routing Capabilities:
SRGB: [16000/23999] SRLB: [15000/15999] Algo: SPF S-SPF MSD: 8
Outgoing Edges: 0
Incoming Edges: 2
From: sr-01(1.1.1.1) Local: 10.1.0.1 Remote: 10.1.0.3
From: sr-01(1.1.1.1) Local: 10.2.0.1 Remote: 10.2.0.3
Subnets: 3
Prefix: 3.3.3.3/32
Prefix: 10.1.0.3/32
Prefix: 10.2.0.3/32

Edge (10.1.0.1): 10.1.0.1 Adv. Vertex: 0000.0000.0001 Metric: 10 Status: Sync
Origin: ISIS_L2
Local IPv4 address: 10.1.0.1
Remote IPv4 address: 10.1.0.3
Maximum Bandwidth: 1.25e+06 (Bytes/s)
Maximum Reservable Bandwidth: 1.25e+06 (Bytes/s)
Unreserved Bandwidth per Class Type
[0]: 1.25e+06 (Bytes/sec) [1]: 1.25e+06 (Bytes/s)
[2]: 1.25e+06 (Bytes/sec) [3]: 1.25e+06 (Bytes/s)
[4]: 1.25e+06 (Bytes/sec) [5]: 1.25e+06 (Bytes/s)
[6]: 1.25e+06 (Bytes/sec) [7]: 1.25e+06 (Bytes/s)
IPv4 Adjacency-SID: 15000 Flags: 0x30 Weight: 0x0

Edge (10.2.0.1): 10.2.0.1 Adv. Vertex: 0000.0000.0001 Metric: 10 Status: Sync
Origin: ISIS_L2
Local IPv4 address: 10.2.0.1
Remote IPv4 address: 10.2.0.3
Maximum Bandwidth: 1.25e+06 (Bytes/s)
Maximum Reservable Bandwidth: 1.25e+06 (Bytes/s)
Unreserved Bandwidth per Class Type
[0]: 1.25e+06 (Bytes/sec) [1]: 1.25e+06 (Bytes/s)
[2]: 1.25e+06 (Bytes/sec) [3]: 1.25e+06 (Bytes/s)
[4]: 1.25e+06 (Bytes/sec) [5]: 1.25e+06 (Bytes/s)
[6]: 1.25e+06 (Bytes/sec) [7]: 1.25e+06 (Bytes/s)
IPv4 Adjacency-SID: 15001 Flags: 0x30 Weight: 0x0

Subnet: 1.1.1.1/32 Adv. Vertex: 0000.0000.0001 Metric: 10 Status: Sync
Origin: ISIS_L2
SID: 1 Algorithm: 0 Flags: 0x60

Subnet: 3.3.3.3/32 Adv. Vertex: 0000.0000.0003 Metric: 10 Status: Sync
Origin: ISIS_L2
SID: 3 Algorithm: 0 Flags: 0x60

Subnet: 10.1.0.1/32 Adv. Vertex: 0000.0000.0001 Metric: 10 Status: Sync
Origin: ISIS_L2

Subnet: 10.1.0.3/32 Adv. Vertex: 0000.0000.0003 Metric: 10 Status: Sync
Origin: ISIS_L2

Subnet: 10.2.0.1/32 Adv. Vertex: 0000.0000.0001 Metric: 10 Status: Sync
Origin: ISIS_L2

Subnet: 10.2.0.3/32 Adv. Vertex: 0000.0000.0003 Metric: 10 Status: Sync
Origin: ISIS_L2

    Total: 2 Vertices, 2 Edges, 6 Subnets

#################################################################

FRR-01# sh mpls table
Inbound Label Type Nexthop Outbound Label

15000 SR (IS-IS) 10.1.0.3 implicit-null
15001 SR (IS-IS) 10.2.0.3 implicit-null
16001 SR (IS-IS) lo -
16003 SR (IS-IS) 10.2.0.3 16003
16003 SR (IS-IS) 10.1.0.3 16003

FRR-03# show mpls table
Inbound Label Type Nexthop Outbound Label

15000 SR (IS-IS) 10.1.0.1 implicit-null
15001 SR (IS-IS) 10.2.0.1 implicit-null
16001 SR (IS-IS) 10.2.0.1 16001
16001 SR (IS-IS) 10.1.0.1 16001
16003 SR (IS-IS) lo -

FRR-01# show interface eth3.131
Interface eth3.131 is up, line protocol is up
Link ups: 1 last: 2024/06/07 14:45:47.74
Link downs: 0 last: (never)
vrf: default
index 7 metric 0 mtu 1500 speed 0 txqlen 1000
flags: <UP,BROADCAST,RUNNING,MULTICAST>
MPLS enabled
Type: Ethernet
HWaddr: 52:54:00:5c:90:61
inet 10.1.0.1/32 unnumbered
inet6 fe80::5054:ff:fe5c:9061/64
Interface Type Vlan
Interface Slave Type None
VLAN Id 131
protodown: off
Parent interface: eth3
Traffic Engineering Link Parameters:
Maximum Bandwidth 1.25e+06 (Byte/s)
Maximum Reservable Bandwidth 1.25e+06 (Byte/s)
Unreserved Bandwidth per Class Type in Byte/s:
[0]: 1.25e+06 (Bytes/sec), [1]: 1.25e+06 (Bytes/sec)
[2]: 1.25e+06 (Bytes/sec), [3]: 1.25e+06 (Bytes/sec)
[4]: 1.25e+06 (Bytes/sec), [5]: 1.25e+06 (Bytes/sec)
[6]: 1.25e+06 (Bytes/sec), [7]: 1.25e+06 (Bytes/sec)

Checklist

  • I have searched the open issues for this bug.
  • I have not included sensitive information in this report.