Out-of-order packet scheduler

By adjusting the position and selection order of transmission identifiers (TIDs) in a wireless network using an out-of-order scheduler, the problem of low packet transmission efficiency in wireless communication is solved, thereby improving network throughput and device data reception efficiency.

CN113473531BActive Publication Date: 2025-10-17MAXLINEAR INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202011442915.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-10-01
Filing Date
2020-12-08
Publication Date
2025-10-17
Estimated Expiration
2040-12-08

AI Technical Summary

Technical Problem

In existing wireless communications, packet transmission selection methods lead to waste of wireless media and inefficiency, affecting network throughput.

Method used

An out-of-order scheduler is employed to improve network efficiency by identifying the Transmission Identifier (TID) associated with a wireless network node and adjusting the position and selection order of the TID in the transmission queue based on the expected increase in packet throughput within the wireless network.

Benefits of technology

It improved network throughput, reduced backlog and transmission latency, and enhanced network speed and multi-device data reception capabilities.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113473531B_ABST
    Figure CN113473531B_ABST
Patent Text Reader

Abstract

The present disclosure relates to out-of-order packet schedulers. An example method of the invention can include identifying a first transmission identifier (TID) associated with a first node of a wireless network as ready for transmission, and adding the first TID to a ready for transmission queue at a first point in time. The method can also include identifying a second TID associated with a second node of the wireless network as ready for transmission, and adding the second TID to the ready for transmission queue at a second point in time later than the first point in time. The method can also include selecting the second TID from the ready for transmission queue before selecting the first TID based on an increased total throughput of packets within the wireless network anticipated when communicating with the second node prior to communicating with the first node.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The specific implementation discussed in this article involves an out-of-order packet scheduler. Background Art

[0002] Unless otherwise indicated herein, the materials described herein are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.

[0003] Home, office, sports stadium, and outdoor networks, also known as wireless local area networks (WLANs), are established using devices called wireless access points (WAPs). A WAP may include a router. The WAP wirelessly couples all the devices of the local network (e.g., wireless stations such as computers, printers, televisions, digital video (DVD) players, security cameras, and smoke detectors) to each other and to the cables or subscriber lines that deliver the internet, video, and television to the local network. Most WAPs implement the IEEE 802.11 standard, which is a contention-based standard for handling communications between multiple competing devices sharing a wireless communication medium on one of multiple communication channels selected. The frequency range of each communication channel is specified in the corresponding protocol of the implemented IEEE 802.11 protocol, such as "a," "b," "g," "n," "ac," "ad," or "ax." Communications follow a hub-and-spoke model, with a WAP at the hub and spokes corresponding to wireless links to each "client" device or station (STA) utilizing the WLAN.

[0004] However, some selection methods result in wasteful use of the wireless medium and corresponding inefficiencies when selecting packets for transmission from a WAP.

[0005] The claimed subject matter herein is not limited to implementations that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is merely provided to illustrate one exemplary technology area where some implementations described herein may be practiced. Summary of the Invention

[0006] This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.

[0007] Some example implementations described herein generally relate to an out-of-order scheduler for packet transmission. Some implementations provide methods, systems, and / or apparatus that facilitate scheduling such packets for transmission.

[0008] An example method can include identifying a first transmission identifier (TID) associated with a first node of a wireless network as ready for transmission, and adding the first TID to a ready for transmission queue at a first point in time. The method can also include identifying a second TID associated with a second node of the wireless network as ready for transmission, and adding the second TID to the ready for transmission queue at a second point in time later than the first point in time. The method can also include selecting the second TID from the ready for transmission queue before selecting the first TID based on an increased total throughput of packets within the wireless network anticipated when communicating with the second node prior to communicating with the first node.

[0009] The present disclosure can be realized in hardware, firmware, or software.

[0010] Associated devices and circuitry are also claimed.

[0011] Additional features and advantages of the present disclosure will be set forth in the description below, and in part will be apparent from the description, or can be learned by practice of the present disclosure. The features and advantages of the present disclosure can be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. These and other features of the present disclosure will become more fully apparent from the following description and appended claims, or can be learned by the practice of the present disclosure as set forth hereinafter. BRIEF DESCRIPTION OF DRAWINGS

[0012] To further clarify the above and other advantages and features of the present disclosure, a more particular description of the disclosure will be rendered by reference to specific embodiments thereof which are illustrated in the appended drawings. It is appreciated that these drawings depict only typical embodiments of the disclosure and are therefore not to be considered limiting of its scope. The disclosure will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:

[0013] Figure 1 An example environment in which an out-of-order packet scheduler can be implemented is shown;

[0014] Figure 2 An example schematic diagram of a system implementing an out-of-order scheduler is shown;

[0015] Figure 3A And Figure 3B An example of adding a TID to a ready for transmission queue or selecting a TID from a ready for transmission queue is shown;

[0016] Figure 4A And Figure 4B An example graph of the amount of packets transmitted according to various scheduling techniques is shown;

[0017] Figure 5 A flowchart of an example method of out-of-order scheduling of TIDs is shown;

[0018] Figure 6 A flowchart showing an example method of out-of-order scheduling of TIDs by placing new TIDs at different positions within a ready-to-transmit queue;

[0019] Figure 7 A flowchart showing an example method of out-of-order scheduling of TIDs by selecting TIDs for transmission from within a ready-to-transmit queue; and

[0020] Figure 8 A diagrammatical representation of a machine in the example form of a computing device, all in accordance with at least one implementation described in this disclosure. DETAILED DESCRIPTION

[0021] The implementations described herein can generally include methods that perform out-of-order scheduling of TIDs for transmission. For example, a scheduler can be configured to select a given TID for transmission, rather than performing a typical round-robin scheduling of TIDs, even before other TIDs that are indicated to be ready for transmission before the given TID. In some embodiments, when a given TID is identified as being ready for transmission, the given TID can be placed within a ready-to-transmit queue based on a measure of the impact (e.g., effective data bit rate) of identifying the given TID’s associated transmission on the overall throughput in the wireless network. If the measure of the given TID indicates that the given TID will contribute to a more efficient overall throughput, the given TID can be placed closer to the head of the ready-to-transmit queue, and if the measure of the given TID indicates that the given TID will decrease the overall throughput of the wireless network, the given TID can be placed further from the head of the ready-to-transmit queue. As another example of out-of-order scheduling of TIDs, when selecting a TID for transmission from within a ready-to-transmit queue, the scheduler can look deeper into the queue to consider measures of TIDs other than the TID at the head of the queue, rather than selecting the TID at the head of the queue. In these and other embodiments, the scheduler can select a TID that has a measure that indicates the most efficient throughput of the wireless network.

[0022] Through the use of such out-of-order scheduling of TIDs, network throughput can be improved in accordance with some embodiments of the disclosure. Such improvements can reduce overall network traffic, can reduce backlog and transmission delays, and can improve the network speed observed by consumers using the wireless network. Additionally, the improvements of the disclosure can facilitate improved network functionality in congested networks where multiple devices are waiting to receive data within the wireless network.

[0023] Various aspects of example implementations of the disclosure will now be described with reference to the drawings. It should be appreciated that the drawings are diagrammatic and schematic representations of such example implementations, and neither they nor the description below are limiting the present disclosure.

[0024] Figure 1 An exemplary environment 100 in which out-of-order scheduling of TIDs can be implemented in accordance with one or more embodiments of the present disclosure is shown. The environment 100 shows an access point (AP) 110 and three nodes 120, 130, and 140, where the AP 110 and the nodes 120, 130, and 140 can all be in wireless communication with each other.

[0025] In operation, the AP 110 can transmit various packets to each of the nodes 120, 130, and 140 individually. For example, the node 120 can be watching a video while browsing the internet, the node 130 can be participating in a VOIP call, and the node 140 can be updating software. As another example, the node 120 can be a refrigerator, the node 130 can be a washing machine, and the node 140 can be a thermostat, all in wireless communication with the internet. For each of the nodes 120, 130, and 140, they can be waiting for the AP 110 to transmit the next batch of packets. However, since the AP 110 is serving multiple nodes with multiple types of packets, some decision process can be performed at the AP 110 to decide which node to receive the packets next.

[0026] In some embodiments, the selection for transmission is based on a transmission identifier (TID). A TID for a given node can represent a certain class of packets for that node. For example, a TID can be associated with a class of packets that have a particular transmission priority. For example, one TID can be a class related to background packets, another TID can be a class related to best effort (e.g., worth having high priority), another TID can be a class related to video packets, and another TID can be a class related to voice packets. While four examples are given, there can be any number of TIDs, such as eight, sixteen, etc. For convenience, a given TID can be referred to by a numerical identifier for ease of clear expression of the various TIDs (e.g., TID 1, TID 2, etc.).

[0027] To improve the performance of the environment 100, various metrics can be observed within the environment 100 to facilitate efficient transmission of packets within the environment 100. In some embodiments, the metrics can be based on a physical layer (PHY) rate of a given node, a number of transmission bytes that have been aggregated for transmission to the given node, and a protocol overhead used in transmitting to the given node. These factors can together indicate a certain number of packets that can be provided for a particular time slot of available transmission medium or effective data bit rate. For a node with a lower PHY rate or a node that has not accumulated multiple packets, its total throughput will be lower than that of a node with a higher PHY rate or a node that has accumulated more packets. The protocol overhead is typically a fixed amount for each transmission time slot (so if the same overhead is repeated for fewer packets at a lower PHY rate, it results in a reduction of total throughput, as opposed to repeating the same overhead for more packets at a higher PHY rate). Such a combination can result in an effective data bit rate. In some embodiments, the PHY rate can vary at different points in time, such that one or more metrics for a given TID can be different at different points in time at least due to variations in the PHY rate. In some embodiments, any other metric can be used or considered. As the complexity of the metrics increases, actual differences in network performance can be observed with more detail and / or clarity, but at the cost of increased processing and computational power and time delay for determining the metrics. A balance can be struck between the fullness and accuracy of the impact on network throughput and the processing power and delay to achieve such fullness and accuracy. The metrics can be determined for each TID for each transmission request (e.g., the metrics can be determined for TID 1 associated with node 1, etc.). In these and other embodiments, the metrics can represent projections, forecasts, estimates, extrapolations, predictions, etc. of total throughput within the wireless network.

[0028] When a packet for a first TID for a first node, such as a TID for a background packet, is ready for transmission, the first TID for the first node can be added to the ready for transmission queue. For example, with reference to Figure 1packets in the first TID can be ready for transmission to node 120 and packets in the first TID can be ready for transmission to node 140. The first TID for each of node 120 and node 140 can be added to the ready for transmission queue associated with the first TID. In these and other embodiments, each set of TIDs can be associated with its own ready for transmission queue. For example, the set of first TIDs (e.g., best effort) associated with each of node 120, node 130, and node 140 can be associated with a first ready for transmission queue and the set of second TIDs (e.g., video) associated with each of node 120, node 130, and node 140 can be associated with a second ready for transmission queue. In selecting TIDs for transmission, the TIDs can be selected in an order that can be based on efficiency, rather than the order in which they are ready for transmission or an order that is entirely equal. Reference can be made to Figures 2 to 7 Various examples of such out-of-order scheduling are described in more detail.

[0029] AP 110 can include a gateway, a repeater, a mesh node, and / or other suitable access points for wireless stations or devices, such as node 120, node 130, and node 140. AP 110 can be connected to the Internet and / or a core network via a bridge, a backhaul link, a base station, and / or other suitable devices or connections. Figure 8 One example implementation of AP 110 as a computing device is shown in

[0030] Each of node 120, node 130, and node 140 can generally include any device with the ability to wirelessly connect to AP 110 according to any of the 802.11 standards or other suitable wireless standards. Each of node 120, node 130, and node 140 can include a desktop computer, a laptop computer, a tablet, a mobile phone, a smart phone, a personal digital assistant (PDA), a smart television, any other smart appliance, or any other suitable wireless station. For example, if node 120 is a refrigerator with one PHY rate and node 130 is a thermostat with a higher PHY rate, node 130 corresponding to the thermostat can be selected for out-of-order transmission before node 120 corresponding to the refrigerator based on the higher throughput. In Figure 8 One example implementation of node 120, node 130, and node 140 as computing devices is shown in

[0031] Modifications, additions, or omissions can be made to the environment 100 without departing from the scope of the present disclosure. For example, the described elements are specified in order to help explain the concepts described herein and are not meant to limit the present disclosure. In addition, the environment 100 can include any number of other elements, or can be implemented in other systems or environments without departing from the scope of the present disclosure. For example, any number of APs 110 and / or nodes 120, nodes 130, and / or nodes 140 can be included.

[0032] In example implementations, a method of managing a transmission queue can include, in response to receiving a transmission request to add to the queue, determining a first set of one or more metrics associated with an estimated impact of the transmission request on total throughput in a wireless network. The method can also include, prior to adding the transmission request to the queue, comparing the first set of one or more metrics associated with a transmission associated with the estimated impact of the transmission request to a second set of one or more metrics associated with an estimated impact of another transmission request on total throughput in the wireless network, the other transmission request already in the queue. The method can also include, based on a result of the comparison of the transmission request to the other transmission request, projecting an increased total throughput of packets within the wireless network, positioning the transmission request before the other transmission request within the ready-to-transmit queue.

[0033] In example implementations, identifying the other transmission request as the next transmission of the transmission request in the queue is based on a reordering window, where the reordering window represents a span of time in which the transmission request can be positioned within the ready-to-transmit queue.

[0034] Figure 2 An example schematic diagram of a system 200 implementing an out-of-order scheduler, such as scheduler 225a and scheduler 225b, in accordance with one or more embodiments of the present disclosure is shown.

[0035] As Figure 2As shown, system 200 can include a switch 205 configured to transmit packets to one or more nodes. As ingress packets 210 arrive at switch 205, ingress packets 210 are identified as being routed to node 1, node 2, etc., and the TIDs to which these packets belong are identified. For example, dashed box 240a indicates the processing and sorting of ingress packets destined for node 1. Ingress packet 210a is associated with and processed for node 1 TID 1 (hereinafter referred to as T1N1) and is placed in the associated queue 215a. When node 1 TID 1 queue 215a accumulates a certain amount of packets or a certain amount of time elapses, a particular TID (e.g., T1N1) can be identified as ready for transmission. For example, a ready for transmission message 220a can be sent to TID 1's scheduler 225a with respect to T1N1. Additionally or alternatively, a setting or flag can be set that T1N1 is ready for transmission, which can be checked by TID 1's scheduler 225a. In some embodiments, node 1 TID 1 queue 215a can continue to aggregate packets even after T1N1 is indicated as ready for transmission. In some embodiments, the aggregation of additional packets can trigger additional ready for transmission messages 220a. In some embodiments, system 200 can be configured to transmit to multiple nodes at a single time, and ready for transmission messages 220a can be pending and / or based on T1N1 and T1N2 (e.g., both have accumulated enough packets and / or both have enough elapsed time) both being ready for transmission.

[0036] Scheduler 225a for TID 1 can operate to place TIDs within and / or select TIDs from the ready for transmission queue 230a associated with the set of TIDs 1 for the various nodes. For example, scheduler 225a can operate based on obtaining a notification that T1N1 is ready for transmission and that node 2's TID 1 (hereinafter referred to as T1N2) is ready for transmission. Dashed box 240b can indicate the processing and sorting of ingress packets destined for node 2, and can operate in a similar or comparable manner to dashed box 240a. Scheduler 225a can obtain a notification that T1N1 and / or T1N2 are ready for transmission via a ready for transmission message, a checked flag or setting, etc.

[0037] In some embodiments, scheduler 225a can consider the metrics of one or more TIDs associated with ready for transmission queue 230a when deciding the order in which to schedule transmissions. For example, scheduler 225a can observe the metrics of the various TIDs already within ready for transmission queue 230a, and can use this information to select where to position a newly identified ready for transmission TID within ready for transmission queue 230a. Examples of such approaches are described in U.S. Patent Application No. 15 / 940, 1 10, filed April 3, 2018, entitled "Scheduling Transmissions in a Network," which is incorporated by reference in its entirety. Figure 3A and Figure 6In these and other embodiments, the scheduler 225a can then select the TID at the head of the ready-to-transmit queue 230a, as the TID has been positioned within the ready-to-transmit queue 230a in a manner that promotes efficiency.

[0038] Another example of how the scheduler 225a can consider the metrics of one or more TIDs associated with the ready-to-transmit queue 230a when deciding the order in which to schedule transmissions can include selecting which TID to transmit when it is time to transmit. For example, upon receiving a notification that a TID is ready to transmit, the scheduler 225a can place the TID at the end of the ready-to-transmit queue 230a, such that the TIDs are ordered in time sequence within the ready-to-transmit queue. When the wireless medium is available (e.g., checked the wireless medium with some sort of carrier sensing, has won contention for the wireless medium, observed a TX_DONE event, etc.), the scheduler 225a can determine the metrics of the TIDs within the ready-to-transmit queue 230a. Based on these metrics, the scheduler 225a can select the TID with the best metric or the metric that indicates the highest throughput expected to improve the overall efficiency of the wireless network. Examples of such an approach are described in greater detail in Figure 3B and Figure 3A .

[0039] While the scheduler 225a associated with TID 1 is shown as receiving input from node 1 and node 2, it should be understood that the switch 205 can serve any number of nodes, each of which can or can not include an associated packet of TID 1 that is aggregated and waiting to transmit. Thus, while node 1 and node 2 are used to illustrate examples, any number of nodes and associated TIDs can be contemplated.

[0040] Additionally, while discussion has been provided regarding TID 1 being placed in and selected from the ready-to-transmit queue 230a by the scheduler 225a, a corresponding scheduler 225b and ready-to-transmit queue 230b can also operate on TID 2, including corresponding processing of incoming packets 210b that will be aggregated in the node 1 TID 2 queue 215b and ready-to-transmit messages 220b that have been sent to the scheduler 225b of TID 2. As described above, the scheduler 225b can operate on TID 2 from any number of nodes. In some embodiments, multiple schedulers can operate in parallel, each scheduler having a corresponding class of TIDs, and each scheduler serving multiple nodes.

[0041] Additionally, these teachings apply to any type of wireless communication system. For example, while nodes and switches are described for one case of wireless communication, the teachings regarding out-of-order scheduling also apply to other wireless communications, such as Bluetooth Low Energy, Thread, mmWave, etc.

[0042] The system 200 can be modified, added to, or omitted without departing from the scope of the present disclosure. For example, designating different elements in the manner described is intended to assist in understanding the concepts described herein and is not intended to limit. Moreover, the system 200 can include any number of other elements or can be implemented within other systems or environments than those described. For example, any number of schedulers, nodes, TIDs, and / or ready transmit queues with corresponding processes can be included.

[0043] Figure 3B and Figure 3A respectively illustrate examples of adding TIDs 310 to a ready transmit queue 300 or selecting TIDs 310 from a ready transmit queue 300, in accordance with one or more embodiments of the present disclosure. In Figure 3B , a ready transmit TID 310c can be added to a ready transmit queue 300a in an out-of-order manner. In Figure 3A , a ready transmit TID 310g can be selected from a ready transmit queue 300b in an out-of-order manner. For example, in Figure 3B and Figure 3A , the order in which TIDs 310 are selected is not necessarily the order in which they are identified as ready to transmit.

[0044] As shown in Figure 3A , a TID 310c can be placed in a ready transmit queue 300a based on a comparison of metrics of its associated transmission to metrics of other TIDs 310 already within the ready transmit queue 300a, such as TID 310a, TID 310b, and TID 310d. For example, for a given TID 310 in a ready transmit queue 300a, the PHY rate of a given node, the number of transmission bytes aggregated for transmission to the given node, and / or the protocol overhead used in transmitting to the given node can be combined to determine the total data throughput associated with the given TID 310 if it were selected for transmission. These metrics can be generated for each TID within the ready transmit queue (e.g., for TID 310a, TID 310b, and TID 310d) and for a TID newly identified as ready to transmit (e.g., TID 310c). Based on the comparison metrics of the TIDs 310, the time slot position of the new TID 310c within the ready transmit queue 300a can be determined such that the overall efficiency of the network is improved. For example, if the metrics predict that TID 310a and TID 310b will provide higher throughput than TID 310c, but TID 310c will provide higher throughput than TID 310d, then TID 310c can be placed in the ready transmit queue 300a between TID 310b and TID 310d.

[0045] In these and other embodiments, when the wireless medium is ready to transmit, the TID 310 at the head of the ready-to-transmit queue 300a can be selected because the order of the TIDs 310 in the ready-to-transmit queue 300a has already been selected according to the metrics of the TIDs 310.

[0046] In some embodiments, a reorder window 320a can be used when deciding where to place a new TID 310c in the ready-to-transmit queue 300a. For example, each time a TID 310 is identified as ready to transmit, the TID 310 can be given a timestamp indicating the time at which it is ready to transmit. The reorder window 320a can be used as a limit on how far the ready-to-transmit queue 300a can be rearranged. For example, when the scheduler decides where to place a new TID 310c within the ready-to-transmit queue 300a, the timestamp of the TID 310c can be compared to the timestamps of the other TIDs 310 within the ready-to-transmit queue 300a. If the timestamp of the new TID 310c is within the reorder window 320a of another TID 310 within the ready-to-transmit queue 300a, that TID 310 can be eligible for consideration of whether to rearrange the new TID 310c relative to that TID 310; if the timestamp of the new TID 310c is further away from a given TID 310 than the reorder window 320a, the given TID 310 can remain in its position in the ready-to-transmit queue 300a and the new TID 310c can not be compared to the given TID 310. In some embodiments, the reorder window 320a can operate as + / - time around the timestamp of the new TID 310c.

[0047] In some embodiments, reorder window 320a can be variable. For example, the size of reorder window 320a can be a setting that is configurable or otherwise selectable by a network administrator. In some embodiments, the size of reorder window 320a can be automatically adjusted. For example, if the metrics of TIDs 310 used to determine their position in ready-to-transmit queue 300a are close to each other, reorder window 320a can be smaller, and if the metrics of TIDs 310 are significantly different, reorder window 320a can be larger. For example, if the metrics predict that TID 310d provides a throughput of 1%, and TID 310c has a 2% increase in throughput and TID 310b has a 3% increase in throughput, then TID 310b and TID 310c can be positioned ahead of TID 310d, even if TID 310b and TID 310c only represent a small gain in overall throughput. In such an example, by reducing the size of the reorder window, TID 310c may be positioned after TID 310d, rather than ahead, due to a small gain in overall throughput, even though TID 310c may represent at least some gain. In some embodiments, the size of reorder window 320a may be proportional to the relative difference between the metrics of TIDs 310. As the difference between the metrics increases, the size of reorder window 320a may also be increased. In some embodiments, the size of reorder window 320a may be adjusted after determining the metrics of TIDs 310 that fall within the initial window, and the TIDs 310 within the new size of reorder window 320a are those that are compared to new TID 310c when determining its slot position in preparing transmit queue 300a. In some embodiments, the adjustment may be based on the PHY rate.

[0048] like Figure 3B As shown, when selecting a TID 310 from the ready-to-transmit queue 300b, the selection of the TID 310 for transmission may be made based on one or more metrics. In these and other embodiments, when a new TID 310 is identified as ready to transmit, the new TID 310 may be placed at the end of the ready-to-transmit queue 300b (e.g., may be added in chronological order). When the wireless medium is available for transmission (e.g., a TX_DONE event is observed), the scheduler may select a TID 310 from the ready-to-transmit queue 300b. Unlike the example Figure 4A While shown selecting the TID 310 at the head of the ready to transmit queue 300a, the scheduler may select any TID 310 within the ready to transmit queue 300b (or a subset of the TIDs 310 within the ready to transmit queue 300b).

[0049] In determining which TID 310 to select, the scheduler can determine one or more metrics for the TIDs 310 within the ready-to-transmit queue 300b. For example, for a given TID in the ready-to-transmit queue 300b, the PHY rate of the given node, the number of transmission bytes aggregated for transmission to the given node, and / or the protocol overhead used in transmitting to the given node can be combined to determine the total data throughput associated with the given TID 310 if it were selected for transmission. Based on these metrics (or any other metrics), the scheduler can select the TID 310 for transmission that has the highest or most favorable metric. For example, if TID 310e is expected to have a first throughput per unit of time, TID 310f has a throughput 10% higher, TID 310g has a throughput 12% higher, and TID 310h has a throughput 8% higher, the scheduler can select TID 310g for transmission based on TID 310g having the most favorable metric.

[0050] In some embodiments, a reordering window 320b can be used when deciding which TID 310 to select for transmission. For example, the scheduler can limit how far back the scheduler can consider TIDs 310 when scheduling based on the reordering window 320b. If a given TID is within the reordering window 320b, the given TID can be considered for possible transmission. If a TID is outside the reordering window 320b, the metric for the TID can not be determined and it can not be considered for transmission. In some embodiments, the reordering window 320b can be a particular length of time looking back from TID 310e at the head of the ready-to-transmit queue 300b. For example, each TID 310 can receive a timestamp when it is placed within the ready-to-transmit queue 300b. The scheduler can not consider TIDs whose timestamps are beyond the timestamp of TID 310e plus the reordering window 320b. In some embodiments, the reordering window can be in units of milliseconds (e.g., 10 ms, 20 ms, 30 ms, 50 ms, etc.).

[0051] In some embodiments, the reorder window 320b can be variable. For example, the size of the reorder window 320b can be a setting that is configurable or otherwise selected by a network administrator. In some embodiments, the size of the reorder window 320b can be automatically adjusted. For example, if the metrics for the TIDs 310 under consideration for transmission are close to one another, the reorder window 320b can be smaller, and if the metrics for the TIDs 310 are significantly different, the reorder window 320b can be larger. For example, if the metrics project TID 310e to provide one throughput, and TID 310f to increase throughput by 2% and TID 310g to increase throughput by 3%, TID 310g can be selected for transmission before the other two TIDs, even though TID 310g represents only a small gain in total throughput. By reducing the size of the reorder window 320b in such an example, TID 310g can not be selected for transmission before TIDs 310e and 310f due to the small gain in total throughput, even though TID 310g can represent at least some gain, because the reduction in the size of the reorder window 320b moves TID 310g outside of the reorder window 320b. In some embodiments, the size of the reorder window 320b can be proportional to the relative difference between the metrics for the TIDs 310. As the difference between the metrics increases, the size of the reorder window 320b can also increase. In some embodiments, the size of the reorder window 320b can be adjusted after the metrics for the TIDs 310 falling within the initial window are determined, and the TIDs 310 within the new size of the reorder window 320b are considered eligible for transmission. In some embodiments, the adjustment can be based on the PHY rate.

[0052] Modifications, additions, or omissions can be made to Figure 4B and Figure 4A without departing from the scope of the disclosure. For example, specifying different elements in the manner described is intended to assist in understanding the concepts described herein and is not intended to limit the concepts described herein. Moreover, the use of the ready-to-transmit queue 300 can include any number of other elements, or can be implemented within other systems or environments other than those described. For example, any number of TIDs from any number of nodes can be included in the ready-to-transmit queue 300.

[0053] Figure 4B and Figure 4A Exemplary graphs 400a and 400b of the amount of packets transmitted according to various scheduling techniques are shown in accordance with one or more embodiments of the disclosure. For convenience, the graphs 400a and 400b show scheduling associated with one TID and two nodes, namely, node 1 TID 1 (N1T1) 410 and node 2 TID 1 (N2T1) 420. Figure 4BA round robin schedule is shown where the scheduler alternates between nodes with TIDs ready to transmit. Figure 4B The use of an out-of-order scheduler is shown so that nodes can be selected in an order different from a strictly alternating order or a strict order in which TIDs are ready for transmission. Graphs 400a and 400b show time along the x-axis and aggregated MAC protocol data unit (AMPDU) size along the y-axis.

[0054] like Figure 5 As shown, N1T1 410a has a specific number of AMPDUs that are transmitted whenever N1T1 410a is selected for transmission. When N2T1 420a is selected for transmission, fewer packets are aggregated, and therefore fewer packets are transmitted, compared to when N1T1 410a is selected for transmission. Due to the different AMPDU sizes, the overall throughput of the wireless network is reduced because inefficient use of the wireless medium occurs when N2T1 420a is selected for transmission.

[0055] like Figure 1 As shown, using an out-of-order scheduler to select a TID for transmission can improve the overall throughput of a wireless network. For example, by selecting N1T1 410b for transmission twice before selecting N2T1 420b for transmission, N2T1 420b can aggregate additional packets while waiting for transmission, thereby resulting in more packets being sent when N2T1 420b is selected for transmission and an overall increase in network throughput. Selecting N1T1 410b more than once before selecting N2T1 420b for transmission can be implemented using any method according to the present disclosure.

[0056] In some embodiments, the use of an out-of-order scheduler may result in specific TIDs being repeatedly denied opportunities to communicate within the wireless network. For example, if N1T1 410b is consistently more efficient at transmitting packets, then N2T1 420b may never be selected for transmission. To offset this risk, specific steps may be taken to avoid starvation of N2T1 420b, or otherwise avoid situations where N2T1 420b is not provided with sufficient or desired transmission opportunities. In some embodiments, a counter may be used to track how often a specific TID has transmitted, and may be used to grant all TIDs at least some access to the wireless medium. For example, each time a TID is selected, the counter for that TID may be checked. Figure 2After the illustrated example, if the threshold is set to 2, N1T1 410b can be selected for transmission in the first two slots, transmitted, and the counter can be incremented. When the third slot occurs, N1T1 410b can be selected again. However, because the counter is at the threshold, the scheduler can check the counters of other TIDs within the ready-to-transmit queue. If there are any counters that are at or below the bottom threshold (e.g., still at zero), the scheduler can select those TIDs for transmission before selecting N1T1 410b for transmission again. Because N2T1 420b is still at zero (e.g., it has not been selected for transmission, and thus is at or below the bottom threshold), N2T1 420b can be selected for transmission and its counter incremented. At the fourth slot, N1T1 410b can be selected by the scheduler as the most efficient for transmission (or, based on its position in the queue, can be at the head of the ready-to-transmit queue). Because the counter of N1T1 410b is at the threshold, the scheduler can check for other TIDs whose counters are still at or below the threshold. Because all other TIDs have counters above the threshold, the scheduler can reset all counters and select the most efficient TID for transmission (e.g., N1T1 410b can be selected for transmission and all counters of all TIDs reset to zero).

[0057] modifications, additions, or omissions can be made to FIGS. 400a / 400b without departing from the scope of the disclosure. For example, designating different elements in the manner described is intended to assist in explaining the concepts described herein and is not a limitation.

[0058] Figure 3A A flow diagram of an exemplary method 500 of out-of-order scheduling of TIDs in accordance with one or more embodiments of the present disclosure is shown. Method 500 can be implemented in whole or in part by Figure 6 the AP 110 of FIG. 1, Figure 3B one or more of the switches 205 of FIG. 2, or any combination thereof.

[0059] At block 510, a first TID can be identified as ready to transmit. For example, the first TID can belong to a group of TIDs and can be associated with a given node. After a certain amount of packets are accumulated or a certain amount of time elapses for the first TID, a ready-to-transmit message can be sent with respect to the first TID, a flag can be set, or some indication can otherwise be provided that the first TID is ready to transmit.

[0060] At block 520, the first TID can be added to the ready-to-transmit queue. For example, the first TID can be added in a chronological order to the ready-to-transmit queue (e.g., added to the end of the queue). As another example, the first TID can be positioned within the ready-to-transmit queue in an efficiency- promoting manner (e.g., based on a relative metric of the first TID compared to other TIDs already within the ready-to-transmit queue).

[0061] At block 530, a second TID can be identified as ready to transmit. For example, the second TID can belong to the same group of TIDs as the first TID and can be associated with a different node. After a certain amount of packets are accumulated or a certain amount of time elapses for the second TID, a ready-to-transmit message can be sent regarding the second TID, a flag can be set, or an indication can otherwise be provided that the second TID is ready to transmit.

