IP Library Granted Patent US 7,415,034
Granted Patent B2
US 7,415,034 · App. 11/098,194 · Granted Aug 19, 2008

Virtualized partitionable shared network interface

Assignee: Sun Microsystems, 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,415,034
App. No.
11/098,194
Granted
Aug 19, 2008
Kind
B2
Abstract

A network system having a plurality of processing partitions which includes a network interface unit coupled to a plurality of processing entities is disclosed. The network interface unit includes a plurality of memory access channels. The plurality of memory access channels is virtualized. The network interface unit is shared among the plurality of processing partitions.

Claims (51)

1. A network system, comprising:

a plurality of processing partitions each comprising one or more processing entities configured to execute at least one operating system;

a network interface unit coupled to each of the plurality of processing entities, the network interface unit including a plurality of memory access channels, the plurality of memory access channels being virtualized, the network interface unit being shared among the plurality of processing partitions, wherein the network interface unit is configured to:

for each of the plurality of processing partitions, receive from a partition management module of one of said processing entities, an indication of one or more respective ones of the plurality of memory access channels that belong to the processing partition;

for a data flow to be transported to or from a particular processing partition by the network interface unit, receive from an operating system executing on a processing entity of said particular processing partition, an indication of a particular memory access channel through which the data flow is to be transported, wherein said particular memory access channel is one of the memory access channels belonging to the particular processing partition as specified by the indication received from the partition management module; and

transport the data flow through said particular memory access channel.

2. The network system of claim 1 wherein the memory access channels comprise separate buffering resources within the network system.

3. The network system of claim 1 wherein memory access channels operate on separate buffering resources within the processing partitions.

4. The network system of claim 1 wherein:

a first set of memory access channels from the plurality of memory access channels belong to a first processing partition; and,

a second set of memory access channels from the plurality of memory access channels belong to a second processing partition;

wherein the second set of memory access channels is different than the first set of memory access channels.

5. The network system of claim 4 further comprising:

a network interface software stack, the network interface software stack providing access to the network interface, and wherein, various memory access channels are associated with corresponding processing entities via the network interface software stack.

6. The network system of claim 5 wherein:

the network system software stack includes a plurality of independent operating systems.

7. The network system of claim 6

wherein the partition management module is configured to virtualize network system resources to allow simultaneous operation of the plurality of independent operating systems sharing the network system.

8. The network system of claim 6 wherein:

each of the plurality of independent operating systems includes one or more instantiations of a network interface unit device driver for said network interface unit coupled to each of the plurality of processing entities.

9. The network system of claim 8 wherein memory access channels are isolated and exclusively controlled by an instantiation of a network interface unit device driver executing within a well defined partition.

10. The network system of claim 9 wherein memory access channels are confined in their memory access scope to well defined memory regions; and wherein the memory regions accessible by a memory channel are not directly programmable by the partition associated with said memory channel.

11. The network system of claim 10 wherein memory access channels are subject to address range checking and relocation for every access to a processing partition memory.

12. A method, comprising:

providing a network system including a plurality of processing partitions,

wherein each processing partition comprises one or more processing entities executing at least one operating system;

providing a network interface unit coupled to each of the plurality of processing entities, the network interface unit including a plurality of memory access channels, virtualizing the plurality of memory access channels, and sharing the network interface unit among the plurality of processing partitions;

for each of the plurality of processing partitions, receiving from a partition management module of one of said processing entities, an indication of one or more respective ones of the plurality of memory access channels that belong to the processing partition, wherein receiving the indication from the partition management module is performed by the network interface unit;

for a data flow to be transported to or from a particular processing partition by the network interface unit, receiving from an operating system executing on a processing entity of said particular processing partition, an indication of a particular memory access channel through which the data flow is to be transported, wherein said particular memory access channel is one of the memory access channels belonging to the particular processing partition as specified by the indication received from the partition management module, wherein receiving the indication from the operating system is performed by the network interface unit; and

transporting the data flow through said particular memory access channel, wherein said transporting is performed via the network interface unit.

13. The method of claim 12 wherein the memory access channels comprise separate buffering resources within the network system.

14. The method of claim 12 further comprising

operating the memory access channels on separate buffering resources within the processing partitions.

15. The method of claim 12 further comprising

associating a first set of memory access channels from the plurality of memory access channels with a first processing partition; and,

associating a second set of memory access channels from the plurality of memory access channels with a second processing partition, wherein the second set of memory access channels is different than the first set of memory access channels.

16. The method of claim 15 further comprising:

providing a network interface software stack,

providing access to the network interface via the network interface software stack, and

associating various memory access channels with corresponding processing entities via the network interface software stack.

17. The method of claim 16 wherein:

the network system software stack includes a plurality of independent operating systems.

18. The method of claim 17 further comprising:

virtualizing network system resources with the partition management module to allow simultaneous operation of the plurality of independent operating systems sharing the network system.

19. The method of claim 17 wherein:

each of the plurality of independent operating systems includes one or more instantiations of a network interface unit device driver for said network interface unit coupled to each of the plurality of processing entities.

20. The method of claim 19 wherein memory access channels are isolated and exclusively controlled by an instantiation of a network interface unit device driver executing within a well defined partition.

21. The method of claim 20 further comprising

confining memory access channels in their memory access scope to well defined memory regions; and wherein the memory regions accessible by a memory channel are not directly programmable by the partition associated with said memory channel.

22. The method of claim 21 further comprising

performing address range checking and relocation on the memory access channels for every access to a processing partition memory.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2005
From: MULLER, SHIMON; HENDEL, ARIEL; GAJJAR, YATIN; WONG, MICHAEL
To: SUN MICROSYSTEMS, INC.
Reel/Frame 016451/0062 →
Continuity (1)
Related Publication 20060221832A1 · Oct 5, 2006