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 describe the CAC algorithm for a multicast channel defined in MCAC policy:
A join for a particular multicast channel is allowed under the following conditions.
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.
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 are admitted, without dropping anything.