[0062] At block 540, the second TID can be added to the ready-to-transmit queue at a second time point after the first time point. For example, the second TID can be added in a chronological order to the ready-to-transmit queue (e.g., added to the end of the queue). As another example, the second TID can be positioned within the ready-to-transmit queue in an efficiency-promoting manner (e.g., based on a relative metric of the second TID compared to other TIDs already within the ready-to-transmit queue).

[0063] At block 550, the second TID can be selected from within the ready-to-transmit queue for transmission prior to the first TID based on a total throughput in the wireless network. For example, when the network medium is available and ready for transmission, the second TID can be selected such that a communication with a node associated with the second TID can be selected for transmission prior to a node associated with the first TID based on a metric of the second TID indicating that the second TID has a higher throughput than the first TID. In some embodiments, the operation of selecting the second TID can be based on, at block 540, placing the second TID in the ready-to-transmit queue in a position earlier in the ready-to-transmit queue than the first TID, with reference to Figure 7 and Figure 6 Examples are described. In some embodiments, the operation of selecting the second TID can be based on selecting the second TID for transmission even if the second TID is not in front of the ready-to-transmit queue (e.g., can have been placed in a more rearward position in the ready-to-transmit queue than the first TID at block 540), with reference to Figure 1 and Figure 2 Examples are described.

[0064] At block 560, the node can be prevented from starving. For example, the scheduler can take measures to permit all TIDs to be selected from the ready-to-transmit queue at least once before a particular TID is selected from the ready-to-transmit queue more than a threshold number of times. For example, the scheduler can use a counter that is incremented each time a TID is selected, and if a TID is at the threshold, then other TIDs with a counter of zero are selected before the TID at the threshold is selected again.

[0065] At block 570, the activity level of the medium is checked. For example, the size of the backlog at the switch can be checked, a clear channel assessment can be performed, the number of times the switch has deferred transmission can be counted, or any other metric or analysis can be used to check the busyness of the medium.

[0066] At block 580, one or more response operations can be performed based on the activity level being below a threshold. For example, where there is high availability of the wireless medium, certain features of the present disclosure for increasing overall throughput can be modified, disabled, or otherwise adjusted. For example, if there is dead air time in the wireless network, there is no need to force a particular node to wait to receive a transmission to increase overall throughput.

[0067] In some embodiments, the response operation can include adjusting the size of the reordering window. If there is dead air time, it can be advantageous to include some efficiency gains, but it can also be advantageous to place a limit on how far the scheduler can execute to correct the typical order in which TIDs are scheduled for transmission. As another example, the aggregation timeout (e.g., the amount of time elapsed before a packet is aggregated or the amount of packets aggregated) can be reduced so that TIDs can be identified as ready for transmission more quickly. Such modifications can permit packets to be sent more quickly, which can benefit small TCP window flows. As another example, the use of multi-frame transmissions during a transmission opportunity (TXOP) can be disabled, or the limit on TXOP duration can be reduced, permitting other devices using the wireless medium to transmit more quickly, which can reduce latency for upstream traffic and can increase throughput for small TCP window flows.

[0068] Figure 7 A flowchart illustrating an exemplary method 600 of out-of-order scheduling TIDs by placing new TIDs at different locations within a ready-to-transmit queue, in accordance with one or more embodiments of the present disclosure, is shown. The method 600 can be implemented in whole or in part by Figure 1 the AP 110 of FIG. 1, Figure 2 one or more of the switches 205 of FIG. 2, or any combination thereof.

[0069] At block 605, a new TID can be identified as ready for transmission. For example, a certain amount of packets can have accumulated for the new TID, or a certain amount of time can have passed for the packets ready for transmission for the new TID. In these and other embodiments, the new TID can be identified as ready for transmission based on a ready for transmission message being sent, a flag being set, or other setting or any other identification.

[0070] At block 610, it can be determined whether the new TID is already in the ready for transmission queue. For example, the new TID can have been previously identified as ready for transmission, and can have a parameter or metric change (e.g., the amount of packets accumulated and / or the PHY rate can change) to again trigger a notification of the TID being ready for transmission. If the new TID is not already in the ready for transmission queue, the method 600 can proceed to block 615. If the new TID is already in the ready for transmission queue, the method 600 can proceed to block 620.

[0071] At block 615, a timestamp can be added to the new TID. TIDs already in the ready for transmission queue can maintain their earlier timestamp indicating how long the earlier TID has been in the ready for transmission queue. For the new TID, a timestamp can be added so that it can be known when the new TID was added to the ready for transmission queue.

[0072] At block 620, one or more metrics can be determined for the transmission associated with the new TID. For example, a PHY rate of a destination node of a requested transmission associated with the new TID, a number of transmission bytes that have been aggregated for transmission to the destination node of the requested transmission associated with the new TID, and / or a protocol overhead used in transmitting to the node of the new TID can be combined to determine a total data throughput associated with the new TID. In these and other embodiments, the one or more metrics can correspond to performing a prediction, forecast, estimate, extrapolation, projection, or the like of a total throughput within the wireless network associated with the transmission associated with the new TID.

[0073] At block 625, a first TID in the ready for transmission queue can be set to an incremental variable i. Block 625 can initialize a comparison of metrics of the new TID to metrics of other TIDs already in the ready for transmission queue.

[0074] At block 630, a determination can be made as to whether the metrics of the new TID are better than the metrics of the i-th TID in the ready-to-transmit queue. If the metrics associated with the new TID are better, the method 600 can proceed to block 635. If the metrics associated with the new TID are not better, the method 600 can proceed to block 645. For example, if the combination of the PHY rate of the node associated with the new TID, the number of transmission bytes aggregated for transmission to the node associated with the new TID, and / or the protocol overhead used in transmitting to the node associated with the new TID indicates a higher total throughput in the wireless network compared to the same metrics of the other TIDs in the ready-to-transmit queue, the method 600 can proceed to block 635.

[0075] At block 635, a determination can be made as to whether the timestamp of the i-th TID is within a reordering window. As described above, the reordering window can be based on the timestamp of the new TID and can represent a time span based on when the new TID is ready to transmit. For example, if the timestamp of the i-th TID is outside the reordering window, the scheduler can not consider that TID in determining where to place the new TID in the ready-to-transmit queue. If the timestamp of the i-th TID is within the reordering window (e.g., the new TID and the i-th TID are close enough in time), the method 600 can proceed to block 640. If the timestamp of the i-th TID is outside the reordering window (e.g., the new TID and the i-th TID are too far apart in time), the method 600 can proceed to block 645.

[0076] In some embodiments, blocks 630 and 635 can be reversed, such that the timestamps can be compared before the metrics of the TIDs are compared.

[0077] At block 640, the new TID can be placed in the ready-to-transmit queue before the i-th TID based on the metrics of the new TID being better than the metrics of the i-th TID and based on the timestamp of the i-th TID being within the reordering window. After block 640, when the wireless network medium is available for transmission, the TID at the head of the ready-to-transmit queue can be selected for transmission to the node associated with that TID at the head of the ready-to-transmit queue. By this operation, usage of the wireless network medium can be improved because the ordering within the ready-to-transmit queue can be set in a way that improves the total throughput of the wireless network.

[0078] At block 645, based on the metrics of the new TID being worse than the metrics of the i-th TID or the timestamp of the i-th TID falling outside the reordering window, a determination can be made as to whether there are additional TIDs in the ready-to-transmit queue that have not been compared to one or more metrics of the new TID. If there are additional TIDs, the method 600 can proceed to block 650. If there are no additional TIDs, the method 600 can proceed to block 655.

[0079] At block 650, the counter i can be incremented by 1, such that the next TID in the ready-to-transmit queue can be used at blocks 630 and 635 to compare the metrics and timestamps of the next TID to the new TID. The operations of 630, 635, 640, 645, and / or 650 can be repeated until all TIDs in the ready-to-transmit queue have been considered.

[0080] At block 655, based on there being no additional TIDs in the ready-to-transmit queue, the new TID can be placed at the end of the ready-to-transmit queue.

