IP Library Granted Patent US 7,515,596
Granted Patent B2
US 7,515,596 · App. 11/480,069 · Granted Apr 7, 2009

Full data link bypass

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,515,596
App. No.
11/480,069
Granted
Apr 7, 2009
Kind
B2
Abstract

A system for processing a packet, including a network interface card (NIC), including a plurality of hardware receive rings, a classifier configured to classify the packet and send the packet to one of the plurality of hardware receive rings, and a host, operatively connected to the NIC, including a virtual network stack including a virtual serialization queue, a virtual network interface card (VNIC) associated with the virtual serialization queue, a device driver associated with the VNIC and configured to store a function pointer and a token associated with one of the plurality of hardware receive rings, where the VNIC is configured to perform at least one selected from a group consisting of enabling bypass mode and disabling bypass mode by changing the function pointer stored in the device driver, where the function pointer is used to send the packet to the virtual serialization queue if the bypass mode is enabled.

Claims (44)

1. A method for processing packets using a virtual network interface card (VNIC), comprising:

associating a first token with a hardware receive ring, wherein the first token identifies a virtual serialization queue in a virtual network stack;

receiving a packet destined for the virtual serialization queue;

sending the packet to the hardware receive ring;

if the VNIC is operating in bypass mode, then perform:

associating a first function with the hardware receive ring, wherein the first function associated with the virtual network stack is executing on a host;

calling the first function, wherein calling the first function comprises

sending the packet directly to the virtual network stack; and

receiving the packet by the virtual serialization queue;

if the VNIC is not operating in bypass mode, then perform:

associating a second function with the hardware receive ring, wherein the second function is associated with the VNIC;

calling the second function, wherein calling the second function comprises sending the packet to the VNIC;

receiving the packet by the VNIC;

processing the packet by the VNIC to obtain a processed packet;

sending the processed packet to the virtual serialization queue; and

receiving the packet by the virtual serialization queue.

2. The method of claim 1 , wherein calling the second function further comprises sending the first token to the VNIC.

3. The method of claim 2 , wherein the first token is stored in a metadata structure associated with the hardware receive ring.

4. The method of claim 1 , wherein the processed packet is sent to the virtual serialization queue using the first token.

5. The method of claim 1 , wherein the hardware receive ring is associated with the virtual serialization queue.

6. The method of claim 1 , wherein at least one selected from a group consisting of the first function and the second function is called by a device driver executing on the host.

7. The method of claim 1 , wherein at least one selected from a group consisting of the first function and the second function is called using a function pointer wherein the function pointer is stored in a metadata structure associated with the hardware receive ring.

8. The method of claim 6 , wherein the VNIC performs at least one selected from a group consisting of enabling bypass mode and disabling bypass mode by changing the function pointer.

9. The method of claim 1 , wherein at least one selected from a group consisting of the first function and the second function is called following a polling of the hardware receive ring.

10. The method of claim 9 , wherein the polling is performed using a polling function associated with the virtual serialization queue.

11. The method of claim 10 , wherein the polling is further performed using a second token associated with the virtual serialization queue, wherein the second token identifies the hardware receive ring.

12. The method of claim 1 , wherein the first function calculates a statistic involving the first packet.

13. A system for processing a packet, comprising:

a network interface card, comprising:

a plurality of hardware receive rings;

a classifier configured to classify the packet and send the packet to one of the plurality of hardware receive rings based on the classification; and

a host, operatively connected to the network interface card, comprising:

a virtual network stack comprising a virtual serialization queue;

a virtual network interface card (VNIC) associated with the virtual serialization queue;

a device driver associated with the VNIC and configured to store a function pointer and a token associated with at least one of the plurality of hardware receive rings,

wherein the VNIC is configured to perform at least one selected from a group consisting of enabling bypass mode and disabling bypass mode by changing the function pointer stored in the device driver,

wherein the function pointer is used to send the packet to the virtual serialization queue if the bypass mode is enabled.

14. The system of claim 13 , wherein the token is stored in a metadata structure.

15. The system of claim 13 , wherein the function pointer points to a function associated with the virtual network stack, wherein execution of the function places the packet in the virtual network stack.

16. The system of claim 15 , wherein the function is configured to calculate a statistic based on the packet.

17. The system of claim 16 , wherein the statistic is accessible by an application programming interface.

18. The system of claim 13 , wherein the function pointer references a function associated with the VNIC, wherein the virtual network interface card is operatively connected to at least one of the plurality of hardware receive rings.

19. The system of claim 18 , wherein the function is configured to send the packet, using the token, to the virtual network stack.

20. The system of claim 18 , wherein the function is configured to calculate a statistic based on the packet.

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 037304/0151 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2006
From: TRIPATHI, SUNAY; DROUX, NICOLAS G.; CHENG, ERIC T.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 018071/0014 →