Patents by Inventor Steven L. Pope

Steven L. Pope 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: 8423639
    Abstract: A network interface device for a data processing system comprising: one or more network connection ports for connection to a network; a routing table supported at a memory of the network interface device; a controller operable to modify the routing table; and a control plane interface of the controller arranged to receive routing table update instructions carried in one or more control packets received at the said ports; wherein the control plane interface is configured to, on receiving a routing table update instruction, cause the controller to update the routing table in accordance with the routing table update instruction.
    Type: Grant
    Filed: October 7, 2010
    Date of Patent: April 16, 2013
    Assignee: Solarflare Communications, Inc.
    Inventors: Steven L. Pope, David Riddoch
  • Publication number: 20130080567
    Abstract: A data processing system comprising: a host computer system supporting a software entity and a receive queue for the software entity; a network interface device having a controller unit configured to provide a data port for receiving data packets from a network and a data bus interface for connection to a host computer system, the network interface device being connected to the host computer system by means of the data bus interface; and an accelerator module arranged between the controller unit and a network and having a first medium access controller for connection to the network and a second medium access controller coupled to the data port of the controller unit, the accelerator module being configured to: on behalf of the software entity, process incoming data packets received from the network in one or more streams associated with a first set of one or more network endpoints; encapsulate data resulting from said processing in network data packets directed to the software entity; and deliver the network
    Type: Application
    Filed: November 7, 2012
    Publication date: March 28, 2013
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventor: Steven L. Pope
  • Publication number: 20130080651
    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: Application
    Filed: September 21, 2012
    Publication date: March 28, 2013
    Inventors: Steven L. Pope, David J. Riddoch
  • Publication number: 20130055287
    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: October 27, 2011
    Publication date: February 28, 2013
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: STEVEN L. POPE, DAVID J. RIDDOCH, Kieran Mansley
  • Publication number: 20130031268
    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: October 27, 2011
    Publication date: January 31, 2013
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: STEVEN L. POPE, DAVID J. RIDDOCH, Kieran Mansley
  • Publication number: 20120254893
    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: Application
    Filed: June 10, 2011
    Publication date: October 4, 2012
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: STEVEN L. POPE, DAVID J. RIDDOCH
  • Publication number: 20120155256
    Abstract: A network interface device for connection between a network and a data processing system, the network interface device comprising: an I/O interface for connection to a data processing system; a set of physical data ports for connection to a network; a unified memory comprising a plurality of buffers; a plurality of ingress ports operable to receive data packets for buffering at the unified memory, a first subset of the plurality of ingress ports being configured to receive data packets on a transmit path from said I/O interface, and a second subset of the plurality of ingress ports being configured to receive data packets on a receive path from said set of physical data ports; a memory manager configured to store representations of a plurality of virtual queues held in the unified memory, each virtual queue being a linked logical sequence of buffers of the unified memory; and an ingress interface configured to service the ingress ports in a predetermined order and write data packets received at the ingress po
    Type: Application
    Filed: March 24, 2011
    Publication date: June 21, 2012
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: STEVEN L. POPE, DAVID RIDDOCH, DMITRI KITARIEV
  • Publication number: 20120151004
    Abstract: A data processing system comprising a host computer system and a network interface device for connection to a network, the host computer system and network interface device being coupled together by means of a data bus, and: the network interface device comprising: a controller unit having a first data port for connection to a network, a second data port, and a data bus interface connected to said data bus, the controller unit being operable to perform, in dependence on the network endpoints to which data packets received at the network interface device are directed, switching of data packets between the first and second data ports and the data bus interface; and an accelerator module having a first medium access controller coupled to said second data port of the controller unit and a processor operable to perform one or more functions in hardware on data packets received at the accelerator module, the said first medium access controller being operable to support one or more first network endpoints; the host
    Type: Application
    Filed: December 9, 2010
    Publication date: June 14, 2012
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventor: Steven L. Pope
  • Publication number: 20120113987
    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: January 10, 2012
    Publication date: May 10, 2012
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: David J. Riddoch, Martin W. Porter, Steven L. Pope
  • Patent number: 8131895
    Abstract: Method of managing interaction between a host subsystem and a peripheral device. Roughly described, the peripheral device writes an event into an individual event queue, and in conjunction therewith, also writes a wakeup event into an intermediary event queue. The wakeup event identifies the individual event queue. The host subsystem, in response to retrieval of the wakeup event from the intermediary event queue, activates an individual event handler to consume events from the individual event queue.
    Type: Grant
    Filed: April 5, 2010
    Date of Patent: March 6, 2012
    Assignee: Solarflare Communications, Inc.
    Inventors: Steven L. Pope, David Riddoch, Ching Yu, Derek Roberts
  • Patent number: 8116312
    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: February 8, 2006
    Date of Patent: February 14, 2012
    Assignee: Solarflare Communications, Inc.
    Inventors: David J. Riddoch, Martin W. Porter, Steven L. Pope
  • Publication number: 20110202983
    Abstract: A network interface device providing a set of functions in hardware and being operable in first and second modes: in a first mode, the network interface device being configured to operate with a selected configuration of the set of functions; and in a second mode, the network interface device being operable to select a particular configuration of the set of functions in accordance with configuration instructions received at the network interface device; the network interface device being configured to, on receiving a network message having one or more predetermined characteristics and comprising an authentication key and one or more configuration instructions defining a particular configuration of the set of functions: verify the authentication key; and if the authentication key is successfully verified, select the particular configuration of the set of functions defined in the configuration instructions of the network message.
    Type: Application
    Filed: August 17, 2010
    Publication date: August 18, 2011
    Applicant: SOLARFLARE COMMUNICATIONS INCORPORATED
    Inventors: Steven L. Pope, David Riddoch
  • Publication number: 20110149966
    Abstract: Roughly described, a header processing engine for a network interface device has a header recognizer to parse the headers of a data packet stored at a buffer to identify the type and position of each header in the packet; a constructor unit; and a processor including an execution pipeline. The header recognizer is configured to, for each header: select in dependence on the header type commands stored at a command memory; and form one or more messages for the constructor unit identifying the selected commands and the position of the header in the data packet. The commands selected for the packet headers are collectively such as to, if executed by the constructor unit, cause the constructor unit to generate a data structure which operates to cause the processor to process of the packet headers without accessing the data packet at the buffer.
    Type: Application
    Filed: January 12, 2010
    Publication date: June 23, 2011
    Applicant: SOLARFLARE COMMUNICATIONS INC
    Inventors: Steven L. Pope, David Riddoch, Dimitri Kitariev, Derek Roberts
  • Publication number: 20110087774
    Abstract: A network interface device for a data processing system comprising: one or more network connection ports for connection to a network; a routing table supported at a memory of the network interface device; a controller operable to modify the routing table; and a control plane interface of the controller arranged to receive routing table update instructions carried in one or more control packets received at the said ports; wherein the control plane interface is configured to, on receiving a routing table update instruction, cause the controller to update the routing table in accordance with the routing table update instruction.
    Type: Application
    Filed: October 7, 2010
    Publication date: April 14, 2011
    Applicant: SOLARFLARE COMMUNICATIONS INC
    Inventors: STEVEN L. POPE, DAVID RIDDOCH
  • Publication number: 20110029734
    Abstract: Roughly described, a data processing system comprises a central processing unit and a split network interface functionality, the split network interface functionality comprising: a first sub-unit collocated with the central processing unit and configured to at least partially form a series of network data packets for transmission to a network endpoint by generating data link layer information for each of those packets; and a second sub-unit external to the central processing unit and coupled to the central processing unit via an interconnect, the second sub-unit being configured to physically signal the series of network data packets over a network.
    Type: Application
    Filed: January 14, 2010
    Publication date: February 3, 2011
    Applicant: SOLARFLARE COMMUNICATIONS INC
    Inventors: Steven L. Pope, David Riddoch, Derek Roberts
  • Publication number: 20100135324
    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: October 18, 2007
    Publication date: June 3, 2010
    Applicant: SOLARFLARE COMMUNICATIONS INC.
    Inventors: Steven L. Pope, David J. Riddoch
  • Publication number: 20100057932
    Abstract: A method for transmitting data by means of a data processing system, the system 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 user-mode operating system functionality of the data processing system to direct the data to be transmitted, the request including an indication of a protocol by which the data is to be transmitted; responsive to that request, the user-mode operating system functionality selecting a protocol processing entity in accordance with the indication of a protocol by which the data is to be transmitted; forming within the context of the application by means of the protocol processing entity the data into packets for transmission in accordance with the protocol by which the data is to be tra
    Type: Application
    Filed: July 9, 2007
    Publication date: March 4, 2010
    Applicant: SOLARFLARE COMMUNICATIONS INCORPORATED
    Inventors: Steven L. Pope, David J. Riddoch