[0081] Figure 8 A flowchart illustrating an exemplary method 700 of out-of-order scheduling TIDs by selecting TIDs for transmission from within a reorder window, in accordance with one or more embodiments of the present disclosure, is shown. The method 700 can be implemented in whole or in part by the AP 110, ​ and ​ one or more of the respective switches 205, or any combination thereof.

[0082] At block 710, one or more metrics of the TIDs within the reorder window can be determined. For example, the PHY rate of the node of the TID, the number of transmission bytes that have been aggregated for transmission to the node of the TID, and / or the protocol overhead used in transmitting to the node of the TID can be combined for each TID to determine a total data throughput associated with the respective TID.

[0083] At block 720, the size of the reorder window can be adjusted based on the differences between the metrics of the TIDs. For example, if the metrics are similar to a small change, the reorder window can be adjusted smaller. As another example, if there is a large difference between the metrics, the size of the reorder window can be increased such that additional TIDs can be considered. If the size of the reorder window is increased, the corresponding one or more metrics of any new TIDs that currently fall within the reorder window can also be determined. In some embodiments, the adjustment of block 720 can be a relative change to the previous size of the reorder window. For example, if the change in the metrics of block 710 is less than the previously checked change between the metrics, the size of the reorder window can be decreased by a set amount (e.g., 10%) or by a corresponding amount based on the relative change in the change in the metrics (e.g., the change decreased by 7%, so the size of the reorder window is adjusted downward by 7%).

[0084] In some embodiments, the initial reordering window can have a set size (e.g., 20 ms), or can be based on a relative metric of all or a subset of TIDs within the ready-to-transmit queue (e.g., 0% to 25% change between the highest and lowest metrics corresponds to an initial reordering window of 10 ms, 25% to 75% change corresponds to an initial reordering window of 20 ms, and 75% and above change corresponds to an initial reordering window of 30 ms).

[0085] At block 730, a TID having the best metric within the reordering window can be selected from the ready-to-transmit queue. For example, a TID having a metric indicating the greatest throughput can be selected from the ready-to-transmit queue. While a TID having the best metric is identified or described herein, it should be understood that any TID that is expected to improve overall throughput or is relatively better than the metric associated with another TID can be selected without the need for a "best," maximum, or fully optimized case. Rather, incremental improvements or gains are even contemplated within the scope of the present disclosure.

[0086] Those skilled in the art will understand that, for these and other processes and methods disclosed herein, the functions performed in the processes and methods can be implemented in differing orders, simultaneously, etc. Furthermore, the outlined steps and operations are provided as examples only, and some of the described steps and operations can be optional, combined into fewer steps and operations, or expanded into additional steps and operations without detracting from the essence of the disclosed embodiments.

[0087] ​A diagrammatic representation of a machine in the exemplary form of a computing device 800 within which a set of instructions for causing the machine to perform any one or more of the methodologies discussed herein can be executed is shown. The computing device 800 can include a mobile telephone, a smart phone, a netbook computer, a rackmount server, a router computer, a server computer, a personal computer, a mainframe computer, a laptop computer, a tablet computer, a desktop computer, or any computing device having at least one processor within which a set of instructions for causing the machine to perform any one or more of the methodologies discussed herein can be executed. In alternative embodiments, the machine can be connected (e.g., networked) to other machines in a LAN, an intranet, an extranet, or the Internet. The machine can operate in the capacity of a server machine in client-server network environment. The machine can comprise a personal computer (PC), a set-top box (STB), a server, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term "machine" shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.

[0088] The exemplary computing device 800 includes a processing device (e.g., a processor) 802, a main memory 804 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM)), a static memory 806 (e.g., flash memory, static random access memory (SRAM)), and a data storage device 816, which communicate with each other via a bus 808.

[0089] Processing device 802 represents one or more general-purpose processing devices such as a microprocessor, central processing unit, or the like. More particularly, the processing device 802 can include a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or a processor implementing other instruction sets or processors implementing a combination of instruction sets. The processing device 802 can also include one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. The processing device 802 is configured to execute instructions 826 for performing the operations and steps discussed herein.

[0090] The computing device 800 can also include one or more network interface devices 822 that can communicate with one or more networks 818. The computing device 800 can also include a display device 810 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), a alphanumeric input device 812 (e.g., a keyboard), a cursor control device 814 (e.g., a mouse), and a signal generation device 820 (e.g., a speaker). In at least one embodiment, the display device 810, the alphanumeric input device 812, and / or the cursor control device 814 can be combined into a single component or device (e.g., an LCD touch screen).

[0091] The data storage device 816 can include a computer-readable storage medium 824 on which is stored one or more sets of instructions 826 embodying any one or more of the methodologies or functions described herein. The instructions 826 can also reside, completely or at least partially, within the main memory 804 and / or within the processing device 802 during execution thereof by the computing device 800, the main memory 804 and the processing device 802 also constituting computer-readable media. The instructions 826 can be transmitted or received by the network interface device 822 via the network 818.

[0092] While the computer-readable storage medium 824 is shown in an example embodiment to be a single medium, the term "computer-readable storage medium" can include a single medium or multiple media (e.g., a centralized or distributed database, and / or associated caches and servers) that store the one or more sets of instructions. The term "computer-readable storage medium" shall also be taken to include any medium that is capable of storing or encoding a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present disclosure. The term "computer-readable storage medium" shall accordingly be taken to include, but not be limited to, solid-state memories, optical media, and magnetic media.

[0093] It will be appreciated that, unless otherwise indicated herein, that, where the discussion is deemed to relate to the action and processes of a computer system or other information processing device, the discussion can include actions and processes of a computer system or other information processing device manipulating or transforming physical

[0094] Example implementations also can relate to apparatus for performing the operations herein. This apparatus can be specially constructed for the required purposes, or it can comprise one or more general-purpose computers selectively activated or reconfigured by one or more computer programs. Such computer programs can be stored in a computer readable medium, such as a computer readable storage medium or a computer readable signal medium.

[0095] An exemplary apparatus can be a multiple-input multiple-output (MIMO) apparatus that supports up to NxN discrete communication streams through N antennas. In an example, the MIMO apparatus signal processing unit can be implemented as NxN. In various implementations, the value of N can be 4, 6, 8, 12, 16, etc. Extended MIMO operation enables the use of up to 2N antennas to communicate with another similarly equipped wireless system. It should be noted that even if the systems do not have the same number of antennas, an extended MIMO system can communicate with other wireless systems, but can not utilize some of the antennas in one of the stations, thus reducing optimal performance.

[0096] Channel state information (CSI) from any of the devices described in this disclosure can be extracted independently of changes related to channel state parameters and used for spatial diagnostic services of the network, such as motion detection, proximity detection, and positioning, which can be used, for example, for WLAN diagnostics, home security, health monitoring, smart home facility control, elder care, car tracking and monitoring, home or mobile entertainment, car infotainment, etc.

[0097] Unless the particular arrangements described herein are mutually exclusive of one another, the various implementations described herein can be combined to enhance system functionality and / or to produce complementary functionality. Such combinations will be readily apparent to one of skill in the art given the entire disclosure presented above. Likewise, aspects of the implementations can be realized in independently arranged systems, where each of the interconnected and thereby interacting system components provide more limited and specific component functionality, but together they support, enable, and produce the described real-world effects. Indeed, it will be understood that unless features in a particular implementation are expressly identified as being incompatible with one another and not readily combinable in a complementary and / or supportive sense, the entire disclosure contemplates and envisions that particular features of these complementary implementations can be selectively combined to provide one or more overall but slightly different technical solutions. Thus, it will be understood that the above description has been set forth by way of example only and that modifications can be made within the scope of the disclosure.

[0098] The subject technology of the present disclosure is illustrated, for example, in accordance with various aspects described below. For convenience, various examples of aspects of the subject technology are described as numbered embodiments (1, 2, 3, etc.). These are provided as examples, and do not limit the subject technology. Note that any dependent embodiments or portions thereof can be combined in any combination, and placed in independent embodiments, e.g., Embodiment 1, Embodiment 2, and Embodiment 3. Other embodiments can be presented in a similar manner. Below is a non-limiting overview of some of the embodiments presented herein.

