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: 20170187605Abstract: 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: ApplicationFiled: December 20, 2016Publication date: June 29, 2017Applicant: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steven L. Pope, David J. Riddoch, Derek Roberts
-
Patent number: 9686117Abstract: 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: GrantFiled: December 19, 2012Date of Patent: June 20, 2017Assignee: Solarflare Communications, Inc.Inventors: Steven L. Pope, David J. Riddoch
-
Patent number: 9674318Abstract: 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: GrantFiled: March 31, 2014Date of Patent: June 6, 2017Assignee: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steve L. Pope, David J. Riddoch
-
Patent number: 9594842Abstract: 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: GrantFiled: January 30, 2015Date of Patent: March 14, 2017Assignee: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steven L. Pope, Derek Roberts, David J. Riddoch, Ching Yu, John Mingyung Chiang, Der-Ren Chu
-
Publication number: 20170026497Abstract: 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: ApplicationFiled: October 6, 2016Publication date: January 26, 2017Applicant: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steve L. Pope, David J. Riddoch
-
Publication number: 20160373561Abstract: 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: ApplicationFiled: August 31, 2016Publication date: December 22, 2016Applicant: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steven L. Pope, David J. Riddoch, Kieran Mansley
-
Publication number: 20160357793Abstract: 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: ApplicationFiled: June 3, 2015Publication date: December 8, 2016Applicant: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steven L. Pope, David J. Riddoch
-
Publication number: 20160357796Abstract: 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: ApplicationFiled: June 26, 2015Publication date: December 8, 2016Applicant: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steven L. Pope, David J. Riddoch, Matthew Knight
-
Publication number: 20160352687Abstract: 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: ApplicationFiled: August 8, 2016Publication date: December 1, 2016Applicant: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steve L. Pope, Derek Roberts, David J. Riddoch
-
Patent number: 9456060Abstract: 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: GrantFiled: February 5, 2016Date of Patent: September 27, 2016Assignee: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steven L. Pope, David J. Riddoch, Kieran Mansley
-
Publication number: 20160277447Abstract: 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: ApplicationFiled: March 17, 2015Publication date: September 22, 2016Applicant: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steven L. Pope, David J. Riddoch, Derek Roberts
-
Patent number: 9426124Abstract: 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: GrantFiled: April 8, 2014Date of Patent: August 23, 2016Assignee: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steve L. Pope, Derek Roberts, David J. Riddoch
-
Patent number: 9391840Abstract: 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: GrantFiled: March 7, 2013Date of Patent: July 12, 2016Assignee: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steve L. Pope, David J. Riddoch, Kieran Mansley
-
Patent number: 9384071Abstract: 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: GrantFiled: June 10, 2011Date of Patent: July 5, 2016Assignee: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steven L. Pope, David J. Riddoch
-
Publication number: 20160162330Abstract: 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: ApplicationFiled: February 12, 2016Publication date: June 9, 2016Applicant: SOLARFLARE COMMUNICATIONS, INC.Inventors: STEVEN L. POPE, DAVID J. RIDDOCH
-
Publication number: 20160156749Abstract: 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: ApplicationFiled: February 5, 2016Publication date: June 2, 2016Applicant: SOLARFLARE COMMUNICATIONS, INC.Inventors: STEVEN L. POPE, DAVID J. RIDDOCH, KIERAN MANSLEY
-
Patent number: 9300599Abstract: 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: GrantFiled: May 30, 2014Date of Patent: March 29, 2016Assignee: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steve L. Pope, David J. Riddoch, Martin Porter
-
Patent number: 9258390Abstract: 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: GrantFiled: October 27, 2011Date of Patent: February 9, 2016Assignee: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steven L. Pope, David J. Riddoch, Kieran Mansley
-
Patent number: 9225807Abstract: 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 transmissionType: GrantFiled: April 29, 2015Date of Patent: December 29, 2015Assignee: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steven L. Pope, David J. Riddoch
-
Publication number: 20150237176Abstract: 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 transmissionType: ApplicationFiled: April 29, 2015Publication date: August 20, 2015Applicant: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steven L. POPE, David J. RIDDOCH