IP Library Granted Patent US 12712828
Granted Patent B2
US 12712828 · App. 18/480,945 · Granted Aug 18, 2026

Multi-plane network switch

Inventors: Duncan Roweth (Bristol, GB); Abdulla M. Bataineh (Seattle, WA); Timothy J. Johnson (Madison, WI); Jonathan Paul Beecroft (Bristol, GB); Frank R. Dropps (Bloomington, MN); David Charles Hewson (Bristol, GB); Anthony M. Ford (Bristol, GB); Trevor Alan Jones (Bristol, GB)
Assignee: Hewlett Packard Enterprise Development LP
H04L49/3018H04L49/101H04L49/3027
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12712828
App. No.
18/480,945
Granted
Aug 18, 2026
Kind
B2
Abstract

A network switch includes multiple data crossbars and multiple header planes for controlling the data crossbars. In an example implementation, a device includes: a plurality of header planes, each of the header planes including an input queue, an output queue, a request crossbar connected to the input queue and the output queue, and a grant crossbar connected to the input queue and the output queue; a receiver; and a header plane selector. The header plane selector is configured to: receive a transfer request for a packet from the receiver; select a header plane of the header planes based on a header of the packet; and queue the transfer request at the input queue of the header plane.

Claims (46)

1 . A device comprising:

an output buffer;

a first data crossbar connected to the output buffer;

a second data crossbar connected to the output buffer, the second data crossbar separate from the first data crossbar;

an input buffer connected to the first data crossbar and to the second data crossbar;

a first input queue configured to transfer a first packet from the input buffer to the output buffer over the first data crossbar; and

a second input queue configured to transfer a second packet from the input buffer to the output buffer over the second data crossbar.

2 . The device of claim 1 , wherein the first packet is transferred over the first data crossbar in parallel with the second packet being transferred over the second data crossbar.

3 . The device of claim 1 , further comprising:

a header plane selector configured to distribute a first transfer request for the first packet to the first input queue and to distribute a second transfer request for the second packet to the second input queue.

4 . The device of claim 3 , wherein the header plane selector distributes the first transfer request and the second transfer request based on a first header of the first packet and on a second header of the second packet.

5 . The device of claim 3 , wherein the header plane selector distributes the first transfer request and the second transfer request based on a first frame type of the first packet and on a second frame type of the second packet.

6 . The device of claim 1 , wherein the first packet is part of a packet flow, and the first input queue is further configured to transfer each packet of the packet flow from the input buffer to the output buffer.

7 . The device of claim 1 , further comprising:

a first output queue configured to receive a first transfer request for the first packet from the first input queue, and to send a first transfer grant to the first input queue; and

a second output queue configured to receive a second transfer request for the second packet from the second input queue, and to send a second transfer grant to the second input queue.

8 . The device of claim 7 , further comprising:

a first request crossbar connected to the first input queue and the first output queue, the first input queue configured to send the first transfer request to the first output queue over the first request crossbar;

a second request crossbar connected to the second input queue and the second output queue, the second request crossbar separate from the first request crossbar, the second input queue configured to send the second transfer request to the second output queue over the second request crossbar;

a first grant crossbar connected to the first input queue and the first output queue, the first output queue configured to send the first transfer grant to the first input queue over the first grant crossbar; and

a second grant crossbar connected to the second input queue and the second output queue, the second grant crossbar separate from the first grant crossbar, the second output queue configured to send the second transfer grant to the second input queue over the second grant crossbar.

9 . The device of claim 7 , wherein the first transfer grant comprises a first sequence number, the first output queue comprises a first sequencer configured to generate the first sequence number, the second transfer grant comprises a second sequence number, and the second output queue comprises a second sequencer configured to generate the second sequence number.

10 . A device comprising:

a plurality of header planes, each of the header planes comprising an input queue, an output queue, a request crossbar connected to the input queue and the output queue, and a grant crossbar connected to the input queue and the output queue;

a receiver; and

a header plane selector configured to:

receive a transfer request for a packet from the receiver;

select a header plane by calculating a flow hash for the packet by hashing fields in a header of the packet, the header plane being selected based on the flow hash; and

queue the transfer request at the input queue of the header plane.

11 . The device of claim 10 , wherein the input queue is configured to send the transfer request to the output queue over the request crossbar, and the output queue is configured to send a transfer grant to the input queue over the grant crossbar.

12 . A method comprising:

selecting a header plane, the header plane controlling transfer of a packet from an input buffer to an output buffer, the header plane comprising an input queue and an output queue;

calculating a flow hash for the packet by hashing fields in a header of the packet, the header plane being selected based on the flow hash;

sending a transfer request from the input queue of the header plane to the output queue of the header plane;

receiving a transfer grant from the output queue of the header plane at the input queue of the header plane, the transfer grant comprising a sequence number for the packet;

transferring the packet and the sequence number from the input buffer to the output buffer; and

reading the packet from the output buffer based on the sequence number.

13 . The method of claim 12 , wherein the header plane is selected based on a frame type of the packet.

14 . The method of claim 12 , wherein the transfer request comprises a description of the packet, and the transfer request is granted by the output queue based on the description of the packet.

15 . The method of claim 12 , wherein the packet is an unordered packet, and the sequence number is a dummy sequence number.

16 . The method of claim 12 , wherein the packet is part of a packet flow, the sequence number is assigned to the packet based on ordering of the packet in the packet flow, and a plurality of data crossbars are used to transfer each packet of the packet flow from the input buffer to the output buffer.

17 . The method of claim 12 , further comprising:

selecting a data crossbar from a plurality of data crossbars, wherein transferring the packet and the sequence number from the input buffer to the output buffer comprises transferring the packet and the sequence number over the data crossbar.

18 . The method of claim 17 , wherein the data crossbar is selected based on a load of the data crossbar.

19 . The device of claim 10 , wherein the transfer request comprises a description of the packet.

20 . The device of claim 11 , wherein the transfer grant comprises a sequence number for the packet.