IP Library Granted Patent US 8,286,193
Granted Patent B2
US 8,286,193 · App. 12/215,437 · Granted Oct 9, 2012

Processing received data

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,286,193
App. No.
12/215,437
Granted
Oct 9, 2012
Kind
B2
Abstract

A computer system comprising hardware including a data interface for interfacing between the computer system and a data source; a memory; a first operating system capable of communicating with the hardware; and a second operating system capable of supporting a user-level application and being configured to communicate with the hardware via the first operating system, the second operating system being capable of allocating a region of the memory for use as a buffer by such a user-level application. The data interface is configurable to associate a predetermined data format with a region of the memory that has been allocated for use as a buffer by a user-level application supported by the second operating system and to, on receiving from the data source a data message of that format, automatically store data of that message in that region of the memory without it passing via the first or second operating systems.

Claims (54)

1. A computer system comprising:

hardware including a data interface for interfacing between the computer system and a data source;

a memory;

a first operating system capable of communicating with the hardware; and

a second operating system capable of supporting a user-level application and being configured to communicate with the hardware via the first operating system, the second operating system being capable of allocating a region of the memory for use as a buffer by such a user-level application;

wherein the data interface is configurable to associate a predetermined data format with a region of the memory that has been allocated for use as a buffer by a user-level application supported by the second operating system so as to, on subsequently receiving from the data source a data message of that format, automatically store data of that message in that region of the memory without it passing via the first or second operating systems.

2. The computer system as claimed in claim 1 , wherein the first operating system is capable of serving as an interface between multiple further operating systems and the hardware.

3. The computer system as claimed in claim 2 , wherein the first operating system is a hypervisor.

4. The computer system as claimed in any of claim 1 , wherein the data interface is a network interface and the data source is a data network.

5. The computer system as claimed in claim 1 , wherein the data interface has access to a data store for storing a plurality of indications of respective data formats and corresponding to each one an indication of a destination, and the data interface is arranged to, on receiving a data message from the data source identify whether the format of the data message matches a data format an indication of which is stored in the data store, and if it does to pass data of that message to that destination.

6. The computer system as claimed in claim 1 , wherein the data format is at least partially defined by a destination address.

7. The computer system as claimed in claim 6 , wherein the address is an internet layer address.

8. The computer system as claimed in claim 7 , wherein the address is an internet protocol address.

9. The computer system as claimed in claim 1 , wherein the data format is at least partially defined by a data port.

10. The computer system as claimed in claim 1 , wherein the data message is a data packet.

11. The computer system as claimed in claim 1 wherein the data interface is configurable automatically by the first operating system to associate the predetermined data format with the region of the memory that has been allocated for use as a buffer by a user-level application supported by the second operating system.

12. The computer system as claimed in claim 1 wherein the data interface is configurable automatically by the second operating system to associate the predetermined data format with the region of the memory that has been allocated for use as a buffer by a user-level application supported by the second operating system.

13. The computer system as claimed in claim 1 , wherein the data interface is arranged to, on receiving a data message from the data source, identify whether it is configured to associate the format of that message with a region of the memory and if it has to automatically store data of that message in that region of the memory without it passing via the first or second operating systems.

14. The computer system as claimed in claim 1 , wherein one of the first operating system, the second operating system and the data interface is arranged to deconfigure the data interface from associating a message format with a region of the memory when a pre-set time has elapsed from when the interface was configured to associate that message format with that region of the memory.

15. The computer system as claimed in claim 1 , wherein one of the first operating system, the second operating system and the data interface is arranged to deconfigure the data interface from associating a message format with a region of the memory in response to sensing that data traffic conditions match one or more predefined criteria.

16. The computer system as claimed in claim 15 , wherein the one or more predefined criteria include a criterion that a the flow of received data of the message format is below a pre-set amount in a pre-set time.

17. The computer system as claimed in claim 1 , wherein the data interface is configured to associate a predetermined data format with a region of the memory of the computer system external to the data interface that has been allocated for use as a buffer by a user-level application supported by the second operating system so as to, on subsequently receiving from the data source a data message of that format, automatically store data of that message in that region of the memory without it passing via the first or second operating systems.

18. The computer system as claimed in claim 1 , further comprising a computer program configured to provide an operating system with functionality to, in response to detection that data of a first data message received by the data interface from the data source has been directed to a destination via another operating system, configure the data interface to direct data of subsequent data messages having a data format in common with the first data message to that destination without it passing via the second operating system.

19. A computer system comprising:

hardware including a data interface for interfacing between the computer system and a data source;

a memory;

a first operating system capable of communicating with the hardware; and

a second operating system capable of supporting a user-level application;

wherein at least one of the first and second operating systems is arranged to detect that data of a first data message received by the data interface from the data source has been directed to a destination via the first operating system, and in response to detecting that to configure the data interface to direct data of subsequent data messages having a data format in common with the first data message to that destination without it passing via the first operating system.

