9. MCAC

9.1. MCAC Overview

Multicast Connection Admission Control (MCAC) allows a router to limit bandwidth used by multicast channels, either on a router, on access links, or by an ESM subscriber, by controlling the number of channels that are accepted. When a pre-configured limit is reached, the router prevents receivers from joining any new channels not currently established. By rejecting new channel establishment during an overload condition, the degradation of the quality of the existing multicast service offering is avoided. However, as result, running the MCAC function might cause some channels to be temporarily unavailable to receivers under overload.

Operators can configure one or more MCAC bundle policies (configure>router>mcac>policy) to specify multicast channel admission rules and then reference a required MCAC bundle policy on multicast-enabled IPv4 and IPv6 interfaces or group-interfaces. In addition, operators can configure per-interface MCAC behavior.

MCAC is supported on ESM subscriber interfaces as well as multicast interfaces in base router instance, VPLS, and in MVPNs. MCAC is supported for IGMP, IGMP-snooping, MLD, and PIM.

The amount of bandwidth multicast channels can consume is limited by operator-configured unconstrained and mandatory bandwidth values. Those values can be configured on a per-MCAC bundle policy, per subscriber, per interface, and per MCAC interface policy. The bandwidth limits configured for a subscriber or interface limit multicast bandwidth for that particular subscriber or that interface only. The bandwidth limits configured for an MCAC interface policy limit multicast bandwidth across a set of interfaces that share the same interface policy. If bandwidth limits are defined on multiple levels, all level limits must be satisfied for a channel to be admitted. See MCAC Algorithm for more information.

Feature caveats:

  1. MCAC is not applicable to PIM snooping and MLD snooping

9.1.1. MCAC Bundle Policy Overview

MCAC bundle policy (shortened here to “MCAC policy” or “policy”) is used to define MCAC rules to be applied on an MCAC interface when receivers are trying to join multicast channels. Within each policy, an operator can define:

  1. Multicast channel:
    1. A channel can be defined using multicast group address only or both source and group addresses. Ranges can be used to group multiple multicast channels into a single MCAC channel. When ranges are used, each multicast channel within range will use the same channel BW (bandwidth), class, and priority configuration.
    2. Channel BW: a bandwidth value to be used for a channel in MCAC.
    3. Channel type (mandatory or optional): mandatory channels have BW pre-reserved on interfaces as soon as they are defined in MCAC policy, while optional channels consume BW on-demand; only when there are active receivers for that channel and the remaining BW allows for channels to be admitted.
    4. Channel class: high and low classes are supported. For LAG interfaces, the class parameter allows further prioritizing of the mandatory or optional channels. This brings the number of priority levels to four during reshuffles of the joined channels when LAG ports are changing state.
    Note:

    Multicast channels not specified in an MCAC policy applicable on a given interface are not subject to MCAC. Treatment of such channels is configurable as either accept or discard.

  2. Multicast channel bundle:
    1. Multicast bundle defines multicast channels as described above. A channel can only be part of one bundle.
    2. Maximum bundle BW – the maximum bandwidth the channels forming a given bundle can consume on an interface.
    3. MCAC constraints – set of rules governing available BW for multicast channels over LAG as LAG ports are changing state.

9.1.2. MCAC Algorithm

It is important to point out that the MCAC algorithm is based on configured BW values. The configured channel BW based on MCAC policy is CAC-ed against pre-configured maximum bundle BW and pre-configured subscriber, interface, or MCAC interface-policy multicast BW limits. A channel must pass all levels of CAC before it is accepted. The statements outline the CAC algorithm for a multicast channel defined in MCAC policy:

A join for a particular multicast channel is allowed under the following conditions.

  1. Mandatory channels—A sufficient bandwidth exists on the interface according to the policy settings for the interface (Interface-level MCAC and MCAC-interface-policy-level MCAC) and BW setting for a channel (Bundle-level MCAC). There is always sufficient BW available on the bundle level because mandatory channels get pre-reserved bandwidth.
  2. Optional channels—A sufficient BW exists on both interface (Interface-level MCAC and MCAC-interface-policy-level MCAC) and bundle level (Bundle-Level MCAC) based on channel configured BW and currently available BW on both interface and bundle.

