HSQ supports two SLA modes for ESM, expanded and single. The SLA mode is configurable per subscriber profile.
In single mode, the subscriber aggregate rate and the SLA profile queuing are both performed using a single primary shaper context for the subscriber. This mode provides the highest subscriber scale.
In expanded mode, multiple SLA profile instances are supported by moving the subscriber aggregate shaping function to a primary shaper specifically created for the subscriber instance. The subscriber scale in this mode depends on the number of available primary shapers.
Both modes support routed and bridged homes (multiple subscriber hosts can be associated with a single SPI). However, multiple SPIs per subscribers support richer QoS granularity for bridged homes where a set of hosts using the same service can have their own queues and aggregate rate, separate from other services within the same home.
Figure: Single SPI mode and Figure: Expanded SLA mode display two ESM configurations that are designed to emphasize the distinction between the two SLA modes. These are examples to explore SLA modes with an arbitrary queue and WRR group assignments. For example, in both examples, the first four queues within the queue set (SPI) are assigned to two WRR groups at the SPI level, while scheduling classes three and four at the port level are collapsed into a single WRR group. Other configurations for queue, WRR group and scheduling classes are possible.
Both examples contain common parts generic to HSQ, independent of the SLA modes:
Some of the queues in a queue set (SPI) are directly assigned to scheduling classes, and some are assigned indirectly through two WRR groups that are supported per each SPI on HSQ. Note that configuring WRR groups on HSQ is optional.
On HSQ, only one queue or one WRR group can be mapped to a specific scheduling class. Queues either not mapped to a scheduling class or mapped to a WRR group that is not mapped to a scheduling class drops all frames incrementing the queue’s discard counters.
A queue’s WRR weight is only used when the queue is attached to a WRR group. The WRR weight specifies the relative scheduling importance of the queue relative to other active queues on the same group. A queue’s class attachment weight (CW) is only used when the queue is directly attached to a scheduler class. The CW of a WRR group specifies the relative scheduling importance of a queue or WRR group at the scheduling class to queues or WRR groups belonging to other SPIs. Each individual queue or a WRR group can be shaped to a configurable rate.
The secondary shaper in ESM represents an access node. A subscriber is associated with the secondary shaper by an intermediate-destination-id string which is supplied by RADIUS, LUDB, or Python during the authentication phase.
At the port level, multiple scheduling classes can be collapsed through a WRR group (only one WRR group is supported on the port level) and, in this example, scheduling classes three and four are collapsed in WRR group one, with a single scheduling priority that is numerically between the scheduling priorities two and five. Essentially, the WRR group collapses the member scheduling priorities into a single scheduling priority using each class’s WRR weight to manage scheduling opportunities between the classes. Because the member classes default priority levels are unused, the system simply maps the WRR group to one of the unused priorities (in this example, scheduling classes three or four). Because the unused priority levels are contiguous, and the remainder is unused, the priority chosen has no bearing on scheduler performance.
The following sections explore the two SLA modes focusing on the assignment of SPIs and the use of primary shapers as principal differentiators between the two SLA modes. Be aware that primary shapers on HSQ are not exposed as customer-defined objects and are explicitly created only when intermediate shaping is required by specific application (for example, as required by expanded SLA mode).