Chimney onload implementation of network protocol stack
First Claim
1. A system comprising a first data processing system, the first data processing system having access to a network interface device and comprising:
- a memory;
a processor subsystem coupled to the memory, the processor subsystem configured to run a kernel and a software networking arrangement,wherein the kernel is capable of processing a flow of traffic data received from an application supported by the first data processing system, the kernel being operable to;
transmit a message which causes a protocol processing entity in user space to perform protocol processing of the flow of traffic data,and wherein the software networking arrangement comprises;
said protocol processing entity in user space; and
a driver configured to receive said message from the kernel and in response thereto, to send a message to user space to configure the protocol processing entity to perform, in user space within the context of the application, transport-level protocol processing of the flow of traffic data received from the application supported by the first data processing system and then pass the protocol processed data to the network interface device for transmission.
7 Assignments
0 Petitions
Accused Products
Abstract
A software networking arrangement for operation in a data processing system comprising an OS being operable in: a first mode in which it performs protocol processing of a flow of traffic data and then passes the protocol processed data to a NIC for transmission; and a second mode in which it does not perform protocol processing, the OS being arranged to, on entering the second mode, transmit a message to the NIC indicating that the NIC is to perform protocol processing of the flow of traffic data; the software networking arrangement comprising: a protocol processing entity; and a driver for a NIC configured to receive said message from the OS and in response thereto, configure the protocol processing entity to perform transport-level protocol processing of the flow of traffic data received from an application within the context of that application and then pass the protocol processed data to the NIC.
168 Citations
34 Claims
-
1. A system comprising a first data processing system, the first data processing system having access to a network interface device and comprising:
-
a memory; a processor subsystem coupled to the memory, the processor subsystem configured to run a kernel and a software networking arrangement, wherein the kernel is capable of processing a flow of traffic data received from an application supported by the first data processing system, the kernel being operable to; transmit a message which causes a protocol processing entity in user space to perform protocol processing of the flow of traffic data, and wherein the software networking arrangement comprises; said protocol processing entity in user space; and a driver configured to receive said message from the kernel and in response thereto, to send a message to user space to configure the protocol processing entity to perform, in user space within the context of the application, transport-level protocol processing of the flow of traffic data received from the application supported by the first data processing system and then pass the protocol processed data to the network interface device for transmission. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A computer readable storage medium having stored thereon a plurality of software code portions which when executed by a first data processing system run a kernel and a software networking arrangement,
wherein the first data processing system has access to a network interface device, wherein the kernel is capable of processing a flow of traffic data received from an application supported by the first data processing system, the kernel being operable to: -
transmit a message which causes a protocol processing entity in user space to perform protocol processing of the flow of traffic data, and wherein the software networking arrangement comprises; said protocol processing entity in user space; and a driver configured to receive said message from the kernel and in response thereto, to send a message to user space to configure the protocol processing entity to perform, in user space within the context of the application, transport-level protocol processing of the flow of traffic data received from an application supported by the first data processing system and then pass the protocol processed data to the network interface device for transmission.
-
-
17. A system comprising a first data processing system, the first data processing system having access to a network interface device and comprising:
-
a memory; a processor subsystem coupled to the memory, the processor subsystem configured to run a kernel and a software networking arrangement, wherein the kernel is capable of processing a flow of data packets received at the network interface device for an application supported by the first data processing system, the kernel being operable to; transmit a message which causes a protocol processing entity in user space to perform protocol processing of the flow of data packets, and wherein the software networking arrangement comprises; said protocol processing entity in user space; and a driver configured to receive said message from the kernel and, in response thereto, to send a message to user space to configure the protocol processing entity to perform, in user space within the context of the application, transport-level protocol processing of the flow of data packets received at the network interface device and then pass the protocol processed data to the application associated with the flow of data packets. - View Dependent Claims (18, 19)
-
-
20. A computer readable storage medium having stored thereon in a non-transitory manner a plurality of software code portions which when executed by a first data processing system run a kernel and a software networking arrangement,
wherein the first data processing system has access to a network interface device, wherein the kernel is capable of processing a flow of data packets received at the network interface device for an application supported by the first data processing system, the kernel being operable to: transmit a message which causes a protocol processing entity in user space to perform protocol processing of the flow of data packets, and wherein the software networking arrangement comprises; said protocol processing entity in user space; and a driver configured to receive said message from the kernel and, in response thereto, to send a message to user space to configure the protocol processing entity to perform, in user space within the context of the application, transport-level protocol processing of the flow of data packets received at the network interface device and then pass the protocol processed data to the application associated with the flow of data packets.
-
21. A method for processing data by means of a data processing system, the system supporting a kernel, a driver, and at least one application, and having access to a network interface device;
- the method comprising the steps of;
the kernel; receiving a flow of traffic data from an application supported by the data processing system; performing protocol processing of the flow of traffic data; passing the protocol processed data to the network interface device for transmission; and transmitting a message which causes a protocol processing entity in user space to perform protocol processing of subsequent traffic data in the flow of traffic data, the driver receiving said message from the kernel and in response thereto sending a message to user space to configure the protocol processing entity to perform, in user space within the context of the application, transport-level protocol processing of the subsequent traffic data in the flow of traffic data. - View Dependent Claims (22, 23, 24, 25, 26, 27)
- the method comprising the steps of;
-
28. A method for processing data by means of a data processing system, the system supporting a kernel, a driver, and at least one application, and having access to a network interface device;
- the method comprising the steps of;
the kernel; receiving a flow of data packets from the network interface device for an application supported by the data processing system; performing protocol processing of the flow of data packets; passing the protocol processed data to the application; and transmitting a message which causes a protocol processing entity in user space to perform protocol processing of subsequent traffic data in the flow of data packets, the driver receiving said message from the kernel and in response thereto sending a message to user space to configure the protocol processing entity to perform, in user space within the context of the application, transport-level protocol processing of the subsequent traffic data of the flow of data packets.
- the method comprising the steps of;
-
29. A system comprising a data processing system, the data processing system having access to a network interface device and comprising:
-
a memory; a processor subsystem coupled to the memory, the processor subsystem configured to run a kernel and a software networking arrangement, wherein the kernel is capable of processing a flow of traffic data received from an application supported by the data processing system, the kernel being operable to; transmit a message indicating that the kernel is to perform protocol processing of the flow of traffic data, and wherein the software networking arrangement comprises; a protocol processing entity operable to perform, in user space within the context of the application, transport-level protocol processing of a flow of traffic data received from an application and then pass the protocol processed data to the network interface device for transmission; and a driver configured to receive said message from the kernel and, if the protocol processing entity is performing protocol processing of the flow of traffic data, to configure the protocol processing entity to cease performing protocol processing of that flow of traffic data. - View Dependent Claims (30, 31, 32)
-
-
33. A computer readable storage medium having stored thereon in a non-transitory manner a plurality of software code portions which when executed by a data processing system run a kernel and a software networking arrangement,
wherein the data processing system has access to a network interface device, wherein the kernel is capable of processing a flow of traffic data received from an application supported by the data processing system, the kernel being operable to: transmit a message indicating that the kernel is to perform protocol processing of the flow of traffic data, and wherein the software networking arrangement comprises; a protocol processing entity operable to perform, in user space within the context of the application, transport-level protocol processing of a flow of traffic data received from an application and then pass the protocol processed data to the network interface device for transmission; and a driver configured to receive said message from the kernel and, if the protocol processing entity is performing protocol processing of the flow of traffic data, to configure the protocol processing entity to cease performing protocol processing of that flow of traffic data.
-
34. A method for processing data by means of a data processing system, the system supporting a kernel, a driver, a protocol processing entity, at least one application, and having access to a network interface device;
- the method comprising the steps of;
the protocol processing entity; receiving a flow of traffic data from an application supported by the data processing system; performing, in user space within the context of the application, transport-level protocol processing of the flow of traffic data; passing the protocol processed data to the network interface device for transmission; determining by means of the operating system that the kernel is to perform protocol processing of the flow of traffic data received from the application; transmitting a message indicating that the kernel is to perform protocol processing of the flow of traffic data; and the driver receiving said message and in response thereto configuring the protocol processing entity to cease performing protocol processing of the flow of traffic data for the application.
- the method comprising the steps of;
Specification