Patents by Inventor Aditya Dube

Aditya Dube 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: 9858214
    Abstract: In one embodiment, to determine what tasks may be offloaded to a peripheral hardware device (e.g., to be performed in hardware on the peripheral device, rather than on the CPU(s) of the host computer), an indication from the at least one peripheral hardware device may be provided, without the peripheral hardware device first being queried to determine the task offload capabilities provided by the peripheral hardware device. In one embodiment, a large packet that includes a plurality of extension headers may be offloaded to the peripheral hardware device for segmentation. An indication of the offset where the extension headers end may be provided in connection with the large packet. In another embodiment, a packet with extension headers that come before an encryption header in the packet are not offloaded to peripheral hardware device for encryption, while packets with no extension headers before the encryption header may be offloaded.
    Type: Grant
    Filed: May 16, 2013
    Date of Patent: January 2, 2018
    Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
    Inventors: Avnish Kumar Chhabra, Aditya Dube, Sanjay Kaniyar, James T. Pinkerton
  • Publication number: 20130254436
    Abstract: In one embodiment, to determine what tasks may be offloaded to a peripheral hardware device (e.g., to be performed in hardware on the peripheral device, rather than on the CPU(s) of the host computer), an indication from the at least one peripheral hardware device may be provided, without the peripheral hardware device first being queried to determine the task offload capabilities provided by the peripheral hardware device. In one embodiment, a large packet that includes a plurality of extension headers may be offloaded to the peripheral hardware device for segmentation. An indication of the offset where the extension headers end may be provided in connection with the large packet. In another embodiment, a packet with extension headers that come before an encryption header in the packet are not offloaded to peripheral hardware device for encryption, while packets with no extension headers before the encryption header may be offloaded.
    Type: Application
    Filed: May 16, 2013
    Publication date: September 26, 2013
    Applicant: Microsoft Corporation
    Inventors: Avnish Kumar Chhabra, Aditya Dube, Sanjay Kaniyar, James T. Pinkerton
  • Patent number: 8447898
    Abstract: In one embodiment, to determine what tasks may be offloaded to a peripheral hardware device (e.g., to be performed in hardware on the peripheral device, rather than on the CPU(s) of the host computer), an indication from the at least one peripheral hardware device may be provided, without the peripheral hardware device first being queried to determine the task offload capabilities provided by the peripheral hardware device. In one embodiment, a large packet that includes a plurality of extension headers may be offloaded to the peripheral hardware device for segmentation. An indication of the offset where the extension headers end may be provided in connection with the large packet. In another embodiment, a packet with extension headers that come before an encryption header in the packet are not offloaded to peripheral hardware device for encryption, while packets with no extension headers before the encryption header may be offloaded.
    Type: Grant
    Filed: October 28, 2005
    Date of Patent: May 21, 2013
    Assignee: Microsoft Corporation
    Inventors: Avnish Kumar Chhabra, Aditya Dube, Sanjay Kaniyar, James T. Pinkerton
  • Patent number: 8032886
    Abstract: The invention builds a structure of software objects that captures the historically contingent development of an asynchronous program. The invention builds software objects that represent the resources and subtasks that make up the asynchronous program. The objects are connected into a hierarchy whose structure explicates interactions among the resources and subtasks. When a fault is detected, the structure tells the debugger everything the program was doing at the time of the fault and lays open the developmental history of the program that led to the fault. The debugger uses this information to trace the detected fault back through code and time to its origin. When a new feature is added, the structure tells maintenance personnel how the new feature affects existing functions. Within the structure, the invention provides mechanisms for handling reference counters and software locks. Groups of resources can be handled together, the structure taking care of coordination.
    Type: Grant
    Filed: October 17, 2005
    Date of Patent: October 4, 2011
    Assignee: Microsoft Corporation
    Inventors: Joseph M. Joy, Aditya Dube
  • Patent number: 7720970
    Abstract: A method of providing media content (e.g., audio and/or video) and processing data received over a network. Received data may be processed at a reduced rate while at least one media application is running. Received packets may be processed in batches, and media data may be processed in between processing the batches. The method may provide for reducing or eliminating glitches in the media content caused by receiving data over a network while providing the media content.
    Type: Grant
    Filed: September 30, 2005
    Date of Patent: May 18, 2010
    Assignee: Microsoft Corporation
    Inventors: Aditya Dube, Alireza Dabagh
  • Patent number: 7656894
    Abstract: In one embodiment, to determine what tasks may be offloaded to a peripheral hardware device (e.g., to be performed in hardware on the peripheral device, rather than on the CPU(s) of the host computer), an indication from the at least one peripheral hardware device may be provided, without the peripheral hardware device first being queried to determine the task offload capabilities provided by the peripheral hardware device. In another embodiment, a data packet may be sent to the at least one peripheral device with an indication to the at least one peripheral device to perform at least one task offloading capability on the data packet, without first sending a command to the at least one peripheral device to enable the at least one task offloading capability.
    Type: Grant
    Filed: October 28, 2005
    Date of Patent: February 2, 2010
    Assignee: Microsoft Corporation
    Inventors: Aditya Dube, Fengen Liu, Alireza Dabagh
  • Patent number: 7239611
    Abstract: Appropriate determinations in a series of tests, which transition from more passive tests to more active tests, control the admission of data streams onto a network data path. More passive tests can include promiscuous mode and packet-pair tests. When the results of more passive tests indicate a reduce likelihood of a data stream causing a network data path to transition into a congested state, the network data path can be actively probed to make a more precise determination on the likelihood of congestion. A train of diagnostic data packets is transmitted at a diagnostic data transfer rate having a significantly reduced chance of causing congestion. A train of target data packets is transmitted at a requested application transfer data rate. The number of target data packets received within a specified delay threshold is compared to the number of diagnostic data packets receive with the delay threshold.
    Type: Grant
    Filed: March 3, 2003
    Date of Patent: July 3, 2007
    Assignee: Microsoft Corporation
    Inventors: Ashish Khisti, Christian Huitema, Aditya Dube
  • Publication number: 20070130352
    Abstract: In one embodiment, to determine what tasks may be offloaded to a peripheral hardware device (e.g., to be performed in hardware on the peripheral device, rather than on the CPU(s) of the host computer), an indication from the at least one peripheral hardware device may be provided, without the peripheral hardware device first being queried to determine the task offload capabilities provided by the peripheral hardware device. In one embodiment, a large packet that includes a plurality of extension headers may be offloaded to the peripheral hardware device for segmentation. An indication of the offset where the extension headers end may be provided in connection with the large packet. In another embodiment, a packet with extension headers that come before an encryption header in the packet are not offloaded to peripheral hardware device for encryption, while packets with no extension headers before the encryption header may be offloaded.
    Type: Application
    Filed: October 28, 2005
    Publication date: June 7, 2007
    Applicant: Microsoft Corporation
    Inventors: Avnish Chhabra, Aditya Dube, Sanjay Kaniyar, James Pinkerton
  • Publication number: 20070098010
    Abstract: In one embodiment, to determine what tasks may be offloaded to a peripheral hardware device (e.g., to be performed in hardware on the peripheral device, rather than on the CPU(s) of the host computer), an indication from the at least one peripheral hardware device may be provided, without the peripheral hardware device first being queried to determine the task offload capabilities provided by the peripheral hardware device. In another embodiment, a data packet may be sent to the at least one peripheral device with an indication to the at least one peripheral device to perform at least one task offloading capability on the data packet, without first sending a command to the at least one peripheral device to enable the at least one task offloading capability.
    Type: Application
    Filed: October 28, 2005
    Publication date: May 3, 2007
    Applicant: Microsoft Corporation
    Inventors: Aditya Dube, Fengfen Liu, Alireza Dabagh
  • Publication number: 20070101023
    Abstract: In one embodiment, to determine what tasks may be offloaded to a peripheral hardware device (e.g., to be performed in hardware on the peripheral device, rather than on the CPU(s) of the host computer), an indication from the at least one peripheral hardware device may be provided, without the peripheral hardware device first being queried to determine the task offload capabilities provided by the peripheral hardware device. The peripheral hardware device may be capable of handling multiple task offloads on the same packet. For example, the peripheral device may be capable of performing large packet segmentation and encryption on the same packet. The peripheral device may also be capable of performing encryption and checksum calculation on the same packet.
    Type: Application
    Filed: October 28, 2005
    Publication date: May 3, 2007
    Applicant: Microsoft Corporation
    Inventors: Avnish Chhabra, Vikrant Desai, Aditya Dube, Madhurima Pawar
  • Patent number: 7209971
    Abstract: Filtering data packets in a manner that promotes efficient flow of data through a communication path. A filter stack includes one or more filter instances that may filter data packets that pass through the filter stack. The filter stack is associated with one or more protocol stacks that function in communication paths between a computing device and a network. When filtering instances are inserted to or removed from a filter stack, associated protocol stacks may remain capable of transferring data. An abstract interface facilitates inserting and removing filter instances by passing data to filter drivers that create filter instances. A filter driver may create multiple filter instances. Filtering operations associated with filter instances may be bypassed based on the direction of data flow, control flow, and characteristics of packets.
    Type: Grant
    Filed: December 11, 2001
    Date of Patent: April 24, 2007
    Assignee: Microsoft Corporation
    Inventors: Alireza Dabagh, Aditya Dube, Arvind Murching, Fengfen Liu
  • Publication number: 20070076704
    Abstract: A method of providing media content (e.g., audio and/or video) and processing data received over a network. Received data may be processed at a reduced rate while at least one media application is running. Received packets may be processed in batches, and media data may be processed in between processing the batches. The method may provide for reducing or eliminating glitches in the media content caused by receiving data over a network while providing the media content.
    Type: Application
    Filed: September 30, 2005
    Publication date: April 5, 2007
    Applicant: Microsoft Corporation
    Inventors: Aditya Dube, Alireza Dabagh
  • Publication number: 20060133275
    Abstract: Filtering data packets in a manner that promotes efficient flow of data through a communication path. A filter stack includes one or more filter instances that may filter data packets that pass through the filter stack. The filter stack is associated with one or more protocol stacks that function in communication paths between a computing device and a network. When filtering instances are inserted to or removed from a filter stack, associated protocol stacks may remain capable of transferring data. An abstract interface facilitates inserting and removing filter instances by passing data to filter drivers that create filter instances. A filter driver may create multiple filter instances. Filtering operations associated with filter instances may be bypassed based on the direction of data flow, control flow, and characteristics of packets.
    Type: Application
    Filed: January 23, 2006
    Publication date: June 22, 2006
    Applicant: Microsoft Corporation
    Inventors: Alireza Dabagh, Aditya Dube, Arvind Murching, Fengfen Liu
  • Publication number: 20060059496
    Abstract: The invention builds a structure of software objects that captures the historically contingent development of an asynchronous program. The invention builds software objects that represent the resources and subtasks that make up the asynchronous program. The objects are connected into a hierarchy whose structure explicates interactions among the resources and subtasks. When a fault is detected, the structure tells the debugger everything the program was doing at the time of the fault and lays open the developmental history of the program that led to the fault. The debugger uses this information to trace the detected fault back through code and time to its origin. When a new feature is added, the structure tells maintenance personnel how the new feature affects existing functions. Within the structure, the invention provides mechanisms for handling reference counters and software locks. Groups of resources can be handled together, the structure taking care of coordination.
    Type: Application
    Filed: October 17, 2005
    Publication date: March 16, 2006
    Applicant: Microsoft Corporation
    Inventors: Joseph Joy, Aditya Dube
  • Publication number: 20040174815
    Abstract: Appropriate determinations in a series of tests, which transition from more passive tests to more active tests, control the admission of data streams onto a network data path. More passive tests can include promiscuous mode and packet-pair tests. When the results of more passive tests indicate a reduce likelihood of a data stream causing a network data path to transition into a congested state, the network data path can be actively probed to make a more precise determination on the likelihood of congestion. A train of diagnostic data packets is transmitted at a diagnostic data transfer rate having a significantly reduced chance of causing congestion. A train of target data packets is transmitted at a requested application transfer data rate. The number of target data packets received within a specified delay threshold is compared to the number of diagnostic data packets receive with the delay threshold.
    Type: Application
    Filed: March 3, 2003
    Publication date: September 9, 2004
    Inventors: Ashish Khisti, Christian Huitema, Aditya Dube
  • Patent number: 6725311
    Abstract: A method and apparatus provides a method and apparatus for treating a serial bus, such as an IEEE 1394 bus, as a connection-oriented network. In one embodiment, an application programming interface (API) permits different protocols (e.g., TCP/IP, IPX, and others) to connect to the 1394 bus and to make use of various 1394 features, such as isochronous packet transmission, without knowledge of hardware-specific idiosyncrasies. A call is made to set up a connection (a “virtual circuit”) over the serial bus, and, thereafter, a connection “handle” is used to communicate over the bus using the connection. Different types of connections can be provided, including a node-specific connection; a channel-specific connection; and a receiving connection (e.g., for incoming data). In one embodiment, a programming interface hides details of the connection set-up, and includes packet fragmentation and reassembly functions.
    Type: Grant
    Filed: September 14, 2000
    Date of Patent: April 20, 2004
    Assignee: Microsoft Corporation
    Inventors: Joseph M Joy, Arvind Murching, Aditya Dube, Alireza Dabagh