← Back to Patent Explorer
US6081846A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and computer program product for reducing intra-system data copying during network packet processing

Assignee: Microsoft Technology Licensing LLC
•
Filing: 1997-05-08
•
Granted: 2000-06-27
•
Expires: 2017-05-08
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and computer program product that overcomes the problem of intrasystem copying of data from one data structure to another while processing incoming packets of network data coming into the system off a communications network in an environment having an integrating component in between the network card device driver and the transport protocol driver that assigns system memory for packets to the respective drivers. The integrating component temporarily transfers ownership of the original data structure from the network card device driver to the transport protocol driver based on indication from the network card device driver, independent determination that the network card device driver can afford to temporarily release ownership, and determination of the transport protocol driver's ability to take ownership. The transport protocol driver will indicate receipt of ownership of the data structure and later explicitly release it. The transport protocol driver may then operate on the data structure after the initial invocation session has ended when it initially received ownership until it is released at a later time to thus prevent copying of the data and thereby increase system efficiency. Temporary transfer of ownership according to the present invention is especially important when the network card device driver fills data structure with network data during interrupt processing that causes a scenario where the transport protocol driver is not able to fully process the network data in the initial invocation session without copying the data.

Inventors

  • 👤 Jameel Hyder
  • 👤 Kyle Brandon
  • 👤 Nk Srinivas
  • 👤 Rod Gamache

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 03:38
CPC Classifications
H; H04; H04L; H04L49/00; H04L49/90

Claims Analysis

