Multicast bandwidth multiplication for a unified distributed switch
First Claim
1. A computer program product comprising:
- a non-transitory computer-readable storage medium having computer-readable program code embodied therewith, the computer-readable program code comprising computer-readable program code configured to;
receive a multicast data frame on a first port of a networking element, wherein the multicast data frame is an Ethernet frame;
store at least a portion of the multicast data frame in each buffer of a first plurality of buffers, wherein the portion of the multicast data frame is at least a portion of a payload of the Ethernet frame, and wherein at least one of the first plurality of buffers is assigned to a second input port of the networking element;
store a respective header corresponding to each of the portions of the multicast data frame in a second plurality of buffers, wherein at least one of the second plurality of buffers is assigned to the second input port;
combining each of the portions of the received multicast data frame with the corresponding header to generate data packets; and
separately forward each of the data packets based on the respective headers via respective output connection interfaces of the networking element, wherein a first one of the output connection interfaces is assigned to the first input port and a second one of the output connection interfaces is assigned to the second input port, wherein the first input port borrows the at least one buffer of the first plurality of buffers, the at least one buffer of the second plurality of buffers, and the respective output connection interface assigned to the second input port.
1 Assignment
0 Petitions
Accused Products
Abstract
The distributed switch may include a plurality of chips (i.e., sub-switches) on a switch module. These sub-switches may receive from a computing device connected to a Tx/Rx port a multicast data frame (e.g., an Ethernet frame) that designates a plurality of different destinations. Instead of simply using one egress connection interface to forward the copies of the data frame to each of the destinations sequentially, the sub-switch may use a plurality of a connection interfaces to transfer copies of the multicast data frame simultaneously. The port that receives the multicast data frame can borrow the connection interfaces (and associated hardware such as buffers) assigned to these other ports to transmit copies of the multicast data frame simultaneously.
28 Citations
12 Claims
-
1. A computer program product comprising:
a non-transitory computer-readable storage medium having computer-readable program code embodied therewith, the computer-readable program code comprising computer-readable program code configured to; receive a multicast data frame on a first port of a networking element, wherein the multicast data frame is an Ethernet frame; store at least a portion of the multicast data frame in each buffer of a first plurality of buffers, wherein the portion of the multicast data frame is at least a portion of a payload of the Ethernet frame, and wherein at least one of the first plurality of buffers is assigned to a second input port of the networking element; store a respective header corresponding to each of the portions of the multicast data frame in a second plurality of buffers, wherein at least one of the second plurality of buffers is assigned to the second input port; combining each of the portions of the received multicast data frame with the corresponding header to generate data packets; and separately forward each of the data packets based on the respective headers via respective output connection interfaces of the networking element, wherein a first one of the output connection interfaces is assigned to the first input port and a second one of the output connection interfaces is assigned to the second input port, wherein the first input port borrows the at least one buffer of the first plurality of buffers, the at least one buffer of the second plurality of buffers, and the respective output connection interface assigned to the second input port. - View Dependent Claims (2, 3, 4, 5, 6)
-
7. A networking element for forwarding a multicast data frame, comprising:
-
a first port that receives a multicast data frame, wherein the multicast data frame is an Ethernet frame; a first plurality of buffers, wherein at least a portion of the multicast data frame is stored in each buffer of the first plurality of buffers, wherein the portion of the multicast data frame is at least a portion of a payload of the Ethernet frame, and wherein at least one of the first plurality of buffers is assigned to a second input port of the networking element; a second plurality of buffers that store a header corresponding to each of the portions of the multicast data frame, wherein at least one of the second plurality of buffers is assigned to the second input port, wherein the networking element is configured to combine each of the portions of the first received multicast data frame with the corresponding header to generate data packets; and respective output connection interfaces configured to separately forward the data packets based on respective headers, wherein a first one of the output connection interfaces is assigned to the first input port and a second one of the output connection interfaces is assigned to the second input port, wherein the first input port borrows the at least one buffer of the first plurality of buffers, the at least one buffer of the second plurality of buffers, and the respective output connection interface assigned to the second input port. - View Dependent Claims (8, 9, 10, 12)
-
-
11. A networking element for forwarding a multicast data frame, comprising:
-
a first input port that receives the multicast data frame; a first plurality of buffers, wherein at least a portion of the multicast data frame is stored in each of the first plurality of buffers, wherein at least one of the first plurality of buffers is assigned to a second input port of the networking element; a second plurality of buffers that store a header corresponding to each of the portions of the multicast data frame, wherein at least one of the second plurality of buffers is assigned to the second input port; and respective output connection interfaces configured to separately forward each of a plurality of the portions of the received multicast data frame stored in the first plurality of buffers based on respective headers, wherein a first one of the output connection interfaces is assigned to the first input port and a second one of the output connection interfaces is assigned to the second input port, wherein the first input port borrows the at least one buffer of the first plurality of buffers, the at least one buffer of the second plurality of buffers, and the respective output connection interface assigned to the second input port, wherein, after forwarding the portions of the received multicast data frame, the networking element is configured to not evict at least one of the portions from the first plurality of buffers, wherein, after forwarding the portions; the networking element is configured to store a replacement header for one of the non-evicted portions in one of the second plurality of buffers, wherein the replacement header comprises a different destination that an original header that was previuously assigned to the one non-evicted portion; and the networking element is configured to forward the one non-evicted portion and the replacement header.
-
Specification