IP Library › Granted Patent US 7,502,370
Granted Patent B2
US 7,502,370 · App. 11/045,869 · Granted Mar 10, 2009

Network controller for obtaining a plurality of network port identifiers in response to load-store transactions from a corresponding plurality of operating system domains within a load-store architecture

Assignee: Nextio Inc.
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 7,502,370
App. No.
11/045,869
Granted
Mar 10, 2009
Kind
B2
Abstract

A controller shareable by a plurality of operating system domains (OSDs) for communication on a network is disclosed. The controller includes a port for coupling to the network. The port transceives packets with the network for each of the plurality of OSDs. The controller also includes a plurality of replicated programming interfaces that each receive from a respective one of the plurality of OSDs a request to obtain a port ID for the port from the network. The controller obtains from the network a distinct port ID for each of the plurality of OSDs in response to the respective request. The request comprises one or more load-store transactions. In one embodiment, the controller is a shared Fiber Channel controller.

Claims (33)

1. A controller shareable by a plurality of operating system domains (OSDs) for communication on a network, comprising:

a port, for coupling to the network, configured to transceive packets with the network for each of the plurality of OSDs; and

a plurality of replicated programming interfaces, coupled to said port, each configured to receive from a respective one of the plurality of OSDs a respective request to obtain a port ID for said port from the network, wherein each said respective request comprises one or more load-store transactions, wherein the shared controller obtains from the network a distinct port ID for said respective one of the plurality of OSDs in response to each said respective request, where a respective one of said plurality of replicated programming interfaces is mapped into a location in a system load-store memory map of said respective one of the plurality of OSDs, wherein each of said plurality of replicated programming interfaces is mappable by said respective one of the plurality of OSDs into said location in said system load-store memory map, wherein said location may be distinct in each said system load-store memory map.

2. The shareable controller as recited in claim 1 , wherein said port transceives said packets with said network using said distinct port IDs obtained for each of the plurality of OSDs.

3. The shareable controller as recited in claim 2 , wherein said port transceives said packets with said network using said distinct port IDs obtained for each of the plurality of OSDs in response to I/O operation requests programmed into said respective ones of said plurality of programming interfaces.

4. The shareable controller as recited in claim 1 , wherein said request comprises a notification that said respective OSD has become active.

5. The shareable controller as recited in claim 1 , wherein said load-store transactions comprise PCI Express transactions.

6. The shareable controller as recited in claim 1 , wherein the shareable controller comprises a shareable Fibre Channel (FC) controller.

7. The shareable controller as recited in claim 6 , wherein said port comprises a FC port for coupling to a FC network.

8. The shareable controller as recited in claim 7 , wherein said packets comprise FC frames.

9. The shareable controller as recited in claim 8 , wherein said distinct port IDs comprise distinct FC Nx_Port_IDs.

10. The shareable controller as recited in claim 9 , wherein said FC port is configurable as a FC NL_Port for linking to a FC arbitrated loop.

11. The shareable controller as recited in claim 9 , wherein said FC port comprises a FC N_Port for linking to a FC F_Port supporting a FC Multiple N_port_ID Assignment capability.

12. The shareable controller as recited in claim 11 , wherein the shared controller obtaining from said network a distinct port ID comprises the shared controller obtaining from said FC F_Port a respective FC N_Port identifier for the OSD that requested the shareable controller to obtain a port ID.

13. A method for sharing a controller by a plurality of operating system domains (OSDs) for communication on a network, the controller having a ort for coupling to the network, configured to transceive packets with the network for each of the plurality of OSDs, and a plurality of replicated programming interfaces, the method comprising:

receiving at each of the plurality of replicated programming interfaces from a respective one of the plurality of OSDs a respective request to obtain a port ID for said port from the network, wherein each said respective request comprises one or more load-store transactions;

obtaining from the network a distinct port ID for each of the plurality of OSDs, in response to said receiving each of said respective requests and

mapping a respective one of said plurality of replicated programming interfaces into a location in a system load-store memory map of said respective one of the plurality of OSDs, wherein each of said plurality of replicated programming interfaces is mappable by said respective one of the plurality of OSDs into said location in said system load-store memory map, wherein said location may be distinct in each said system load-store memory map.

14. The method as recited in claim 13 , further comprising:

transceiving said packets with said network using said distinct port IDs obtained for each of the plurality of OSDs.

15. The method as recited in claim 13 , wherein said load-store transactions comprise PCI Express transactions.

16. The method as recited in claim 13 , wherein the shareable controller comprises a shareable Fibre Channel (FC) controller, wherein said port comprises a FC port for coupling to a FC network, wherein said packets comprise FC frames, wherein said distinct port IDs comprise distinct FC Nx_Port_IDs.

