Patents by Inventor Steve L. Pope

Steve 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: 9391841
    Abstract: A data processing system comprising: first and second network ports each operable to support a network connection configured according to one or more of a predetermined set of physical layer protocols; and a processor configured to, on a network message being formed for transmission to a network endpoint accessible over either of the first and second network ports: estimate the total time required to, for each of the predetermined set of physical layer protocols, negotiate a respective network connection and transmit the entire network message over that respective network connection; select the physical layer protocol having the lowest estimate of the total time required to negotiate a respective network connection and transmit the network message over that respective network connection; and configure at least one of the first and second network ports to use the selected physical layer protocol.
    Type: Grant
    Filed: March 7, 2013
    Date of Patent: July 12, 2016
    Assignee: SOLARFLARE COMMUNICATIONS, INC.
    Inventor: Steve L. Pope
  • Patent number: 9391840
    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: Grant
    Filed: March 7, 2013
    Date of Patent: July 12, 2016
    Assignee: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steve L. Pope, David J. Riddoch, Kieran Mansley
  • Publication number: 20160156512
    Abstract: A data processing system comprising: first and second network ports each operable to support a network connection configured according to one or more of a predetermined set of physical layer protocols; and a processor configured to, on a network message being formed for transmission to a network endpoint accessible over either of the first and second network ports: estimate the total time required to, for each of the predetermined set of physical layer protocols, negotiate a respective network connection and transmit the entire network message over that respective network connection; select the physical layer protocol having the lowest estimate of the total time required to negotiate a respective network connection and transmit the network message over that respective network connection; and configure at least one of the first and second network ports to use the selected physical layer protocol.
    Type: Application
    Filed: February 8, 2016
    Publication date: June 2, 2016
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventor: Steve L. Pope
  • Patent number: 9300599
    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: Grant
    Filed: May 30, 2014
    Date of Patent: March 29, 2016
    Assignee: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steve L. Pope, David J. Riddoch, Martin Porter
  • Patent number: 9043671
    Abstract: A method of transmitting data according to a data transmission protocol wherein the data is transmitted as a plurality of data frames and each data frame includes an error checking field comprising at least two sub-fields, the data of the first sub-field being formed by a first error checking method performed on data of the frame and the data of the second sub-field being formed by a second error checking method performed on the said data of the frame, the first and second methods being such that the data of the first sub-field has different error checking properties from those of the data of the second sub-field.
    Type: Grant
    Filed: March 21, 2011
    Date of Patent: May 26, 2015
    Assignee: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steve L. Pope, Derek Roberts, David Riddoch, David Clarke
  • 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: 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: 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
  • 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: 20140012961
    Abstract: A data processing system comprising: first and second network ports each operable to support a network connection configured according to one or more of a predetermined set of physical layer protocols; and a processor configured to, on a network message being formed for transmission to a network endpoint accessible over either of the first and second network ports: estimate the total time required to, for each of the predetermined set of physical layer protocols, negotiate a respective network connection and transmit the entire network message over that respective network connection; select the physical layer protocol having the lowest estimate of the total time required to negotiate a respective network connection and transmit the network message over that respective network connection; and configure at least one of the first and second network ports to use the selected physical layer protocol.
    Type: Application
    Filed: March 7, 2013
    Publication date: January 9, 2014
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventor: Steve L. Pope
  • 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
  • Publication number: 20130145035
    Abstract: A data processing system comprising: a host processing device supporting a host transport engine operable to establish one or more transport streams over a network with a remote peer, the host transport engine maintaining state for each transport stream; and device hardware comprising: a device application; a device transport engine operable to perform transport processing of a transport stream on behalf of the device application; wherein the host transport engine is configured to, on establishing a first transport stream for termination at the device application, pass sufficient state to the device transport engine so as to permit the device transport engine to perform transport processing of the first transport stream.
    Type: Application
    Filed: January 30, 2013
    Publication date: June 6, 2013
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steve L. Pope, Davis J. Riddoch
  • Patent number: 8380882
    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: Grant
    Filed: November 4, 2009
    Date of Patent: February 19, 2013
    Assignee: Solarflare Communications, Inc.
    Inventors: Steve L. Pope, David J. Riddoch, Ching Yu, Derek Roberts
  • Publication number: 20110264758
    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: Application
    Filed: June 30, 2011
    Publication date: October 27, 2011
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: STEVE L. POPE, DAVID J. RIDDOCH
  • Publication number: 20110246489
    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: June 16, 2011
    Publication date: October 6, 2011
    Applicant: SOLARFLARE COMMUNICATIONS, INC.
    Inventors: Steve L. Pope, Derek Roberts, David J. Riddoch, Ching Yu, John Mingyung Chiang, Der-Ren Chu
  • Patent number: 8005916
    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: April 21, 2005
    Date of Patent: August 23, 2011
    Assignee: Solarflare Communications, Inc.
    Inventors: Steve L. Pope, David J. Riddoch