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).

  • Patent number: 10686731
    Abstract: Roughly described: a network interface device has an interface. The interface is coupled to first network interface device circuitry, host interface circuitry and host offload circuitry. The host interface circuitry is configured to interface to a host device and has a scheduler configured to schedule providing and/or receiving of data to/from the host device. The interface is configured to allow at least one of: data to be provided to said host interface circuitry from at least one of said first network device interface circuitry and said host offload circuitry; and data to be provided from said host interface circuitry to at least one of said first network interface device circuitry and said host offload circuitry.
    Type: Grant
    Filed: December 19, 2018
    Date of Patent: June 16, 2020
    Assignee: XILINX, INC.
    Inventors: Steven L. Pope, Derek Roberts, David J. Riddoch, Dmitri Kitariev
  • Patent number: 10686872
    Abstract: A network interface device having an FPGA for providing an FPGA application. A first interface between a host computing device and the FPGA application is provided, allowing the FPGA application to make use of data-path operations provided by a transport engine on the network interface device, as well as communicate with the host. The FPGA application sends and receives data with the host via a memory that is memory mapped to a shared memory location in the host computing device, whilst the transport engine sends and receives data packets with the host via a second memory. A second interface is provided to interface the FPGA application and transport engine with the network, wherein the second interface is configured to back-pressure the transport engine.
    Type: Grant
    Filed: December 19, 2017
    Date of Patent: June 16, 2020
    Assignee: XILINX, INC.
    Inventors: Steven L. Pope, Derek Roberts, David J. Riddoch
  • Patent number: 10671458
    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: Grant
    Filed: February 12, 2016
    Date of Patent: June 2, 2020
    Assignee: XILINX, INC.
    Inventors: Steven L. Pope, David J. Riddoch
  • Patent number: 10659390
    Abstract: A network interface device is provided in a first device. The network interface device comprises an interface configured to receive a first input from a network. The network interface device also has at least one processor configured to provide an output in dependence on contents of the first input and provenance information which uniquely identifies the network interface device, the output being output via the interface to the network.
    Type: Grant
    Filed: September 29, 2017
    Date of Patent: May 19, 2020
    Assignee: XILINX, INC.
    Inventors: Steven L. Pope, David J. Riddoch
  • Patent number: 10601873
    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: Grant
    Filed: October 24, 2017
    Date of Patent: March 24, 2020
    Assignee: XILINX, INC.
    Inventors: Steven L. Pope, David J. Riddoch, Derek Roberts
  • Patent number: 10601874
    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: Grant
    Filed: September 18, 2018
    Date of Patent: March 24, 2020
    Assignee: Xilinx, Inc.
    Inventors: Steven L. Pope, David J. Riddoch, Derek Roberts
  • Publication number: 20200092120
    Abstract: A data processing system comprising: a processing subsystem supporting a plurality of consumers, each consumer being arranged to process messages received into a corresponding receive queue; a network interface device supporting a virtual interface for each of the receive queues; and a hardware accelerator coupled to the processing subsystem by the network interface device and configured to parse one or more streams of data packets received from a network so as to, for each consumer: identify in the data packets messages having one or more of a set of characteristics associated with the consumer; and frame the identified messages in a new stream of data packets addressed to a network endpoint associated with the virtual interface of the consumer so as to cause said new stream of data packets to be delivered into the receive queue of the consumer.
    Type: Application
    Filed: November 25, 2019
    Publication date: March 19, 2020
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steve L. Pope, David J. Riddoch
  • Publication number: 20200042509
    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: October 8, 2019
    Publication date: February 6, 2020
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steven L. Pope, David J. Riddoch, Matthew Knight
  • Publication number: 20190377704
    Abstract: A data processing system and method are provided. A host computing device comprises at least one processor. A network interface device is arranged to couple the host computing device to a network. The network interface device comprises a buffer for receiving data for transmission from the host computing device. The processor is configured to execute instructions to transfer the data for transmission to the buffer. The data processing system further comprises an indicator store configured to store an indication that at least some of the data for transmission has been transferred to the buffer wherein the indication is associated with a descriptor pointing to the buffer.
    Type: Application
    Filed: August 26, 2019
    Publication date: December 12, 2019
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steven L. Pope, David J. Riddoch, Dmitri Kitariev
  • Patent number: 10505747
    Abstract: A data processing system comprising: a processing subsystem supporting a plurality of consumers, each consumer being arranged to process messages received into a corresponding receive queue; a network interface device supporting a virtual interface for each of the receive queues; and a hardware accelerator coupled to the processing subsystem by the network interface device and configured to parse one or more streams of data packets received from a network so as to, for each consumer: identify in the data packets messages having one or more of a set of characteristics associated with the consumer; and frame the identified messages in a new stream of data packets addressed to a network endpoint associated with the virtual interface of the consumer so as to cause said new stream of data packets to be delivered into the receive queue of the consumer.
    Type: Grant
    Filed: March 7, 2013
    Date of Patent: December 10, 2019
    Assignee: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steve L. Pope, David J. Riddoch
  • Publication number: 20190370215
    Abstract: A data processing system and method are provided. A host computing device comprises at least one processor. A network interface device is arranged to couple the host computing device to a network. The network interface device comprises a buffer for receiving data for transmission from the host computing device. The processor is configured to execute instructions to transfer the data for transmission to the buffer. The data processing system further comprises an indicator store configured to store an indication that at least some of the data for transmission has been transferred to the buffer wherein the indication is associated with a descriptor pointing to the buffer.
    Type: Application
    Filed: August 14, 2019
    Publication date: December 5, 2019
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steven L. Pope, David J. Riddoch, Dmitri Kitariev
  • Patent number: 10498867
    Abstract: A network interface device includes an interface configured to receive data packets for a host processing device and an engine supporting a network interface device component of an application that is provided on the host processing device. In response to receiving data packets for the application, the engine is configured to cause at least some of the data packets to be available to the component of the application, to cause the data packets to be delivered to a protocol stack of the host processing device, and to receive control information associated the data packets from the protocol stack of the host processing device. The interface is configured to output an acknowledgement message comprising the control information.
    Type: Grant
    Filed: November 2, 2016
    Date of Patent: December 3, 2019
    Assignee: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steven L. Pope, David J. Riddoch, Derek Roberts
  • Patent number: 10491400
    Abstract: A NIC is provided in a cloud infrastructure. The NIC has a first information which receives least one application message from an application supported by the infrastructure. The NIC digitally signs the application message and outputs the digitally signed message to a network.
    Type: Grant
    Filed: August 23, 2016
    Date of Patent: November 26, 2019
    Assignee: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steven L. Pope, David J. Riddoch
  • Publication number: 20190303209
    Abstract: A data processing system being configured to select between different hardware resources for the running of an application configured for the sending and receiving of data over a network. The selection of hardware resources may be between resources on the network interface device, and hardware resources on the host. The selection of hardware resources may be between first and second hardware resources on the network interface device. An API is provided in the data processing system that responds to requests from the application irrespective of the hardware on which the application is executing.
    Type: Application
    Filed: March 29, 2018
    Publication date: October 3, 2019
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steven L. Pope, David J. Riddoch, Derek Roberts
  • Publication number: 20190273814
    Abstract: Data is received at a buffer used by a protocol processing stack which protocol processes the received data. The received data is made available to, for example, an application, before the protocol processing of the data is complete. If the protocol processing is successful the data made available to the application is committed.
    Type: Application
    Filed: May 20, 2019
    Publication date: September 5, 2019
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steve Pope, Kieran Mansley, Sian James, David J. Riddoch
  • Patent number: 10394751
    Abstract: A data processing system and method are provided. A host computing device comprises at least one processor. A network interface device is arranged to couple the host computing device to a network. The network interface device comprises a buffer for receiving data for transmission from the host computing device. The processor is configured to execute instructions to transfer the data for transmission to the buffer. The data processing system further comprises an indicator store configured to store an indication that at least some of the data for transmission has been transferred to the buffer wherein the indication is associated with a descriptor pointing to the buffer.
    Type: Grant
    Filed: November 6, 2013
    Date of Patent: August 27, 2019
    Assignee: Solarflare Communications, Inc.
    Inventors: Steven L. Pope, David J. Riddoch, Dmitri Kitariev
  • Patent number: 10382248
    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: June 1, 2017
    Date of Patent: August 13, 2019
    Assignee: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steven L. Pope, David J. Riddoch
  • Publication number: 20190190982
    Abstract: A network interface device having an FPGA for providing an FPGA application. A first interface between a host computing device and the FPGA application is provided, allowing the FPGA application to make use of data-path operations provided by a transport engine on the network interface device, as well as communicate with the host. The FPGA application sends and receives data with the host via a memory that is memory mapped to a shared memory location in the host computing device, whilst the transport engine sends and receives data packets with the host via a second memory. A second interface is provided to interface the FPGA application and transport engine with the network, wherein the second interface is configured to back-pressure the transport engine.
    Type: Application
    Filed: December 19, 2017
    Publication date: June 20, 2019
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steven L. Pope, Derek Roberts, David J. Riddoch
  • Publication number: 20190190853
    Abstract: Roughly described: a network interface device has an interface. The interface is coupled to first network interface device circuitry, host interface circuitry and host offload circuitry. The host interface circuitry is configured to interface to a host device and has a scheduler configured to schedule providing and/or receiving of data to/from the host device. The interface is configured to allow at least one of: data to be provided to said host interface circuitry from at least one of said first network device interface circuitry and said host offload circuitry; and data to be provided from said host interface circuitry to at least one of said first network interface device circuitry and said host offload circuitry.
    Type: Application
    Filed: December 19, 2018
    Publication date: June 20, 2019
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steven L. Pope, Derek Roberts, David J. Riddoch, Dmitri Kitariev
  • Publication number: 20190146855
    Abstract: A data processing system comprising: an operating system providing an application programming interface; an application supported by the operating system and operable to make calls to the application programming interface; an intercept library configured to intercept calls of a predetermined set of call types made by the application to the application programming interface; and a configuration data structure defining at least one action to be performed for each of a plurality of sequences of one or more calls having predefined characteristics, the one or more calls being of the predetermined set of call types; wherein the intercept library is configured to, on intercepting a sequence of one or more calls defined in the configuration data structure, perform the corresponding action(s) defined by the configuration data structure.
    Type: Application
    Filed: January 15, 2019
    Publication date: May 16, 2019
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steven L. Pope, David J. Riddoch, Kieran Mansley