CHIMNEY ONLOAD IMPLEMENTATION OF NETWORK PROTOCOL STACK
First Claim
1. A system comprising a first data processing system, the first data processing system comprising:
- a memory;
a processor subsystem coupled to the memory, the processor subsystem configured to run an operating system and a software networking arrangement,wherein the operating system is capable of processing a flow of traffic data received from an application supported by the first data processing system, the operating system being operable in;
a first mode, in which the operating system performs protocol processing of a flow of traffic data and then passes the protocol processed data to a network interface device for transmission; and
a second mode, in which the operating system does not perform protocol processing of a flow of traffic data, the operating system being arranged to, on entering the second mode, transmit a message to the network interface device indicating that the network interface device is to perform protocol processing of the flow of traffic data,and wherein the software networking arrangement comprises;
a protocol processing entity; and
a driver for a network interface device, the driver being configured to receive said message from the operating system and in response thereto, to 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 network interface device.
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.
27 Citations
31 Claims
-
1. A system comprising a first data processing system, the first data processing system comprising:
-
a memory; a processor subsystem coupled to the memory, the processor subsystem configured to run an operating system and a software networking arrangement, wherein the operating system is capable of processing a flow of traffic data received from an application supported by the first data processing system, the operating system being operable in; a first mode, in which the operating system performs protocol processing of a flow of traffic data and then passes the protocol processed data to a network interface device for transmission; and a second mode, in which the operating system does not perform protocol processing of a flow of traffic data, the operating system being arranged to, on entering the second mode, transmit a message to the network interface device indicating that the network interface device is to perform protocol processing of the flow of traffic data, and wherein the software networking arrangement comprises; a protocol processing entity; and a driver for a network interface device, the driver being configured to receive said message from the operating system and in response thereto, to 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 network interface device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
subsequent to being configured to perform protocol processing of the flow of traffic data from the application, the protocol processing entity is arranged to intercept all flows of traffic data from that application to the interface.
-
-
7. A system as claimed in claim 1, wherein the message is a state handover message including an indication of the state of the flow of the traffic data.
-
8. A system as claimed in claim 1, wherein the operating system is arranged to enter the second mode when the flow of traffic data from the application through the operating system matches one or more predetermined conditions.
-
9. A system as claimed in claim 8, wherein one of the predetermined conditions is a member of the group consisting of:
-
an elapsed time for which the data flow has been active; and an amount of data transferred over the data flow.
-
-
10. A system as claimed in claim 1, wherein the flow of traffic data is to be sent over an RDMA connection and the driver is arranged to configure the protocol processing entity to perform RDMA protocol processing of the flow of traffic data;
- and
on being configured to perform RDMA protocol processing, the protocol processing entity is arranged to signal a second data processing system which terminates the RDMA connection to indicate that the software networking arrangement is operating at the first data processing system.
- and
-
11. A system as claimed in claim 10, wherein, if the second data processing system responds to the first data processing system with an indication that it is also operating the software networking arrangement, the protocol processing entities at the first and second data processing systems are arranged to take down the RDMA connection and to subsequently process the transport data in accordance with the underlying transport-layer protocol.
-
12. A computer readable storage medium having stored thereon a plurality of software code portions which when executed by a first data processing system run an operating system and a software networking arrangement,
wherein the operating system is capable of processing a flow of traffic data received from an application supported by the first data processing system, the operating system being operable in: -
a first mode, in which the operating system performs protocol processing of a flow of traffic data and then passes the protocol processed data to a network interface device for transmission; and a second mode, in which the operating system does not perform protocol processing of a flow of traffic data, the operating system being arranged to, on entering the second mode, transmit a message to the network interface device indicating that the network interface device is to perform protocol processing of the flow of traffic data, and wherein the software networking arrangement comprises; a protocol processing entity; and a driver for a network interface device, the driver being configured to receive said message from the operating system and in response thereto, to 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 network interface device.
-
-
13. A system comprising a first data processing system, the first data processing system comprising:
-
a memory; a processor subsystem coupled to the memory, the processor subsystem configured to run an operating system and a software networking arrangement, wherein the operating system is capable of processing a flow of data packets received at a network interface device for an application supported by the first data processing system, the operating system being operable in; a first mode, in which the operating system performs protocol processing of a flow of data packets and then passes the protocol processed data to the application; and a second mode, in which the operating system does not perform protocol processing of a flow of data packets, the operating system being arranged to, on entering the second mode, transmit a message to the network interface device indicating that the network interface device is to perform protocol processing of the flow of data packets; and wherein the software networking arrangement comprises; a protocol processing entity; and a driver for a network interface device, the driver being configured to receive said message from the operating system and, in response thereto, to configure the protocol processing entity to perform 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, the protocol processing being performed within the context of that application. - View Dependent Claims (14)
-
-
15. A computer readable storage medium having stored thereon a plurality of software code portions which when executed by a first data processing system run an operating system and a software networking arrangement,
wherein the operating system is capable of processing a flow of data packets received at a network interface device for an application supported by the first data processing system, the operating system being operable in: -
a first mode, in which the operating system performs protocol processing of a flow of data packets and then passes the protocol processed data to the application; and a second mode, in which the operating system does not perform protocol processing of a flow of data packets, the operating system being arranged to, on entering the second mode, transmit a message to the network interface device indicating that the network interface device is to perform protocol processing of the flow of data packets; and wherein the software networking arrangement comprises; a protocol processing entity; and a driver for a network interface device, the driver being configured to receive said message from the operating system and, in response thereto, to configure the protocol processing entity to perform 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, the protocol processing being performed within the context of that application.
-
-
16. A method for processing data by means of a data processing system, the system supporting an operating system and at least one application, and having access to a network interface device;
- the method comprising the steps of;
the operating system; receiving a flow of traffic data from an application; performing protocol processing of the flow of traffic data; passing the protocol processed data to the network interface device for transmission; determining that the network interface device is to perform protocol processing of the flow of traffic data received from the application; and transmitting to the network interface device a message indicating that the network interface device is to take over protocol processing of the flow of traffic data; the driver receiving said message from the operating system and in response thereto configuring a protocol processing entity to perform transport-level protocol processing of the flow of traffic data within the context of the application. - View Dependent Claims (17, 18, 19, 20, 21, 22)
- the method comprising the steps of;
-
23. A method for processing data by means of a data processing system, the system supporting an operating system and at least one application, and having access to a network interface device;
- the method comprising the steps of;
the operating system; receiving a flow of data packets from the network interface device for an application; performing protocol processing of the flow of data packets; passing the protocol processed data to the application; determining that the network interface device is to perform protocol processing of the flow of data packets received at the network interface device for the application; and transmitting to the network interface device a message indicating that the network interface device is to take over protocol processing of the flow of data packets; the driver receiving said message from the operating system and in response thereto configuring a protocol processing entity to perform transport-level protocol processing of the flow of data packets within the context of the application.
- the method comprising the steps of;
-
24. A system comprising a data processing system, the data processing system comprising:
-
a memory; a processor subsystem coupled to the memory, the processor subsystem configured to run an operating system and a software networking arrangement, wherein the operating system is capable of processing a flow of traffic data received from an application supported by the data processing system, the operating system being operable in; a first mode, in which the operating system performs protocol processing of a flow of traffic data and then passes the protocol processed data to a network interface device for transmission; and a second mode, in which the operating system does not perform protocol processing of a flow of traffic data; wherein the operating system is arranged to, on entering the first mode, transmit a message to the network interface device indicating that the operating system 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 transport-level protocol processing of a flow of traffic data received from an application within the context of that application and then pass the protocol processed data to a network interface device; and a driver for that network interface device, the driver being configured to receive said message from the operating system 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 (25, 26, 27)
-
-
28. A computer readable storage medium having stored thereon a plurality of software code portions which when executed by a data processing system run an operating system and a software networking arrangement,
wherein the operating system is capable of processing a flow of traffic data received from an application supported by the data processing system, the operating system being operable in: -
a first mode, in which the operating system performs protocol processing of a flow of traffic data and then passes the protocol processed data to a network interface device for transmission; and a second mode, in which the operating system does not perform protocol processing of a flow of traffic data; wherein the operating system is arranged to, on entering the first mode, transmit a message to the network interface device indicating that the operating system 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 transport-level protocol processing of a flow of traffic data received from an application within the context of that application and then pass the protocol processed data to a network interface device; and a driver for that network interface device, the driver being configured to receive said message from the operating system 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.
-
-
29. A method for processing data by means of a data processing system, the system supporting an operating system, 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; performing transport-level protocol processing of the flow of traffic data within the context of the application; passing the protocol processed data to the network interface device for transmission; determining by means of the operating system that the operating system is to perform protocol processing of the flow of traffic data received from the application; transmitting to the network interface device a message indicating that the operating system is to take over 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;
-
30. A data processing system having access to a network interface device, the data processing system comprising:
-
a memory; a processor subsystem coupled to the memory, the processor subsystem configured to run an operating system, a driver for the network interface device, at least one application and a protocol processing entity capable of performing protocol processing of a traffic data flow within the context of an application with which the data flow is associated, the driver being operable to; intercept a state handover message sent from the operating system to the network interface device indicating that the network interface device is to take over protocol processing of a traffic data flow; and direct said message to the protocol processing entity so as to cause the protocol processing entity to take over protocol processing of the traffic data flow.
-
-
31. A computer readable storage medium having stored thereon a plurality of software code portions,
for use with a network interface device and a data processing system having a memory and a processor subsystem coupled to the memory, the plurality of software code portions when executed by the data processing system run a driver which is operable to: - intercept a state handover message sent from an operating system running on the data processing system, to the network interface device, indicating that the network interface device is to take over protocol processing of a traffic data flow; and
direct said message to a protocol processing entity capable of performing protocol processing of the traffic data flow within the context of an application with which the data flow is associated, so as to cause the protocol processing entity to take over protocol processing of the traffic data flow.
- intercept a state handover message sent from an operating system running on the data processing system, to the network interface device, indicating that the network interface device is to take over protocol processing of a traffic data flow; and
Specification