[0099] Example 1 includes a method comprising identifying a first transmission identifier (TID) associated with a first node of a wireless network as ready for transmission, and adding the first TID to a ready for transmission queue at a first point in time. The method further comprises identifying a second TID associated with a second node of the wireless network as ready for transmission, and adding the second TID to the ready for transmission queue at a second point in time later than the first point in time. The method further comprises selecting the second TID from the ready for transmission queue before selecting the first TID based on an increased total throughput of packets within the wireless network anticipated when communicating with the second node prior to communicating with the first node.

[0100] Example 2 includes a wireless access point comprising one or more processors, and one or more non-transitory computer-readable media containing instructions that, when executed by one or more processors, cause the wireless access point to perform one or more operations. The operations of Example 2 include obtaining a first notification of a first transmission identifier (TID) associated with a first node of a wireless network that is ready for transmission, adding the first TID to a ready for transmission queue at a first point in time, and obtaining a second notification of a second TID associated with a second node of the wireless network that is ready for transmission. The operations of Example 2 further include adding the second TID to the ready for transmission queue at a second point in time later than the first point in time, and selecting the second TID from the ready for transmission queue before selecting the first TID based on an increased total throughput of packets within the wireless network anticipated when transmitting packets to the second node prior to transmitting packets to the first node.

[0101] Example 3 includes a non-transitory computer-readable medium containing instructions that, when executed by one or more processors, cause a system to perform one or more operations comprising identifying a first transmission identifier (TID) associated with a first node of a wireless network as ready for transmission, adding the first TID to a ready for transmission queue at a first point in time, and identifying a second TID associated with a second node of the wireless network as ready for transmission. The operations further comprise adding the second TID to the ready for transmission queue at a second point in time later than the first point in time, and selecting the second TID from the ready for transmission queue before selecting the first TID based on an increased total throughput of packets within the wireless network anticipated when communicating with the second node prior to communicating with the first node.

[0102] Some embodiments include one or more additional operations that can include checking an activity level of a medium of the wireless network and, based on the activity level being below a threshold, performing at least one response operation. The response operation can include reducing an aggregation timeout such that a different TID is selected to the ready-to-transmit queue more quickly than before the aggregation timeout is reduced; disabling multi-frame transmission during a transmission opportunity (TXOP); reducing a TXOP limit duration; and reducing a size of a reorder window.

[0103] In some embodiments, the first TID and the second TID can belong to a first group of TIDs. Such embodiments can include one or more additional operations, such as identifying a third TID associated with the first node of the wireless network as ready-to-transmit, the third TID of a second group of TIDs including the third TID and a fourth TID associated with the second node; adding the third TID to a second ready-to-transmit queue at a third point in time; identifying the fourth TID as ready-to-transmit; adding the fourth TID to the second ready-to-transmit queue at a fourth point in time later than the third point in time; and selecting the fourth TID from the second ready-to-transmit queue before the third TID. In these embodiments, the first group of TIDs and the second group of TIDs can be processed in parallel.

[0104] In some embodiments, the first group of TIDs can be associated with voice packets and the second group of TIDs can be associated with video packets.

[0105] In some embodiments, when selecting the second TID from the ready-to-transmit queue, a wireless access point can perform operations that can include determining, based on the second TID being ready-to-transmit, a first one or more metrics of the first TID associated with the total throughput of packets within the wireless network and determining a second one or more metrics of the second TID associated with the total throughput within the wireless network. In these embodiments, the operation of adding the second TID to the ready-to-transmit queue can include an operation of positioning the second TID before the first TID within the ready-to-transmit queue based on the second one or more metrics of the increased total throughput of packets expected compared to the first one or more metrics.

[0106] Some embodiments include one or more additional operations that can include associating a first timestamp with the first TID; associating a second timestamp with the second TID; and comparing the second timestamp associated with the second TID and the first timestamp associated with the first TID to a reordering window, where the reordering window can relate to a time span in which TIDs can be positioned within the ready-for-transmission queue. In these embodiments; the operation of positioning the second TID before the first TID within the ready-for-transmission queue can be further based on the second timestamp and the first timestamp being within the reordering window.

[0107] In some embodiments, the size of the reordering window can vary, and the size of the reordering window can be based on a difference between the first one or more metrics and the second one or more metrics.

[0108] In some embodiments, the operations of adding the first TID and the second TID to the ready-for-transmission queue can be performed in chronological order, such that when the first TID is positioned in the ready-for-transmission queue, it can be positioned before the second TID. In such embodiments, the operation of selecting the second TID from the ready-for-transmission queue can include determining that the first TID and the second TID are within a reordering window, and the operation of selecting the second TID from the ready-for-transmission queue can include an operation of determining a first one or more metrics of the first TID and a second one or more metrics of the second TID associated with the total throughput of packets within the wireless network. In such embodiments, the second TID can be selected from the ready-for-transmission queue based on the second one or more metrics indicating an increased total throughput of packets compared to a predicted impact of the first one or more metrics on the total throughput of the packets.

[0109] Some embodiments include one or more additional operations that can include, prior to communicating with the second node associated with the second TID, determining whether a first counter of the second TID has met or exceeded a first threshold; based on the first counter of the second TID meeting or exceeding the first threshold, identifying a third TID within the ready-to-transmit queue, the third TID having a second counter at or below a second threshold; based on the second counter of the third TID being at or below the second threshold, selecting the third TID from the ready-to-transmit queue; transmitting a packet of a third node associated with the third TID; incrementing the second counter of the third TID; verifying whether respective counters of the first TID, the second TID, and the third TID are greater than the second threshold; and based on the respective counters of the first TID, the second TID, and the third TID being greater than the second threshold, resetting the respective counters of the first TID, the second TID, and the third TID.

[0110] With respect to use of substantially any plural or singular terms herein, those having skill in the art can convert from the plural to the singular or from the singular to the plural as is appropriate to the context or application. For clarity, various singular / plural permutations are expressly set forth herein. Unless specifically stated otherwise, a reference to an element encompassing a singular element likewise encompasses the plural of such element or vice versa. Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether these disclosure elements express explicit transitional phrases or words such as "means for" or "step for".

[0111] In general, the terminology used herein, and especially in the appended claims (for example, in the body of the appended claims), is intended to be interpreted in an "open" manner (for example, the term "including" should be interpreted as "including, without limitation," the term "having" should be interpreted as "having at least," the term "includes" should be interpreted as "includes, without limitation," etc.). Moreover, where phrases such as "at least one of A, B, and C, etc." are used, in general, the meaning of such construction is that which would be understood by one of skill in the art (for example, a system "having at least one of A, B, and C" would include, without limitation, a system that includes A alone, a system that includes B alone, a system that includes C alone, a system that includes A and B together, a system that includes A and C together, a system that includes B and C together, or a system that includes A, B, and C together, etc.). Additionally, phrases rendered in the specification, claims, or drawings with two or more alternative terms should be interpreted to include one of the terms, either of the terms, or both of the terms. For example, the phrase "A or B" would be interpreted to include the possibility of "A," or "B," or "A and B."

[0112] The disclosure can be embodied in other specific forms without departing from the spirit or essential characteristics thereof. The described implementations are to be considered in all respects only as illustrative and not restrictive. The scope of the disclosure is, therefore, indicated by the appended claims, rather than by the foregoing description. All changes that come within the meaning and range of equivalency of the claims are to be embraced within their scope.

Claims

1. A method for scheduling packets for transmission, the method comprising: identifying a first transmission identifier TID associated with a first node of a wireless network as ready to transmit; adding a first TID to a ready-to-transmit queue at a first point in time; identifying a second TID associated with a second node of the wireless network as ready to transmit; adding the second TID to the ready-to-transmit queue at a second time point later than the first time point; as well as The second TID is selected from the ready-to-transmit queue prior to selecting the first TID based on a projected increased overall throughput of packets within the wireless network when communicating with the second node prior to communicating with the first node. 2 . The method of claim 1 , further comprising transmitting a packet associated with the second TID to the second node based on selecting the second TID.

3. The method of claim 1 , wherein selecting the second TID from the ready-to-transmit queue comprises: determining, based on the second TID to be transmitted, first one or more metrics associated with the total throughput of packets within the wireless network for the first TID, and determining second one or more metrics associated with the total throughput of packets within the wireless network for the second TID, Wherein adding the second TID to the ready-to-transmit queue comprises positioning the second TID ahead of the first TID within the ready-to-transmit queue based on the expected increased total throughput of packets for the second one or more metrics of the second TID compared to the first one or more metrics of the first TID.

