Source: https://patents.google.com/patent/US9813359B2/en
Timestamp: 2018-11-15 23:30:52
Document Index: 343288309

Matched Legal Cases: ['Application No. 15170843', 'Application No. 10187574', 'Application No. 10188736', 'Application No. 201010278909', 'Application No. 10188736', 'Application No. 10188736']

US9813359B2 - Methods and apparatus related to a distributed switch fabric - Google Patents
US9813359B2
US9813359B2 US15151071 US201615151071A US9813359B2 US 9813359 B2 US9813359 B2 US 9813359B2 US 15151071 US15151071 US 15151071 US 201615151071 A US201615151071 A US 201615151071A US 9813359 B2 US9813359 B2 US 9813359B2
US15151071
US20160255019A1 (en )
2. The apparatus of claim 1, wherein the output port is configured to send the first appended data packet to the module associated with the first stage of the switch fabric such that the first stage of the switch fabric sends the first appended data packet to the module associated with the second stage of the switch fabric without the first stage of the switch fabric parsing the first data packet header.
3. The apparatus of claim 1, wherein the output port is configured to send each of the first appended data packet and the second appended data packet to the module associated with the first stage of the switch packet such that the module associated with the second stage of the switch fabric sends each of the first appended data packet and the second appended data packet to a common module associated with a third stage of the switch fabric based on the identifier of the destination edge device, the module associated with the third stage of the switch fabric being from a plurality of modules associated with the third stage of the switch fabric.
4. The apparatus of claim 1, wherein the module associated with the second stage of the switch fabric is configured to send each of the first appended data packet and the second appended data packet to a common module associated with a third stage of the switch fabric based on the identifier of the destination edge device without performing a calculation to associate the first data packet or the second data packet with the common destination address, the module associated with the third stage of the switch fabric being from a plurality of modules associated with the third stage of the switch fabric.
5. The apparatus of claim 1, wherein the output port is configured to send any data packet having an identifier of a destination edge device that matches the identifier of the destination edge device appended to each of the first data packet and the second data packet to the module associated with the first stage of the switch fabric such that (1) the module associated with the first stage of the switch fabric sends any data packet having the identifier of the destination edge device to the module associated with the second stage of the switch fabric and (2) the module associated with the second stage of the switch fabric sends any data packet having the identifier of the destination edge device to the module associated with a third stage of the switch fabric, the module associated with the third stage of the switch fabric being from a plurality of modules associated with the third stage of the switch fabric.
6. The apparatus of claim 1, wherein the processor is configured to calculate the identifier of the destination edge device based on a result of a hash function using as input at least one field from the first data packet header, the at least one field from the first data packet header being at least one of a destination MAC address, a destination IP address, a source MAC address, a source IP address, or a transfer protocol.
7. The apparatus of claim 1, further comprising a memory operably coupled to the processor, the memory storing a look up table storing a correlation between the destination address and the identifier of a destination edge device associated with the destination address, the processor configured to append the identifier of the destination edge device to any data packet having a packet header specifying the destination address based on the correlation between the destination address and the identifier of the destination edge device stored in the memory.
an input port configured to receive, from an edge device, (1) a first data packet including a first header and a second header, the second header having been appended to the first data packet by the edge device based on the first header and (2) a second data packet including a third header and a fourth header, the fourth header having been appended to the second data packet by the edge device based on the third header, the first header and the third header each specifying an address of a common peripheral device; and
an output port operatively coupled to a processor and the input port, the processor and the output port collectively configured to send (1) the first data packet to a module associated with a stage of a switch fabric based on the second header such that the first data packet is routed to the common peripheral device without performing a calculation on the first header to associate the first data packet with the common peripheral device, at least a portion of a route to the common peripheral device after the stage of the switch fabric determined based on the second header, the module associated with the stage of the switch fabric being from a plurality of modules associated with the stage of the switch fabric and (2) the second data packet to the module associated with the stage of the switch fabric such that the second data packet is routed to the common peripheral device via the portion of the route after the stage of the switch fabric without performing a calculation on the third header to associate the second data packet with the common peripheral device.
11. The apparatus of claim 10 wherein the processor is configured to parse the second header and the fourth header and cause the output port to send the first data packet and the second data packet to the module associated with the stage of the switch fabric without parsing the first header or the third header.
the module of the stage of the switch fabric is a module of a second stage of the switch fabric logically positioned after a first stage of the switch fabric; and
the portion of the route after the second stage of the switch fabric includes a module of a third stage of the switch fabric logically positioned after the second stage of the switch fabric such that the output port is configured to send each of the first data packet and the second data packet to a common module associated with the third stage of the switch fabric such and such that the portion of the route including the common module of the third stage of the switch fabric is determined based on the second header and the fourth header.
14. The apparatus of claim 10, further comprising a processor operatively coupled to the input port and the output port, the processor configured to use at least a portion of the second header as an input of a hash function to calculate a hash-function output, the processor configured to cause the output port to send the first data packet to the module associated with the stage of the switch fabric, and not another module associated with the stage of the switch fabric, based on the hash-function output.
15. The apparatus of claim 10, further comprising a processor operatively coupled to the input port and the output port, the processor configured to use at least a portion of the second header as an input of a hash function to calculate a hash-function output, the processor configured to cause the output port to send the first data packet to the module associated with the stage of the switch fabric based on the hash-function output such that the processor does not access a lookup table to identify the stage of the switch fabric.
16. The apparatus of claim 10, wherein the switch fabric includes at least three stages.
parse a first data packet header from a first data packet received from a first peripheral device via an input port, the first data packet header specifying a first destination;
append a first destination identifier to the first data packet based on the first data packet header to define a first appended data packet;
send the first appended data packet to a first module associated with a first stage of a switch fabric based on the first data packet header such that the module associated the first stage of the switch fabric sends the first appended data packet to a first module associated with a second stage of the switch fabric based on the first destination identifier without performing a calculation to associate the first data packet with the first destination, the first module associated with the first stage of the switch fabric being from a plurality of modules associated with the first stage of the switch fabric, the first module associated with the second stage of the switch fabric being from a plurality of modules associated with the second stage of the switch fabric;
parse a second data packet header from a second data packet received from a second peripheral device via the input port, the second data packet header specifying a second destination matching the first destination;
append the first destination identifier to the second data packet based on the second data packet header to define a second appended data packet; and
send the second appended data packet to the first module associated with the first stage of the switch fabric based on first data packet header such that the first module associated with the first stage of the switch fabric sends the second appended data packet to the first module associated with the second stage of the switch fabric without performing a calculation to associate the second data packet with the second destination.
18. The non-transitory processor readable medium of claim 17, wherein the first appended data packet and the second appended data packet are sent to the first module associated with the first stage of the switch fabric such that the first module associated with the first stage of the switch fabric sends the first appended data packet and the second appended data packet to the second stage of the switch fabric based on the first destination identifier and the second destination identifier that matches the first destination identifier, respectively, without parsing the first header or the second header.
US15151071 2009-10-28 2016-05-10 Methods and apparatus related to a distributed switch fabric Active US9813359B2 (en)
US12607162 US8953603B2 (en) 2009-10-28 2009-10-28 Methods and apparatus related to a distributed switch fabric
US14610143 US9356885B2 (en) 2009-10-28 2015-01-30 Methods and apparatus related to a distributed switch fabric
US15151071 US9813359B2 (en) 2009-10-28 2016-05-10 Methods and apparatus related to a distributed switch fabric
US14610143 Continuation US9356885B2 (en) 2009-10-28 2015-01-30 Methods and apparatus related to a distributed switch fabric
US9813359B2 true US9813359B2 (en) 2017-11-07
US12607162 Active 2033-05-05 US8953603B2 (en) 2009-10-28 2009-10-28 Methods and apparatus related to a distributed switch fabric
US14610143 Active US9356885B2 (en) 2009-10-28 2015-01-30 Methods and apparatus related to a distributed switch fabric
US15151071 Active US9813359B2 (en) 2009-10-28 2016-05-10 Methods and apparatus related to a distributed switch fabric
US4400627A (en) 1981-05-04 1983-08-23 Bell Telephone Laboratories, Incorporated Telephone switching network
US6816487B1 (en) 2000-07-20 2004-11-09 Nortel Networks Limited Mapping of high bandwidth connections in a multi-stage switch
US7113505B2 (en) 2001-12-17 2006-09-26 Agere Systems Inc. Mesh architecture for synchronous cross-connects
EESR for corresponding European Application No. 15170843.5, dated Oct. 6, 2015.
Extended European Search Report dated Aug. 17, 2011 for European Application No. 10187574.8 (10 pages).
Extended European Search report for European Application No. 10188736.2, dated May 10, 2011.
Final Office Action dated Aug. 15, 2011 for U.S. Appl. No. 12/346,632 (23 pages).
Final Office Action dated Dec. 14, 2011 for U.S. Appl. No. 12/346,625 (14 pages).
Final Office Action dated Dec. 5, 2011 for U.S. Appl. No. 12/346,612 (24 pages).
Final Office Action dated Jul. 26, 2011 for U.S. Appl. No. 12/346,608 (30 pages).
Final Office Action dated Oct. 26, 2011 for U.S. Appl. No. 12/346,630 (17 pages).
Office Action dated Apr. 1, 2011 for U.S. Appl. No. 12/346,612 (19 pages).
Office Action dated Apr. 14, 2011 for U.S. Appl. No. 12/346,608 (24 pages).
Office Action dated Apr. 27, 2011 for U.S. Appl. No. 12/346,630 (15 pages).
Office Action dated Apr. 7, 2011 for U.S. Appl. No. 12/346,618 (14 pages).
Office Action dated Dec. 21, 2011 for U.S. Appl. No. 12/346,632 (27 pages).
Office Action dated Dec. 23, 2010 for U.S. Appl. No. 12/346,623 (19 pages).
Office Action dated Jan. 17, 2012 for U.S. Appl. No. 12/346,608 (29 pages).
Office Action dated Jul. 3, 2012 for U.S. Appl. No. 12/346,625 (14 pages).
Office Action dated Jun. 16, 2011 for U.S. Appl. No. 12/346,623 (13 pages).
Office Action dated Mar. 14, 2011 for U.S. Appl. No. 12/346,632 (21 pages).
Office Action dated Mar. 21, 2011 for U.S. Appl. No. 12/346,615 (9 pages).
Office Action dated Mar. 29, 2011 for U.S. Appl. No. 12/346,625 (13 pages).
Office Action dated Oct. 28, 2010 for U.S. Appl. No. 12/346,630 (24 pages).
Office Action dated Oct. 5, 2010 for U.S. Appl. No. 12/346,632 (16 pages).
Office Action dated Sep. 15, 2010 for U.S. Appl. No. 12/346,615 (21 pages).
Office Action dated Sep. 15, 2010 for U.S. Appl. No. 12/346,618 (13 pages).
Office Action dated Sep. 17, 2010 for U.S. Appl. No. 12/346,608 (28 pages).
Office Action dated Sep. 17, 2010 for U.S. Appl. No. 12/346,625 (24 pages).
Office Action for Chinese Application No. 201010278909.5, dated Feb. 28, 2013.
Office Action for European Application No. 10188736.2, dated May 16, 2013.
Office Action for European Application No. 10188736.2, dated Nov. 18, 2013.
U.S. Appl. No. 12/612,210, filed Nov. 4, 2009, entitled "Methods and Apparatus for Configuring a Virtual Network Switch" (50 pgs).
US20160255019A1 (en) 2016-09-01 application
US20150139222A1 (en) 2015-05-21 application
EP2947832A1 (en) 2015-11-25 application
CN102055666B (en) 2013-12-18 grant
EP2317702A2 (en) 2011-05-04 application
EP2317702A3 (en) 2011-06-08 application
US20110096781A1 (en) 2011-04-28 application
US8953603B2 (en) 2015-02-10 grant
EP2317702B1 (en) 2015-07-22 grant
US9356885B2 (en) 2016-05-31 grant
CN102055666A (en) 2011-05-11 application