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: 9083539
    Abstract: Roughly described, incoming data packets are delivered by the NIC directly to at least two user level endpoints. In an aspect, only filters that cannot be ambiguous are created in the NIC. In another aspect, the NIC maintains a filter table supporting direct delivery of incoming unicast and multicast data packets to one user level endpoint. Additional requests to join the same multicast group cause replacement of the NIC filter with one in the kernel. In another aspect, a NIC has limited capacity to maintain multicast group memberships. In response to a new multicast filter request, the kernel establishes it in the NIC only if the NIC still has sufficient capacity; otherwise it is established in the kernel.
    Type: Grant
    Filed: August 19, 2014
    Date of Patent: July 14, 2015
    Assignee: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: David J. Riddoch, Martin Porter, Steven L. Pope
  • Patent number: 9077751
    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: October 18, 2007
    Date of Patent: July 7, 2015
    Assignee: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steven L. Pope, David J. Riddoch
  • Publication number: 20150142832
    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: Application
    Filed: January 30, 2015
    Publication date: May 21, 2015
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steven L. Pope, Derek Roberts, David J. Riddoch, Yu Ching, John Mingyung Chiang, Der-Ren Chu
  • Publication number: 20150127763
    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: November 6, 2013
    Publication date: May 7, 2015
    Applicant: Solarflare Communications, Inc.
    Inventors: Steven L. Pope, David J. Riddoch, Dmitri Kitariev
  • Patent number: 9003053
    Abstract: A data processing system comprising: a host computing device supporting an operating system and a network protocol stack, the network protocol stack being operable to support one or more transport streams by performing transport stream protocol processing of data packets received over the streams; a network interface device arranged to couple the host computing device to a network and operable to receive data packets over a transport stream supported by the network protocol stack; and a message engine configured to perform upper layer protocol processing; wherein the network interface device is configured to, on receiving a data packet over one of a predetermined set of transport streams, pass the payload data of the data packet to the message engine and the message engine is configured to, in response to receiving the payload data, identify and process any upper layer messages in the payload data in accordance with the upper layer protocol.
    Type: Grant
    Filed: September 21, 2012
    Date of Patent: April 7, 2015
    Assignee: Solarflare Communications, Inc.
    Inventors: Steven L. Pope, David J. Riddoch
  • Patent number: 8959095
    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: June 16, 2011
    Date of Patent: February 17, 2015
    Assignee: Solarflare Communications, Inc.
    Inventors: Steve L. Pope, Derek Roberts, David J. Riddoch, Ching Yu, John Mingyung Chiang, Der-Ren Chu
  • Patent number: 8930557
    Abstract: A method for forming data received from a data source into frames for transmission over a data link according to a protocol in which data is carried as data frames and in which once transmission of the data frame begun the entirety of the data frame must be transmitted at no less than a pre-set data rate, the method comprising: including in a frame traffic data formed from data received for transmission from the data source, and if insufficient data received for transmission from the data source is available to transmit the frame at the pre-set data rate, including in the frame padding data, the padding data being of a predetermined format distinguishable from the traffic data.
    Type: Grant
    Filed: March 3, 2004
    Date of Patent: January 6, 2015
    Assignee: Solarflare Communications, Inc.
    Inventors: Steve L. Pope, Derek Roberts, David J. Riddoch, David Clarke
  • Publication number: 20140355606
    Abstract: Roughly described, incoming data packets are delivered by the NIC directly to at least two user level endpoints. In an aspect, only filters that cannot be ambiguous are created in the NIC. In another aspect, the NIC maintains a filter table supporting direct delivery of incoming unicast and multicast data packets to one user level endpoint. Additional requests to join the same multicast group cause replacement of the NIC filter with one in the kernel. In another aspect, a NIC has limited capacity to maintain multicast group memberships. In response to a new multicast filter request, the kernel establishes it in the NIC only if the NIC still has sufficient capacity; otherwise it is established in the kernel.
    Type: Application
    Filed: August 19, 2014
    Publication date: December 4, 2014
    Inventors: David J. Riddoch, Martin Porter, Steven L. Pope
  • Publication number: 20140355613
    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: Application
    Filed: May 30, 2014
    Publication date: December 4, 2014
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steve L. Pope, David J. Riddoch, Martin Porter
  • Publication number: 20140310405
    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: March 31, 2014
    Publication date: October 16, 2014
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steve L. Pope, David J. Riddoch
  • Publication number: 20140304719
    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: April 10, 2014
    Publication date: October 9, 2014
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steven L. Pope, David J. Riddoch, Kieran Mansley
  • Publication number: 20140304802
    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. A packet inspector is configured to inspect the intercepted data flow and identify from the data store a compliance rule associated with the inspected data flow. A packet filter is configured to, when the data flow is identified as being associated with a compliance rule, carry out an action with respect to the data flow corresponding to the compliance rule.
    Type: Application
    Filed: January 27, 2014
    Publication date: October 9, 2014
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steve L. Pope, Derek Roberts, David J. Riddoch
  • Publication number: 20140304803
    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: April 8, 2014
    Publication date: October 9, 2014
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steve L. Pope, Derek Roberts, David J. Riddoch
  • Patent number: 8817784
    Abstract: Roughly described, incoming data packets are delivered by the NIC directly to at least two user level endpoints. In an aspect, only filters that cannot be ambiguous are created in the NIC. In another aspect, the NIC maintains a filter table supporting direct delivery of incoming unicast and multicast data packets to one user level endpoint. Additional requests to join the same multicast group cause replacement of the NIC filter with one in the kernel. In another aspect, a NIC has limited capacity to maintain multicast group memberships. In response to a new multicast filter request, the kernel establishes it in the NIC only if the NIC still has sufficient capacity; otherwise it is established in the kernel.
    Type: Grant
    Filed: January 10, 2012
    Date of Patent: August 26, 2014
    Assignee: Solarflare Communications, Inc.
    Inventors: David J. Riddoch, Martin W. Porter, Steven L. Pope
  • Patent number: 8763018
    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: Grant
    Filed: October 27, 2011
    Date of Patent: June 24, 2014
    Assignee: Solarflare Communications, Inc.
    Inventors: Steven L. Pope, David J. Riddoch, Kieran Mansley
  • Publication number: 20140105208
    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: March 7, 2013
    Publication date: April 17, 2014
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steve L. Pope, David J. Riddoch
  • Publication number: 20140059221
    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: Application
    Filed: February 12, 2013
    Publication date: February 27, 2014
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steve L. Pope, David J. Riddoch, Ching Yu, Derek Roberts
  • Publication number: 20140012980
    Abstract: A method for use in a data processing system connected to a network in accordance with a data transfer protocol, the data processing system having one or more event queues for holding network events, and being capable of responding to interrupts issued in response to the presence of a network event in the data processing system by invoking a stack to cause processing in accordance with the data transfer protocol of network events on the event queues; the method comprising: deciding whether to permit the interrupts to be enabled, in dependence on the result of a determination as to the presence of current indications that the stack will be invoked by an entity in the data processing system to cause processing in accordance with the data transfer protocol of network events on the event queues.
    Type: Application
    Filed: December 20, 2012
    Publication date: January 9, 2014
    Inventors: Steven L. Pope, David J. Riddoch
  • Patent number: 8612536
    Abstract: A method for transmitting data by means of a data processing system, the system being capable of supporting an operating system and at least one application and having access to a memory and a network interface device capable of supporting a communication link over a network with another network interface device, the method comprising the steps of: forming by means of the application data to be transmitted; requesting by means of the application a non-operating-system functionality of the data processing system to send the data to be transmitted; responsive to that request: writing the data to be transmitted to an area of the memory; and initiating by means of direct communication between the non-operating-system functionality and the network interface device a transmission operation of at least some of the data over the network; and subsequently accessing the memory by means of the operating system and performing at least part of a transmission operation of at least some of the data over the network by means
    Type: Grant
    Filed: June 30, 2011
    Date of Patent: December 17, 2013
    Assignee: Solarflare Communications, Inc.
    Inventors: Steven L. Pope, David J. Riddoch
  • Publication number: 20130297774
    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: Application
    Filed: March 7, 2013
    Publication date: November 7, 2013
    Applicant: SOLARFARE COMMUNICATIONS, INC.
    Inventors: Steve L. Pope, David J. Riddoch, Kieran Mansley