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: 9858214Abstract: 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: GrantFiled: May 16, 2013Date of Patent: January 2, 2018Assignee: MICROSOFT TECHNOLOGY LICENSING, LLCInventors: Avnish Kumar Chhabra, Aditya Dube, Sanjay Kaniyar, James T. Pinkerton
-
Publication number: 20130254436Abstract: 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: ApplicationFiled: May 16, 2013Publication date: September 26, 2013Applicant: Microsoft CorporationInventors: Avnish Kumar Chhabra, Aditya Dube, Sanjay Kaniyar, James T. Pinkerton
-
Patent number: 8447898Abstract: 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: GrantFiled: October 28, 2005Date of Patent: May 21, 2013Assignee: Microsoft CorporationInventors: Avnish Kumar Chhabra, Aditya Dube, Sanjay Kaniyar, James T. Pinkerton
-
Patent number: 8032886Abstract: 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: GrantFiled: October 17, 2005Date of Patent: October 4, 2011Assignee: Microsoft CorporationInventors: Joseph M. Joy, Aditya Dube
-
Patent number: 7720970Abstract: 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: GrantFiled: September 30, 2005Date of Patent: May 18, 2010Assignee: Microsoft CorporationInventors: Aditya Dube, Alireza Dabagh
-
Patent number: 7656894Abstract: 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: GrantFiled: October 28, 2005Date of Patent: February 2, 2010Assignee: Microsoft CorporationInventors: Aditya Dube, Fengen Liu, Alireza Dabagh
-
Patent number: 7239611Abstract: 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: GrantFiled: March 3, 2003Date of Patent: July 3, 2007Assignee: Microsoft CorporationInventors: Ashish Khisti, Christian Huitema, Aditya Dube
-
Publication number: 20070130352Abstract: 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: ApplicationFiled: October 28, 2005Publication date: June 7, 2007Applicant: Microsoft CorporationInventors: Avnish Chhabra, Aditya Dube, Sanjay Kaniyar, James Pinkerton
-
Publication number: 20070098010Abstract: 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: ApplicationFiled: October 28, 2005Publication date: May 3, 2007Applicant: Microsoft CorporationInventors: Aditya Dube, Fengfen Liu, Alireza Dabagh
-
Publication number: 20070101023Abstract: 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: ApplicationFiled: October 28, 2005Publication date: May 3, 2007Applicant: Microsoft CorporationInventors: Avnish Chhabra, Vikrant Desai, Aditya Dube, Madhurima Pawar
-
Patent number: 7209971Abstract: 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: GrantFiled: December 11, 2001Date of Patent: April 24, 2007Assignee: Microsoft CorporationInventors: Alireza Dabagh, Aditya Dube, Arvind Murching, Fengfen Liu
-
Publication number: 20070076704Abstract: 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: ApplicationFiled: September 30, 2005Publication date: April 5, 2007Applicant: Microsoft CorporationInventors: Aditya Dube, Alireza Dabagh
-
Publication number: 20060133275Abstract: 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: ApplicationFiled: January 23, 2006Publication date: June 22, 2006Applicant: Microsoft CorporationInventors: Alireza Dabagh, Aditya Dube, Arvind Murching, Fengfen Liu
-
Publication number: 20060059496Abstract: 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: ApplicationFiled: October 17, 2005Publication date: March 16, 2006Applicant: Microsoft CorporationInventors: Joseph Joy, Aditya Dube
-
Publication number: 20040174815Abstract: 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: ApplicationFiled: March 3, 2003Publication date: September 9, 2004Inventors: Ashish Khisti, Christian Huitema, Aditya Dube
-
Patent number: 6725311Abstract: 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: GrantFiled: September 14, 2000Date of Patent: April 20, 2004Assignee: Microsoft CorporationInventors: Joseph M Joy, Arvind Murching, Aditya Dube, Alireza Dabagh