System for querying a peripheral device to determine its processing
capabilities and then offloading specific processing tasks from a host
to the peripheral device when needed

    公开(公告)号:US06141705A

    公开(公告)日:2000-10-31

    申请号:US97169

    申请日:1998-06-12

    摘要: The present invention is directed to a method and computer program product for offloading specific processing tasks that would otherwise be performed in a computer system's processor and memory, to a peripheral device, or devices, that are connected to the computer. The computing task is then performed by the peripheral, thereby saving computer system resources for other computing tasks and increasing the overall computing efficiency of the computer system. In one preferred embodiment, the disclosed method is utilized in a layered network model, wherein computing tasks that are typically performed in network applications are instead offloaded to the network interface card (NIC) peripheral. An application executing on the computer system first queries the processing, or task offload capabilities of the NIC, and then selectively enables those capabilities that may be subsequently needed by the application. The specific processing capabilities of a NIC are made available by creating a task offload buffer data structure, which contains data indicative of the processing capabilities of the corresponding NIC. Once an application has discerned the capabilities of a particular NIC, it will selectively utilize any of the enabled task offload capabilities of the NIC by appending packet extension data to the network data packet that is forwarded to the NIC. The device driver of the NIC will review the data contained in the packet extension, and then cause the NIC to perform the specified operating task(s). This offloading of computing tasks on a per-packet basis allows an application to selectively offload tasks on a dynamic, as-needed basis. As such, applications executing on the computer system processor are able to offload tasks in instances where it is busy processing other computing tasks and processor overhead is high. Multiple tasks can also be offloaded in batches to a particular peripheral.

    System and method for batching data between link and transport layers in a protocol stack
    3.
    发明授权
    System and method for batching data between link and transport layers in a protocol stack 有权
    在协议栈中的链路和传输层之间批量化数据的系统和方法

    公开(公告)号:US06499065B2

    公开(公告)日:2002-12-24

    申请号:US09870951

    申请日:2001-05-31

    IPC分类号: G06F900

    CPC分类号: H04L69/32

    摘要: A system and method for transferring a plurality of data packets between a link layer and a transport layer is presented. The system and method provide a standardized development interface for development of link layer and transport layer drivers across multiple platforms. The abstract interface provides a standardized functional module through which multiple packet transfer commands are received and passed. The abstract interface discerns the level of sophistication of interfacing drivers and when drivers lack the capability for transferring multiple packets in a single command, the abstract interface emulates multiple transfer capabilities for such drivers.

    摘要翻译: 提出了一种用于在链路层和传输层之间传送多个数据分组的系统和方法。 该系统和方法为跨多个平台的链路层和传输层驱动程序的开发提供了标准化的开发接口。 抽象接口提供了一个标准化的功能模块,通过该功能模块可以接收和传递多个数据包传输命令。 抽象接口识别接口驱动程序的复杂程度,并且当驱动程序在单个命令中缺少传输多个数据包的能力时,抽象接口模拟了这种驱动程序的多个传输功能。

    System and method for batching data between transport and link layers in a protocol stack
    4.
    发明授权
    System and method for batching data between transport and link layers in a protocol stack 失效
    在协议栈中的传输层和链路层之间批量化数据的系统和方法

    公开(公告)号:US06253255B1

    公开(公告)日:2001-06-26

    申请号:US08853847

    申请日:1997-05-08

    IPC分类号: G06F900

    CPC分类号: H04L69/32

    摘要: A system and method for transferring a plurality of data packets between a transport layer and a link layer is presented. The system and method provide a standardized development interface for development of transport and link layer drivers across multiple platforms. The abstract interface provides a standardized functional module through which multiple packet transfer commands are received and passed. The abstract interface discerns the level of sophistication of interfacing drivers and when drivers lack the capability for transferring multiple packets in a single command, the abstract interface emulates multiple transfer capabilities for such drivers.

    摘要翻译: 提出了一种用于在传输层和链路层之间传送多个数据分组的系统和方法。 该系统和方法为跨多个平台的传输和链路层驱动程序的开发提供了标准的开发接口。 抽象接口提供了一个标准化的功能模块,通过该功能模块可以接收和传递多个数据包传输命令。 抽象接口识别接口驱动程序的复杂程度,并且当驱动程序在单个命令中缺少传输多个数据包的能力时,抽象接口模拟了这种驱动程序的多个传输功能。

    System and method for layering drivers
    5.
    发明授权
    System and method for layering drivers 失效
    用于分层驱动程序的系统和方法

    公开(公告)号:US06233624B1

    公开(公告)日:2001-05-15

    申请号:US08852946

    申请日:1997-05-08

    IPC分类号: G06F940

    CPC分类号: G06F9/4411

    摘要: A system and method for incorporating intermediate link layer drivers into a network protocol stack is presented. The system and method utilize an abstract interface for interfacing both inputs and outputs of intermediate drivers and for providing an interface for link layer device drivers. The abstract interface provides routing of data packets through the intermediate drivers and device drivers to facilitate the desired data flow. The abstract interface facilitates reuse and portability of intermediate drivers across varying computer platforms. Layering of intermediate drivers also accommodates data flow modification with minimal impact to existing drivers.

    摘要翻译: 提出了一种将中间链路层驱动程序合并到网络协议栈中的系统和方法。 该系统和方法利用抽象接口来连接中间驱动器的输入和输出,并为链路层设备驱动程序提供接口。 抽象接口通过中间驱动程序和设备驱动程序提供数据包的路由,以便于所需的数据流。 抽象接口便于跨越不同计算机平台的中间驱动程序的重用和可移植性。 中间驱动程序的分层也适应数据流修改,对现有驱动程序的影响最小。

    Creation and use of control information associated with packetized