4. The method according to claim 3, further comprising: associating a first timestamp with the first TID; associating a second timestamp with the second TID; as well as comparing the second timestamp associated with the second TID and the first timestamp associated with the first TID to a reordering window, the reordering window being related to a time span within which a TID can be positioned within the ready-to-transmit queue, Wherein positioning the second TID before the first TID within the ready-to-transmit queue is further based on the second timestamp and the first timestamp being within the reordering window.

5. The method of claim 4 , wherein a size of the reorder window is variable based on a relative difference between the first one or more metrics of the first TID and the second one or more metrics of the second TID, such that the size of the reorder window increases as the relative difference between the first one or more metrics and the second one or more metrics increases.

6. The method of claim 1 , wherein the first TID and the second TID are added to the ready-to-transmit queue in chronological order such that the first TID is positioned before the second TID in the ready-to-transmit queue, and wherein selecting the second TID from the ready-to-transmit queue comprises determining first one or more metrics associated with the total throughput of packets within the wireless network for the first TID and second one or more metrics for the second TID, wherein the second TID is selected from the ready-to-transmit queue based on the second one or more metrics indicating an increased total throughput of packets compared to an expected impact of the first one or more metrics on the total throughput of packets.

7. The method according to claim 6, further comprising: determining that the first TID and the second TID are within a reordering window, the reordering window being associated with a time span within which a TID can be selected from the ready-to-transmit queue, wherein the first one or more metrics and the second one or more metrics are determined within the reordering window based on the first TID and the second TID, and The second TID is selected based on the second TID being within the reordering window.

8. The method of claim 1 , wherein the aggregate throughput of the wireless network is based at least on one or more metrics associated with a particular TID of a particular node, wherein the one or more metrics are based on at least one of a physical layer (PHY) rate, a number of bytes transmitted, and a protocol overhead.

9. The method of claim 1, further comprising preventing the first node from being denied an opportunity to communicate within the wireless network.

10. The method of claim 9, wherein preventing the first node from being denied an opportunity to communicate within the wireless network comprises: Before communicating with the second node associated with the second TID, determining whether a first counter of the second TID has met or exceeded a first threshold; identifying a third TID within the ready-to-transmit queue, the third TID having a second counter at or below a second threshold, based on the first counter of the second TID meeting or exceeding the first threshold; selecting the third TID from the ready-to-transmit queue based on the second counter for the third TID being at or below the second threshold; transmitting a packet for a third node associated with the third TID; Incrementing the second counter of the third TID; verifying that the first TID, the second TID, and the third TID have corresponding counters greater than the second threshold; as well as Based on the first TID, the second TID, and the third TID having respective counters greater than the second threshold, resetting the respective counters of the first TID, the second TID, and the third TID.

11. The method according to claim 1 , further comprising: checking an activity level of a medium of the wireless network; Based on the activity level being below a threshold, performing at least one response action, wherein the response action comprises: reducing an aggregation timeout such that a different TID is selected to the ready-to-transmit queue more quickly than before the aggregation timeout was reduced; Disable multi-frame transmission during a transmission opportunity (TXOP); Reduce TXOP limit duration; and Reduce the size of the reorder window.

12. The method of claim 1 , wherein the first TID and the second TID belong to a first group of TIDs, the method further comprising: identifying a third TID associated with the first node of the wireless network as ready for transmission, the third TID portion of a second set of TIDs including the third TID associated with the second node and a fourth TID; adding the third TID to the second ready-to-transmit queue at a third time point; identifying the fourth TID as ready for transmission; At a fourth time point later than the third time point, adding the fourth TID to the second ready-to-transmit queue; as well as selecting the fourth TID from the second ready-to-transmit queue before the third TID, The first group of TIDs and the second group of TIDs are processed in parallel.

13. The method of claim 12, wherein the first set of TIDs are associated with voice packets and the second set of TIDs are associated with video packets.

14. A wireless access point, comprising: one or more processors; as well as One or more non-transitory computer-readable media containing instructions that, when executed by one or more processors, cause the wireless access point to perform one or more operations, the one or more operations comprising: Obtaining a first notification of a first transmission identifier (TID) associated with a first node of a wireless network that is ready to transmit; adding the first TID to a ready-to-transmit queue at a first time point; obtaining a second notification of a second TID associated with a second node of the wireless network that is ready to transmit; adding the second TID to the ready-to-transmit queue at a second time point later than the first time point; and The second TID is selected from the ready-to-transmit queue before selecting the first TID based on an expected increased total throughput of packets within the wireless network when transmitting packets to the second node before transmitting packets to the first node.

15. The wireless access point of claim 14, wherein when the second TID is selected from the ready-to-transmit queue, the wireless access point performs operations comprising: determining, based on the second TID to be transmitted, first one or more metrics associated with the total throughput of packets within the wireless network for the first TID, and determining second one or more metrics associated with the total throughput within the wireless network for the second TID, Wherein the operation of adding the second TID to the ready-to-transmit queue comprises the operation of positioning the second TID ahead of the first TID within the ready-to-transmit queue based on the second one or more metrics of expected increased total throughput of packets compared to the first one or more metrics.

16. The wireless access point of claim 15, wherein the operations further comprise: associating a first timestamp with the first TID; associating a second timestamp with the second TID; as well as comparing the second timestamp associated with the second TID and the first timestamp associated with the first TID to a reordering window, the reordering window relating to a time span within which a TID can be positioned within the ready-to-transmit queue; Wherein positioning the second TID before the first TID within the ready-to-transmit queue is further based on the second timestamp and the first timestamp being within the reordering window.

17. The wireless access point of claim 16, wherein the size of the reordering window is variable in size, and the size of the reordering window is based on a difference between the first one or more metrics and the second one or more metrics.

18. The wireless access point of claim 14 , wherein adding the first TID and the second TID to the ready-to-transmit queue is performed in a chronological order such that when the first TID is positioned in the ready-to-transmit queue, it is positioned before the second TID, and wherein selecting the second TID from the ready-to-transmit queue comprises: determining that the first TID and the second TID are within a reordering window, wherein selecting the second TID from the ready-to-transmit queue comprises the operation of determining first one or more metrics associated with the total throughput of packets within the wireless network for the first TID and second one or more metrics for the second TID, and Wherein the second TID is selected from the ready-to-transmit queue based on the second one or more metrics indicating an increased total throughput of packets compared to an estimated impact of the first one or more metrics on the total throughput of the packets.

19. The wireless access point of claim 18, wherein the operations further comprise: Before communicating with the second node associated with the second TID, determining whether a first counter of the second TID has met or exceeded a first threshold; identifying a third TID within the ready-to-transmit queue, the third TID having a second counter at or below a second threshold, based on the first counter of the second TID meeting or exceeding the first threshold; selecting the third TID from the ready-to-transmit queue based on the second counter for the third TID being at or below the second threshold; transmitting a packet for a third node associated with the third TID; Incrementing the second counter of the third TID; verifying whether corresponding counters of the first TID, the second TID, and the third TID are greater than the second threshold; as well as Based on the respective counters of the first TID, the second TID, and the third TID being greater than the second threshold, the respective counters of the first TID, the second TID, and the third TID are reset.

20. A non-transitory computer-readable medium comprising instructions that, when executed by one or more processors, cause a system to perform one or more operations comprising: identifying a first transmission identifier (TID) associated with a first node of a wireless network as ready to transmit; adding the first TID to a ready-to-transmit queue at a first time point; identifying a second TID associated with a second node of the wireless network as ready to transmit; adding the second TID to the ready-to-transmit queue at a second time point later than the first time point; as well as The second TID is selected from the ready-to-transmit queue prior to selecting the first TID based on a projected increased overall throughput of packets within the wireless network when communicating with the second node prior to communicating with the first node.

Citation Information

Patent Citations

  • Technologies for reordering network packets on egress

    CN110661725A

  • Method and apparatus for packet transmission and bandwidth guaranteeing method

    US20010030967A1