Packet loss due to congestion in networks, particularly over WAN links, is inevitable. Depending on where drops occur, it can have a major impact on perceived quality of experience. Packet loss due to exceeding transmit caps between instances of SSR should be avoided. Per-adjacency traffic engineering can be enabled to regulate the upload and download rates between peers.
Per-adjacency traffic engineering provides targeted traffic engineering for both directions on a bandwidth restricted link between two SSR instances. Traffic engineering on the device interface continues to be associated with the upload rate of a connected link; the
transmit-cap. Traffic engineering at the adjacency level is associated with the download limit of the adjacent SSR instance; the
For example, in the following hub and spoke diagram the Datacenter router has 5 adjacencies off of the individual device interface with a
transmit-cap upload speed configured at 50Mb. The adjacent branch routers have 10Mb, 5Mb, 1Mb, 5Mb, and 2.5Mb configured as their device interface transmit caps. With such a large
transmit-cap at the Datacenter, traffic rates exceeding the allowed download speeds (10Mb, 5Mb, 1Mb, 5Mb, and 2.5Mb) on each of the paths to the branch routers will result in traffic being dropped by the ISP.
Per-adjacency traffic engineering allows you to automatically identify the adjacent path and the
receive-cap, and limit the rate of traffic destined for that path. With a
receive-cap configured for each adjacency, traffic does not exceed the
receive-cap associated with the adjacency, and is not dropped by the ISP.
A traffic profile allows you to adjust the amount of bandwidth allocated for various traffic categories. When a traffic profile is configured, it is applied on a network or device interface. Note that the values for best-effort, high, medium, and low are percentage values, and collectively must add up to 100 percent. See
traffic-profile for additional information.
Auto-Configuration via Neighborhoods
Per adjacency traffic-engineering is limited to spoke nodes in a hub and spoke topology.
Typically, adjacencies are automatically configured via neighborhoods. All nodes in a neighborhood share layer 3 connectivity. Between any two nodes we can form a pair of adjacencies, one on each router, which describes their peering. When the adjacencies are automatically created, the spoke’s neighborhood
receive-cap is inspected by the neighborhood Hub router. It creates an adjacency with a
transmit-cap matching the spoke’s
In order to generate the adjacencies correctly, configure a
receive-cap on the neighborhood of the network interface with limited receive capabilities.
receive-cap 1000000 (<---)
Manual Configuration via Adjacencies
The preferred method for configuring adjacencies is using auto-configure via neighborhoods. However, it is possible to manually configure per adjacency traffic-engineering. To limit the router’s transmit speeds when communicating with a specific peer, set the
traffic-engineering container in the adjacency to have the desired
To gather information about Per-Adjacency Traffic Engineering, query the following statistics using the
show stats traffic-eng device-interface peer-path command within the CLI. These statistics are specific to the peer-path and provide insight into how the adjacency schedulers are operating.
enqueue-cycle-count: The current enqueue cycle count in traffic engineering for this peer path.
dequeue-cycle-count: The current dequeue cycle count in traffic engineering for this peer path.
packets-queued: The current number of packets queued in traffic engineering for this peer path.
per-traffic-class schedule-success-bytes: The number of bytes successfully scheduled for transmission for this peer path.
per-traffic-class schedule-success-packets: The number of packets successfully scheduled for transmission for this peer path.
per-traffic-class schedule-failure-bytes: The number of bytes failed to be scheduled for transmission due to bandwidth oversubscription for this peer path.
per-traffic-class schedule-failure-packets: The number of packets failed to be scheduled for transmission due to bandwidth oversubscription for this peer path.
per-traffic-class dequeue-success-bytes: The number of bytes successfully dequeued from the scheduler for transmission for this peer path.
per-traffic-class dequeue-success-packets: The number of packets successfully dequeued from the scheduler for transmission for this peer path.
per-traffic-class dequeue-max-latency-drop-bytes: The number of bytes scheduled for transmission that were dropped due to excessive latency for this peer path.
per-traffic-class dequeue-max-latency-drop-packets: The number of packets scheduled for transmission that were dropped due to excessive latency for this peer path.
per-traffic-class dequeue-aqm-drop-bytes: The number of bytes scheduled for transmission that were dropped due to Active Queue Management for this peer path.
per-traffic-class dequeue-aqm-drop-packets: The number of packets scheduled for transmission that were dropped due to Active Queue Management for this peer path.
per-traffic-class buffer-capacity-exceeded-bytes: The number of bytes failed to be scheduled for transmission due to exceeded buffer capacity for this peer path.
per-traffic-class buffer-capacity-exceeded-packets: The number of packets failed to be scheduled for transmission due to exceeded buffer capacity for this peer path.
per-traffic-class schedule-success-bandwidth: Traffic bandwidth successfully scheduled for transmission for this peer path.
per-traffic-class schedule-failure-bandwidth: Current scheduler enqueue failure rate in bytes per second for a given traffic class within the scheduler.
Per adjacency traffic engineering works well in a one-to-many topology described above. However, it is less effective in the following topologies:
- Topologies where multiple routers are communicating with a bandwidth-restricted branch router. Multiple routers sourcing traffic into the ISP destined for the branch router do not communicate how much traffic they are sending. As a result, oversubscription of the link is possible and the distribution of prioritized traffic from the sourcing routers will be dropped.
- A topology that includes multiple active paths from an individual datacenter router to the branch routers.
- A Full-mesh topology.