Total Claims: 33
Claim 1
Independent Claim 153 words
In an environment having an integrating software component interfacing between transport protocol drivers and network card device drivers, the integrating software component allocating and managing data structures for use by the respective transport protocol drivers and network card device drivers, a method for temporarily transferring data structure ownership from a network card device driver to a transport protocol driver, wherein the method comprises the following: a specific act of the network card device driver causing the integrating software component to create a data structure, and the network card device driver populating the data structure with information; a specific act of sending the data structure to the transport protocol driver; a specific act of the transport protocol driver receiving the data structure and indicating a transfer of ownership of the data structure to the integrating software component; and a specific act of temporarily making the data structure unavailable to the network card device driver.
Claim 2
Dependent Claim 153 words
In an environment having an integrating software component interfacing between transport protocol drivers and network card device drivers, the integrating software component allocating and managing data structures for use by the respective transport protocol drivers and network card device drivers, a method for temporarily transferring data structure ownership from a network card device driver to a transport protocol driver, wherein the method comprises the following: a specific act of the network card device driver causing the integrating software component to create a data structure, and the network card device driver populating the data structure with information; a specific act of sending the data structure to the transport protocol driver; a specific act of the transport protocol driver receiving the data structure and indicating a transfer of ownership of the data structure to the integrating software component; and a specific act of temporarily making the data structure unavailable to the network card device driver.
Claim 3
Dependent Claim 49 words
A method as recited in claim 1 further comprising the specific acts of: the transport protocol driver indicating a release of ownership of the data structure to the integrating software component after processing the information contained therein; and making the data structure available to the network card device driver.
Claim 4
Dependent Claim 25 words
A method as recited in claim 1 further wherein the integrating component centrally manages availability of the data structure for the network card device driver.
Claim 5
Dependent Claim 20 words
A method as recited in claim 1 further wherein the network card device driver manages availability of the data structure.
Claim 6
Dependent Claim 26 words
A method as recited in claim 1 wherein the the network card device driver, the transport protocol driver, and integrating software components are system device drivers.
Claim 7
Dependent Claim 84 words
A method as recited in claim 1 wherein the creation of the data structure is accomplished by a direct call linkage between the network card device driver and the integrating software component and the sending of the data structure from the network card device driver to the transport protocol driver is accomplished by a direct call linkage between the network card device driver and the integrating software component followed by a direct call linkage between the integrating software component and the transport protocol driver.
Claim 8
Dependent Claim 72 words
A method as recited in claim 1 wherein the creation of the data structure is accomplished by messaging between the network card device driver and the integrating driver and the sending of the data structure from the network card device driver to the transport protocol driver is accomplished by messaging between the network card device driver and the integrating driver followed by messaging between the integrating driver and the transport protocol driver.
Claim 9
Dependent Claim 49 words
A method as recited in claim 1 wherein the integrating software component manages multiple data structures for the network card device driver and selectively signals data structure ownership transfer capability to the transport protocol driver based on availability of data structures for use by the network card device driver.
Claim 10
Dependent Claim 18 words
A method as recited in claim 1 wherein the data structure is a packet for holding network data.
Claim 11
Dependent Claim 30 words
A method as recited in claim 1 wherein the integrating software component is a driver that allows interconnection of transport protocol drivers and network card device drivers through defined APIs.
Claim 12
Dependent Claim 15 words
A computer-readable medium having computer-executable instructions for performing the specific acts recited in claim 1.
Claim 13
Dependent Claim 107 words
A method as recited in claim 1, wherein the data structures comprise network data packets wherein the method further comprises the steps of: the network card device driver tracking ownership of the created network data packet; the transport protocol driver indicating to the integrating software component the capability of temporary packet ownership transfer; the network card device driver temporarily making the network data packet unavailable in response to an indication that temporary ownership has been taken by the transport protocol driver; the network card device driver making the network data packet available once again an indication that temporary ownership has been released by the transport protocol driver.
Claim 14
Dependent Claim 31 words
A method as recited in claim 12 wherein the transport protocol driver indicates the capability of temporary packet ownership transfer by making a specific subroutine known to the integrating software component.
Claim 15
Dependent Claim 40 words
A method as recited in claim 12 wherein the indication that temporary ownership has been taken by the transport protocol driver comprises a status code indicating that the transport protocol driver has temporary ownership until released at a later time.
Claim 16
Dependent Claim 14 words
A computer-readable medium having computer-executable instructions for performing the steps recited in claim 12.
Claim 17
Dependent Claim 122 words
A method as recited in claim 1, wherein the data structures comprise network data packets wherein the method further comprises the steps of: the integrating software component tracking ownership of the created network data packet; the transport protocol driver indicating to the integrating software component the capability of temporary packet ownership transfer; the integrating software component temporarily making the network data packet unavailable to the network card device driver in response to an indication that temporary ownership has been taken by the transport protocol driver; the integrating software component making the network data packet available once again to the network card device driver for further use in response to an indication that temporary ownership has been released by the transport protocol driver.
Claim 18
Dependent Claim 31 words
A method as recited in claim 16 wherein the transport protocol driver indicates the capability of temporary packet ownership transfer by making a specific subroutine known to the integrating software component.
Claim 19
Dependent Claim 41 words
A method as recited in claim 16 wherein the indication that temporary ownership has been taken by the transport protocol driver comprises returning a status code indicating that the transport protocol driver has temporary ownership until released at a later time.
Claim 20
Dependent Claim 14 words
A computer-readable medium having computer-executable instructions for performing the steps recited in claim 16.
Claim 21
Dependent Claim 156 words
In an integrating software component that provides abstracted services and interconnections for a plurality of transport protocol drivers and a plurality of network card device drivers, a method for selectively and temporarily transferring packet ownership from a network card device driver to a transport protocol driver comprising the steps of: ascertaining the capability of a transport protocol driver for taking temporary packet ownership; receiving from the network card device driver a packet for delivery to the transport protocol driver with an indication of whether temporary packet ownership transfer is acceptable; determining for the packet whether temporary packet ownership is advisable based on predetermined criteria; delivering the packet to the transport protocol driver for processing and potential temporary packet ownership transfer only if the transport protocol driver is capable of taking temporary packet ownership and temporary packet ownership is acceptable and advisable; and waiting for acknowledgement from the transport protocol driver whether temporary packet ownership was taken.
Claim 22
Dependent Claim 156 words
In an integrating software component that provides abstracted services and interconnections for a plurality of transport protocol drivers and a plurality of network card device drivers, a method for selectively and temporarily transferring packet ownership from a network card device driver to a transport protocol driver comprising the steps of: ascertaining the capability of a transport protocol driver for taking temporary packet ownership; receiving from the network card device driver a packet for delivery to the transport protocol driver with an indication of whether temporary packet ownership transfer is acceptable; determining for the packet whether temporary packet ownership is advisable based on predetermined criteria; delivering the packet to the transport protocol driver for processing and potential temporary packet ownership transfer only if the transport protocol driver is capable of taking temporary packet ownership and temporary packet ownership is acceptable and advisable; and waiting for acknowledgement from the transport protocol driver whether temporary packet ownership was taken.
Claim 23
Dependent Claim 39 words
A method as recited in claim 20 wherein the indication of temporary packet ownership transfer acceptability is made by having the network card device driver call a specific subroutine provided by the integrating software component, temporary ownership if necessary.
Claim 24
Dependent Claim 42 words
A method as recited in claim 21 wherein the ascertainment of transport protocol driver capability for taking temporary packet ownership is made by having the transport protocol driver register a specific subroutine for processing packets that may take temporary ownership of necessary.
Claim 25
Dependent Claim 14 words
A computer-readable medium having computer-executable instructions for performing the steps recited in claim 20.
Claim 26
Dependent Claim 94 words
In an integrating software component that provides abstracted services and interconnections for a plurality of transport protocol drivers and a plurality of network card device drivers, a method for transferring packet ownership from a network card device driver to a transport protocol driver comprising the steps of: receiving from the network card device driver a packet for delivery to the transport protocol driver; delivering the packet to the transport protocol driver for processing and potential temporary ownership transfer; and waiting for acknowledgement from the network card device driver whether temporary packet ownership was taken.
Claim 27
Dependent Claim 94 words
In an integrating software component that provides abstracted services and interconnections for a plurality of transport protocol drivers and a plurality of network card device drivers, a method for transferring packet ownership from a network card device driver to a transport protocol driver comprising the steps of: receiving from the network card device driver a packet for delivery to the transport protocol driver; delivering the packet to the transport protocol driver for processing and potential temporary ownership transfer; and waiting for acknowledgement from the network card device driver whether temporary packet ownership was taken.
Claim 28
Dependent Claim 46 words
A method as recited in claim 24 wherein the packet is received from the network card device driver with an indication of whether temporary packet ownership transfer is acceptable and the packet is delivered to the transport protocol driver only if temporary packet ownership is acceptable.
Claim 29
Dependent Claim 35 words
A method as recited in claim 25 wherein the indication of temporary packet ownership transfer acceptability is made by having the network card device driver call a specific subroutine provided by the integrating software component.
Claim 30
Dependent Claim 48 words
A method as recited in claim 24 further comprising the step of ascertaining the capability of a transport protocol driver for taking temporary packet ownership and the packet is delivered to the transport protocol driver only if the transport protocol driver is capable of taking temporary packet ownership.
Claim 31
Dependent Claim 42 words
A method as recited in claim 27 wherein the ascertainment of transport protocol driver capability for taking temporary packet ownership is made by having the transport protocol driver register a specific subroutine for processing packets that may take temporary ownership if necessary.
Claim 32
Dependent Claim 43 words
A method as recited in claim 24 further comprising the step of determining for the packet whether temporary packet ownership is advisable based on predetermined criteria and the packet is delivered to the transport protocol driver only if temporary packet ownership is advisable.
Claim 33
Dependent Claim 14 words
A computer-readable medium having computer-executable instructions for performing the steps recited in claim 24.

References Cited (Backward Citations)

US5673394A Cited
US5745790A Cited
US5778180A Cited
US5852719A Cited
US5898841A Cited
US5920703A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-06-27 2003-12-27 2004-06-27 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-06-27 2007-12-27 2008-06-27 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-06-27 2011-12-27 2012-06-27 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag