# US 7,613,198 B2 · Method and apparatus for dynamic assignment of network interface card resources

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 7,613,198 B2
- Document ID: US7613198B2
- Status: Granted
- Kind: B2
- Application number: 11/479,817
- Filed: 2006-06-30
- Published: 2008-01-03
- Granted: 2009-11-03
- Earliest claimed: 2006-06-30
- Assignees: Sun Microsystems, Inc.
- Inventors: Kais Belgaied; Sunay Tripathi; Nicolas G. Droux
- Web page: https://patentgrep.com/patent/US7613198B2

## CPC

- H04L 49/9063: {Intermediate storage in different physical parts of a node or terminal}
- H04L 47/10: Flow control; Congestion control
- H04L 49/90: Buffering arrangements
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method for dynamically changing a virtual network interface card (VNIC) binding. If the use of a hardware receive ring (HRR) is below the first threshold and the use of the software receive ring (SRR) is above the second threshold, then: binding the first VNIC to the SRR and the second VNIC to the HRR, removing the binding from the first VNIC to the HRR, removing the binding from the second VNIC to the SRR, and reprogramming a hardware classifier to send packets associated with the r VNIC to a second HRR and to send packets associated with the second VNIC to the HRR, reprogramming a software classifier to send packets associated with the first VNIC to the SRR, wherein the software classifier is associated with a soft ring (SR) and the SR is configured to obtain packets from the second HRR.

## Claims

### Claim 1

A method for dynamically changing a first virtual network interface card (VNIC) binding, comprising:
obtaining monitoring information associated with a first hardware receive ring (HRR) and a software receive ring (SRR), wherein the first VNIC is bound to the first HRR and a second VNIC is bound to the SRR;
determining, using the monitoring information, whether a use of the first HRR is below a first threshold;
determining, using the monitoring information, whether a use of the SRR is above a second threshold;
if the use of the first HRR is below the first threshold and the use of the SRR is above the second threshold:
binding the first VNIC to the SRR and the second VNIC to the first HRR;
removing the binding from the first VNIC to the first HRR;
removing the binding from the second VNIC to the SRR; and
reprogramming a hardware classifier to send packets associated with the first VNIC to a second HRR and to send packets associated with the second VNIC to the first HRR;
reprogramming a software classifier to send packets associated with the first VNIC to the SRR,
wherein the software classifier is associated with a soft ring (SR) and the SR is configured to obtain packets from the second HRR.

### Claim 2 (depends on 1)

The method of claim 1, wherein the monitoring information is obtained at a set interval.

### Claim 3 (depends on 2)

The method of claim 2, wherein the set interval is set on a minute time scale.

### Claim 4 (depends on 1)

The method of claim 1, wherein the first threshold corresponds to a number of packets received by the HRR in a given time interval.

### Claim 5 (depends on 1)

The method of claim 1, wherein the second threshold corresponds to a number of packets received by the SRIR in a given time interval.

### Claim 6 (depends on 1)

The method of claim 1, wherein first VNIC is bound to a first virtual network stack (VNS).

### Claim 7 (depends on 6)

The method of claim 6, wherein the first VNS is configured to obtain packets from the first VNIC based an operating mode.

### Claim 8 (depends on 7)

The method of claim 7, wherein the operating mode is one selected from a group consisting of polling mode and interrupt mode.

### Claim 9 (depends on 8)

The method of claim 8, wherein the polling mode enforces bandwidth control on the first VNIC.

### Claim 10

A system, comprising:
a physical network interface card (NIC) comprising a first hardware receive ring (HRR), a second HRR, and a hardware classifier;
a host, operatively connected to the NIC, comprising:
a first virtual network interface card (VNIC) initially bound to the first HRR;
a software ring (SR) comprising a software classifier and a software receive ring (SRR), wherein SR is operatively connected to the second HRR;
a second VNIC initially bound to the SRR;
a first packet destination operatively connected to the first VNIC;
a second packet destination operatively connected to the second VNIC; and
a monitoring application configured to monitor the system and generate monitoring information associated with the first HRR and the SRR,
wherein the host is configured to:
obtain the monitoring information;
determine, using the monitoring information, whether a use of the first HRR is below a first threshold;
determine, using the monitoring information, whether a use of the SRR is above a second threshold;
if the use of the first HRR is below the first threshold and the use of the SRR is above the second threshold:
bind the first VNIC to the SRR and the second VNIC to the first HRR;
remove the binding from the first VNIC to the first HRR;
remove the binding from the second VNIC to the SRR; and
reprogram the hardware classifier to send packets associated with the first VNIC to the second HRR and to send packets associated with the second VNIC to the first HRR; and
reprogram the software classifier to send packets associated with the first VNIC to the SRR.

### Claim 11 (depends on 10)

The system of claim 10, wherein the monitoring information is obtained at a set interval.

### Claim 12 (depends on 11)

The system of claim 11, wherein the set interval is set on a minute time scale.

### Claim 13 (depends on 10)

The system of claim 10, wherein the first threshold corresponds to a number of packets received by the HRR in a given time interval.

### Claim 14 (depends on 10)

The system of claim 10, wherein the second threshold corresponds to a number of packets received by the SRR in a given time interval.

### Claim 15 (depends on 10)

The system of claim 10, wherein first VNIC is bound to a first virtual network stack (VNS).

### Claim 16 (depends on 15)

The system of claim 15, wherein the first VNS is configured to obtain packets from the first VNIC based an operating mode.

### Claim 17 (depends on 16)

The system of claim 16, wherein the operating mode is one selected from a group consisting of polling mode and interrupt mode.

### Claim 18 (depends on 16)

The system of claim 16, wherein the polling mode enforces bandwidth control on the first VNIC.

### Claim 19

A computer readable medium encoded with instructions capable of being executed by a computer for:
obtaining monitoring information associated with a first hardware receive ring (HRR) and a software receive ring (SRR), wherein the first VNIC is bound to the first HRR and a second VNIC is bound to the SRR;
determining, using the monitoring information, whether a use of the first HRR is below a first threshold;
determining, using the monitoring information, whether a use of the SRR is above a second threshold;
if the use of the first HRR is below the first threshold and the use of the SRIR is above the second threshold:
binding the first VNIC to the SRR and the second VNIC to the first HRR;
removing the binding from the first VNIC to the first HRR;
removing the binding from the second VNIC to the SRR; and
reprogramming a hardware classifier to send packets associated with the first VNIC to a second HRR and to send packets associated with the second VNIC to the first HRR;
reprogramming a software classifier to send packets associated with the first VNIC to the SRR,
wherein the software classifier is associated with a soft ring (SR) and the SR is configured to obtain packets from the second HRR.

### Claim 20 (depends on 19)

The computer readable medium of claim 19, wherein the first VNIC is associated with a virtual machine.
