IP Library Granted Patent US 7,684,423
Granted Patent B2
US 7,684,423 · App. 11/479,997 · Granted Mar 23, 2010

System and method for virtual network interface cards based on internet protocol addresses

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,684,423
App. No.
11/479,997
Granted
Mar 23, 2010
Kind
B2
Abstract

A system including a network interface card (NIC) associated with a Media Access Control (MAC) address and a host operatively connected to the NIC. The NIC includes a default hardware receive ring (HRR), a plurality of non-default HRRs, and a hardware classifier. The hardware classifier is configured to analyze an inbound packet using a destination Internet Protocol (IP) address and to send the inbound packet to one of the plurality of non-default HRRs if the inbound packet is a unicast packet, and to send the packet to the default HRR if the inbound packet is an inbound multi-recipient packet. The host includes a plurality of virtual NICs (VNICs) and an inbound software classifier, that includes a plurality of software receive rings (SRRs) and is configured to obtain inbound packets from the default HRR, and to determine to which of the plurality of SRRs to send a copy of the packet.

Claims (58)

1. A system, comprising:

a network interface card (NIC) associated with a Media Access Control (MAC) address, comprising:

a default hardware receive ring (HRR),

a plurality of non-default HRRs, and

a hardware classifier configured to:

analyze an inbound packet received by the NIC using a destination Internet Protocol (IP) address of the inbound packet,

determine, based on the analysis of the destination IP address of the inbound packet, whether the inbound packet is a unicast packet or a multi-recipient packet,

send the inbound packet to one of the plurality of non-default HRRs if the inbound packet is a unicast packet, and

send the packet to the default HRR if the inbound packet is an inbound multi-recipient packet, and

a host, operatively connected to the NIC, comprising:

a plurality of virtual NICs (VNICs), wherein each of the plurality of VNICs is associated with a unique IP address and the MAC address and wherein each of the plurality of VNICs is associated with one of the plurality of non-default HRRs, and

an inbound software classifier comprising a plurality of software receive rings (SRRs), wherein each of the plurality of SRRs is associated with one of the plurality of VNICs,

wherein the inbound software classifier is configured to:

obtain inbound packets from the default HRR, and

determine to which of the plurality of SRRs to send a copy of the packet.

2. The system of claim 1 , wherein the host further comprises:

an outbound software classifier configured to:

receive an outbound packet,

determine, based on the analysis of a destination IP address of the outbound packet, whether the outbound packet is a unicast packet or an outbound multi-recipient packet,

send the outbound packet to a hardware transmit ring if the outbound packet is a unicast packet.

3. The system of claim 2 , wherein the outbound multi-recipient packet is one selected from a group consisting of a broadcast packet and a multicast packet.

4. The system of claim 3 , wherein the outbound software classifier is further configured to:

if the outbound packet is the broadcast packet:

send a copy of the outbound packet to each of the plurality of VNICs; and

send the outbound packet to the hardware transmit ring.

5. The system of claim 3 , wherein the outbound software classifier is further configured to:

if the outbound packet is the multicast packet:

determine which of the plurality of VNICs is associated with a multicast group associated with the multicast packet;

send a copy of the outbound packet to each of the plurality of VNICs associated with the multicast group; and

send the outbound packet to the hardware transmit ring.

6. The system of claim 1 , wherein the one of the plurality of non-default HRRs is associated with the one of the plurality VNICs and wherein the one of the plurality of VNICs is associated with an IP address corresponding to the destination IP address.

7. The system of claim 1 , wherein the multi-recipient packet corresponds to a broadcast packet.

8. The system of claim 1 , wherein the multi-recipient packet corresponds to a multicast packet.

9. A method for processing packets, comprising:

receiving an inbound packet at a physical network interface card (NIC) associated with a Media Access Control (MAC) address, wherein the physical NIC comprises a default hardware receive ring (HRR), a plurality of non-default HRRs, and a hardware classifier;

analyzing, by the hardware classifier, the inbound packet using a destination Internet Protocol (IP) address of the inbound packet;

determining, by the hardware classifier and based on the analysis of the destination IP address of the inbound packet, whether the inbound packet is a unicast packet or a multi-recipient packet;

sending, by the hardware classifier, the inbound packet to one of the plurality of non-default HRRs if the inbound packet is a unicast packet, wherein the one of the plurality of non-default HRRs is associated with one of a plurality VNICs located on a host operatively connected to the physical NIC, and wherein the one of the plurality of VNICs is associated with an IP address corresponding to the destination IP address;

sending, by the hardware classifier, the packet to the default HRR if the inbound packet is a multi-recipient packet,

wherein each of the plurality of VNICs is associated with a unique IP address and a common Media Access Control (MAC) address,

wherein the host comprises an inbound software classifier,

wherein the inbound software classifier comprises a plurality of software receive rings (SRRs),

wherein each of the plurality of SRRs is associated with one of the plurality of VNICs,

wherein the inbound software classifier is configured to:

obtain inbound packets from the default HRR, and

determine to which of the plurality of SRRs to send a copy of the packet.

10. The method of claim 9 , further comprising:

receiving an outbound packet,

analyzing the outbound packet using a destination Internet Protocol (IP) address of the outbound packet,

determining, based on the analysis of the destination IP address of the outbound packet, whether the outbound packet is a unicast packet or a multi-recipient packet, and

sending the outbound packet to a transmit receive ring if the outbound packet is a unicast packet.

11. The method of claim 10 , further comprising:

if the outbound packet is a broadcast packet:

sending a copy of the outbound packet to each of the plurality of RRs.

12. The method of claim 10 , further comprising:

if the outbound packet is the multicast packet:

determining which of the plurality of VNICs is associated with a multicast group, which is associated with the multicast packet; and

sending a copy of the outbound packet to each of the plurality of RRs, wherein each of the plurality of RRs is associated with one of the plurality of VNICs, which is associated with the multicast group.

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 037306/0268 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2006
From: TRIPATHI, SUNAY; DROUX, NICOLAS G.; BELGAIED, KAIS
To: SUN MICROSYSTEMS, INC.
Reel/Frame 018041/0807 →