IP Library Granted Patent US 8,032,684
Granted Patent B2
US 8,032,684 · App. 12/885,770 · Granted Oct 4, 2011

Programmable bridge header structures

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 8,032,684
App. No.
12/885,770
Granted
Oct 4, 2011
Kind
B2
Abstract

A computer system includes compute nodes coupled through a switch to shared or non-shared I/O devices. The switch includes a pool of bridge headers and virtual bridges coupling a root port of a compute node to each of one or more shared or non-shared I/O devices. The switch is configured to associate each of the virtual bridges with a respective one of the fixed pool of bridge headers, receive a packet including data identifying the root port and a shared or non-shared I/O device, and route the packet in response to comparing data in the packet to data in the bridge headers associated with the virtual bridges. The virtual bridges comprise a hierarchy of virtual bridges in which one virtual bridge connects the root port to the remaining virtual bridges of the hierarchy. The switch may change the associations between virtual bridges and bridge headers.

Claims (57)

1. A computer system comprising:

a switch operable to couple a root port to a plurality of shared or non-shared I/O devices;

the switch providing a plurality of virtual bridges and enabling an administrator to configure the virtual bridges;

the switch including a physical header storage section operable to store a plurality of bridge headers;

the switch including programmable redirection logic operable to map each virtual bridge to a selectable region of the header storage section; and

the redirection logic being operable to reassign virtual bridges to other regions of the header storage section in response to a new configuration;

wherein the switch is configured to:

receive a packet including data which identifies a root port and an I/O device; and

route the packet in response to comparing the data in the packet to data in a bridge header mapped to the virtual bridge.

2. The system of claim 1 , wherein the switch is programmable to be configured to provide a plurality of virtual switches for a plurality of root ports, each virtual switch coupling a root port to one or more I/O devices, wherein each virtual switch comprises a plurality of virtual bridges configurable by an administrator.

3. The system of claim 2 , wherein in response to receiving a packet, the switch is further configured to:

identify a particular root port from a plurality of root ports connected to the switch to which to route the packet;

compare the data in the packet to data in the bridge headers mapped to the virtual bridges of the virtual switch coupled to the particular root port;

route the packet through the virtual switched coupled to the particular root port.

4. The system of claim 1 , wherein the switch enables an administrator to configure at least some of the virtual bridges into a hierarchy of virtual bridges in which a first virtual bridge connects a root port to the remaining virtual bridges of the hierarchy.

5. The system of claim 4 , wherein in response to receiving a packet, the switch is further configured to:

identify a first bridge header mapped to a first virtual bridge coupled to a root port;

identify a second bridge header mapped to a second virtual bridge coupled to an I/O device; and

route the packet in response to comparing the data in the packet to data in the first and second bridge headers mapped to the first and second virtual bridges.

6. A switch for transferring packets, the switch being characterized in that:

the switch is operable to couple a root port to a plurality of shared or non-shared I/O devices;

the switch is configurable to provide a plurality of virtual bridges;

the switch is configured to enable an administrator to configure the virtual bridges;

the switch comprises a physical header storage section operable to store a plurality of bridge headers;

the switch comprises programmable redirection logic operable to map each virtual bridge to a selectable region of the header storage section, the redirection logic being operable to reassign virtual bridges to other regions of the header storage section in response to a new configuration; and

the switch is configured to:

receive a packet including data which identifies a root port and an I/O device; and

route the packet in response to comparing the data in the packet to data in a bridge header mapped to the virtual bridge.

7. The switch of claim 6 , wherein the switch is programmable to be configured to provide a plurality of virtual switches for a plurality of root ports, each virtual switch coupling a root port to one or more I/O devices, wherein each virtual switch comprises a plurality of virtual bridges configurable by an administrator.

8. The switch of claim 7 , wherein in response to receiving a packet, the switch is further configured to:

identify a particular root port from a plurality of root ports connected to the switch to which to route the packet;

compare the data in the packet to data in the bridge headers mapped to the virtual bridges of the virtual switch coupled to the particular root port;

route the packet through the virtual switched coupled to the particular root port.

9. The switch of claim 6 , wherein the switch enables an administrator to configure at least some of the virtual bridges into a hierarchy of virtual bridges in which a first virtual bridge connects a root port to the remaining virtual bridges of the hierarchy.

10. The system of claim 9 , wherein in response to receiving a packet, the switch is further configured to:

identify a first bridge header mapped to a first virtual bridge coupled to a root port;

identify a second bridge header mapped to a second virtual bridge coupled to an I/O device; and

route the packet in response to comparing the data in the packet to data in the first and second bridge headers mapped to the first and second virtual bridges.

11. A method for transferring packets comprising:

providing a switch to couple a root port to a plurality of shared or non-shared I/O devices;

providing a plurality of virtual bridges within the switch;

enabling an administrator to configure the virtual bridges within the switch;

providing a physical header storage section within the switch operable to store a plurality of bridge headers;

providing programmable redirection logic within the switch operable to map each virtual bridge to a selectable region of the header storage section, the redirection logic being operable to reassign virtual bridges to other regions of the header storage section in response to a new configuration; and

configuring the switch to:

receive a packet including data which identifies a root port and an I/O device; and

route the packet in response to comparing the data in the packet to data in a bridge header mapped to the virtual bridge.

12. The method of claim 11 , further comprising programming the switch to provide a plurality of virtual switches for a plurality of root ports, each virtual switch coupling a root port to one or more I/O devices, wherein each virtual switch comprises a plurality of virtual bridges configurable by an administrator.

13. The method of claim 12 , further comprising configuring the switch to respond to receiving a packet by:

identifying a particular root port from a plurality of root ports connected to the switch to which to route the packet;

comparing the data in the packet to data in the bridge headers mapped to the virtual bridges of the virtual switch coupled to the particular root port;

routing the packet through the virtual switched coupled to the particular root port.

14. The method of claim 11 , further comprising enabling an administrator to configure at least some of the virtual bridges into a hierarchy of virtual bridges in which a first virtual bridge connects a root port to the remaining virtual bridges of the hierarchy.

15. The system of claim 14 , further comprising configuring the switch to respond to receiving a packet by:

identifying a first bridge header mapped to a first virtual bridge coupled to a root port;

identifying a second bridge header mapped to a second virtual bridge coupled to an I/O device; and

routing the packet in response to comparing the data in the packet to data in the first and second bridge headers mapped to the first and second virtual bridges.

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE PREVIOUSLY RECORDED AT REEL: 047422 FRAME: 0464. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 6, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048883/0702 →
MERGER Recorded Oct 5, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047422/0464 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041710/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037808/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2015
From: EMULEX CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 036942/0213 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2014
From: EMULEX DESIGN AND MANUFACTURING CORPORATION
To: EMULEX CORPORATION
Reel/Frame 032087/0842 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2010
From: PETTEY, CHRISTOPHER J.; GLASER, STEPHEN
To: EMULEX DESIGN AND MANUFACTURING CORPORATION
Reel/Frame 025046/0276 →