Skip to content

Traffic Engineering (TE)

Beyond the basic IGP cost, OSPF and IS-IS can carry Traffic Engineering attributes — bandwidth, a separate TE metric, and administrative groups/affinities. Topolograph parses these and makes them available for richer visualization and filtering, for both OSPF and IS-IS.

TE is optional

Your graph builds fine from plain LSA 1/2/5 (OSPF) or the standard IS-IS LSDB. TE data is extra — turn it on when you need capacity-aware analysis.

What Topolograph parses

Attribute API/SDK name Meaning Defined in
TE default metric temetric TE-specific link metric (independent of IGP cost) RFC 3630 §2.5.5 / RFC 5305 §3.7
Administrative group admin_group Affinity / color / resource class RFC 3630 §2.5.9 / RFC 5305 §3.1
Maximum link bandwidth max_link_bw Physical link capacity RFC 3630 §2.5.6 / RFC 5305 §3.4
Maximum reservable bandwidth max_rsrv_link_bw Bandwidth available for reservation RFC 3630 §2.5.7 / RFC 5305 §3.5
Unreserved bandwidth (per priority) unreserved_bw_0 … unreserved_bw_7 Remaining bandwidth at each of the 8 TE priorities RFC 3630 §2.5.8 / RFC 5305 §3.6
Shared risk link group srlg List of SRLG ids the link belongs to (RFC 4203 / RFC 5307) RFC 4203 §1.3 / RFC 5307 §1.2

The same attribute names are used regardless of whether the data came from OSPF or IS-IS.

How to feed TE data in

Include show ip ospf database opaque-area in the same upload file as your router/network/external LSDB. Type-10 (opaque-area) LSAs carry the TE data; the rest of the graph is built from LSA 1, 2 and 5 as usual. FRRouting and IP Infusion OcNOS are supported.

Text file upload

TE attributes come straight from the IS-IS LSDB when you use the detailed command of your vendor: show isis database detail (FRR), show router isis database detail (Nokia SR OS) or show isis database verbose (ZTE, IP Infusion OcNOS). No extra command is required beyond your normal IS-IS capture. Which attributes each vendor's parser reads is listed in TE attributes by vendor.

BGP-LS carries TE attributes natively — admin group, maximum and reservable bandwidth, unreserved bandwidth, SRLG, and the TE default metric — with no opaque-LSA trick needed. TE updates stream into the monitoring view live.

BGP-LS session

When TE data arrives over BGP-LS, the monitoring page shows the link attributes as updates come in:

TE link attributes on the monitoring page via BGP-LS

Once a diagram has TE data, you can query edges by any TE attribute using the range operators __gt, __lt, __gte, __lte — handy for finding links that meet or fail a TE constraint. With the Python SDK:

# Links with TE metric >= 100
edges = graph.edges_list(temetric__gte=100)

# Links with unreserved bandwidth at priority 0 below 1 Gbps
edges = graph.edges_list(unreserved_bw_0__lt=1e9)

# Links between two nodes with max link bandwidth above 10 Gbps
edges = graph.edges_list(src_node="1.1.1.1", dst_node="2.2.2.2", max_link_bw__gt=1e10)

The same filtering is available through the diagram edges REST API.

IS-IS specifics

IS-IS TE relies on Wide Metrics (Extended IS/IP Reachability, TLVs 22/135) and supports IPv6 reachability (TLV 236). Vendor support for the relevant TLVs is summarized on the Supported Vendors page.

The TE attributes read from each vendor are listed in TE attributes by vendor.

Monitoring TE changes

When a Watcher is connected, changes to TE attributes are captured as events alongside cost and adjacency changes — see the te_log views in ELK / Kibana and the IS-IS Watcher page.


Related: Getting topology in · Visualizing & analyzing