IP Library Granted Patent US 8,635,353
Granted Patent B2
US 8,635,353 · App. 13/548,281 · Granted Jan 21, 2014

Reception according to a data transfer protocol of data directed to any of a plurality of destination entities

Inventors: Steven Leslie Pope (Cambridge, GB); Derek Edward Roberts (Cambridge, GB); David James Riddoch (Cambridge, GB); Greg Law (Cambridge, GB); Steve Grantham (Huntingdon, GB); Matthew Slattery (Cambridge, GB)
Assignee: Solarflare Communications, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,635,353
App. No.
13/548,281
Granted
Jan 21, 2014
Kind
B2
Abstract

A data processing system arranged for receiving over a network, according to a data transfer protocol, data directed to any of a plurality of destination identities, the data processing system comprising: data storage for storing data received over the network; and a first processing arrangement for performing processing in accordance with the data transfer protocol on received data in the data storage, for making the received data available to respective destination identities; and a response former arranged for: receiving a message requesting a response indicating the availability of received data to each of a group of destination identities; and forming such a response; wherein the system is arranged to, in dependence on receiving the said message.

Claims (47)

1. A data processing system arranged for receiving over a network, according to a data transfer protocol, data directed to any of a plurality of destination identities, the data processing system comprising:

data storage for storing data received over the network;

a first processing arrangement for performing processing in accordance with the data transfer protocol on received data in the data storage, for making the received data available to respective destination identities; and

a message former arranged for: receiving a message requesting a response indicating the availability of received data to each of a group of destination identities; and forming such a response;

wherein the message former is arranged to, in dependence on receiving the said message:

identify received data that is directed to any destination identity that is both a member of the group and a member of a subset of the plurality of destination identities, and on which processing has not yet been performed;

trigger processing by the first processing arrangement in accordance with the protocol on only the identified data; and subsequently

form a response based at least partly on the result of the triggered processing, wherein the response is formed so as to comprise a positive indication of availability of data for a destination identity of the group if the triggered processing caused data to be made available to the respective destination identity.

2. The data processing system according to claim 1 wherein the first processing arrangement is at user level.

3. The data processing system according to claim 1 further comprising a second data processing arrangement for performing processing in accordance with the data transfer protocol on received data in the data storage other than the said identified data.

4. The data processing system according to claim 3 wherein the second processing arrangement is a part of an operating system of the data processing system.

5. The data processing system according to claim 3 further comprising a data structure, associated with the processing of the received data other than the identified data, for storing an indication of destination identities other than the subset of destination identities; and corresponding state data.

6. The data processing system according to claim 5 wherein the state data comprises indications of availability of received data to perspective destination identities.

7. The data processing system according to claim 6 wherein the indications of availability in the state data are formed based on the result of processing according to the protocol of received data other than data directed to any of the subset of destination identities.

8. The data processing system according to claim 5 wherein the said response is based additionally on the state data in the data structure.

9. The data processing system according to claim 8 wherein the said response is formed so as to comprise a positive indication of availability of data for a destination identity of the group other than a member of the subset if the state data indicates availability of received data to the destination identity.

10. The data processing system according to claim 5 wherein the data structure is stored in a cache.

11. The data processing system according to claim 5 wherein the data structure is stored in the data storage.

12. The data processing system according to claim 3 wherein the second processing arrangement is dedicated to the processing of the received data other than data directed to any of the subset of destination identities.

13. The data processing system according to claim 12 wherein the first and second processing arrangements are implemented by means of respective threads.

14. The data processing system according to claim 12 wherein the dedicated processing is performed as a background processing operation such that other processing operations within the data processing system are not interrupted by the second processing arrangement.

15. The data processing system according to claim 1 wherein the said subset contains destination identities which relate to active network connections.

16. The data processing system according to claim 1 wherein the response is formed so as to comprise a positive indication of availability of data for a destination identity of the group of any processing other than the triggered processing causes data to be made available to the destination identity.

17. The data processing system according to claim 1 , further arranged to transmit a communication to a process running on the data processing system in the event that the said response comprises a positive indication of availability for a destination identity-associated with the process.

18. The data processing system according to claim 1 wherein each destination identity is associated with a socket.

19. The data processing system according to claim 1 wherein the said making the received data available to respective destination identities comprises passing the data from the data storage to one or more buffers associated with the respective destination identities.

