IP Library Granted Patent US 8,369,325
Granted Patent B2
US 8,369,325 · App. 12/494,498 · Granted Feb 5, 2013

Method and apparatus for packet classification and spreading in a virtualized system

Inventors: Arvind Srinivasan (San Jose, CA); Michael F. Speer (Mountain View, CA); Marcelino M. Dignum (Menlo Park, CA)
Assignee: Oracle America, 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 8,369,325
App. No.
12/494,498
Granted
Feb 5, 2013
Kind
B2
Abstract

Some embodiments of the present invention provide a system for packet classification and spreading in a virtualized system. The system can use information in a packet's header to determine a destination system-image in the virtualized system, and a packet-spreading policy for the destination system-image. The system can determine a key using the information in a packet's header. Alternatively, the system can hash the information in the packet's header to obtain an index value. Next, the system can use the key or the index value to perform a lookup in a table which associates keys or index values with system images and/or packet-spreading policies. Once the destination system-image and the packet-spreading policy are determined, the system can deliver the packet to a thread on the destination system-image according to the packet-spreading policy.

Claims (51)

1. A hardware-implemented method for packet classification and spreading in a virtualized system, the method comprising:

receiving, from a destination system-image in the virtualized system, at least one of a packet-spreading policy and an indication of information in received packet headers for which the packet-spreading policy is to be used, wherein the packet-spreading policy is used to determine how to spread packets that are to be sent to the destination system-image from which the packet-spreading policy was received, the spreading comprising sending a packet to, from a set of threads on the destination system-image, one of: a randomly selected thread, all threads, or a particular thread;

using information in the packet's header to determine:

the destination system image, and

the packet-spreading policy for the destination system-image; and

delivering the packet to a thread on the destination system-image according to the packet-spreading policy.

2. The hardware-implemented method of claim 1 , wherein the information in the packet's header includes a unicast address.

3. The hardware-implemented method of claim 1 , wherein the information in the packet's header includes a multicast address.

4. The hardware-implemented method of claim 1 , wherein using the information in the packet's header to determine the destination system-image comprises:

determining a key using the information in the packet's header; and

using the key to perform a lookup in a table which associates keys with system images.

5. The hardware-implemented method of claim 1 , wherein using the information in the packet's header to determine the packet-spreading policy comprises:

determining a key using the information in the packet's header; and

using the key to perform a lookup in a table which associates keys with packet-spreading policies.

6. The hardware-implemented method of claim 1 , wherein using the information in the packet's header to determine the destination system-image comprises:

hashing the information in the packet's header to obtain an index value; and

using the index value to perform a lookup in a table which associates index values with system images.

7. The hardware-implemented method of claim 1 , wherein using the information in the packet's header to determine the packet-spreading policy comprises:

hashing the information in the packet's header to obtain an index value; and

using the index value to perform a lookup in a table which associates index values with packet-spreading policies for system images.

8. The hardware-implemented method of claim 1 , wherein prior to using the information in the packet's header to determine the destination system-image and the packet-spreading policy, the method comprises:

determining a key using the information; and

associating the key with the packet-spreading policy and the destination system-image.

9. The hardware-implemented method of claim 1 , wherein prior to using the information in the packet's header to determine the destination system-image and the packet-spreading policy, the method comprises:

hashing the information to obtain an index value; and

associating the index value with the packet-spreading policy and the destination system-image.

10. A network interface unit, comprising:

a port configured to receive a packet from a network; and

a packet classifier configured to:

receive, from a destination system-image in a virtualized system, at least one of a packet-spreading policy and an indication of information in received packet headers for which the packet-spreading policy is to be used, wherein the packet classifier is configured to use the packet-spreading policy to determine how to spread packets that are to be sent to the destination system-image from which the packet-spreading policy was received, the spreading comprising sending the packet to, from a set of threads on the destination system-image, one of: a randomly selected thread, all threads, or a particular thread;

use the information in the packet's header to determine: the destination system-image and the packet-spreading policy for the destination system-image; and

deliver the packet to a thread on the destination system-image according to the packet-spreading policy.

11. The network interface unit of claim 10 , wherein the information in the packet's header includes a unicast address.

12. The network interface unit of claim 10 , wherein the information in the packet's header includes a multicast address.

13. The network interface unit of claim 10 , wherein the packet classifier is configured to:

determine a key using the information in the packet's header; and

use the key to perform a lookup in a table which associates keys with system images.

14. The network interface unit of claim 10 , wherein the packet classifier is configured to:

determine a key using the information in the packet's header; and

use the key to perform a lookup in a table which associates keys with packet-spreading policies.

15. The network interface unit of claim 10 , wherein the packet classifier is configured to:

hash the information in the packet's header to obtain an index value; and

use the index value to perform a lookup in a table which associates index values with system images.

16. The network interface unit of claim 10 , wherein the packet classifier is configured to:

hash the information in the packet's header to obtain an index value; and

use the index value to perform a lookup in a table which associates index values with packet-spreading policies for system images.

17. A packet classifier, comprising:

an information-receiving mechanism configured to receive information in a packet's header;

a receiving mechanism configured to receive, from a destination system-image in a virtualized system, at least one of a packet-spreading policy and an indication of information in received packet headers for which the packet-spreading policy is to be used, wherein the packet-spreading policy is used to determine how to spread packets that are to be sent to the destination system-image from which the packet-spreading policy was received, the spreading comprising delivering the packet to, from a set of threads on the destination system-image, one of: a randomly selected thread, all threads, or a particular thread;

a determining mechanism configured to use the information in the packet's header to determine the destination system-image and the packet-spreading policy; and

a delivery mechanism configured to deliver the packet to the destination system-image according to the packet-spreading policy.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037311/0195 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 29, 2009
From: SRINIVASAN, ARVIND; SPEER, MICHAEL F.; DIGNUM, MARCELINO M.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 023023/0763 →
Continuity (1)
Related Publication 20100329253A1 · Dec 30, 2010