network data by protocol drivers and device drivers
    6.
    发明授权
    Creation and use of control information associated with packetized network data by protocol drivers and device drivers 失效
    通过协议驱动程序和设备驱动程序创建和使用与打包网络数据相关联的控制信息

    公开(公告)号:US5983274A

    公开(公告)日:1999-11-09

    申请号:US852937

    申请日:1997-05-08

    IPC分类号: H04L29/12 G06F13/00

    CPC分类号: H04L61/00 H04L29/12009

    摘要: A method, computer program product, and data structure that allows any software component processing network data to communicate control information to and cooperate with another software component by associating control information with a packet of network data. The present invention associates control information with the network data upon which the control information will operate by appending one or more control data structure to a packet descriptor that is common to all software components processing the network data. Furthermore, the control data structure is "tagged" with a class ID value that allows all concerned software components to recognize and utilize the control information. In this manner, any software component may cooperate with and communicate to another software component that processes the network data regardless of any intervening software components.

    摘要翻译: 一种方法,计算机程序产品和数据结构,其允许任何软件组件处理网络数据通过将控制信息与网络数据分组相关联来将控制信息传递到另一软件组件并与另一软件组件协作。 本发明通过将一个或多个控制数据结构附加到处理网络数据的所有软件组件所共有的分组描述符来将控制信息与控制信息将在其上操作的网络数据相关联。 此外,控制数据结构被“标记”具有允许所有相关软件组件识别和利用控制信息的类ID值。 以这种方式,任何软件组件可以与处理网络数据的另一软件组件协作并进行通信,而不管任何中间的软件组件如何。

    Method and computer program product for reducing intra-system data
copying during network packet processing
    7.
    发明授权
    Method and computer program product for reducing intra-system data copying during network packet processing 失效
    用于在网络数据包处理期间减少系统内数据复制的方法和计算机程序产品

    公开(公告)号:US6081846A

    公开(公告)日:2000-06-27

    申请号:US852888

    申请日:1997-05-08

    IPC分类号: H04L12/56 G06F13/00 G06F13/38

    CPC分类号: H04L49/90

    摘要: 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.

    摘要翻译: 一种方法和计算机程序产品,其克服了将数据从一个数据结构复制到另一个数据结构的问题,同时在具有网络卡设备驱动程序之间的集成组件的环境中处理从通信网络进入系统的进入的数据包 以及将分组的系统存储器分配给相应驱动器的传输协议驱动器。 集成组件基于来自网卡设备驱动程序的指示将原始数据结构的所有权从网卡设备驱动程序暂时转移到传输协议驱动器,独立确定网卡设备驱动程序能够暂时释放所有权,并且确定 运输协议驱动程序拥有所有权的能力。 传输协议驱动程序将指示接收数据结构的所有权,然后明确释放它。 传输协议驱动程序然后可以在初始调用会话结束之后在数据结构上操作,当它最初接收到所有权时,直到它在稍后的时间被释放,从而防止数据的拷贝,从而提高系统效率。 当网卡设备驱动程序在中断处理期间填充具有网络数据的数据结构时,根据本发明的所有权临时转移特别重要,这导致传输协议驱动程序在初始调用会话中无法完全处理网络数据的场景 而不复制数据。