When a policy is evaluated over a set of existing channels (applicable for MCAC on LAG when the number of ports in the LAG changes and applicable to subscribers when the submac policy is enabled on a subscriber), the channels are evaluated and admitted/dropped based on the following priority order: mandatory-high, mandatory-low, optional-high, optional-low.

This method does not guarantee that all bundles are fully allocated. However, this method does ensure that all mandatory-high channels are allocated before any mandatory-low channels are allocated.

When a new MCAC bundle policy is applied, the algorithm is forced to admit all currently joined channels to prevent any drops. This can result in an oversubscription until some of the joined channels disconnect. The same behavior applies when adding a new MCAC interface policy: all the joined channels will be admitted, without dropping anything.

9.1.2.1. Interface-level MCAC details

Interface-level MCAC constraints are applied to the interface on which the join was received. Mandatory and optional channels are allowed under the following conditions.

  1. Mandatory channels—The bandwidth for the already-accepted mandatory channels plus the bandwidth of this channel cannot be greater than the configured mandatory bandwidth on this interface.
  2. Optional channels—The bandwidth for the already-accepted optional channels plus the bandwidth of this channel cannot be greater than the configured amount of unconstrained bandwidth less the configured amount of mandatory bandwidth on this interface.

9.1.2.1.1. MCAC-interface-policy-level MCAC details

MCAC interface policies are defined system wide and used on MCAC interfaces via assignment of the policy to one or more interfaces to, for example, limit multicast BW across a group of interfaces/ports, across a line card or across a system. If an MCAC interface policy is assigned to an interface with Interface-level constraints configured, then both Interface-level MCAC as described above and MCAC-interface-policy-level MCAC must be satisfied for a channel to be admitted.

Mandatory and optional channels are allowed under the following conditions.

  1. Mandatory channels—The bandwidth for the already-accepted mandatory channels on this and any other interface using this MCAC interface policy plus the bandwidth of this channel cannot be greater than the configured mandatory bandwidth for this MCAC interface policy.
  2. Optional channels—The bandwidth for the already-accepted optional channels on this and any other interface using this MCAC interface policy plus the bandwidth of this channel cannot be greater than the configured amount of unconstrained bandwidth less the configured amount of mandatory bandwidth for this MCAC interface policy.

Thus, when MCAC interface policy is used, admitting a channel on one interface affects all interfaces sharing the same MCAC interface policy.

9.1.2.2. Bundle-level MCAC details

Bundle-level CAC is applied to the bundle to which the channel that triggered the MCAC algorithm belongs.

Mandatory and optional channels are allowed under the following conditions.

  1. Mandatory channels—Always.
  2. Optional channels—The allocated bundle bandwidth cannot exceed the configured bandwidth. The allocated bandwidth equals the bandwidth of all the mandatory channels belonging to that bundle plus the bandwidth of the optional channels already accepted plus the bandwidth of this optional channel.

9.1.3. MCAC on Link Aggregation Group Interfaces

When MCAC enabled interfaces reside on a LAG, SR OS allows operators to change MCAC behavior when the number of active ports in a LAG changes. Both MCAC policy bundle and MCAC interface allows operators to define multiple MCAC levels per LAG based on the number of active ports in the LAG. For each level, operators can configure corresponding BW limits.

When MCAC LAG constraints are enabled, the level to use is selected automatically based on the configuration and a currently active number of LAG ports. In a case of the available bandwidth reduction (for example, a LAG link failure causes change to a level with smaller BW configured), MCAC attempts first to fit all mandatory channels (in an arbitrary order). If there is no sufficient capacity to carry all mandatory channels in the degraded mode, some channels are dropped and all optional channels are dropped. If after evaluation of mandatory channels, there remains available bandwidth, then all optional channels are re-evaluated (in an arbitrary order). Channel re-evaluation employs the above-described MCAC algorithm applied at the interface and bundle levels that use the constraints for the degraded mode of operation.