P
US7515596B2ActiveUtilityPatentIndex 62

Full data link bypass

Assignee: SUN MICROSYSTEMS INCPriority: Jun 30, 2006Filed: Jun 30, 2006Granted: Apr 7, 2009
Est. expiryJun 30, 2026(expired)· nominal 20-yr term from priority
Inventors:TRIPATHI SUNAYDROUX NICOLAS GCHENG ERIC T
H04L 49/90H04L 49/901H04L 49/9063
62
PatentIndex Score
2
Cited by
25
References
20
Claims

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

exact text as granted — not AI-modified
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.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.