20. The data processing system according to claim 1 wherein the said message is transmitted by means of a user process running on the data processing system.

21. A data processing system arranged for transmitting over a network, according to a data transfer protocol, data from any of a plurality of destination identities, the data processing system comprising:

data storage for storing data to be transmitted over the network;

a first processing arrangement for performing processing in accordance with the data transfer protocol on data in the data storage, for making the data available for transmission over the network; and

a message former arranged for: receiving a message requesting a response indicating the availability of data from each of a group of destination identities for transmission over the network; and forming such a response;

wherein the message former is arranged to, in dependence on receiving the said message:

identify data in the data storage that is from any destination identity that is both a member of the group and a member of a subset of the plurality of destination identities, and on which processing has not yet been performed;

trigger processing by the first processing arrangement in accordance with the protocol on only the identified data; and subsequently

form a response based at least partly on the result of the triggered processing, wherein the response is formed so as to comprise a positive indication of availability of data for transmission for a destination identity of the group if the triggered processing caused data from the respective destination identity to be made available for transmission over the network.

22. A method for processing data received over a network wherein the data is transmitted over the network according to a data transfer protocol and is directed to any of a plurality of destination identities, the method comprising the steps of:

storing data received over the network;

receiving a message requesting a response indicating the availability of received data to each of a group of destination identities; and, in dependence on receiving the said message:

identifying received data that is directed to any destination identity that is both a member of the group and a member of a subset of the plurality of destination identities, and on which processing has not yet been performed;

triggering processing by the first processing arrangement in accordance with the data transfer protocol on only the identified data, the processing being for making the identified data available to respective destination identities; and subsequently

forming the response based at least partly on the result of the triggered processing, wherein the response is formed so as to comprise a positive indication of availability of data for a destination identity of the group if the triggered processing caused data to be made available to the respective destination identity.

23. A method for processing data to be transmitted over a network wherein the network is such that data is transmitted according to a data transfer protocol from any of a plurality of destination identities, the method comprising the steps of:

storing data to be transmitted over the network;

receiving a message requesting a response indicating the availability of data from each of a group of destination identities for transmission over the network; and, in dependence on receiving the said message:

identifying data in the data storage that is from any destination identity that is both a member of the group and a member of a subset of the plurality of destination identities; and on which processing has not yet been performed;

triggering processing by the first processing arrangement in accordance with the data transfer protocol on only the identified data, the processing being for making the identified data available for transmission over the network; and subsequently

forming the response based at least partly on the result of the triggered processing, wherein the response is formed so as to comprise a positive indication of availability of data for transmission for a destination identity of the group if the triggered processing caused data from, the respective destination identity to be made available for transmission over the network.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 25, 2019
From: SOLARFLARE COMMUNICATIONS, INC.
To: XILINX, INC.
Reel/Frame 051108/0209 →
RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jul 31, 2019
From: ALLY BANK
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 049918/0440 →
RELEASE OF SECURITY INTEREST Recorded Jun 15, 2017
From: PACIFIC WESTERN BANK
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 042820/0890 →
SECURITY INTEREST Recorded Mar 7, 2017
From: SOLARFLARE COMMUNICATIONS, INC.
To: ALLY BANK
Reel/Frame 041902/0527 →
SECURITY INTEREST Recorded Apr 6, 2016
From: SOLARFLARE COMMUNICATIONS, INC.
To: PACIFIC WESTERN BANK
Reel/Frame 038363/0589 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 16, 2012
From: POPE, STEVEN LESLIE; ROBERTS, DEREK EDWARD; RIDDOCH, DAVID JAMES; LAW, GREG; GRANTHAM, STEVE; SLATTERY, MATTHEW
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 028608/0935 →
Priority Claims (8)
GB 0512219.7 · Jun 15, 2005 · national
GB 0512425.0 · Jun 17, 2005 · national
GB 0512532.3 · Jun 20, 2005 · national
GB 0512533.1 · Jun 20, 2005 · national
GB 0512534.9 · Jun 20, 2005 · national
GB 0512535.6 · Jun 20, 2005 · national
GB 0512536.4 · Jun 20, 2005 · national
GB 0512537.2 · Jun 20, 2005 · national
Continuity (2)
Division 11916973
Related Publication 20120296998A1 · Nov 22, 2012