Abstract:
Services for a personal electronic device are provided through which a form of background processing or multitasking is supported. The disclosed services permit user applications to take advantage of background processing without significant negative consequences to a user's experience of the foreground process or the personal electronic device's power resources. To effect the disclosed multitasking, one or more of a number of operational restrictions may be enforced. A consequence of such restrictions may be that a process will not be able to do in the background state, what it may be able to do if it were in the foreground state. Implementation of the disclosed services may be substantially transparent to the executing user applications and, in some cases, may be performed without the user application's explicit cooperation
Abstract:
A method is described that involves associating an outbound packet with a first network interface and constructing a search key from an identifier of the first network interface and the outbound packet's destination address. The method further entails submitting the search key to a routing function where the routing function identifies the outbound packet's next hop address. The method also involves transmitting the outbound packet to a node identified by the next hop address from the first network interface.
Abstract:
A computer-implemented method for managing packet scheduling on a client device. For example, one embodiment of a method comprises: receiving a packet to be transmitted; enqueuing the packet in a queue at a network stack level; determining whether packet scheduling is currently being performed at a driver level or at a networking stack level; selecting the packet for transmission from the queue at the network stack level if scheduling is currently being performed at the network stack level; and selecting the packet for transmission from the queue at the driver level if scheduling is currently being performed at the driver level.
Abstract:
A client device having a networking layer and a network driver layer for transmitting network packets comprising: a plurality of transmit queues configured at the network layer, each of the transmit queues having different packet service classifications associated therewith, packets being queued in one of the transmit queues according to traffic service classifications assigned to the packets; a classifier module for classifying packets according to the different packet service classifications, wherein a packet to be transmitted is stored in one of the transmit queues based on the packet service classifications; and a network layer packet scheduler for scheduling packets for transmission from each of the transmit queues at the networking layer, the network layer packet scheduler scheduling packets for transmission according to the packet service classifications.
Abstract:
A computer-implemented method for managing packet scheduling on a client device. For example, one embodiment of a method comprises: receiving a packet to be transmitted; enqueuing the packet in a queue at a network stack level; determining whether packet scheduling is currently being performed at a driver level or at a networking stack level; selecting the packet for transmission from the queue at the network stack level if scheduling is currently being performed at the network stack level; and selecting the packet for transmission from the queue at the driver level if scheduling is currently being performed at the driver level.
Abstract:
A computer-implemented method for managing packet scheduling on a client device. For example, one embodiment of a method comprises: receiving a packet to be transmitted; enqueuing the packet in a queue at a network stack level; determining whether packet scheduling is currently being performed at a driver level or at a networking stack level; selecting the packet for transmission from the queue at the network stack level if scheduling is currently being performed at the network stack level; and selecting the packet for transmission from the queue at the driver level if scheduling is currently being performed at the driver level.
Abstract:
Services for a personal electronic device are provided through which a form of background processing or multitasking is supported. The disclosed services permit user applications to take advantage of background processing without significant negative consequences to a user's experience of the foreground process or the personal electronic device's power resources. To effect the disclosed multitasking, one or more of a number of operational restrictions may be enforced. By way of example, an application that may normally be placed into the background state may instead be terminated if it controls a lock on a shared system resource.
Abstract:
A method is described that involves associating an outbound packet with a first network interface and constructing a search key from an identifier of the first network interface and the outbound packet's destination address. The method further entails submitting the search key to a routing function where the routing function identifies the outbound packet's next hop address. The method also involves transmitting the outbound packet to a node identified by the next hop address from the first network interface.