Page MenuHomeVyOS Platform

Support for IS-IS
Closed, ResolvedPublicFEATURE REQUEST

Description

hi,

please add support for protocol ISIS. Frr has already support for it:

http://docs.frrouting.org/en/latest/isisd.html

Details

Difficulty level
Unknown (require assessment)
Version
-
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Unspecified (possibly destroys the router)

Related Objects

StatusSubtypeAssignedTask
ResolvedFEATURE REQUESTViacheslav
ResolvedFEATURE REQUESTViacheslav
ResolvedFEATURE REQUESTc-po

Event Timeline

syncer triaged this task as Wishlist priority.Apr 17 2019, 7:39 PM
syncer edited projects, added VyOS 1.3 Equuleus; removed VyOS 1.2 Crux.
dmbaturin renamed this task from Support for ISIS to Support for IS-IS .Sep 6 2019, 4:17 PM
dmbaturin set Is it a breaking change? to Unspecified (possibly destroys the router).

Who can write a python handler?
XML is ready.

XML ready
Template for frr.tmpl ready.
python handler "protocols_isis.py"

Configs are not removed, only added

Tested syntax.

set protocols isis FOO dynamic-hostname
set protocols isis FOO lsp-mtu '900'
set protocols isis FOO lsp-gen-interval '120'
set protocols isis FOO lsp-refresh-interval '53'
set protocols isis FOO net '49.0000.0000.0000.0001.00'
set protocols isis FOO purge-originator
set protocols isis FOO set-attached-bit
set protocols isis FOO area-password md5 'fndo234'
set protocols isis FOO area-password plaintext-password '2349h4239423423clear'
set protocols isis FOO domain-password plaintext-password 'fsdfsdfclea'
set protocols isis FOO redistribute ipv4 bgp level-1
set protocols isis FOO redistribute ipv4 bgp level-2
set protocols isis FOO default-information originate ipv4 level-1
set protocols isis FOO default-information originate ipv4 level-2
set protocols isis FOO default-information originate ipv6 level-1 'always'
set protocols isis FOO level 'level-1'

set protocols isis FOO spf-delay-ietf holddown '200'
set protocols isis FOO spf-delay-ietf init-delay '55'
set protocols isis FOO spf-delay-ietf long-delay '11111'
set protocols isis FOO spf-delay-ietf short-delay '234'
set protocols isis FOO spf-delay-ietf time-to-learn '9999'
set protocols isis FOO redistribute ipv4 bgp level-1 metric '5'
set protocols isis FOO redistribute ipv4 bgp level-1 route-map 'FOO-IN'
set protocols isis FOO redistribute ipv4 rip level-2 route-map 'FOOJ2'

set protocols isis FOO interface eth0
set protocols isis FOO interface eth0 bfd
set protocols isis FOO interface eth0 network point-to-point
set protocols isis FOO interface eth0 circuit-type 'level-1'
set protocols isis FOO interface eth0 hello-interval '12'
set protocols isis FOO interface eth0 hello-multiplier '4'
set protocols isis FOO interface eth0 hello-padding
set protocols isis FOO interface eth0 metric '25'
set protocols isis FOO interface eth0 passive
set protocols isis FOO interface eth0 password plaintext-password 'nfsdofnsdfpass'
set protocols isis FOO interface eth0 priority '25'
set protocols isis FOO interface eth0 psnp-interval '23'
set protocols isis FOO interface eth0 three-way-handshake

https://github.com/sever-sever/vyos-1x/commit/4830f122f79df455e9b27b3c7dcd89c622b2e7f8

I'll be glad if someone can finish this.

@Viacheslav, I am unsure if you're able to finish the template and/or work on it more but if you guys ever choose to complete it and add it into rolling then I can test it out in my lab.

I am unsure how much more work is needed but if it's just down to testing then please let me know and I'll get right on it.

PR https://github.com/vyos/vyos-1x/pull/612
Add IS-IS routing.

R1

set protocols is-is FOO interface dum0 metric '55'
set protocols is-is FOO interface eth1
set protocols is-is FOO net '49.0000.0000.0000.0001.00'
set protocols is-is FOO redistribute ipv4 connected level-2

R2

set protocols is-is FOO interface dum0
set protocols is-is FOO interface eth1
set protocols is-is FOO net '49.0000.0192.0168.0002.00'
set protocols is-is FOO purge-originator
set protocols is-is FOO set-attached-bit

R2 show route

vyos@r4-roll# run show ip route is-is 
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
       F - PBR, f - OpenFabric,
       > - selected route, * - FIB route, q - queued route, r - rejected route

I   100.64.0.0/24 [115/20] via 100.64.0.1, eth1 inactive, 00:08:49
I>* 100.64.222.0/24 [115/65] via 100.64.0.1, eth1, 00:08:49
I   192.168.122.0/24 [115/10] via 100.64.0.1, eth1, 00:08:49
I>* 203.0.113.0/24 [115/65] via 100.64.0.1, eth1, 00:08:49
Viacheslav changed the task status from Open to Needs testing.Nov 30 2020, 11:03 AM

This will be on my list to test here in a little bit. I'm almost done with stuff relating to LDP.

Perhaps replace config (from_re "interface" | from_re "isis *") delete also and route-maps/prefix-lists from FRR configuration.
https://github.com/vyos/vyos-1x/blob/current/src/conf_mode/protocols_isis.py#L121

Original config

set protocols isis FOO interface eth1
set protocols isis FOO net '49.0001.1921.6800.1002.00'
set protocols isis FOO redistribute ipv4 connected level-2
set policy prefix-list EXPORT-ISIS rule 10 action 'permit'
set policy prefix-list EXPORT-ISIS rule 10 prefix '203.0.113.0/24'
set policy route-map EXPORT-ISIS rule 10 action 'permit'
set policy route-map EXPORT-ISIS rule 10 match ip address prefix-list 'EXPORT-ISIS'

Vtysh config

!
interface eth1
 ip router isis FOO
!
router isis FOO
 net 49.0001.1921.6800.1002.00
 redistribute ipv4 connected level-2
!
ip prefix-list EXPORT-ISIS seq 10 permit 203.0.113.0/24
!
route-map EXPORT-ISIS permit 10
 match ip address prefix-list EXPORT-ISIS
!
line vty
!

Add redistribute connected route-map option

set protocols isis FOO redistribute ipv4 connected level-2 route-map 'EXPORT-ISIS'

The original route-map and prefix-list was deleted

!
interface eth1
 ip router isis FOO
!
router isis FOO
 net 49.0001.1921.6800.1002.00
 redistribute ipv4 connected level-2 route-map EXPORT-ISIS
!
line vty
!
end