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: 9391841Abstract: 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: GrantFiled: March 7, 2013Date of Patent: July 12, 2016Assignee: SOLARFLARE COMMUNICATIONS, INC.Inventor: Steve L. Pope
-
Patent number: 9391840Abstract: 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: GrantFiled: March 7, 2013Date of Patent: July 12, 2016Assignee: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steve L. Pope, David J. Riddoch, Kieran Mansley
-
Publication number: 20160156512Abstract: 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: ApplicationFiled: February 8, 2016Publication date: June 2, 2016Applicant: SOLARFLARE COMMUNICATIONS, INC.Inventor: Steve L. Pope
-
Patent number: 9300599Abstract: 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: GrantFiled: May 30, 2014Date of Patent: March 29, 2016Assignee: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steve L. Pope, David J. Riddoch, Martin Porter
-
Patent number: 9043671Abstract: 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: GrantFiled: March 21, 2011Date of Patent: May 26, 2015Assignee: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steve L. Pope, Derek Roberts, David Riddoch, David Clarke
-
Patent number: 8959095Abstract: 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: GrantFiled: June 16, 2011Date of Patent: February 17, 2015Assignee: Solarflare Communications, Inc.Inventors: Steve L. Pope, Derek Roberts, David J. Riddoch, Ching Yu, John Mingyung Chiang, Der-Ren Chu
-
Patent number: 8930557Abstract: 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: GrantFiled: March 3, 2004Date of Patent: January 6, 2015Assignee: Solarflare Communications, Inc.Inventors: Steve L. Pope, Derek Roberts, David J. Riddoch, David Clarke
-
Publication number: 20140355613Abstract: 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: ApplicationFiled: May 30, 2014Publication date: December 4, 2014Applicant: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steve L. Pope, David J. Riddoch, Martin Porter
-
Publication number: 20140310405Abstract: 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: ApplicationFiled: March 31, 2014Publication date: October 16, 2014Applicant: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steve L. Pope, David J. Riddoch
-
Publication number: 20140304802Abstract: 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: ApplicationFiled: January 27, 2014Publication date: October 9, 2014Applicant: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steve L. Pope, Derek Roberts, David J. Riddoch
-
Publication number: 20140304803Abstract: 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: ApplicationFiled: April 8, 2014Publication date: October 9, 2014Applicant: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steve L. Pope, Derek Roberts, David J. Riddoch
-
Publication number: 20140105208Abstract: 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: ApplicationFiled: March 7, 2013Publication date: April 17, 2014Applicant: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steve L. Pope, David J. Riddoch
-
Publication number: 20140059221Abstract: 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: ApplicationFiled: February 12, 2013Publication date: February 27, 2014Applicant: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steve L. Pope, David J. Riddoch, Ching Yu, Derek Roberts
-
Publication number: 20140012961Abstract: 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: ApplicationFiled: March 7, 2013Publication date: January 9, 2014Applicant: SOLARFLARE COMMUNICATIONS, INC.Inventor: Steve L. Pope
-
Publication number: 20130297774Abstract: 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: ApplicationFiled: March 7, 2013Publication date: November 7, 2013Applicant: SOLARFARE COMMUNICATIONS, INC.Inventors: Steve L. Pope, David J. Riddoch, Kieran Mansley
-
Publication number: 20130145035Abstract: 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: ApplicationFiled: January 30, 2013Publication date: June 6, 2013Applicant: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steve L. Pope, Davis J. Riddoch
-
Patent number: 8380882Abstract: 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: GrantFiled: November 4, 2009Date of Patent: February 19, 2013Assignee: Solarflare Communications, Inc.Inventors: Steve L. Pope, David J. Riddoch, Ching Yu, Derek Roberts
-
Publication number: 20110264758Abstract: 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 meansType: ApplicationFiled: June 30, 2011Publication date: October 27, 2011Applicant: SOLARFLARE COMMUNICATIONS, INC.Inventors: STEVE L. POPE, DAVID J. RIDDOCH
-
Publication number: 20110246489Abstract: 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: ApplicationFiled: June 16, 2011Publication date: October 6, 2011Applicant: SOLARFLARE COMMUNICATIONS, INC.Inventors: Steve L. Pope, Derek Roberts, David J. Riddoch, Ching Yu, John Mingyung Chiang, Der-Ren Chu
-
Patent number: 8005916Abstract: 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 meansType: GrantFiled: April 21, 2005Date of Patent: August 23, 2011Assignee: Solarflare Communications, Inc.Inventors: Steve L. Pope, David J. Riddoch