20. The computer system as claimed in claim 19 , wherein the first operating system is capable of serving as an interface between multiple further operating systems and the hardware.

21. The computer system as claimed in claim 20 , wherein the first operating system is a hypervisor.

22. The computer system as claimed in claim 19 , wherein the data interface is a network interface and the data source is a data network.

23. The computer system as claimed in claim 19 , wherein the data interface has access to a data store for storing a plurality of indications of respective data formats and corresponding to each one an indication of a destination, and the data interface is arranged to, on receiving a data message from the data source identify whether the format of the data message matches a data format an indication of which is stored in the data store, and if it does to pass data of that message to that destination.

24. The computer system as claimed in claim 19 , wherein the data format is at least partially defined by a destination address.

25. The computer system as claimed in claim 24 , wherein the address is an internet layer address.

26. The computer system as claimed in claim 25 , wherein the address is an internet protocol address.

27. The computer system as claimed in claim 19 , wherein the data format is at least partially defined by a data port.

28. The computer system as claimed in claim 19 , wherein the data message is a data packet.

29. The computer system as claimed in claim 19 , wherein the data interface is arranged to, on receiving a data message from the data source, identify whether it is configured to associate the format of that message with a region of the memory and if it has to automatically store data of that message in that region of the memory without it passing via the first or second operating systems.

30. The computer system as claimed in claim 19 , wherein one of the first operating system, the second operating system and the data interface is arranged to deconfigure the data interface from associating a message format with a region of the memory when a pre-set time has elapsed from when the interface was configured to associate that message format with that region of the memory.

31. The computer system as claimed in of claim 19 , wherein one of the first operating system, the second operating system and the data interface is arranged to deconfigure the data interface from associating a data format with a region of the memory in response to sensing that data traffic conditions match one or more predefined criteria.

32. The computer system as claimed in claim 31 , wherein the said traffic criteria include the criterion that the flow of received data of the data format is below a pre-set amount in a pre-set time.

33. The computer system as claimed in claim 19 , wherein the second operating system is arranged to perform the step of configuring the data interface to direct data of subsequent data messages having a data format in common with the first data message only when it detects that the flow of received data of that data format is above a pre-set amount in a pre-set time.

34. The computer system as claimed in claim 19 , wherein the second operating system is arranged to perform the step of configuring the data interface to direct data of subsequent data messages having a data format in common with the first data message only for data formats of one or more pre-set types.

35. The computer system as claimed in claim 34 , wherein the said pre-set types are each defined by respective port numbers or ranges of port numbers.

36. The computer system as claimed in claim 19 , wherein the data interface is configured to associate a predetermined data format with a region of the memory of the computer system external to the data interface that has been allocated for use as a buffer by a user-level application supported by the second operating system so as to, on subsequently receiving from the data source a data message of that format, automatically store data of that message in that region of the memory without it passing via the first or second operating systems.

37. The computer system as claimed in claim 19 , further comprising a computer program configured to provide an operating system with functionality to, in response to detection that data of a first data message received by the data interface from the data source has been directed to a destination via another operating system, configure the data interface to direct data of subsequent data messages having a data format in common with the first data message to that destination without it passing via the second operating system.

38. A method for operating a computer system comprising hardware including a data interface for interfacing between the computer system and a data source, a memory, a first operating system capable of communicating with the hardware; and a second operating system capable of supporting a user-level application and being configured to communicate with the hardware via the first operating system, the second operating system being capable of allocating a region of the memory for use as a buffer by such a user-level application; the method comprising:

configuring the data interface to associate a predetermined data format with a region of the memory that has been allocated for use as a buffer by a user-level application supported by the second operating system; and

the data interface on subsequently receiving from the data source a data message of that format, automatically storing data of that message in that region of the memory without it passing via the first or second operating systems.

39. A method for operating a computer system comprising:

hardware including a data interface for interfacing between the computer system and a data source; a memory; a first operating system capable of communicating with the hardware; and a second operating system capable of supporting a user-level application; the method comprising:

detecting by means of at least one of the first and second operating systems that data of a first data message received by the data interface from the data source has been directed to a destination via the first operating system; and

in response to detecting that configuring the data interface by means of that operating system to direct data of subsequent data messages having a data format in common with the first data message to that destination without it passing via the first operating system.

Assignments (9)
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 →
CHANGE OF ADDRESS Recorded Oct 31, 2012
From: SOLARFLARE COMMUNICATIONS, INC.
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 029360/0956 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2009
From: LEVEL 5 NETWORKS, INC.
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 022752/0318 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 20, 2009
From: LEVEL 5 NETWORKS, INC.
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 022568/0921 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 21, 2008
From: POPE, STEVEN; RIDDOCH, DAVID
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 021429/0678 →
Priority Claims (2)
GB 0600417.0 · Jan 10, 2006 · national
GB PCT/GB2006/004946 · Dec 28, 2006 · national
Continuity (1)
Related Publication 20080313655A1 · Dec 18, 2008