vyos-1x
vyos-1x copied to clipboard
T6750: Add initial Segment Routing Traffic Engineering
Change Summary
Types of changes
- [ ] Bug fix (non-breaking change which fixes an issue)
- [x] 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/T6750
Related PR(s)
None to my knowledge.
Component(s) name
mpls, segment routing, pathd
Proposed changes
The changes that I am adding here are adding the segment routing traffic engineering config options within FRR. They are however very experimental as there are seemingly some problems with using them. But this will add initial support for those configs in FRR.
How to test
Adding segment routing database import:
vyos@vyos# set protocols segment-routing traffic-engineering database-import-protocol isis
[edit]
vyos@vyos# compare
[protocols]
+ segment-routing {
+ traffic-engineering {
+ database-import-protocol {
+ isis
+ }
+ }
+ }
[edit]
vyos@vyos# commit
[edit]
vyos@vyos# exit
Warning: configuration changes have not been saved.
exit
vyos@vyos:~$ vtysh -c "show run"
Building configuration...
Current configuration:
!
frr version 9.1.2
frr defaults traditional
hostname vyos
log syslog
log facility local7
service integrated-vtysh-config
!
ip route 0.0.0.0/0 10.0.0.65
!
segment-routing
traffic-eng
mpls-te on
mpls-te import isis
exit
exit
!
rpki
exit
!
end
Adding a segment list here:
[edit]
vyos@vyos# set protocols segment-routing traffic-engineering segment-list testing-segment-list index value 0 mpls label 1000
[edit]
vyos@vyos# set protocols segment-routing traffic-engineering segment-list testing-segment-list index value 0 nai adjacency ipv4 source-identifier 192.168.0.1
[edit]
vyos@vyos# set protocols segment-routing traffic-engineering segment-list testing-segment-list index value 0 nai adjacency ipv4 destination-identifier 192.168.0.2
[edit]
vyos@vyos#
[edit]
vyos@vyos# compare
[protocols segment-routing traffic-engineering]
+ segment-list testing-segment-list {
+ index {
+ value 0 {
+ mpls {
+ label "1000"
+ }
+ nai {
+ adjacency {
+ ipv4 {
+ destination-identifier "192.168.0.2"
+ source-identifier "192.168.0.1"
+ }
+ }
+ }
+ }
+ }
+ }
[edit]
vyos@vyos# commit
[edit]
vyos@vyos# exit
Warning: configuration changes have not been saved.
exit
vyos@vyos:~$ vtysh -c "show run"
Building configuration...
Current configuration:
!
frr version 9.1.2
frr defaults traditional
hostname vyos
log syslog
log facility local7
service integrated-vtysh-config
!
ip route 0.0.0.0/0 10.0.0.65
!
segment-routing
traffic-eng
mpls-te on
mpls-te import isis
segment-list testing-segment-list
index 0 mpls label 1000 nai adjacency 192.168.0.1 192.168.0.2
exit
exit
exit
!
rpki
exit
!
end
Smoketest result
vyos@vyos:~$
vyos@vyos:~$ /usr/libexec/vyos/tests/smoke/cli/test_protocols_segment-routing.py
test_segment_routing_01_srv6 (__main__.TestProtocolsSegmentRouting.test_segment_routing_01_srv6) ... ok
test_segment_routing_02_srv6_sysctl (__main__.TestProtocolsSegmentRouting.test_segment_routing_02_srv6_sysctl) ... ok
test_segment_routing_03_srte_database (__main__.TestProtocolsSegmentRouting.test_segment_routing_03_srte_database) ... ok
test_segment_routing_04_mpls_label (__main__.TestProtocolsSegmentRouting.test_segment_routing_04_mpls_label) ... ok
test_segment_routing_05_mpls_label_and_adjacency (__main__.TestProtocolsSegmentRouting.test_segment_routing_05_mpls_label_and_adjacency) ... ok
test_segment_routing_06_mpls_label_and_prefix (__main__.TestProtocolsSegmentRouting.test_segment_routing_06_mpls_label_and_prefix) ... ok
----------------------------------------------------------------------
Ran 6 tests in 26.516s
Checklist:
- [x] I have read the CONTRIBUTING document
- [x] I have linked this PR to one or more Phabricator Task(s)
- [x] I have run the components SMOKETESTS if applicable
- [x] My commit headlines contain a valid Task id
- [x] My change requires a change to the documentation
- [ ] I have updated the documentation accordingly
I have not updated documentation yet but will do if PR is merged.