--- myst: html_meta: description: | Traffic Engineering (TE) is a set of techniques for steering traffic along paths different from the shortest path computed by the IGP. keywords: traffic engineering, te, isis, mpls, srv6, admin-group, bandwidth, ted --- (traffic-engineering)= # Traffic Engineering {abbr}`TE (Traffic Engineering)` is a set of techniques for steering traffic along paths different from the shortest path computed by the {abbr}`IGP (Interior Gateway Protocol)`. To enforce these paths, TE typically uses a form of source routing, such as {abbr}`MPLS (Multiprotocol Label Switching)` labels or {abbr}`SRv6 (Segment Routing over IPv6)` extension headers, combined with path constraints, such as administrative groups or bandwidth requirements, and a method to map traffic to TE paths. Use the commands below to configure link-level TE attributes (administrative groups and bandwidth) and enable TE in the IGP (specifically, IS-IS) so this information is distributed across the network. ## Common link parameters The following commands define link-level TE attributes that can be advertised by both IS-IS and OSPF (not supported yet). ```{cfgcmd} set protocols traffic-engineering admin-group \ bit-position \<0-31\> **Configure an administrative group and associate it with a bit position.** These groups can then be referenced by the per-interface commands below. ``` ```{note} Two administrative groups cannot share the same `bit-position` value. ``` Example: ```none set protocols traffic-engineering admin-group primary bit-position 0 set protocols traffic-engineering admin-group backup bit-position 1 ``` ```{cfgcmd} set protocols traffic-engineering interface \ admin-group \ **Configure an administrative group on the specified interface.** You can configure multiple administrative groups on the same interface. ``` Example: ```none set protocols traffic-engineering interface eth0 admin-group primary ``` ```{cfgcmd} set protocols traffic-engineering interface \ metric \<1-4294967295\> **Configure the TE metric for the specified interface (distinct from the OSPF/ISIS metric).** ``` Example: ```none set protocols traffic-engineering interface eth0 metric 100 ``` ```{cfgcmd} set protocols traffic-engineering interface \ max-bandwidth \<1-4294967295\> **Configure the maximum bandwidth, in Mbps, for the specified interface.** ``` Example: ```none set protocols traffic-engineering interface eth0 max-bandwidth 1000 ``` ```{cfgcmd} set protocols traffic-engineering interface \ max-reservable-bandwidth \<1-4294967295\> **Configure the maximum reservable bandwidth, in Mbps, for the specified interface.** ``` Example: ```none set protocols traffic-engineering interface eth0 max-reservable-bandwidth 800 ``` ## IS-IS TE configuration The following commands enable TE for IS-IS. ```{cfgcmd} set protocols isis traffic-engineering enable **Enable Traffic Engineering for IS-IS.** ``` Example: ```none set protocols isis traffic-engineering enable ``` ```{cfgcmd} set protocols isis traffic-engineering export **Export the local {abbr}`TED (Traffic Engineering Database)` to other FRR daemons.** ``` Example: ```none set protocols isis traffic-engineering export ``` ```{cfgcmd} set protocols isis traffic-engineering address \ **Configure the IPv4 address used as the TE Router ID for MPLS-TE.** ``` Example: ```none set protocols isis traffic-engineering address 198.51.100.1 ```