  We present Elmo, a system that addresses the multicast scalability problem in
multi-tenant data centers. Modern cloud applications frequently exhibit
one-to-many communication patterns and, at the same time, require
sub-millisecond latencies and high throughput. IP multicast can achieve these
requirements but has control- and data-plane scalability limitations that make
it challenging to offer it as a service for hundreds of thousands of tenants,
typical of cloud environments. Tenants, therefore, must rely on unicast-based
approaches (e.g., application-layer or overlay-based) to support multicast in
their applications, imposing overhead on throughput and end host CPU
utilization, with higher and unpredictable latencies.
  Elmo scales network multicast by taking advantage of emerging programmable
switches and the unique characteristics of data-center networks; specifically,
the symmetric topology and short paths in a data center. Elmo encodes multicast
group information inside packets themselves, reducing the need to store the
same information in network switches. In a three-tier data-center topology with
27K hosts, Elmo supports a million multicast groups using a 325-byte packet
header, requiring as few as 1.1K multicast group-table entries on average in
leaf switches, with a traffic overhead as low as 5% over ideal multicast.
