Patents by Inventor Daniel Firestone

Daniel Firestone 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: 10437775
    Abstract: Distributed computing systems, devices, and associated methods of remote direct memory access (“RDMA”) packet routing are disclosed herein. In one embodiment, a server includes a main processor, a network interface card (“NIC”), and a field programmable gate array (“FPGA”) operatively coupled to the main processor via the NIC. The FPGA includes an inbound processing path having an inbound packet buffer configured to receive an inbound packet from the computer network, a NIC buffer, and a multiplexer between the inbound packet buffer and the NIC, and between the NIC buffer and the NIC. The FPGA also includes an outbound processing path having an outbound action circuit having an input to receive the outbound packet from the NIC, a first output to the computer network, and a second output to the NIC buffer in the inbound processing path.
    Type: Grant
    Filed: November 28, 2017
    Date of Patent: October 8, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Alec Kochevar-Cureton, Somesh Chaturmohta, Norman Lam, Sambhrama Mundkur, Daniel Firestone
  • Publication number: 20190087214
    Abstract: Methods and devices for determining settings for a virtual machine may include partitioning a physical network into a plurality of traffic classes. The methods and devices may include determining at least one virtual enhanced transmission selection (ETS) setting for one or more virtual machines, wherein the virtual ETS setting includes at least one virtual traffic class that corresponds to one of the plurality of traffic classes. The methods and devices may include transmitting a notification to the one or more virtual machines identifying the virtual ETS setting.
    Type: Application
    Filed: September 21, 2017
    Publication date: March 21, 2019
    Inventors: Khoa Anh TO, Omar CARDONA, Daniel FIRESTONE, Alireza DABAGH
  • Publication number: 20190089637
    Abstract: Methods and devices for restricting data traffic received from a virtual machine to a subset of traffic classes may include receiving a data packet with a virtual priority from at least one virtual port. The methods and devices may include converting the virtual priority to a physical priority based on one or more priority rules. The methods and devices may include determining a traffic class from a plurality of traffic classes for transmitting the data packet based on the physical priority, wherein the physical priority is associated with the traffic class.
    Type: Application
    Filed: September 21, 2017
    Publication date: March 21, 2019
    Inventors: Khoa Anh TO, Omar CARDONA, Daniel FIRESTONE, Alireza DABAGH
  • Publication number: 20190089640
    Abstract: Methods and devices for data packet transmission at a host computer device hosting a virtual machine may include receiving, at a virtual administrator component operating on the virtual machine, virtual enhanced transmission selection (ETS) settings information from the host computer device. The methods and devices may include creating at least one priority rule for tagging one or more data packets from an application executing on the virtual machine with a virtual priority value based on the virtual ETS settings information. The methods and devices may include tagging the one or more data packets with the virtual priority value based on the at least one priority rule. The methods and devices may include transmitting the one or more data packets with the virtual priority value to the host computer device.
    Type: Application
    Filed: September 21, 2017
    Publication date: March 21, 2019
    Inventors: Khoa Anh TO, Omar Cardona, Daniel Firestone, Alireza Dabagh
  • Publication number: 20190079897
    Abstract: Distributed computing systems, devices, and associated methods of remote direct memory access (“RDMA”) packet routing are disclosed herein. In one embodiment, a server includes a main processor, a network interface card (“NIC”), and a field programmable gate array (“FPGA”) operatively coupled to the main processor via the NIC. The FPGA includes an inbound processing path having an inbound packet buffer configured to receive an inbound packet from the computer network, a NIC buffer, and a multiplexer between the inbound packet buffer and the NIC, and between the NIC buffer and the NIC. The FPGA also includes an outbound processing path having an outbound action circuit having an input to receive the outbound packet from the NIC, a first output to the computer network, and a second output to the NIC buffer in the inbound processing path.
    Type: Application
    Filed: November 28, 2017
    Publication date: March 14, 2019
    Inventors: Alec Kochevar-Cureton, Somesh Chaturmohta, Norman Lam, Sambhrama Mundkur, Daniel Firestone
  • Publication number: 20190081899
    Abstract: Distributed computing systems, devices, and associated methods of packet routing are disclosed herein. In one embodiment, a computing device includes a field programmable gate array (“FPGA”) that includes an inbound processing path and outbound processing path in opposite processing directions. The inbound processing path can forward a packet received from the computer network to a buffer on the FPGA instead of the NIC. The outbound processing path includes an outbound multiplexer having a rate limiter circuit that only forwards the received packet from the buffer back to the computer network when a virtual port corresponding to the packet has sufficient transmission allowance. The outbound multiplexer can also periodically increment the transmission allowance based on a target bandwidth for the virtual port.
    Type: Application
    Filed: February 28, 2018
    Publication date: March 14, 2019
    Inventors: Sambhrama Mundkur, Fengfen Liu, Norman Lam, Andrew Putnam, Somesh Chaturmohta, Daniel Firestone
  • Publication number: 20190081891
    Abstract: Distributed computing systems, devices, and associated methods of packet routing are disclosed herein. In one embodiment, a method includes receiving, from a computing network, a packet at a packet processor of a server. The method also includes matching the received packet with a flow in a flow table contained in the packet processor and determining whether the action indicates that the received packet is to be forwarded to a NIC buffer in the outbound processing path of the packet processor instead of the NIC. The method further includes in response to determining that the action indicates that the received packet is to be forwarded to the NIC buffer, forwarding the received packet to the NIC buffer and processing the packet in the NIC buffer to forward the packet to the computer network without exposing the packet to the main processor.
    Type: Application
    Filed: November 28, 2017
    Publication date: March 14, 2019
    Inventors: Sambhrama Mundkur, Fengfen Liu, Norman Lam, Andrew Putnam, Somesh Chaturmohta, Daniel Firestone
  • Publication number: 20190007338
    Abstract: Micro-schedulers control bandwidth allocation for clients, each client subscribing to a respective predefined portion of bandwidth of an outgoing communication link. A macro-scheduler controls the micro-schedulers, by allocating the respective subscribed portion of bandwidth associated with each respective client that is active, by a predefined first deadline, with residual bandwidth that is unused by the respective clients being shared proportionately among respective active clients by a predefined second deadline, while minimizing coordination among micro-schedulers by the macro-scheduler periodically adjusting respective bandwidth allocations to each micro-scheduler.
    Type: Application
    Filed: September 6, 2018
    Publication date: January 3, 2019
    Inventors: Khoa To, Jitendra Padhye, George Varghese, Daniel Firestone
  • Publication number: 20180375762
    Abstract: A system is provided and includes a processor and a non-transitory computer-readable medium configured to store instructions for execution by the processor. The instructions include: accessing a resource via a first machine in a cloud-based network, where the first machine is a virtual machine; converting at the first machine an IPv4 packet to a IPv6 packet; while converting the IPv4 packet, embedding metadata in the IPv6 packet, where the metadata includes information identifying the first machine or a virtual network of the first machine; and transmitting the IPv6 packet to a second machine to limit access to the resource based on the information identifying the the first machine or the virtual network of the first machine. The second machine limits access to the resource based on the information identifying the at least one of the first machine or the virtual network of the first machine.
    Type: Application
    Filed: June 21, 2017
    Publication date: December 27, 2018
    Inventors: Deepak BANSAL, Parag SHARMA, Nimish AGGARWAL, Longzhang FU, Harish Kumar CHANDRAPPA, Daniel FIRESTONE, Shekhar AGARWAL, Anitha ADUSUMILLI
  • Patent number: 10097478
    Abstract: Micro-schedulers control bandwidth allocation for clients, each client subscribing to a respective predefined portion of bandwidth of an outgoing communication link. A macro-scheduler controls the micro-schedulers, by allocating the respective subscribed portion of bandwidth associated with each respective client that is active, by a predefined first deadline, with residual bandwidth that is unused by the respective clients being shared proportionately among respective active clients by a predefined second deadline, while minimizing coordination among micro-schedulers by the macro-scheduler periodically adjusting respective bandwidth allocations to each micro-scheduler.
    Type: Grant
    Filed: January 20, 2015
    Date of Patent: October 9, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Khoa To, Jitendra Padhye, George Varghese, Daniel Firestone
  • Publication number: 20180262556
    Abstract: Computing systems, devices, and associated methods of operation of filtering packets at virtual switches implemented at hosts in a distributed computing system are disclosed herein. In one embodiment, a method includes receiving, at the virtual switch, a packet having a header and a payload and processing, at the virtual switch, the received packet based on multiple match action tables arranged in a hierarchy in which first and second layers individually contain one or more match action tables that individually contain one or more entries each containing a condition and a corresponding processing action.
    Type: Application
    Filed: June 30, 2017
    Publication date: September 13, 2018
    Inventor: Daniel Firestone
  • Publication number: 20180262599
    Abstract: Computing systems, devices, and associated methods of operation of processing packets in a distributed computing system are disclosed herein. In one embodiment, a method includes receiving a packet having a header with multiple header fields and a payload and parsing one or more of the multiple header fields of the received packet. The method also includes matching the received packet with an rule object from each of multiple layer objects individually containing multiple rule objects based on the parsed one or more of the multiple header fields. The rule object has one or more conditions matching the one or more parsed header fields of the packet and a corresponding flow action. The method further includes generating a composite action by combining the flow actions individually corresponding to one of the matched rule objects from one of multiple layer objects and applying the generated composite action to the packet.
    Type: Application
    Filed: June 30, 2017
    Publication date: September 13, 2018
    Inventor: Daniel Firestone
  • Publication number: 20180241809
    Abstract: Techniques for facilitating load balancing in distributed computing systems are disclosed herein. In one embodiment, a method includes receiving, at a destination server, a request packet from a load balancer via the computer network requesting a remote direct memory access (“RDMA”) connection between an originating server and one or more other servers selectable by the load balancer. The method can also include configuring, at the destination server, a rule for processing additional packets transmittable to the originating server via the RDMA connection based on the received reply packet. The rule is configured to encapsulate an outgoing packet transmittable to the originating server with an outer header having a destination field containing a network address of the originating server and a source field containing another network address of the destination server.
    Type: Application
    Filed: February 21, 2017
    Publication date: August 23, 2018
    Inventors: Rohan Gandhi, Shachar Raindel, Daniel Firestone, Jitendra Padhye, Lihua Yuan
  • Publication number: 20160212065
    Abstract: Micro-schedulers control bandwidth allocation for clients, each client subscribing to a respective predefined portion of bandwidth of an outgoing communication link. A macro-scheduler controls the micro-schedulers, by allocating the respective subscribed portion of bandwidth associated with each respective client that is active, by a predefined first deadline, with residual bandwidth that is unused by the respective clients being shared proportionately among respective active clients by a predefined second deadline, while minimizing coordination among micro-schedulers by the macro-scheduler periodically adjusting respective bandwidth allocations to each micro-scheduler.
    Type: Application
    Filed: January 20, 2015
    Publication date: July 21, 2016
    Inventors: Khoa To, Jitendra Padhye, George Varghese, Daniel Firestone