VIRTUALISED RECEIVE SIDE SCALING
First Claim
1. A method for receiving packet data by means of a data processing system having a plurality of processing cores and supporting a network interface device and a set of at least two untrusted software domains, each untrusted software domain;
- (a) carrying a plurality of data flows;
(b) supporting at least two delivery channels between the network interface device and the respective untrusted software domain; and
(c) being operable to perform receive processing of received packet data at a processing core of the data processing system, the method comprising;
receiving at the network interface device packet data that is part of a particular data flow;
selecting in dependence on one or more characteristics of the packet data a delivery channel of a particular one of the untrusted software domains, said delivery channel being associated with a particular one of the processing cores of the data processing system; and
mapping the incoming packet data into the said selected delivery channel such that receive processing of the packet data is performed in the untrusted software domain by the same processing core that performed receive processing for preceding packets of that data flow.
10 Assignments
0 Petitions
Accused Products
Abstract
A method for receiving packet data by means of a data processing system having a plurality of processing cores and supporting a network interface device and a set of at least two software domains, each software domain carrying a plurality of data flows and each supporting at least two delivery channels, the method comprising: receiving at the network interface device packet data that is part of a particular data flow; selecting in dependence on one or more characteristics of the packet data a delivery channel of a particular one of the software domains, said delivery channel being associated with a particular one of the processing cores of the system; and mapping the incoming packet data into said selected delivery channel such that receive processing of the packet is performed by the same processing core that performed receive processing for preceding packets of that data flow.
195 Citations
43 Claims
-
1. A method for receiving packet data by means of a data processing system having a plurality of processing cores and supporting a network interface device and a set of at least two untrusted software domains, each untrusted software domain;
- (a) carrying a plurality of data flows;
(b) supporting at least two delivery channels between the network interface device and the respective untrusted software domain; and
(c) being operable to perform receive processing of received packet data at a processing core of the data processing system, the method comprising;receiving at the network interface device packet data that is part of a particular data flow; selecting in dependence on one or more characteristics of the packet data a delivery channel of a particular one of the untrusted software domains, said delivery channel being associated with a particular one of the processing cores of the data processing system; and mapping the incoming packet data into the said selected delivery channel such that receive processing of the packet data is performed in the untrusted software domain by the same processing core that performed receive processing for preceding packets of that data flow. - View Dependent Claims (2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
- (a) carrying a plurality of data flows;
-
8. (canceled)
-
26. A method for transmitting data packets onto a network by means of a data processing system having a plurality of processing cores and supporting a network interface device and a set of at least two untrusted software domains, each untrusted software domain:
- (a) carrying a plurality of data flows;
(b) supporting at least two transmit channels between the network interface device and the respective untrusted software domain, and (c) being operable to process notification events associated with the transmission of data at a processing core of the data processing system, the method comprising;at a particular one of the untrusted software domains, selecting in dependence on the data flow to which a set of data for transmission belongs, one of at least two transmit channels, said transmit channel being associated with a particular one of the processing cores of the data processing system; and processing notification events associated with the transmission of data through the said transmit channel on the processing core associated with said transmit channel. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 43)
- (a) carrying a plurality of data flows;
-
37. A data processing system arranged to receive and transmit packet data by means of a data processing system having a plurality of processing cores and supporting a network interface device and a set of at least two untrusted software domains, each untrusted software domain:
- (a) carrying a plurality of data flows;
(b) supporting at least two delivery channels between the network interface device and the respective untrusted software domain;
(c) being operable to perform receive processing of received packet data at a processing core of the data processing system; and
(d) being operable to process notification events associated with the transmission of data at a processing core of the data processing system, the data processing system arranged to perform data receiving steps of;receiving at the network interface device packet data that is part of a first data flow; selecting in dependence on one or more characteristics of the packet data a delivery channel of a particular one of the untrusted software domains, said delivery channel being associated with a first one of the processing cores of the data processing system; and mapping the incoming packet data into the said selected delivery channel such that receive processing of the packet data is performed in the untrusted software domain by the same processing core that performed receive processing for preceding packets of that first data flow, the data processing system further arranged to perform data transmitting steps of; at a particular one of the untrusted software domains, selecting in dependence on a second data flow to which a set of data for transmission belongs, one of at least two transmit channels, said selected transmit channel being associated with a second one of the processing cores of the data processing system; and processing notification events associated with the transmission of data through the said selected transmit channel on the second processing core, the data processing system further arranged to determine whether the first and second data flows are the same data flow, and if so, then to select the same processing core for both the data receiving steps of the first flow and the data transmitting steps of the second flow.
- (a) carrying a plurality of data flows;
-
38. A method for managing interaction between a data processing system and a network interface device, the data processing system having a plurality of processing cores and supporting a set of at least two untrusted software domains, each untrusted software domain:
- (a) carrying a plurality of data flows;
(b) supporting a set of at least two notification channels; and
(c) being operable to process notification events at a processing core of the data processing system, the method comprising;at the network interface device, in response to processing data of a data flow of one of the untrusted software domains, selecting in dependence on one or more characteristics of the data flow one of the set of notification channels of the software domain, each notification channel being associated with a particular one of the processing cores of the data processing system; delivering a notification event to the selected notification channel; and responsive to delivering the notification event to the selected notification channel, causing an interrupt to be delivered to the processing core associated with the selected notification channel such that processing of the notification event is performed at that processing core by a processing entity of the software domain. - View Dependent Claims (39, 40, 41)
- (a) carrying a plurality of data flows;
-
42. (canceled)
Specification