17. The method as recited in claim 16 , wherein said FC port comprises a FC N_Port for linking to a FC F_Port supporting a FC Multiple N_Port_ID Assignment capability, wherein said obtaining from said network a distinct port ID comprises obtaining from said FC F_Port a respective FC N_Port identifier for the OSD that requested the shareable controller to obtain a port ID.

18. The method as recited in claim 13 , further comprising:

determining that one of the plurality of OSDs has been reset; and

disclaiming the distinct port ID for the one of the plurality of OSDs that has been reset, in response to said determining.

19. The method as recited in claim 18 , wherein said disclaiming the distinct port ID for the one of the plurality of OSDs that has been reset comprises logging out of a network to which the controller is linked for the distinct port ID for the one of the plurality of OSDs that has been reset.

20. A blade server environment comprising:

a plurality of blade servers;

a shared switch for coupling to the plurality of blade servers, and for providing communication between the plurality of blade servers and a downstream endpoint, the downstream endpoint comprising a controller shareable by the plurality of blade servers for communication on a network, said shared controller comprising:

a port, for coupling to the network, configured to transceive packets with the network for each of the plurality of blades; and

a plurality of replicated programming interfaces, coupled to said port, each configured to receive from a respective one of the plurality of blade servers a respective request to obtain a port ID for said port from the network, wherein each said respective request comprises one or more load-store transactions, wherein the shared controller obtains from the network a distinct port ID for said respective one of the plurality of blade servers in response to each said respective request, wherein a respective one of said plurality of replicated programming interfaces is mapped into a location in a system load-store memory map of sad respective one of the plurality of blade servers, wherein each of said plurality of.

21. The blade server environment as recited in claim 20 , wherein said shared controller comprises a Fibre Channel controller shared by the plurality of blade servers via said plurality of replicated programming interfaces.

Assignments (6)
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 37900/0720 Recorded Jul 13, 2018
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 046542/0792 →
PATENT SECURITY AGREEMENT Recorded Feb 24, 2016
From: MELLANOX TECHNOLOGIES, LTD.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 037900/0720 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2013
From: NEXTIO, INC.
To: MELLANOX TECHNOLOGIES LTD.
Reel/Frame 031805/0953 →
RELEASE OF SECURITY INTEREST Recorded Jun 18, 2012
From: SILICON VALLEY BANK
To: NEXTIO, INC.
Reel/Frame 028396/0731 →
SECURITY AGREEMENT Recorded Feb 24, 2012
From: NEXTIO, INC.
To: SILICON VALLEY BANK
Reel/Frame 027755/0771 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2005
From: PETTEY, CHRISTOPHER J.
To: NEXTIO INC.
Reel/Frame 016419/0818 →
Continuity (44)
Continuation In Part 1075771400 · Jan 14, 2004
Continuation In Part 1075771300 · Jan 14, 2004
Continuation In Part 1075771100 · Jan 14, 2004
Continuation In Part 1080253200 · Mar 16, 2004
Continuation In Part 1075771300
Continuation In Part 1075771100
Continuation In Part 1075771400
Continuation In Part 1082762200 · Apr 19, 2004
Continuation In Part 1080253200
Continuation In Part 1082762000 · Apr 19, 2004
Continuation In Part 1080253200
Continuation In Part 1082711700 · Apr 19, 2004
Continuation In Part 1080253200
Continuation In Part 1086476600 · Jun 9, 2004
Continuation In Part 1075771400
Continuation In Part 1075771300
Continuation In Part 1075771100
Continuation In Part 1080253200
Continuation In Part 1090925400 · Jul 30, 2004
Continuation In Part 1075771400
Continuation In Part 1075771300
Continuation In Part 1075771100
Continuation In Part 1080253200
Continuation In Part 1086476600
Continuation In Part 1082762200
Continuation In Part 1082762000
Continuation In Part 1082711700
Continuation In Part 1097266900 · Oct 25, 2004
Continuation In Part 1082762200
Continuation In Part 1082762000
Continuation In Part 1082711700
Provisional Application 6054167300 · Feb 4, 2004
Provisional Application 6055512700 · Mar 22, 2004
Provisional Application 6057500500 · May 27, 2004
Provisional Application 6058894100 · Jul 19, 2004
Provisional Application 6058917400 · Jul 19, 2004
Provisional Application 6061577500 · Oct 4, 2004
Provisional Application 6044078800 · Jan 21, 2003
Provisional Application 6044078900 · Jan 21, 2003
Provisional Application 6046438200 · Apr 18, 2003
Provisional Application 6049131400 · Jul 30, 2003
Provisional Application 6051555800 · Oct 29, 2003
Provisional Application 6052352200 · Nov 19, 2003
Related Publication 20050157754A1 · Jul 21, 2005