A computer-implemented method comprising: identifying a single logical switch that comprises a plurality of physical switches, wherein: the plurality of physical switches comprises at least a first switch and a second switch; an ingress port of the logical switch at the first switch is connected to an egress port of the logical switch at the second switch by a first path that extends from the first switch to the second switch; and the ingress port of the logical switch at the first switch is also connected to the egress port of the logical switch at the second switch by a second path that extends from the first switch to the second switch; calculating a plurality of multicast distribution trees for distributing multicast traffic from ingress ports of the logical switch to egress ports of the logical switch by: selecting a first root switch from the plurality of physical switches; selecting a second root switch from the plurality of physical switches; generating a first bi-directional tree that is rooted on the first root switch and that includes the first path; and generating a second bi-directional tree that is rooted on the second root switch and that includes the second path, wherein the first root switch is different than the second root switch; receiving a plurality of multicast packets at the ingress port of the logical switch at the first switch; using, at each physical switch along the first path, the first bi-directional tree to transmit a first portion of the plurality of multicast packets to the egress port of the logical switch at the second switch; and using, at each physical switch along the second path, the second bi-directional tree to transmit a second portion of the plurality of multicast packets to the egress port of the logical switch at the second switch. identifying a single logical switch that comprises a plurality of physical switches, wherein: the plurality of physical switches comprises at least a first switch and a second switch; an ingress port of the logical switch at the first switch is connected to an egress port of the logical switch at the second switch by a first path that extends from the first switch to the second switch; and the ingress port of the logical switch at the first switch is also connected to the egress port of the logical switch at the second switch by a second path that extends from the first switch to the second switch; the plurality of physical switches comprises at least a first switch and a second switch; an ingress port of the logical switch at the first switch is connected to an egress port of the logical switch at the second switch by a first path that extends from the first switch to the second switch; and the ingress port of the logical switch at the first switch is also connected to the egress port of the logical switch at the second switch by a second path that extends from the first switch to the second switch; calculating a plurality of multicast distribution trees for distributing multicast traffic from ingress ports of the logical switch to egress ports of the logical switch by: selecting a first root switch from the plurality of physical switches; selecting a second root switch from the plurality of physical switches; generating a first bi-directional tree that is rooted on the first root switch and that includes the first path; and generating a second bi-directional tree that is rooted on the second root switch and that includes the second path, wherein the first root switch is different than the second root switch; receiving a plurality of multicast packets at the ingress port of the logical switch at the first switch; selecting a first root switch from the plurality of physical switches; selecting a second root switch from the plurality of physical switches; generating a first bi-directional tree that is rooted on the first root switch and that includes the first path; and generating a second bi-directional tree that is rooted on the second root switch and that includes the second path, wherein the first root switch is different than the second root switch; receiving a plurality of multicast packets at the ingress port of the logical switch at the first switch; using, at each physical switch along the first path, the first bi-directional tree to transmit a first portion of the plurality of multicast packets to the egress port of the logical switch at the second switch; and using, at each physical switch along the second path, the second bi-directional tree to transmit a second portion of the plurality of multicast packets to the egress port of the logical switch at the second switch.