# US 2008/0313655 A1 · Processing received data

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2008/0313655 A1
- Document ID: US20080313655A1
- Status: Published application
- Kind: A1
- Application number: 12/215,437
- Filed: 2008-06-26
- Published: 2008-12-18
- Earliest claimed: 2006-01-10
- Assignees: Solarflare Communications, Inc.
- Inventors: Steven Pope; David Riddoch
- Web page: https://patentgrep.com/patent/US20080313655A1

## CPC

- G06F 9/45533: {Hypervisors; Virtual machine monitors}
- G06F 9/544: {Buffers; Shared memory; Pipes}
- H04L 47/27: Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
- H04L 47/30: in combination with information about buffer occupancy at either end or at transit nodes
- H04L 47/62: characterised by scheduling criteria
- H04L 69/16: Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## 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

### Claim 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.

### Claim 2 (depends on 1)

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.

### Claim 3 (depends on 2)

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

### Claim 4 (depends on 1)

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.

### Claim 5 (depends on 1)

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.

### Claim 6 (depends on 1)

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

### Claim 7 (depends on 6)

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

### Claim 8 (depends on 7)

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

### Claim 9 (depends on 1)

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

### Claim 10 (depends on 1)

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

### Claim 11 (depends on 1)

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.

### Claim 12 (depends on 1)

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.

### Claim 13 (depends on 1)

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.

### Claim 14 (depends on 1)

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.

### Claim 15 (depends on 1)

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.

### Claim 16 (depends on 1)

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

### Claim 17 (depends on 1)

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

### Claim 18 (depends on 1)

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

### Claim 19 (depends on 1)

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.

### Claim 20 (depends on 1)

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.

### Claim 21

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 second operating system.

### Claim 22 (depends on 21)

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

### Claim 23 (depends on 22)

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

### Claim 24 (depends on 21)

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

### Claim 25 (depends on 21)

The computer system as claimed in claim 21, 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.

### Claim 26 (depends on 21)

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

### Claim 27 (depends on 26)

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

### Claim 28 (depends on 27)

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

### Claim 29 (depends on 21)

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

### Claim 30 (depends on 21)

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

### Claim 31 (depends on 21)

The computer system as claimed in claim 21, 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.

### Claim 32 (depends on 21)

The computer system as claimed in claim 21, 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.

### Claim 33 (depends on 21)

The computer system as claimed in of claim 21, 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.

### Claim 34 (depends on 33)

The computer system as claimed in claim 33, 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.

### Claim 35 (depends on 21)

The computer system as claimed in claim 21, 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.

### Claim 36 (depends on 21)

The computer system as claimed in claim 21, 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.

### Claim 37 (depends on 36)

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

### Claim 38 (depends on 21)

The computer system as claimed in claim 21, 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.

### Claim 39 (depends on 21)

The computer system as claimed in claim 21, 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.

### Claim 40

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.

### Claim 41

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 second operating system.
