Patents by Inventor Alireza Dabagh

Alireza Dabagh 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: 11558244
    Abstract: Embodiments of the invention may improve the performance of multi-processor systems in processing information received via a network. For example, some embodiments may enable configuration of a system such that information received via a network may be distributed among multiple processors for efficient processing. A user (e.g., system administrator) may select from among multiple configuration options, each configuration option being associated with a particular mode of processing information received via a network. By selecting a configuration option, the user may specify how information received via the network is processed to capitalize on the system's characteristics, such as by aligning processors on the system with certain NICs. As such, the processor(s) aligned with a NIC may perform networking-related tasks associated with information received by that NIC.
    Type: Grant
    Filed: October 23, 2019
    Date of Patent: January 17, 2023
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Alireza Dabagh, Murari Sridharan, Joseph Nievelt, Ganesh Srinivasan, Muhammad Junaid Shahid
  • Patent number: 11283718
    Abstract: Embodiments of hybrid network processing load distribution in a computing device are disclosed therein. In one embodiment, a method includes receiving, at a main processor, an indication from the network interface controller to perform network processing operations for first and second packets in a queue of a virtual port of the network interface controller, and in response to receiving the request, assigning multiple cores for performing the network processing operations for the first and second packets, respectively. The method also includes performing the network processing operations at the multiple cores to effect processing and transmission of the first and second packets to first and second applications, respectively, both the first and second applications executing in a virtual machine hosted on the computing device.
    Type: Grant
    Filed: December 17, 2019
    Date of Patent: March 22, 2022
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Dmitry Malloy, Alireza Dabagh, Gabriel Silva, Khoa To, Omar Cardona, Donald Stanwyck
  • Patent number: 11082399
    Abstract: A method of communicating data traffic including data packets through a virtual switch on a host device is provided. The data traffic flowing through the virtual switch is monitored. The data traffic includes at least virtual machine data traffic flowing to and from virtual machine processes on the host device and host data traffic flowing to and from host operating system processes on the host device. Each of the data packets are designated as virtual machine data traffic or host data traffic based on an evaluation of the Media Access Controller (MAC) address of each of the one or more data packets of the monitored data traffic. Virtual machine data traffic is directed through a packet processor as the virtual machine data traffic traverses the virtual switch. Host data traffic is directed to bypass the packet processor as the host data traffic traverses the virtual switch.
    Type: Grant
    Filed: August 10, 2018
    Date of Patent: August 3, 2021
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Alexander Malysh, Omar Cardona, Madhan Sivakumar, Alireza Dabagh
  • Publication number: 20210105221
    Abstract: Embodiments of network processing resource management in computing devices are disclosed therein. In one embodiment, a method includes receiving a request from a network interface controller to perform network processing operations at a first core of a main processor for packets assigned by the network interface controller to a queue of a virtual port of the network interface controller. The method also includes determining whether the first core has a utilization level higher than a threshold when performing the network processing operations to effect processing and transmission of the packets. If the first core has a utilization level higher than the threshold, the method includes issuing a command to the network interface to modify affinitization of the queue from the first core to a second core having a utilization level lower than the threshold.
    Type: Application
    Filed: September 25, 2020
    Publication date: April 8, 2021
    Inventors: Dmitry Malloy, Alireza Dabagh, Gabriel Silva, Khoa To, Omar Cardona, Donald Stanwyck
  • Patent number: 10860358
    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: Grant
    Filed: September 21, 2017
    Date of Patent: December 8, 2020
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Khoa Anh To, Omar Cardona, Daniel Firestone, Alireza Dabagh
  • Patent number: 10826841
    Abstract: Embodiments of network processing resource management in computing devices are disclosed therein. An example method includes receiving a request from a network interface controller to perform network processing operations at a first core of a main processor for packets assigned by the network interface controller to a queue of a virtual port of the network interface controller. The method also includes determining whether the first core has a utilization level higher than a threshold when performing the network processing operations to effect processing and transmission of the packets. If the first core has a utilization level higher than the threshold, the method includes issuing a command to the network interface to modify affinitization of the queue from the first core to a second core having a utilization level lower than the threshold.
    Type: Grant
    Filed: March 15, 2017
    Date of Patent: November 3, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Dmitry Malloy, Alireza Dabagh, Gabriel Silva, Khoa To, Omar Cardona, Donald Stanwyck
  • Patent number: 10715424
    Abstract: Techniques of network traffic management in a computing device are disclosed. One example method includes receiving, at a main processor, a request from a network interface controller to perform network processing operations for packets assigned by the network interface controller to a queue of a virtual port of the network interface controller. The method also includes, in response to receiving the request, causing one of multiple cores of the main processor with which the queue of the virtual port is affinitized to perform the network processing operations to effect processing and transmission of the packets to an application executing in a virtual machine hosted on the computing device.
    Type: Grant
    Filed: March 15, 2017
    Date of Patent: July 14, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Dmitry Malloy, Alireza Dabagh, Gabriel Silva, Khoa To, Omar Cardona, Donald Stanwyck
  • Publication number: 20200127922
    Abstract: Embodiments of hybrid network processing load distribution in a computing device are disclosed therein. In one embodiment, a method includes receiving, at a main processor, an indication from the network interface controller to perform network processing operations for first and second packets in a queue of a virtual port of the network interface controller, and in response to receiving the request, assigning multiple cores for performing the network processing operations for the first and second packets, respectively. The method also includes performing the network processing operations at the multiple cores to effect processing and transmission of the first and second packets to first and second applications, respectively, both the first and second applications executing in a virtual machine hosted on the computing device.
    Type: Application
    Filed: December 17, 2019
    Publication date: April 23, 2020
    Inventors: Dmitry Malloy, Alireza Dabagh, Gabriel Silva, Khoa To, Omar Cardona, Donald Stanwyck
  • Publication number: 20200059402
    Abstract: Embodiments of the invention may improve the performance of multi-processor systems in processing information received via a network. For example, some embodiments may enable configuration of a system such that information received via a network may be distributed among multiple processors for efficient processing. A user (e.g., system administrator) may select from among multiple configuration options, each configuration option being associated with a particular mode of processing information received via a network. By selecting a configuration option, the user may specify how information received via the network is processed to capitalize on the system's characteristics, such as by aligning processors on the system with certain NICs. As such, the processor(s) aligned with a NIC may perform networking-related tasks associated with information received by that NIC.
    Type: Application
    Filed: October 23, 2019
    Publication date: February 20, 2020
    Inventors: Alireza DABAGH, Murari SRIDHARAN, Joseph NIEVELT, Ganesh SRINIVASAN, Muhammad Junaid SHAHID
  • Publication number: 20200053050
    Abstract: A method of communicating data traffic including data packets through a virtual switch on a host device is provided. The data traffic flowing through the virtual switch is monitored. The data traffic includes at least virtual machine data traffic flowing to and from virtual machine processes on the host device and host data traffic flowing to and from host operating system processes on the host device. Each of the data packets are designated as virtual machine data traffic or host data traffic based on an evaluation of the Media Access Controller (MAC) address of each of the one or more data packets of the monitored data traffic. Virtual machine data traffic is directed through a packet processor as the virtual machine data traffic traverses the virtual switch. Host data traffic is directed to bypass the packet processor as the host data traffic traverses the virtual switch.
    Type: Application
    Filed: August 10, 2018
    Publication date: February 13, 2020
    Inventors: Alexander MALYSH, Omar CARDONA, Madhan SIVAKUMAR, Alireza DABAGH
  • Patent number: 10554554
    Abstract: Embodiments of hybrid network processing load distribution in a computing device are disclosed therein. In one embodiment, a method includes receiving, at a main processor, an indication from the network interface controller to perform network processing operations for first and second packets in a queue of a virtual port of the network interface controller, and in response to receiving the request, assigning first and second cores for performing the network processing operations for the first and second packets, respectively. The method also includes performing the network processing operations at the first and second cores to effect processing and transmission of the first and second packets to first and second applications, respectively, both the first and second applications executing in a virtual machine hosted on the computing device.
    Type: Grant
    Filed: March 15, 2017
    Date of Patent: February 4, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Dmitry Malloy, Alireza Dabagh, Gabriel Silva, Khoa To, Omar Cardona, Donald Stanwyck
  • Patent number: 10484236
    Abstract: Embodiments of the invention may improve the performance of multi-processor systems in processing information received via a network. For example, some embodiments may enable configuration of a system such that information received can be distributed among multiple processors for efficient processing. A user may select from among multiple configuration options, each configuration option being associated with a particular mode of processing information received. By selecting a configuration option, the user may specify how received information is processed to capitalize on the system's characteristics, such as by aligning processors on the system with certain NICs. As such, the processor(s) aligned with a NIC may perform networking-related tasks associated with information received by that NIC. If initial alignment causes one or more processors to become over-burdened, processing tasks may be dynamically re-distributed to other processors.
    Type: Grant
    Filed: February 16, 2017
    Date of Patent: November 19, 2019
    Assignee: Microsoft Technology Licensing LLC
    Inventors: Alireza Dabagh, Murari Sridharan, Joseph Nievelt, Ganesh Srinivasan, Muhammad Junaid Shahid
  • Patent number: 10447594
    Abstract: The ensuring of predictable and quantifiable networking performance includes adaptively throttling the rate of VM-to-VM traffic flow. A receiving hypervisor can detect congestion and communicate messages for throttling traffic flow to reduce congestion at the receiving hypervisor.
    Type: Grant
    Filed: December 27, 2016
    Date of Patent: October 15, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Changhoon Kim, Albert G. Greenberg, Alireza Dabagh, Yousef A. Khalidi, Deepak Bansal, Srikanth Kandula
  • 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: 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: 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: 20180157515
    Abstract: Embodiments of network processing resource management in computing devices are disclosed therein. In one embodiment, a method includes receiving a request from a network interface controller to perform network processing operations at a first core of a main processor for packets assigned by the network interface controller to a queue of a virtual port of the network interface controller. The method also includes determining whether the first core has a utilization level higher than a threshold when performing the network processing operations to effect processing and transmission of the packets. If the first core has a utilization level higher than the threshold, the method includes issuing a command to the network interface to modify affinitization of the queue from the first core to a second core having a utilization level lower than the threshold.
    Type: Application
    Filed: March 15, 2017
    Publication date: June 7, 2018
    Inventors: Dmitry Malloy, Alireza Dabagh, Gabriel Silva, Khoa To, Omar Cardona, Donald Stanwyck
  • Publication number: 20180159771
    Abstract: Embodiments of hybrid network processing load distribution in a computing device are disclosed therein. In one embodiment, a method includes receiving, at a main processor, an indication from the network interface controller to perform network processing operations for first and second packets in a queue of a virtual port of the network interface controller, and in response to receiving the request, assigning first and second cores for performing the network processing operations for the first and second packets, respectively. The method also includes performing the network processing operations at the first and second cores to effect processing and transmission of the first and second packets to first and second applications, respectively, both the first and second applications executing in a virtual machine hosted on the computing device.
    Type: Application
    Filed: March 15, 2017
    Publication date: June 7, 2018
    Inventors: Dmitry Malloy, Alireza Dabagh, Gabriel Silva, Khoa To, Omar Cardona, Donald Stanwyck
  • Publication number: 20180157514
    Abstract: Embodiments of network traffic management in a computing device are disclosed therein. In one embodiment, a method includes receiving, at a main processor, a request from a network interface controller to perform network processing operations for packets assigned by the network interface controller to a queue of a virtual port of the network interface controller. The method also includes, in response to receiving the request, causing one of multiple cores of the main processor with which the queue of the virtual port is affinitized to perform the network processing operations to effect processing and transmission of the packets to an application executing in a virtual machine hosted on the computing device.
    Type: Application
    Filed: March 15, 2017
    Publication date: June 7, 2018
    Inventors: Dmitry Malloy, Alireza Dabagh, Gabriel Silva, Khoa To, Omar Cardona, Donald Stanwyck
  • Publication number: 20170207958
    Abstract: Embodiments of the invention may improve the performance of multi-processor systems in processing information received via a network. For example, some embodiments may enable configuration of a system such that information received can be distributed among multiple processors for efficient processing. A user may select from among multiple configuration options, each configuration option being associated with a particular mode of processing information received. By selecting a configuration option, the user may specify how received information is processed to capitalize on the system's characteristics, such as by aligning processors on the system with certain NICs. As such, the processor(s) aligned with a NIC may perform networking-related tasks associated with information received by that NIC. If initial alignment causes one or more processors to become over-burdened, processing tasks may be dynamically re-distributed to other processors.
    Type: Application
    Filed: February 16, 2017
    Publication date: July 20, 2017
    Inventors: Alireza Dabagh, Murari Sridharan, Joseph Nievelt, Ganesh Srinivasan, Muhammad Junaid Shahid