Skip to content

Conversation

@hedrok
Copy link
Contributor

@hedrok hedrok commented Dec 21, 2025

Traffic-engineering: FRR link-params support

Add 'traffic-engineering' commands under 'protocols'.

set protocols traffic-engineering admin-group ADMINGROUP bit-position 1
set protocols traffic-engineering interface INTERFACE admin-group ADMINGROUP
set protocols traffic-engineering interface INTERFACE max-bandwidth 1280
set protocols traffic-engineering interface INTERFACE max-reservable-bandwidth 1280

Also add

set protocols isis traffic-engineering export

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • 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)

Related PR(s)

How to test / Smoketest result

I've added smoke test:

$ /usr/libexec/vyos/tests/smoke/cli/test_protocols_traffic-engineering.py
test_te_normal (__main__.TestProtocolsTrafficEngineering.test_te_normal) ... ok
test_te_verify (__main__.TestProtocolsTrafficEngineering.test_te_verify) ... ok

(works only after FRR fix in related PR)

Checklist:

  • I have read the CONTRIBUTING document
  • I have linked this PR to one or more Phabricator Task(s)
  • I have run the components SMOKETESTS if applicable
  • My commit headlines contain a valid Task id
  • My change requires a change to the documentation
  • I have updated the documentation accordingly (draft documentation PR:

@github-actions
Copy link

github-actions bot commented Dec 21, 2025

👍
No issues in PR Title / Commit Title

@l0crian1
Copy link
Contributor

I think it may be more logical to have the traffic-engineering node fall under the mpls node like this:

set protocols mpls traffic-engineering admin-group ADMINGROUP bit-position 1
set protocols mpls traffic-engineering interface INTERFACE admin-group ADMINGROUP
set protocols mpls traffic-engineering interface INTERFACE max-bandwidth 1280
set protocols mpls traffic-engineering interface INTERFACE max-reservable-bandwidth 1280

This also falls more in line with the rest of industry.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds traffic-engineering (TE) link parameters support to VyOS, integrating FRR's link-params functionality. It enables configuration of admin groups, bandwidth limits, and TE metrics for interfaces, along with ISIS TE database export capabilities.

  • Adds new protocols traffic-engineering configuration hierarchy with admin-group and interface parameters
  • Integrates traffic-engineering into the FRR rendering framework
  • Adds ISIS mpls-te export support to export TE database to other daemons

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
src/conf_mode/protocols_traffic_engineering.py New configuration module handling TE validation and FRR integration
smoketest/scripts/cli/test_protocols_traffic-engineering.py Comprehensive smoke tests covering normal operation and validation scenarios
python/vyos/frrender.py Updates to include traffic_engineering in protocols list and config rendering
interface-definitions/protocols_traffic_engineering.xml.in XML definition for TE CLI structure including admin-groups and interface parameters
interface-definitions/include/isis/protocol-common-config.xml.i Adds ISIS TE export option
data/templates/frr/zebra.traffic_engineering.frr.j2 Jinja2 template generating FRR link-params configuration
data/templates/frr/isisd.frr.j2 Updates ISIS template to support mpls-te export command

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@hedrok hedrok force-pushed the T8046-add-link-params-cli branch from 5566980 to f9a6684 Compare December 22, 2025 19:59
@hedrok
Copy link
Contributor Author

hedrok commented Dec 22, 2025

I've fixed Copilot comments.

@hedrok hedrok force-pushed the T8046-add-link-params-cli branch from f9a6684 to 4329b4b Compare December 22, 2025 20:37
@fett0
Copy link
Contributor

fett0 commented Dec 24, 2025

I think it may be more logical to have the traffic-engineering node fall under the mpls node like this:

set protocols mpls traffic-engineering admin-group ADMINGROUP bit-position 1
set protocols mpls traffic-engineering interface INTERFACE admin-group ADMINGROUP
set protocols mpls traffic-engineering interface INTERFACE max-bandwidth 1280
set protocols mpls traffic-engineering interface INTERFACE max-reservable-bandwidth 1280

This also falls more in line with the rest of industry.

@l0crian1 in the past, traffic engineering was tightly coupled with MPLS + RSVP. The syntax was quite similar to Junos. Nowadays, however, traffic engineering can be implemented through multiple technologies such as SRv6, BGP-TE, or SR-MPLS, so it’s better to keep it more technology-agnostic.

@fett0
Copy link
Contributor

fett0 commented Dec 30, 2025

I've tested these command in my lab and works as expected.

@hedrok hedrok force-pushed the T8046-add-link-params-cli branch from e695990 to 25437e4 Compare December 31, 2025 08:26
@hedrok hedrok requested a review from c-po December 31, 2025 08:26
@hedrok hedrok force-pushed the T8046-add-link-params-cli branch 3 times, most recently from 8974d65 to 051d45a Compare January 6, 2026 13:30
@fett0
Copy link
Contributor

fett0 commented Jan 7, 2026

@c-po @hedrok I see everything is ok or something is missing ? Could you review this code ?

Add 'traffic-engineering' commands under 'protocols'.

set protocols traffic-engineering admin-group ADMINGROUP bit-position 1
set protocols traffic-engineering interface INTERFACE admin-group ADMINGROUP
set protocols traffic-engineering interface INTERFACE max-bandwidth 1280
set protocols traffic-engineering interface INTERFACE max-reservable-bandwidth 1280

Also add

set protocols isis traffic-engineering export
@hedrok hedrok force-pushed the T8046-add-link-params-cli branch from 051d45a to a4b3cd3 Compare January 9, 2026 09:02
@github-actions github-actions bot added the rebase label Jan 9, 2026
@github-actions
Copy link

github-actions bot commented Jan 9, 2026

CI integration 👍 passed!

Details

CI logs

  • CLI Smoketests 👍 passed
  • CLI Smoketests (interfaces only) 👍 passed
  • Config tests 👍 passed
  • RAID1 tests 👍 passed
  • CLI Smoketests VPP 👍 passed
  • Config tests VPP 👍 passed
  • TPM tests 👍 passed

Copy link
Member

@c-po c-po left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

New feature implementation looks good and tested via smoketests

Copy link
Member

@sever-sever sever-sever left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add the protocols traffic-engineering configuration option

@sever-sever sever-sever added the bp/circinus Create automatic backport for circinus label Jan 9, 2026
@sever-sever sever-sever merged commit 33f1763 into vyos:current Jan 9, 2026
20 checks passed
@vyosbot vyosbot added mirror-initiated This PR initiated for mirror sync workflow mirror-completed and removed mirror-initiated This PR initiated for mirror sync workflow labels Jan 9, 2026
@hedrok hedrok deleted the T8046-add-link-params-cli branch January 21, 2026 07:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bp/circinus Create automatic backport for circinus current mirror-completed rebase

Development

Successfully merging this pull request may close these issues.

6 participants