IP Library Granted Patent US 8,792,351
Granted Patent B1
US 8,792,351 · App. 13/330,085 · Granted Jul 29, 2014

Method and system for network communication

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,792,351
App. No.
13/330,085
Granted
Jul 29, 2014
Kind
B1
Abstract

A method and system for network communication is provided. The method for network communication comprises setting a data size for a network connection, wherein the data size represents an amount of network data a network adapter can send to a host system for the network connection before the network adapter waits for an application to accept any data that has been sent to the host system; monitoring the amount of network data that is received by a host system driver; monitoring the amount of network data that is sent by the network adapter; and suspending transfer of network data to the host system, if the amount of network data sent by the network adapter is similar to the set data size.

Claims (30)

1. A machine-implemented method for network communication, comprising:

an application executed by a computing system allocating a named buffer for a driver executed by the computing system;

the driver queuing a named buffer for a connection for an offload engine executed by an adapter that communicates with the computing system;

the driver determining whether a named buffer has been submitted to the offload engine;

if no named buffer has been submitted to the offload engine, the driver providing a named buffer for the offload engine, starting from a head of a named buffer pool;

the driver determining whether a size of the named buffer is larger than a threshold size;

if the size of the named buffer is larger than the threshold size, the driver notifying the offload engine of the named buffer's size and address where data can be placed;

the offload engine returning the named buffer to the driver;

the driver determining whether a push timer is running;

if the push timer is running, the driver stopping the push timer;

after stopping the push timer, or if the push timer is not running, the named buffer is returned to the named buffer queue.

2. The method of claim 1 , wherein if the named buffer has been submitted to the offload engine, then the driver copies data from an anonymous buffer to the named buffer.

3. The method of claim 1 , wherein if the size of the named buffer is not larger than the threshold size, then the driver copies data from an anonymous buffer to the named buffer.

4. The method of claim 1 , wherein the driver is a TCP/IP offload (TOE) driver.

5. A system for network communication, comprising:

a computing system executing an application for communicating with at least one networked device using a network connection; and

a network adapter configured to interface with the computing system, receive network data from the at least one network device and send received network data to the application through a computing system driver executed by the computing system;

wherein the application allocates a named buffer for the driver;

wherein the driver queues a named buffer for a connection for an offload engine executed by the adapter;

wherein the driver determines whether a named buffer has been submitted to the offload engine;

wherein if no named buffer has been submitted to the offload engine, the driver provides a named buffer for the offload engine, starting from a head of a named buffer pool;

wherein the driver determines whether a size of the named buffer is larger than a threshold size;

wherein if the size of the named buffer is larger than the threshold size, the driver notifies the offload engine of the named buffer's size and address where data can be placed;

wherein the offload engine returns the named buffer to the driver;

wherein the driver determines whether a push timer is running;

wherein if the push timer is running, the driver stops the push timer;

wherein after stopping the push timer, or if the push timer is not running, the named buffer is returned to the named buffer queue.

6. The method of claim 5 , wherein if the named buffer has been submitted to the offload engine, then the driver copies data from an anonymous buffer to the named buffer.

7. The method of claim 5 , wherein if the size of the named buffer is not larger than the threshold size, then the driver copies data from an anonymous buffer to the named buffer.

8. The method of claim 5 , wherein the driver is a TCP/IP offload (TOE) driver.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
CHANGE OF NAME Recorded Oct 8, 2018
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 047205/0953 →
RELEASE OF SECURITY INTEREST Recorded Jul 6, 2018
From: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: CAVIUM, INC; CAVIUM NETWORKS LLC; QLOGIC CORPORATION
Reel/Frame 046496/0001 →
MERGER Recorded Oct 18, 2017
From: QLOGIC CORPORATION
To: CAVIUM, INC.
Reel/Frame 044812/0504 →
SECURITY AGREEMENT Recorded Mar 1, 2017
From: QLOGIC CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 041854/0119 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 15, 2016
From: PEARSON, DANIEL R.; MICALIZZI, CHARLES, JR
To: QLOGIC, CORPORATION
Reel/Frame 038923/0975 →