Patents by Inventor David J. Riddoch

David J. Riddoch has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Publication number: 20170187605
    Abstract: A network interface device, said network interface device has a data transmission path configured to receive data for transmission. The data for transmission is to be sent over a network by the network interface device. A monitor is configured to monitor the data transmission path to determine if an underrun condition is associated with the data transmission path. If so, an indication is included in the transmitted data packet.
    Type: Application
    Filed: December 20, 2016
    Publication date: June 29, 2017
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steven L. Pope, David J. Riddoch, Derek Roberts
  • Patent number: 9686117
    Abstract: A software networking arrangement for operation in a data processing system comprising an OS being operable in: a first mode in which it performs protocol processing of a flow of traffic data and then passes the protocol processed data to a NIC for transmission; and a second mode in which it does not perform protocol processing, the OS being arranged to, on entering the second mode, transmit a message to the NIC indicating that the NIC is to perform protocol processing of the flow of traffic data; the software networking arrangement comprising: a protocol processing entity; and a driver for a NIC configured to receive said message from the OS and in response thereto, configure the protocol processing entity to perform transport-level protocol processing of the flow of traffic data received from an application within the context of that application and then pass the protocol processed data to the NIC.
    Type: Grant
    Filed: December 19, 2012
    Date of Patent: June 20, 2017
    Assignee: Solarflare Communications, Inc.
    Inventors: Steven L. Pope, David J. Riddoch
  • Patent number: 9674318
    Abstract: A data processing system is provided. A host processing device supports a host transport engine operable to establish a first transport stream over a network with a remote peer. Device hardware comprises a device transport engine. The device transport engine is configured to monitor the first transport stream to determine a state of the first transport stream and in response to an indication from the host processing device perform transport processing of the first transport stream.
    Type: Grant
    Filed: March 31, 2014
    Date of Patent: June 6, 2017
    Assignee: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steve L. Pope, David J. Riddoch
  • Patent number: 9594842
    Abstract: Roughly described, a network interface device is assigned a maximum extent-of-search. A hash function is applied to the header information of each incoming packet, to generate a hash code for the packet. The hash code designates a particular subset of the table within which the particular header information should be found, and an iterative search is made within that subset. If the search locates a matching entry before the search limit is exceeded, then the incoming data packet is delivered to the receive queue identified in the matching entry. But if the search reaches the search limit before a matching entry is located, then device delivers the packet to a default queue, such as a kernel queue, in the host computer system. The kernel is then responsible for delivering the packet to the correct endpoint.
    Type: Grant
    Filed: January 30, 2015
    Date of Patent: March 14, 2017
    Assignee: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steven L. Pope, Derek Roberts, David J. Riddoch, Ching Yu, John Mingyung Chiang, Der-Ren Chu
  • Publication number: 20170026497
    Abstract: A data processing system is provided. A host processing device supports a host transport engine operable to establish a first transport stream over a network with a remote peer. Device hardware comprises a device transport engine. The device transport engine is configured to monitor the first transport stream to determine a state of the first transport stream and in response to an indication from the host processing device perform transport processing of the first transport stream.
    Type: Application
    Filed: October 6, 2016
    Publication date: January 26, 2017
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steve L. Pope, David J. Riddoch
  • Publication number: 20160373561
    Abstract: A method of transmitting data for use at a data processing system and network interface device, the data processing system being coupled to a network by the network interface device, the method comprising: forming a message template in accordance with a predetermined set of network protocols, the message template including at least in part one or more protocol headers; forming an application layer message in one or more parts; updating the message template with the parts of the application layer message; processing the message template in accordance with the predetermined set of network protocols so as to complete the protocol headers; and causing the network interface device to transmit the completed message over the network.
    Type: Application
    Filed: August 31, 2016
    Publication date: December 22, 2016
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steven L. Pope, David J. Riddoch, Kieran Mansley
  • Publication number: 20160357793
    Abstract: A system is arranged to receive data which is written to a data store by a writer. A controller is able to read data from the data store. That controller is able to control the rate at which data is read from the data store with respect to the rate at which data is written to the data store. A query function receives a stream of said data substantially in real time and when said stream of data is unavailable in real time, the query function is able to subsequently obtain that unavailable data from said data store.
    Type: Application
    Filed: June 3, 2015
    Publication date: December 8, 2016
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steven L. Pope, David J. Riddoch
  • Publication number: 20160357796
    Abstract: A system has data capture devices collecting data from different points in a network. The captured data is written to a data store and is directed to an output. The data from the different data capture devices can be delivered to a data analytics device. As long as the data analytics device is able to keep pace with the data that is directed to the output, that data is used by the analytics device. If the analytics device is not able to keep pace, the data written to the data store is retrieved and is used until the analytics device has caught up.
    Type: Application
    Filed: June 26, 2015
    Publication date: December 8, 2016
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steven L. Pope, David J. Riddoch, Matthew Knight
  • Publication number: 20160352687
    Abstract: A logic device and method are provided for intercepting a data flow from a network source to a network destination. A data store holds a set of compliance rules and corresponding actions wherein at least one of the set of compliance rules is a temporary compliance rule valid for a predetermined period. A packet inspector is configured to inspect the intercepted data flow and identify from the data store a temporary compliance rule associated with the inspected data flow. A packet filter is configured to when the data flow is identified as being associated with the temporary compliance rule, carry out an action with respect to the data flow corresponding to the temporary compliance rule while the temporary compliance rule is valid.
    Type: Application
    Filed: August 8, 2016
    Publication date: December 1, 2016
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steve L. Pope, Derek Roberts, David J. Riddoch
  • Patent number: 9456060
    Abstract: A method of transmitting data for use at a data processing system and network interface device, the data processing system being coupled to a network by the network interface device, the method comprising: forming a message template in accordance with a predetermined set of network protocols, the message template including at least in part one or more protocol headers; forming an application layer message in one or more parts; updating the message template with the parts of the application layer message; processing the message template in accordance with the predetermined set of network protocols so as to complete the protocol headers; and causing the network interface device to transmit the completed message over the network.
    Type: Grant
    Filed: February 5, 2016
    Date of Patent: September 27, 2016
    Assignee: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steven L. Pope, David J. Riddoch, Kieran Mansley
  • Publication number: 20160277447
    Abstract: A rule engine receives data flows. The data flows are between a network and an application. The rule engine determines data flow information and in dependence on the information performs an action with respect to said flow. A controller provides control information to the rule engine to define one or more actions. The communications between said rule engine and said controller are secure.
    Type: Application
    Filed: March 17, 2015
    Publication date: September 22, 2016
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steven L. Pope, David J. Riddoch, Derek Roberts
  • Patent number: 9426124
    Abstract: A logic device and method are provided for intercepting a data flow from a network source to a network destination. A data store holds a set of compliance rules and corresponding actions wherein at least one of the set of compliance rules is a temporary compliance rule valid for a predetermined period. A packet inspector is configured to inspect the intercepted data flow and identify from the data store a temporary compliance rule associated with the inspected data flow. A packet filter is configured to when the data flow is identified as being associated with the temporary compliance rule, carry out an action with respect to the data flow corresponding to the temporary compliance rule while the temporary compliance rule is valid.
    Type: Grant
    Filed: April 8, 2014
    Date of Patent: August 23, 2016
    Assignee: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steve L. Pope, Derek Roberts, David J. Riddoch
  • Patent number: 9391840
    Abstract: Roughly described, a network interface device receiving data packets from a computing device for transmission onto a network, the data packets having a certain characteristic, transmits the packet only if the sending queue has authority to send packets having that characteristic. The data packet characteristics can include transport protocol number, source and destination port numbers, source and destination IP addresses, for example. Authorizations can be programmed into the NIC by a kernel routine upon establishment of the transmit queue, based on the privilege level of the process for which the queue is being established. In this way, a user process can use an untrusted user-level protocol stack to initiate data transmission onto the network, while the NIC protects the remainder of the system or network from certain kinds of compromise.
    Type: Grant
    Filed: March 7, 2013
    Date of Patent: July 12, 2016
    Assignee: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steve L. Pope, David J. Riddoch, Kieran Mansley
  • Patent number: 9384071
    Abstract: A method for managing I/O event notifications in a data processing system, the data processing system comprising a plurality of applications and an operating system having a kernel and an I/O event notification mechanism operable to maintain a plurality of I/O event notification objects each handling a set of file descriptors associated with one or more I/O resources, the method comprising: for each of a plurality of application-level configuration calls: intercepting at a user-level interface a configuration call from an application to the I/O event notification mechanism for configuring an I/O event notification object; and storing a set of parameters of the configuration call at a data structure, each set of parameters representing an operation on the set of file descriptors handled by the I/O event notification object; and subsequently, on a predetermined criterion being met: the user-level interface causing the plurality of configuration calls to be effected by means of a first system call to the kernel.
    Type: Grant
    Filed: June 10, 2011
    Date of Patent: July 5, 2016
    Assignee: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steven L. Pope, David J. Riddoch
  • Publication number: 20160162330
    Abstract: A method for managing I/O event notifications in a data processing system comprising a plurality of applications and an operating system having a kernel and an I/O event notification mechanism operable to maintain a plurality of I/O event notification objects each handling a set of file descriptors associated with one or more I/O resources. For each of a plurality of application-level configuration calls: intercepting at a user-level interface a configuration call from an application to the I/O event notification mechanism for configuring an I/O event notification object; and storing a set of parameters of the configuration call at a data structure, each set of parameters representing an operation on the set of file descriptors handled by the I/O event notification object; and subsequently, upon meeting a predetermined criterion: the user-level interface causing the plurality of configuration calls to be effected by means of a first system call to the kernel.
    Type: Application
    Filed: February 12, 2016
    Publication date: June 9, 2016
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: STEVEN L. POPE, DAVID J. RIDDOCH
  • Publication number: 20160156749
    Abstract: A method of transmitting data for use at a data processing system and network interface device, the data processing system being coupled to a network by the network interface device, the method comprising: forming a message template in accordance with a predetermined set of network protocols, the message template including at least in part one or more protocol headers; forming an application layer message in one or more parts; updating the message template with the parts of the application layer message; processing the message template in accordance with the predetermined set of network protocols so as to complete the protocol headers; and causing the network interface device to transmit the completed message over the network.
    Type: Application
    Filed: February 5, 2016
    Publication date: June 2, 2016
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: STEVEN L. POPE, DAVID J. RIDDOCH, KIERAN MANSLEY
  • Patent number: 9300599
    Abstract: Roughly described, a network interface device for connection between a host data processing device and a network, comprising: a controller for supporting communication with a host data processing device over a data bus interface; and a packet capture unit between the controller and the network and comprising: a packet inspector configured to parse incoming data packets to identify data packets of a first data flow; a duplication engine to generate a duplicate data flow from the first data flow; and a packet capture engine to process said duplicate data flow into a packet capture data stream having a predefined format. The network interface device is configured to cause: the first data flow to be made available to a consumer process of a host data processing device to which the network interface device is connected; and the processed packet capture data stream to be stored at a packet capture buffer.
    Type: Grant
    Filed: May 30, 2014
    Date of Patent: March 29, 2016
    Assignee: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steve L. Pope, David J. Riddoch, Martin Porter
  • Patent number: 9258390
    Abstract: A method of transmitting data for use at a data processing system and network interface device, the data processing system being coupled to a network by the network interface device, the method comprising: forming a message template in accordance with a predetermined set of network protocols, the message template including at least in part one or more protocol headers; forming an application layer message in one or more parts; updating the message template with the parts of the application layer message; processing the message template in accordance with the predetermined set of network protocols so as to complete the protocol headers; and causing the network interface device to transmit the completed message over the network.
    Type: Grant
    Filed: October 27, 2011
    Date of Patent: February 9, 2016
    Assignee: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steven L. Pope, David J. Riddoch, Kieran Mansley
  • Patent number: 9225807
    Abstract: A method for performing segmentation of a first data packet into a plurality of second data packets at a functionality of a device driver for a network interface device supported by a data processing system, each second data packet comprising a header and a segment of data from the first data packet and the network interface device being capable of supporting a communication link over a network with another network interface device, the method comprising: accepting the first data packet, the first data packet carrying data for transmission by the network interface device over the network; forming a set of headers for the plurality of second data packets; writing the set of headers to memory; forming a specification, the specification indicating the headers in memory and the segments of data in the first data packet; requesting by means of the device driver transmission by the network interface device of the headers and the respective segments of data indicated in the specification so as to effect transmission
    Type: Grant
    Filed: April 29, 2015
    Date of Patent: December 29, 2015
    Assignee: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steven L. Pope, David J. Riddoch
  • Publication number: 20150237176
    Abstract: A method for performing segmentation of a first data packet into a plurality of second data packets at a functionality of a device driver for a network interface device supported by a data processing system, each second data packet comprising a header and a segment of data from the first data packet and the network interface device being capable of supporting a communication link over a network with another network interface device, the method comprising: accepting the first data packet, the first data packet carrying data for transmission by the network interface device over the network; forming a set of headers for the plurality of second data packets; writing the set of headers to memory; forming a specification, the specification indicating the headers in memory and the segments of data in the first data packet; requesting by means of the device driver transmission by the network interface device of the headers and the respective segments of data indicated in the specification so as to effect transmission
    Type: Application
    Filed: April 29, 2015
    Publication date: August 20, 2015
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steven L. POPE, David J. RIDDOCH