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: 8423639Abstract: 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: GrantFiled: October 7, 2010Date of Patent: April 16, 2013Assignee: Solarflare Communications, Inc.Inventors: Steven L. Pope, David Riddoch
-
Publication number: 20130080567Abstract: 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 networkType: ApplicationFiled: November 7, 2012Publication date: March 28, 2013Applicant: SOLARFLARE COMMUNICATIONS, INC.Inventor: Steven L. Pope
-
Publication number: 20130080651Abstract: 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: ApplicationFiled: September 21, 2012Publication date: March 28, 2013Inventors: Steven L. Pope, David J. Riddoch
-
Publication number: 20130055287Abstract: 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: ApplicationFiled: October 27, 2011Publication date: February 28, 2013Applicant: SOLARFLARE COMMUNICATIONS, INC.Inventors: STEVEN L. POPE, DAVID J. RIDDOCH, Kieran Mansley
-
Publication number: 20130031268Abstract: 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: October 27, 2011Publication date: January 31, 2013Applicant: SOLARFLARE COMMUNICATIONS, INC.Inventors: STEVEN L. POPE, DAVID J. RIDDOCH, Kieran Mansley
-
Publication number: 20120254893Abstract: 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: ApplicationFiled: June 10, 2011Publication date: October 4, 2012Applicant: SOLARFLARE COMMUNICATIONS, INC.Inventors: STEVEN L. POPE, DAVID J. RIDDOCH
-
Publication number: 20120155256Abstract: 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 poType: ApplicationFiled: March 24, 2011Publication date: June 21, 2012Applicant: SOLARFLARE COMMUNICATIONS, INC.Inventors: STEVEN L. POPE, DAVID RIDDOCH, DMITRI KITARIEV
-
Publication number: 20120151004Abstract: 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 hostType: ApplicationFiled: December 9, 2010Publication date: June 14, 2012Applicant: SOLARFLARE COMMUNICATIONS, INC.Inventor: Steven L. Pope
-
Publication number: 20120113987Abstract: 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: ApplicationFiled: January 10, 2012Publication date: May 10, 2012Applicant: SOLARFLARE COMMUNICATIONS, INC.Inventors: David J. Riddoch, Martin W. Porter, Steven L. Pope
-
Patent number: 8131895Abstract: 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: GrantFiled: April 5, 2010Date of Patent: March 6, 2012Assignee: Solarflare Communications, Inc.Inventors: Steven L. Pope, David Riddoch, Ching Yu, Derek Roberts
-
Patent number: 8116312Abstract: 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: GrantFiled: February 8, 2006Date of Patent: February 14, 2012Assignee: Solarflare Communications, Inc.Inventors: David J. Riddoch, Martin W. Porter, Steven L. Pope
-
Publication number: 20110202983Abstract: 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: ApplicationFiled: August 17, 2010Publication date: August 18, 2011Applicant: SOLARFLARE COMMUNICATIONS INCORPORATEDInventors: Steven L. Pope, David Riddoch
-
Publication number: 20110149966Abstract: 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: ApplicationFiled: January 12, 2010Publication date: June 23, 2011Applicant: SOLARFLARE COMMUNICATIONS INCInventors: Steven L. Pope, David Riddoch, Dimitri Kitariev, Derek Roberts
-
Publication number: 20110087774Abstract: 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: ApplicationFiled: October 7, 2010Publication date: April 14, 2011Applicant: SOLARFLARE COMMUNICATIONS INCInventors: STEVEN L. POPE, DAVID RIDDOCH
-
Publication number: 20110029734Abstract: 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: ApplicationFiled: January 14, 2010Publication date: February 3, 2011Applicant: SOLARFLARE COMMUNICATIONS INCInventors: Steven L. Pope, David Riddoch, Derek Roberts
-
Publication number: 20100135324Abstract: 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: October 18, 2007Publication date: June 3, 2010Applicant: SOLARFLARE COMMUNICATIONS INC.Inventors: Steven L. Pope, David J. Riddoch
-
Publication number: 20100057932Abstract: 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 traType: ApplicationFiled: July 9, 2007Publication date: March 4, 2010Applicant: SOLARFLARE COMMUNICATIONS INCORPORATEDInventors: Steven L. Pope, David J. Riddoch