# Simple Shared Shaping Algorithm Overview

You can configure variables within the simple shared shaper algorithm to control the minimum dynamic rate for all simple shared shapers on the router.

Configuring variables in the simple shared shaper algorithm is useful for IPTV configurations. Without limiting the dynamic rate, best-effort data traffic can be starved for a few seconds when a video stream starts. The minimum dynamic rate defined by shared shaper algorithm variables applies to best-effort traffic only.

Figure 23 shows a two-constituent simple shared shaper consisting of best-effort and video traffic. The sum of the best-effort and video traffic is shaped to the configured shared-shaping rate.

Figure 23: Simple Shared Shaper Behavior Without Algorithm Controls

When the video stream starts in the example displayed by Figure 23, the shared shaper reacts by drastically reducing best-effort traffic because it must avoid saturating downstream queues. In some cases, best-effort traffic is throttled for a few seconds. When the video stream stops, best-effort traffic can continually consume more bandwidth, up to the shared-shaping rate.

By controlling the minimum dynamic rate in the simple shared shaper algorithm, you can configure the less conservative simple shared shaping behavior displayed in Figure 24. In this example, as the video traffic starts, the best-effort rate is reduced less drastically, and best-effort traffic is not starved.

Figure 24: Less Conservative Simple Shared Shaper Behavior

You can also configure the more liberal simple shared shaper behavior that is displayed in Figure 25. In this example, the initial over-limit video traffic is ignored. When the video traffic stops, the system immediately allows best-effort traffic to consume the available bandwidth.

Figure 25: More Liberal Simple Shared Shaper Behavior

## Simple Shared Shaper Algorithm Calculations

The simple shared shaper algorithm performs the following tasks to calculate the dynamic rate:

1. Calculates the new measured rate.
2. Calculates the virtual output queue length (VOQL).
3. Calculates the new dynamic rate.
4. Uses the larger value of the new dynamic rate (from Step 3) and a minimum dynamic rate.