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

  • Publication number: 20150200866
    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, 2015
    Publication date: July 16, 2015
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: STEVEN L. POPE, DAVID RIDDOCH, DMITRI KITARIEV
  • 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: 20150169496
    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: February 23, 2015
    Publication date: June 18, 2015
    Inventor: Steven L. Pope
  • Publication number: 20150161064
    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: February 23, 2015
    Publication date: June 11, 2015
    Inventor: Steven L. Pope
  • 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: 9008113
    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: Grant
    Filed: March 24, 2011
    Date of Patent: April 14, 2015
    Assignee: Solarflare Communications, Inc.
    Inventors: Steven L. Pope, David 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: 8996644
    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: Grant
    Filed: December 9, 2010
    Date of Patent: March 31, 2015
    Assignee: Solarflare Communications, Inc.
    Inventor: Steven L. Pope
  • 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: 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
  • 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
  • Publication number: 20140233571
    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: April 24, 2014
    Publication date: August 21, 2014
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steven L. Pope, David Riddoch, Dimitri Kitariev, Derek Roberts
  • 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
  • Patent number: 8743877
    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: Grant
    Filed: January 12, 2010
    Date of Patent: June 3, 2014
    Inventors: Steven L. Pope, David Riddoch, Dimitri Kitariev, 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
  • Patent number: 8489761
    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: Grant
    Filed: July 9, 2007
    Date of Patent: July 16, 2013
    Assignee: Solarflare Communications, Inc.
    Inventors: Steven L. Pope, David J. Riddoch
  • Publication number: 20130111059
    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: Application
    Filed: December 19, 2012
    Publication date: May 2, 2013
    Inventors: Steven L. Pope, David J. Riddoch