IP Library Granted Patent US 8,782,642
Granted Patent B2
US 8,782,642 · App. 11/982,148 · Granted Jul 15, 2014

Data processing system with data transmit capability

Inventors: Steven Leslie Pope (Costa Mesa, CA); David James Riddoch (Fenstanton, GB); Greg Law (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,782,642
App. No.
11/982,148
Granted
Jul 15, 2014
Kind
B2
Abstract

A data processing system with data transmit capability comprising an operating system for supporting processes, such that the process are associated with one or more resources and the operating system being arranged to police the accessing by processes of resources so as to inhibit a process from accessing resources with which it is not associated. Part of this system is an interface for interfacing between each process and the operating system and a memory for storing state information for at least one process. The interface may be arranged to analyze instructions from the processes to the operating system, and upon detecting an instruction to re-initialize a process cause state information corresponding to that pre-existing state information to be stored in the memory as state information for the re-initialized process and to be associated with the resource.

Claims (54)

1. A method of compiling a data structure that is performed by a socket library in a computer system, the computer system being arranged to perform protocol processing and transmit data via an interface on the basis of instructions in accordance with a route, the method that is performed by the socket library comprising:

receiving a first instruction comprising a system call and an indication of a descriptor;

determining a route indicated by the first instruction;

identifying, in response to the determination, an interface within the determined route;

attempting to determine the ownership of the interface wherein determining ownership of the interface comprises determining an entity to which the interface is allocated; and

causing an entry to be made in the data structure stored in the socket library, the entry including an identifier of the descriptor and a state of the descriptor, wherein the state represents the result of the attempting step and indicates an entity to which the socket library should send instructions including an indication of the descriptor.

2. A method as claimed in claim 1 , wherein the socket library contains a TCP/IP stack.

3. A method as claimed in claim 1 , wherein the state is a state from the list comprising A, B and C, where:

A indicates ownership by a kernel of an operating system in the computer system;

B indicates ownership by another owner; and

C indicates unknown ownership.

4. A method as claimed in claim 3 , further comprising:

receiving an indication that the ownership of the descriptor may have changed; and

changing the entry in the data structure to indicate the state of the descriptor as C.

5. A method as claimed in claim 4 further comprising updating the state of the descriptor in the data structure by:

receiving a third instruction including an indication of the descriptor;

determining a route specified by the third instruction;

identifying an interface within the determined route;

attempting to determine the ownership of the interface; and

based on the determined ownership of the interface, updating the entry in the data structure to indicate the current ownership of the descriptor.

6. A method as claimed in claim 1 , wherein the descriptor is a file descriptor.

7. A method as claimed in claim 1 , wherein the determined ownership of the interface is taken to be the ownership of the descriptor.

8. A method as claimed in claim 1 , wherein the step of attempting to determine the ownership of the interface includes accessing system-wide rules defining routes for transmitting data.

9. A method as claimed in claim 1 , further comprising:

receiving a second instruction including an indication of the descriptor;

accessing the data structure to determine the state of the descriptor; and

routing the second instruction based on the determined state of the descriptor.

10. A method of routing data in a computer system, the computer system being arranged to perform protocol processing and transmit data via an interface on the basis of instructions in accordance with a route, the method comprising:

receiving a first instruction comprising a system call and an indication of a first descriptor;

accessing a data structure storing, for each of one or more descriptors, an identifier of the descriptor and a state of the descriptor, wherein the state represents the ownership of the descriptor;

determining the state of the first descriptor including determining an entity to which the descriptor is allocated;

in accordance with the determined state, determining a route; and

transmitting the first instruction in accordance with the determined route, wherein the method is performed by a socket library in the computer system and the data structure is stored in the socket library and the state indicates an entity to which the socket library should send instructions including an indication of the descriptor.

11. A method as claimed in claim 10 wherein the state is a state from the list comprising A, B and C, where:

A indicates ownership by a kernel of an operating system in the computer system;

B indicates ownership by another owner; and

C indicates unknown ownership.

12. A method as claimed in claim 10 , wherein the descriptor is a file descriptor.

13. A method as claimed in claim 10 , wherein the determined ownership of the interface is taken to be the ownership of the descriptor.

14. A non-transitory computer readable storage medium having a program for programming a computer system to compile a data structure stored in a socket library thereon, the computer system comprising a processor configured to perform protocol processing and an interface configured to transmit data on the basis of instructions in accordance with a route, the program comprising instructions arranged to, when executed, cause the socket library in the computer system to compile the data structure by:

receiving a first instruction comprising a system call and an indication of a descriptor;

determining a route indicated by the first instruction;

identifying, in response to the determination, an interface within the determined route;

attempting to determine the ownership of the interface wherein determining ownership of the interface comprises determining an entity to which the interface is allocated; and

causing an entry to be made in the data structure that is stored in the socket library, the entry including an identifier of the descriptor and a state of the descriptor, wherein the state represents the result of the attempting step and indicates an entity to which the socket library should send instructions including an indication of the descriptor.

15. A computer system comprising:

an interface configured to transmit data on the basis of instructions in accordance with a route;

a processor in communication with a memory, the processor configured to execute machine readable code to perform protocol processing;

a memory storing the machine readable code, the machine readable code being non-transitory and configured to:

receive a first instruction comprising a system call and an indication of a descriptor;

determine the route, the route being indicated by the first instruction;

identify, in response to the determination, an interface within the determined route;

attempt to determine the ownership of the interface wherein determine ownership of the interface comprises determining an entity to which the interface is allocated; and

cause an entry to be made in the data structure that is stored in the socket library, the entry including an identifier of the descriptor and a state of the descriptor, wherein the state represents the result of the attempt step and indicates an entity to which the socket library should send instructions including an indication of the descriptor.

Assignments (12)
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 →
RELEASE OF SECURITY INTEREST Recorded Nov 24, 2014
From: COMERICA BANK
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 034255/0140 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2014
From: COMERICA BANK
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 033716/0073 →
CHANGE OF ADDRESS Recorded Oct 31, 2012
From: SOLARFLARE COMMUNICATIONS, INC.
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 029360/0956 →
SECURITY AGREEMENT Recorded Jan 5, 2012
From: SOLARFLARE COMMUNICATIONS, INC., A DELAWARE CORPORATION
To: COMERICA BANK, AS AGENT, A TEXAS BANKING ASSOCIATION
Reel/Frame 027487/0097 →
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 Oct 31, 2007
From: POPE, STEVEN LESLIE; RIDDOCH, DAVID JAMES; LAW, GREG
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 020121/0144 →
Priority Claims (1)
GB 0505300.4 · Mar 15, 2005 · national
Continuity (3)
Division 11900377 · Sep 10, 2007
Continuation PCTGB2006000852 · Mar 10, 2006
Related Publication 20080065840A1 · Mar 13, 2008