IP Library Granted Patent US 10,397,103
Granted Patent B2
US 10,397,103 · App. 15/247,696 · Granted Aug 27, 2019

Data processing system with routing tables

Inventors: Steven Leslie Pope (Costa Mesa, CA); David James Riddoch (Fenstanton, GB); Greg Law (Cambridge, GB)
Assignee: Solarflare Communications, Inc.
H04L45/54H04L45/00H04L45/021H04L45/56H04L45/745H04L69/16
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 10,397,103
App. No.
15/247,696
Granted
Aug 27, 2019
Kind
B2
Abstract

A data processing system with routing tables 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 (38)

1. A data processing system comprising:

one or more physical memories; and

one or more physical processors configured to provide:

an operating system that stores at least one first network routing table each comprising one or more entries, each entry indicating at least part of a route over a network to a respective destination, wherein the at least one first network routing table is maintained in a kernel of the operating system;

a transmission support function at a user level configured to maintain a copy of at least part of the at least one first network routing table;

a network data transmission function arranged to transmit data by accessing the copy, of the at least part of the at least one first network routing table, maintained at the user level and without accessing the at least one first network routing table in the kernel; and

an application configured to provide an indication of a destination of a packet to the network data transmission function and the network data transmission function configured to obtain an address of the destination from the copy of the at least part of the at least one first network routing table.

2. A data processing system as claimed as claim 1 , wherein the network data transmission function is external to the operating system.

3. A data processing system as claimed in claim 1 , wherein the network data transmission function is at user level.

4. A data processing system as claimed in claim 1 , wherein the at least one first network routing table comprises data enabling routing using address resolution protocol.

5. A data processing system as claimed in claim 1 , wherein the at least one first network routing table comprises data enabling routing using transmission control protocol and/or user datagram protocol.

6. A data processing system as claimed in claim 1 , wherein the operating system is configured to signal when data stored in the at least one first network routing table is updated.

7. A data processing system as claimed in claim 1 , wherein said data processing system is configured to check the at least one first network routing table for updates.

8. A data processing system as claimed in claim 1 , wherein the copy of the at least part of the at least one first network routing table is configured to be read by means of memory mapping.

9. A data processing system as claimed in claim 8 , wherein the memory mapping is read only memory mapping.

10. A data processing system as claimed in claim 1 , further comprising a network endpoint, wherein the system is arranged such that the network endpoint is unable to access the at least one first network routing table directly.

11. A data processing system as claimed in claim 1 , further configured to provide: a counter that is incremented each time a change is made to the at least one first network routing table.

12. A data processing as claimed in claim 1 , wherein the operating system is arranged to transmit data using the at least one first network routing table.

13. A data processing as claimed in claim 1 , wherein the network data transmission function is arranged to transmit the data in the form of packets and to create packet headers for such packets based on information in the copy of the at least part of the at least one first network routing table.

14. A data processing as claimed in claim 1 , wherein the data processing system is arranged to delete entries from the at least one first network routing table if they are unused.

15. A data processing system as claimed in claim 14 , wherein the data processing system is arranged to periodically delete, with a first frequency, unused entries from the at least one first network routing table.

16. A data processing system as claimed in claim 15 , wherein the network data transmission function is arranged to transmit to the operating system signals for causing the operating system to maintain entries in the at least one first network routing table.

17. A data processing system as claimed in claim 16 , wherein the signals are dedicated messages for maintaining tables in the operating system.

18. A data processing system as claimed in claim 16 , wherein the signals are address resolution protocol reinforce messages.

19. A data processing system as claimed in claim 16 , wherein the signals are sent periodically with a second frequency.

20. A data processing system as claimed in claim 19 , wherein the second frequency is greater than the first frequency.

21. A method for transmitting data from a data processing system comprising one or more physical memories and one or more physical processors, the method comprising:

storing in an operating system at least one first network routing table each comprising one or more entries, each entry indicating at least part of a route over a network to a respective destination, wherein the at least one first network routing table is maintained in a kernel of the operating system;

maintaining in a transmission support function at a user level, a copy of at least part of the at least one first network routing table;

transmitting, by a network data transmission function, data by accessing the copy, of the at least part of the at least one first network routing table, maintained at the user level and without accessing the at least one first network routing table in the kernel;

providing, by an application, an indication of a destination of a packet to the network data transmission function; and

obtaining, by the network data transmission function, an address of the destination from the copy of the at least part of the at least one first network routing table.

22. A non-transitory computer readable storage medium storing software which when executed by a data processing system comprising one or more physical memories and one or more physical processors performs the steps of:

storing in an operating system at least one first network routing table each comprising one or more entries, each entry indicating at least part of a route over a network to a respective destination, wherein the at least one first network routing table is maintained in a kernel of the operating system;

maintaining in a transmission support function at a user level, a copy of at least part of the at least one first network routing table;

transmitting, by a network data transmission function, data by accessing the copy, of the at least part of the at least one first network routing table, maintained at the user level and without accessing the at least one first network routing table in the kernel;

providing, by an application, an indication of a destination of a packet to the network data transmission function; and

obtaining, by the network data transmission function, an address of the destination from the copy of the at least part of the at least one first network routing table.

Assignments (4)
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 →
SECURITY INTEREST Recorded Mar 7, 2017
From: SOLARFLARE COMMUNICATIONS, INC.
To: ALLY BANK
Reel/Frame 041902/0527 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2016
From: POPE, STEVEN LESLIE; RIDDOCH, DAVID JAMES; LAW, GREG
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 041038/0378 →
Priority Claims (1)
GB 0506403.5 · Mar 30, 2005 · national
Continuity (5)
Continuation 14519065 · Oct 20, 2014
Continuation 11982109 · Oct 31, 2007
Division 11900377 · Sep 10, 2007
Continuation PCTGB2006000852 · Mar 10, 2006
Related Publication 20160366054A1 · Dec 15, 2016