Patent Publication Number: US-11653244-B2

Title: Uplink error rate

Description:
FIELD 
     The implementations discussed herein are related to deriving an uplink error rate. 
     BACKGROUND 
     Unless otherwise indicated herein, the materials described herein are not prior art to the claims in the present application and are not admitted to be prior art by inclusion in this section. 
     Home, office, stadium, and outdoor networks, a.k.a. wireless local area networks (WLAN) are established using a device called a Wireless Access Point (WAP). The 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 one another and to the Cable or Subscriber Line through which Internet, video, and television is delivered to the local network. Most WAPs implement the IEEE 802.11 standard which is a contention-based standard for handling communications among multiple competing devices for a shared wireless communication medium on a selected one of a plurality of communication channels. The frequency range of each communication channel is specified in the corresponding one of the IEEE 802.11 protocols being implemented, e.g. “a”, “b”, “g”, “n”, “ac”, “ad”, “ax”, “ay”, “be”. Communications follow a hub and spoke model with a WAP at the hub and the spokes corresponding to the wireless links to each ‘client’ device or station (STA) utilizing the WLAN. 
     However, when packets are transmitted from a client to the WAP, some circumstances lead to inefficient or incomplete information to provide a rate via which the packets are sent in the uplink direction to the WAP. 
     The subject matter claimed 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 only provided to illustrate one example technology area where some implementations described herein may be practiced. 
     SUMMARY 
     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 characteristics of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. 
     Some example implementations described herein generally relate to determination of an uplink error rate. Some implementations provide a method, system, and/or apparatus to facilitate determining the uplink error rate. 
     One or more implementations may include an example method that includes determining a multi-user packet error rate associated with communications from a client device to a host device, the multi-user packet error rate based on a number of packets in a multi-user communication frame with an error. The method may also include sending a trigger from the host device to the client device to communicate via a second multi-user communication frame, the trigger identifying a transfer rate based on the multi-user packet error rate. 
     The present disclosure may be implemented in hardware, firmware, or software. Associated devices and circuits are also claimed. Additional features and advantages of the present disclosure will be set forth in the description which follows, and in part will be obvious from the present disclosure, or may be learned by the practice of the present disclosure. The features and advantages of the present disclosure may 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 may be learned by the practice of the present disclosure as set forth hereinafter. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Example implementations will be described and explained with additional specificity and detail through the use of the accompanying drawings in which: 
         FIG.  1    illustrates an example environment within which an uplink error rate may be determined, including communications between an access point and one or more stations to facilitate determination of the uplink error rate, described according to at least one implementation of the present disclosure. 
         FIGS.  2 A- 2 H  illustrate a series of example sets of packets communicated from a client device to a host device in various circumstances, described according to at least one implementation of the present disclosure. 
         FIGS.  3 A- 3 C  illustrate a series of communications between a client device and a host device in various circumstances, described according to at least one implementation of the present disclosure. 
         FIG.  4    illustrates a flowchart of an example method of determining and utilizing a packet error rate, described according to at least one implementation of the present disclosure. 
         FIGS.  5 - 11    illustrate various flowcharts of example methods of determining a packet error rate in various circumstances, described according to at least one implementation of the present disclosure. 
         FIG.  12    illustrates a flowchart of an additional example method of determining a packet error rate, described according to at least one implementation of the present disclosure. 
         FIG.  13    illustrates a diagrammatic representation of a machine in the example form of a computing device, described according to at least one implementation of the present disclosure. 
     
    
    
     DETAILED DESCRIPTION OF SOME EXAMPLE IMPLEMENTATIONS 
     Implementations described herein may generally include an advanced approach to determining statistics related to an uplink error rate when communicating using a multi-user communication frame, such as an orthogonal frequency division multiple access (OFDMA) frame. For example, a host device with which client devices may be communicating may intelligently determine a packet error rate for packets that are attributable to the multi-user communication frame. The host device may utilize the determined packet error rate that is attributable to the multi-user communication frame to adjust the rate at which future client devices are instructed to communicate with the host device in a multi-user communication frame. For example, if the packet error rate for the multi-user communication frame communications is high, the host device may decrease the rate at which client devices are instructed to communicate in a next trigger frame broadcast to the client devices, while if the packet error rate is low, the host device may increase the rate at which client devices are instructed to communicate in the next trigger frame. In these and other implementations, the host device may communicate the updated rate via a trigger frame instructing client devices to communicate with the host device via a multi-user communication frame, such as an uplink (UL) OFDMA frame, at the updated rate. 
     By using one or more of the principles of the present disclosure to determine and utilize a packet error rate attributable to multi-user communication frames, network performance may be improved. For example, a host device may be able to balance throughput and robustness by monitoring the packet error rate in multi-user communication frames and intelligently selecting the rate for communications in future uplink multi-user communication frames in a way to increase robustness for circumstances with high packet error rates while increasing throughput for low packet error rates. Such improvements may reduce overall network traffic as lost or degraded packets may not have to be resent, and throughput can be increased when connections are strong. 
     These and other implementations of the present disclosure will be explained with reference to the accompanying figures. It is to be understood that the figures are diagrammatic and schematic representations of such example implementations, and are not limiting, nor are they necessarily drawn to scale. In the figures, features with like numbers indicate like structure and function unless described otherwise. 
       FIG.  1    illustrates an example environment  100  within which an uplink error rate may be determined, including communications between a host device (such as an access point  110 ) and one or more client devices (such as stations  120   a  and  120   b ) to facilitate determination of the uplink error rate, in accordance with one or more implementations of the present disclosure. For simplicity, the environment is illustrated with one access point (AP), the AP  110 , and two stations, the stations  120   a  and  120   b , although it will be appreciated that the principles of the present disclosure are applicable to any number of APs communicating with any number of stations. Within the environment  100 , the AP  110  and the stations  120   a  and  120   b  may wirelessly communicate with each other. 
     In operation, the AP  110  may send an initial trigger (such as a trigger frame  130 ) to cause the stations  120   a  and  120   b  to send data in an uplink direction from the stations  120   a  and  120   b  to the AP  110  in a multi-user communication frame  132 , such as an uplink (UL) OFDM A frame. The multi-user communication frame  132  may include portions of the multi-user communication frame  132   a  from the first station  120   a  and portions of the multi-user communication frame  132   b  from the second station  120   b . Based on packets received and/or not received during the multi-user communication frame  132  associated with the initial trigger  130  and/or communications proximate the multi-user communication frame (such as prior to or after the multi-user communication frame), the AP  110  may determine a packet error rate that is attributable to multi-user communication frames  132  (e.g., a multi-user packet error rate). The AP  110  may utilize the multi-user packet error rate to adjust the rate in a later trigger  130  such that later uplink communications from the stations  120   a  and  120   b  may be at the adjusted rate. By doing so, the AP  110  may intelligently select a rate to be included in a trigger  130  for multi-user communication frames in an uplink direction from the stations  120   a  and  120   b  to the AP  110 . 
     In determining whether or not given missed packets or other potential errors are attributable to a multi-user communication frame  132  (and accordingly are to be counted towards the multi-user packet error rate) may vary based on a variety of circumstances. The present disclosure includes a series of example circumstances and the manner in which the AP  110  may determine, in those circumstances, whether or not the missed packets or other potential errors are attributable to the multi-user communication frame  132 . The example circumstances are illustrated and explained with reference to  FIGS.  2 A- 2 H,  3 A- 3 C , and/or  FIGS.  5 - 12   . 
     In some implementations, the frequency with which the AP  110  adjusts the rate for future trigger frames  130  may be variable. For example, in one mode of operation, the AP  110  may adjust the rate for future triggers  130  every few seconds or few minutes (e.g., every 5 seconds, every 10 seconds, every 30 seconds, every minute, every 2 minutes, every 3 minutes, etc.). In some implementations, a triggering event may cause the AP  110  to shift into a discovery mode in which the AP  110  may operate to find an ideal rate. For example, if a certain number of errors occur, or a certain number of total failures occur (e.g., trigger periods in which no packets are received), the AP  110  may shift into the discovery mode of operation. In the discovery mode of operation, the AP  110  may modify the rate on an accelerated schedule, such as every half second, or before the transmission of each trigger frame  130 , etc. In these and other implementations, a rolling average of current and/or previous multi-user packet error rates may be used by the AP  110  in determining the rate to include in a given trigger frame  130 . In some implementations, the rate may be one minus the determined multi-user packet error rate (such as the averaged multi-user packet error rate). In some implementations, the frequency with which the AP  110  adjusts the rate may vary based on the stability of previous determinations of the rate. For example, if a threshold number of successive rates are the same, the frequency with which future rates are determined may be made less frequent. As another example, if there is a certain amount of variability between two or more determined rates, the frequency with which future rates are determined may be made more frequent. 
     Modifications, additions, or omissions may be made to the environment  100  without departing from the scope of the present disclosure. For example, the designations of different elements in the manner described is meant to help explain concepts described herein and is not limiting. Further, the environment  100  may include any number of other elements or may be implemented within other systems or contexts than those described. For example, any number of APs  110  and/or stations  120  may be included. 
     Additionally, the teachings are applicable to any type of wireless communication system. For example, while stations and access points are described for one context of wireless communication, the teachings of determining packet error rates for multi-user communications are also applicable to other wireless communication such as Bluetooth®, Bluetooth Low Energy, Zigbee®, Thread, mmWave, etc. 
       FIGS.  2 A- 2 H  illustrate a series of example sets of packets  210  and  211  communicated from a client device to a host device in various circumstances  200   a - 200   h , in accordance with one or more implementations of the present disclosure. 
       FIG.  2 A  illustrates a circumstance  200   a  in which a first protocol data unit (PDU)  210   a  of packets includes a series of packets communicated via a single-user uplink transmission or generically from multiple users in uplink transmissions, with a first packet  241   a  and a last packet  242   a . The circumstance  200   a  also includes a second set of packets as a multi-user communication frame  211   a . As illustrated in  FIG.  2 A , a gap  220   a  of dropped packets may exist that includes packets  243   a  and  244   a . The first received packet of the multi-user communication frame  211   a  may include the packet  245   a.    
     In operation, an access point or other host device may monitor a sequence number of received packets. For example, as illustrated in  FIG.  2 A , the access point may note that after receiving the packet  242   a  (N+4), the next received packet, the packet  245   a , may include a sequence number (N+7) that indicates that a gap exists. In these and other implementations, the access point may recognize that the gap in the sequence begins within a time window identified as corresponding to the multi-user communication frame  211   a  as communicated in a trigger signal that corresponds to the multi-user communication frame  211   a . Additionally or alternatively, the packet  242   a  may indicate that it is the last packet in the set  210   a . In these and other implementations, the number of packets dropped may be identified (e.g., by identifying the size of the gap  220   a ), and the entire gap  220   a  may be attributable as error packets associated with the multi-user communication frame  211   a . For example, because no packets are received indicating the start of the multi-user communication frame  211   a  (e.g., the packet  243   a  with such an indicator is not received) and the gap  220   a  occurs during the time frame designated as belonging to the multi-user communication frame  211   a , all of the packets in the gap  220   a  may be attributed to the multi-user communication frame  211   a  in determining the multi-user packet error rate. 
       FIG.  2 B  illustrates a circumstance  200   b  in which a first PDU  210   a  of packets includes a series of packets communicated as a first multi-user communication frame  210   b , with a first packet  241   b  and a last packet  242   b . The circumstance  200   b  also include a second set of packets as a second multi-user communication frame  211   b . As illustrated in  FIG.  2 B , a gap  220   b  of dropped packets may exist that includes packets  243   b  and  244   b . The first received packet of the second multi-user communication frame  211   b  may include the packet  245   b.    
     In operation, an access point or other host device may monitor a sequence number of received packets. For example, as illustrated in  FIG.  2 B , the access point may note that after receiving the packet  242   b  (N+4), the next received packet, the packet  245   b , may include a sequence number (N+7) that indicates that a gap exists. In these and other implementations, the access point may recognize that the gap in the sequence begins within a time window identified as corresponding to the multi-user communication frame  211   b . Additionally or alternatively, the packet  242   b  may indicate that it is the last packet in the multi-user communication frame  210   b . In these and other implementations, the number of packets dropped may be identified (e.g., by identifying the size of the gap  220   b ), and the entire gap  220   b  may be attributed as error packets associated with the second multi-user communication frame  211   b . For example, because there was no packet received indicating the start of the second multi-user communication frame  211   b  (e.g., the packet  243   b  was not received) and the gap  220   b  occurs during the time frame designated as belonging to the second multi-user communication frame  211   b , all of the packets in the gap  220   b  may be attributed to the second multi-user communication frame  211   b  in determining the multi-user packet error rate. 
     As illustrated by the inclusion of  FIGS.  2 A and  2 B , regardless of whether a preceding set of received packets is a set of single user or generic multi-user packets, or whether the preceding set of received packets is a multi-user communication frame, the determination of and attribution of the gaps  220   a  and  220   b  are similarly determined and similarly applied to the multi-user communication frame  211   a / 211   b  respectively. Additionally, an example description of the flow of operations associated with the circumstances  200   a  and/or  200   b  illustrated in  FIGS.  2 A and/or  2 B  may be illustrated in  FIG.  5   . 
       FIG.  2 C  illustrates a circumstance  200   c  in which a first set of packets is communicated as a multi-user communication frame  210   c , with a first packet  241   c  and one or more additional packets  242   c . The circumstance  200   c  also include a second set of packets  211   c  as a PDU of either single user or generic multi-user communicated packets with an initial packet  246   c . In some implementations, the packet  246   c  may include an indication that the packet  246   c  is the initial packet of the second set of packets  211   c . As illustrated in  FIG.  2 C , a gap  220   c  of dropped packets may exist that includes packets  243   c ,  244   c , and  245   a.    
     In operation, an access point or other host device may monitor a sequence number of received packets. For example, as illustrated in  FIG.  2 C , the access point may note that after receiving the packet  242   c  (N+1), the next received packet, the packet  246   c , may include a sequence number (N+5) that indicates that the gap  220   c  exists. In these and other implementations, the access point may recognize that the gap  220   c  in the sequence begins after the initial packet  241   c  of the multi-user communication frame  210   c , and that the first packet received after the gap  220   c  indicates the beginning of the second set of packets  211   c . In these and other implementations, the number of packets dropped may be identified (e.g., by identifying the size of the gap  220   c ), and the entire gap  220   c  may be attributed as error packets associated with the multi-user communication frame  210   c . For example, because the packet  241   c  indicates the start of the multi-user communication frame  210   c  and the first packet received after the gap (the packet  246   c ) indicates the start of the second set of packets  211   c , it can be assumed that the missing packets are from the end of the multi-user communication frame  210   c . As such, all of the packets in the gap  220   c  may be attributed to the multi-user communication frame  210   c  in determining the multi-user packet error rate. 
       FIG.  2 D  illustrates a circumstance  200   d  in which a first set of packets is communicated as a first multi-user communication frame  210   d , with a first packet  241   d  and one or more additional packets  242   d . The circumstance  200   d  also includes a second set of packets as a second multi-user communication frame  211   d  with an initial packet  246   c . In some implementations, the packet  246   c  may include an indication that the packet  246   c  is the initial packet of the second multi-user communication frame  211   d . As illustrated in  FIG.  2 D , a gap  220   d  of dropped packets may exist that includes packets  243   d ,  244   d , and  245   d.    
     In operation, an access point or other host device may monitor a sequence number of received packets. For example, as illustrated in  FIG.  2 D , the access point may note that after receiving the packet  242   d  (N+1), the next received packet, the packet  246   d , may include a sequence number (N+5) that indicates that the gap  220   d  exists. In these and other implementations, the access point may recognize that the gap  220   d  in the sequence begins after the initial packet  241   d  of the first multi-user communication frame  210   d , and that the first packet received after the gap  220   d  indicates the beginning of the second multi-user communication frame  211   d . In these and other implementations, the number of packets dropped may be identified (e.g., by identifying the size of the gap  220   d ), and the entire gap  220   d  may be attributed as error packets associated with the first multi-user communication frame  210   d . For example, because the packet  241   d  indicates the start of the first multi-user communication frame  210   d  and the first packet received after the gap (the packet  246   d ) indicates the start of the second multi-user communication frame  211   d , it can be assumed that the missing packets are from the end of the first multi-user communication frame  210   d . As such, all of the packets in the gap  220   d  may be attributed to the first multi-user communication frame  210   d  in determining the multi-user packet error rate. 
     As illustrated by the inclusion of  FIGS.  2 C and  2 D , regardless of whether a following set of received packets is a set of single user or generic multi-user packets, or whether the following set of received packets is a multi-user communication frame, the determination of and attribution of the gaps  220   c  and  220   d  are similarly determined and similarly applied to the multi-user communication frame  210   c / 210   d  respectively. Additionally, an example description of the flow of operations associated with the circumstances  200   c  and/or  200   d  illustrated in  FIGS.  2 C and/or  2 D  may be illustrated in  FIG.  6   . 
       FIG.  2 E  illustrates a circumstance  200   e  in which a set of packets is communicated as a multi-user communication frame  210   e , with a first packet  241   e  and a final packet  245   e  of the multi-user communication frame  210   e . In some implementations, the packet  241   e  may include an indication that the packet  241   e  is the initial packet of the multi-user communication frame  210   e . As illustrated in  FIG.  2 E , a gap  220   e  of dropped packets may exist that includes packets  242   e ,  243   e , and  244   e.    
     In operation, an access point or other host device may monitor a sequence number of received packets. For example, as illustrated in  FIG.  2 E , the access point may note that after receiving the packet  241   e  (N), the next received packet, the packet  245   e , may include a sequence number (N+4) that indicates that the gap  220   e  exists. In these and other implementations, the access point may recognize that the gap  220   e  in the sequence begins after the initial packet  241   e  of the first multi-user communication frame  210   e , and that the next received packet is still within the time frame of the multi-user communication frame  210   e  (and/or some other indication that the packet  245   e  is part of the multi-user communication frame  210   e ). In these and other implementations, the number of packets dropped may be identified (e.g., by identifying the size of the gap  220   e ), and the entire gap  220   e  may be attributed as error packets associated with the multi-user communication frame  210   e . For example, because the packet  241   e  indicates the start of the multi-user communication frame  210   e  and the first packet received after the gap (the packet  245   e ) is still part of the multi-user communication frame  210   e , it can be assumed that the missing packets are from within the multi-user communication frame  210   e . As such, all of the packets in the gap  220   e  may be attributable to the multi-user communication frame  210   e  in determining the multi-user packet error rate. An example description of the flow of operations associated with the circumstance  200   e  illustrated in  FIG.  2 E  may be illustrated in  FIG.  7   . 
       FIG.  2 F  illustrates a circumstance  200   f  in which an initial set of packets  210   f  is communicated (as single-user uplink transmissions or generically from multiple users in uplink transmissions, or a multi-user communication frame), with a first packet  241   f  and a final packet  242   f . The circumstance  200   f  additionally includes a second set of packets communicated as part of a multi-user communication frame  211   f  with packets  243   f ,  244   f ,  245   f ,  246   f  and  247   f . As illustrated by the sequence numbers, the packets  243   f - 247   f  may be the same packets as were included in the initial set of packets  210   f . The multi-user communication frame  211   f  may also include a third set of packets with an initial packet  248   f.    
     In operation, an access point or other host device may monitor a sequence number of received packets. For example, as illustrated in  FIG.  2 F , the access point may recognize that the data received in the multi-user communication frame  211   f  includes a series of packets with the same sequence numbers as in the first set of packets  210   f . In these and other implementations, the access point may recognize that the packets received in duplicate (e.g., the packets  243   f - 247   f ) may indicate that there was an error in the station receiving the acknowledgment back from the access point. In these and other implementations, the number of packets received in duplicate (e.g., the packets  243   f - 247   f ) may be attributed as error packets associated with the multi-user communication frame  211   f . In some implementations, the packets received in duplicate (e.g., the packets  243   f - 247   f ) may be marked with a retry flag, a retransmit flag, or other identifier indicating that they are being sent an additional time because the packets were not received by the access point. As such, all of the packets with the retransmit flag and/or received in duplicate may be attributed to the multi-user communication frame  211   f  in determining the multi-user packet error rate. An example description of the flow of operations associated with the circumstance  200   f  illustrated in  FIG.  2 F  may be illustrated in  FIG.  8   . 
       FIG.  2 G  illustrates a circumstance  200   g  in which a first set of packets  210   g  is communicated as a PDU of either single user or generic multi-user communicated packets with an initial packet  241   g  and one or more additional packets  242   g , and packets  243   g - 245   g  which are not received. The circumstance  200   g  also includes a second set of packets as a multi-user communication frame  211   g  with an initial packet  246   g  (which is not received) and a first received packet  247   g  (which is received). As illustrated in  FIG.  2 G , a gap  220   g  of dropped packets may exist that includes packets  243   g ,  244   g ,  245   g , and  246   g.    
     In operation, an access point or other host device may monitor a sequence number of received packets. For example, as illustrated in  FIG.  2 G , the access point may note that after receiving the packet  242   g  (N+1), the next received packet, the packet  247   g , may include a sequence number (N+6) that indicates that the gap  220   g  exists. In these and other implementations, the access point may recognize that the gap  220   g  in the sequence begins after the initial packet  241   g  of the first set of packets  210   g , and that the first packet received after the gap  220   g  is part of the multi-user communication frame  211   g . For example, the packet  247   g  may include a tag or flag indicating it is part of the multi-user communication frame  211   g , or may be received in a time window designated as associated with the multi-user communication frame  211   g . In these and other implementations, the number of packets dropped may be identified (e.g., by identifying the size of the gap  220   g ), and the entire gap  220   g  may be attributed as error packets that are not associated with the multi-user communication frame  211   g . For example, because the packet  241   g  indicates the start of the first set of packets  210   g , and the first packet received after the gap (the packet  247   g ) does not indicate the start of the multi-user communication frame  211   g  while still being part of the multi-user communication frame  211   g , it may be assumed that the missing packets are from the end of the initial set of packets  210   g . As such, none of the packets in the gap  220   g  may be attributed to the multi-user communication frame  211   g  in determining the multi-user packet error rate. In some implementations, it may be assumed that at least one of the lost packets is attributable to the multi-user communication frame  211   g  as a packet was not received that includes an indication of the start of the multi-user communication frame  211   g  (e.g., the packet  246   g  was not received). In these and other implementations, one packet of the gap  220   g  may be attributable to the multi-user communication frame  211   g  (corresponding to the packet that is expected to include the indication of the start of the multi-user communication frame  211   g  that was not received) and the remainder of the packets of the gap  220   g  may not be attributable to the multi-user communication frame  211   g . An example description of the flow of operations associated with the circumstance  200   g  illustrated in  FIG.  2 G  may be illustrated in  FIG.  9   . 
       FIG.  2 H  illustrates a circumstance  200   h  in which a first set of packets is communicated as a multi-user communication frame  210   h  including an initial packet  241   h , one or more additional packets  242   h , and/or one or more packets  243   h ,  244   h , and/or  245   h  which are not received. The circumstance  200   g  also includes a second set of packets  211   h  transmitted as a PDU of single-user uplink transmissions or generically from multiple users in uplink transmissions with an initial packet  246   h  (which is not received) and a first received packet  247   h  (which is received). As illustrated in  FIG.  2 H , a gap  220   h  of dropped packets may exist that includes packets  243   h ,  244   h ,  245   h , and  246   h.    
     In operation, an access point or other host device may monitor a sequence number of received packets. For example, as illustrated in  FIG.  2 H , the access point may note that after receiving the packet  242   h  (N+1), the next received packet, the packet  247   h , may include a sequence number (N+6) that indicates that the gap  220   h  exists. In these and other implementations, the access point may recognise that the gap  220   h  in the sequence begins after the initial packet  241   h  of the multi-user communication frame  210   h , and that the first packet received after the gap  220   h  is part of the second set of packets  211   h . For example, the packet  247   h  may include a tag or flag indicating it is part of a single user PDU, or may be received in a time window outside of that designated as associated with the multi-user communication frame  210   h . In these and other implementations, the number of packets dropped may be identified (e.g., by identifying the size of the gap  220   h ), and the entire gap  220   h  may be attributed as error packets that are associated with the multi-user communication frame  210   h . For example, because the packet  241   h  indicates the start of the multi-user communication frame  210   h , and the first packet received after the gap (the packet  247   h ) does not indicate the start of the second set of packets  211   h  and is also not part of the multi-user communication frame  210   h , it may be assumed that the missing packets are from the end of the multi-user communication frame  210   h . As such, all of the packets in the gap  220   h  may be attributed to the multi-user communication frame  210   h  in determining the multi-user packet error rate. In some implementations, it may be assumed that at least one of the lost packets is attributable to the second set of packets  211   h  as a packet was not received that includes an indication of the start of the second set of packets  211   h  (e.g., the packet  246   h  was not received). In these and other implementations, one packet of the gap  220   h  may not be attributable to the multi-user communication frame  210   h  (corresponding to the packet that is expected to include the indication of the start of the second set of packets  211   h  that was not received) and the remainder of the packets of the gap  220   h  may be attributable to the multi-user communication frame  210   h . An example description of the flow of operations associated with the circumstance  200   h  illustrated in  FIG.  2 H  may be illustrated in  FIG.  10   . 
       FIGS.  3 A- 3 C  illustrate a series of communications between a client device and a host device in various circumstances  300   a - 300   c , described according to at least one implementation of the present disclosure.  FIGS.  3 A- 3 C  illustrate the circumstances  300   a - 300   c  in which a host device  310  is in communication with a client device  320 . The host device  310  sends triggers  330 ,  331 , and  332  with corresponding trigger periods  340 ,  341 , and  342 , respectively. 
       FIG.  3 A  illustrates the circumstance  300   a  in which the trigger  330  is sent by the host device  310  and an error  350  occurs where the trigger  330  is not received by the client device  320  (and similar errors  351  and  352  occur such that the triggers  331  and  332  are likewise not received). In the circumstance  300   a , the client device  320  never receives the trigger  330 , and no data is sent via the uplink multi-user communication frame during the trigger period  340 . In these and other implementations in which no data is received during the trigger period  340 , an assumption may be made of the number of packets to include as attributable to the multi-user packet error rate. For example, a size of a previous multi-user communication frame (e.g., the number of packets in the previous multi-user communication frame) may be used as the number of packets to include as attributable to the multi-user packet error rate. As another example, the number of packets to include as attributable to the multi-user packet error rate may be abstracted from historical statistics, such as the average or the previous single/multi-user communication frame, a rolling average of previous multi-user communication frames, a rolling average with a decay aspect such that more recent values are more impactful than older values, combinations thereof, etc. 
       FIG.  3 B  illustrates the circumstance  300   b  in which the trigger  330  is sent by the host device  310 , and data  360 ,  361 , and  362  are sent during the trigger periods  340 ,  341 , and  342 , respectively. Errors  365 ,  366 , and  367  occur preventing the host device  310  from receiving the data  360 ,  361 , and  362 , respectively, from the client device  320 . Just as with the circumstance  300   a  of  FIG.  3 A , no data is received by the host device  310  during the trigger periods  340 ,  341 , and  342 , although being caused by a different error. In these and other implementations in which no data is received during the trigger period  340 , an assumption may be made of the number of packets to include as attributable to the multi-user packet error rate. For example, a size of a previous multi-user communication frame (e.g., the number of packets in the previous multi-user communication frame) may be used as the number of packets to include as attributable to the multi-user packet error rate. 
     As illustrated by the inclusion of  FIGS.  3 A and  3 B , regardless of whether the error  350 / 351 / 352  occurs to prevent the client device  320  from receiving the trigger or the error  365 / 366 / 367  occurs to prevent the host device  310  from receiving the data  360 / 361 / 362 , the determination of and attribution of the number of packets to a multi-user communication frame are similarly determined and similarly applied to the multi-user packet error rate. For example, the absence of data received by the host device  310  may cause the host device to act as though an entire multi-user communication frame similar in size to a previous multi-user communication frame is lost. Additionally, an example description of the flow of operations associated with the circumstances  300   a  and/or  300   b  illustrated in  FIGS.  3 A and/or  3 B  may be illustrated in  FIG.  11   . 
       FIG.  3 C  illustrates the circumstance  300   c  in which the trigger  330  is sent by the host device  310 , and data  370 , and duplicate/retried data  371   a  and  371   b  are sent in response, with a block acknowledgment  380  and/or other acknowledgment signal sent from the host device  310  back to the client device  320 . The duplicate/retried data  371   a  and  371   b  may include a retransmit or retry flag, or other indication that the data  371   a  and/or  371   b  is being sent an additional time. In these and other implementations, the host device  310  may treat retried data as being attributable to the error rate of the multi-user communication frame. For example, an error may occur in the client device  320  receiving the block acknowledgment  380  or in processing the block acknowledgment  380 . In these and other implementations, each time the data is received in duplicate (e.g., the data  371   a  and the data  371   b ) the host device  310  may increase the packets attributable to the multi-user packet error rate by the number of packets in the data  371   a . For example, if the data  370  includes three packets, and is sent in duplicate with a retransmit or retry flag in the data  371   a  and  371   b , the packets attributable to the multi-user packet error rate may be increased by three when the data  371   a  is received and by three again when the data  371   b  is received. Such an increase may occur each time the data is received, even if in a later multi-user communication frame. Continuing the example from above, the packets attributable to the multi-user packet error rate may be increased by three each time the data  371   c ,  371   d ,  371   e ,  371   f ,  371   g , and/or  371   h  are received. For example, the host device  310  may assume that an error occurred in receiving or processing the block acknowledgment  380 ,  381 , and/or  382 , which may cause the client device  320  to retransmit the same data repeatedly. By counting such data towards the multi-user packet error rate, the rate for future uplink transmissions from the client device  320  to the host device  310  may be reduced and thereby the client device  320  may be more likely to properly receive and/or process the block acknowledgment  380 ,  381 , and/or  382 . 
     In some implementations, in response to the circumstance  300   c  (e.g., the host device  310  repeatedly receives retry data), the host device  310  may adjust the rate at which the host device  310  transmits the block acknowledgment  380 ,  381 , and/or  382 . For example, based on receiving the data  371   a  and/or  371   b , the host device  310  may decrease the rate at which the block acknowledgment  381  is transmitted to increase the likelihood of the client device  320  receiving and/or properly processing the block acknowledgment  381 . 
     Modifications, additions, or omissions may be made to the circumstances  200   a - 200   h  and/or  300   a - 300   c  and/or the responses thereto without departing from the scope of the present disclosure. For example, any number of packets may be included within the gaps  230  illustrated in  FIGS.  2 A- 2 H  and/or in the regions of received packets in the PDUs and/or the multi-user communication frames. 
       FIG.  4    illustrates a flowchart of an example method  400  of determining and utilizing a packet error rate, described according to at least one implementation of the present disclosure. 
     At block  410 , a multi-user packet error rate may be determined. For example, a host device, such as an access point, may determine a number of packets which include an error condition and are attributable to a multi-user communication frame, such as an OFDMA frame. The error rate may be based on a ratio of the number of packets with an error condition to the total number of packets expected to be received. A variety of circumstances and/or conditions may result in packets in an error condition (e.g., being dropped) being attributed to the multi-user communication frame and thus included in determining the multi-user packet error rate, such as those illustrated in  FIGS.  2 A- 2 H and/or  3 A- 3 C . 
     At block  420 , a trigger may be sent to a client device to instruct the client device to communicate with the host device via a multi-user communication frame with a rate based on the multi-user packet error rate. For example, the host device may adjust the rate identified in the trigger to a higher rate as compared to a previous rate communicated in a previous trigger if there is a low multi-user packet error rate. As another example, the host device may adjust the rate identified in the trigger to a lower rate as compared to a previous rate if there is a high multi-user packet error rate. In some implementations, the trigger may identify a window of time within which the client device is to transmit data to the host device. In these and other implementation, the client device may respond to the trigger by transmitting data in the uplink direction to the host device in a multi-user communication frame (such as an UL OFDMA frame) and at the updated rate identified in the trigger. 
       FIGS.  5 - 11    illustrate various flowcharts of example methods of determining a packet error rate in various circumstances, described according to at least one implementation of the present disclosure. For example, the methods illustrated in  FIGS.  5 - 11    and/or combinations thereof may be examples of implementations of the block  410  of  FIG.  4   . 
     As illustrated in  FIG.  5    for method  500 , at block  510 , a sequence number of received packets may be monitored by a host device. For example, the host device may store a sequence number of the most recently received packet such that the next received packet may be compared to the most recent previously received packet. 
     At block  520 , a gap in the sequence numbers may be detected. For example, the host device may identify that the must recently received packet has a sequence number that is more than one sequence number higher than the previously received packet. 
     At block  530 , an absence of a start of a second protocol data unit (PDU) may be observed in the packet received after the gap (e.g., the most recently received packet). For example, the host device may identify that the packet received after the gap in sequence numbers does not include a flag, tag, or other identifier indicating that the packet is a start of a PDU. Additionally or alternatively, the most recently received packet may be identified as being part of a multi-user communication frame. For example, the most recently received packet (e.g., the first packet after the gap detected at block  520 ) may indicate that the packet is part of the multi-user communication frame. As another example, the most recently received packet may be received during a time window identified by a trigger as belonging to the multi-user communication frame. 
     At block  540 , based on the preceding PDU being complete, the packet received after the gap not starting a new PDU, and the packet received after the gap being part of the multi-user communication frame, all packets of the gap may be attributable to the multi-user communication frame and be counted towards the multi-user packet error rate. For example, all the packets of the gap may be counted by the host device as being applicable to both a total number of expected packets as well as being applicable to packets with an error attributable to the multi-user communication frame. 
     As illustrated in  FIG.  6    for method  600 , at block  610 , a sequence number of received packets may be monitored by a host device. The block  610  may be similar or comparable to the block  510  of  FIG.  5   . 
     At block  620 , a gap in the sequence numbers may be detected. The block  620  may be similar or comparable to the block  520  of  FIG.  5   . 
     At block  630 , the next packet received after the identified gap may be identified as starting a new PDU. For example, the packet received after the gap may include a flag, tag, or other identifier indicating that the packet received after the gap starts the new PDU. 
     At block  640 , based on the preceding PDU being a multi-user communication frame and the next packet after the gap starting a new PDU, all packets of the gap may be attributable to the multi-user communication frame of the previous PDU and be counted towards the multi-user packet error rate. 
     As illustrated in  FIG.  7    for method  700 , at block  710 , a sequence number of received packets may be monitored by a host device. The block  710  may be similar or comparable to the block  510  of  FIG.  5   . 
     At block  720 , a gap in the sequence numbers may be detected. The block  720  may be similar or comparable to the block  520  of  FIG.  5   . 
     At block  730 , a next packet after the gap may be identified as being part of a multi-user communication frame. For example, the next packet after the gap may be received during a time window associated with the multi-user communication frame. As another example, the next packet after the gap may be identified by the host device as including a flag or tag indicating that the packet is a part of the multi-user communication frame. 
     At block  740 , based on a packet starting the multi-user communication frame being before the gap and the packet immediately after the gap still being part of the multi-user communication frame, all packets in the gap may be attributable to the multi-user communication frame and be counted towards the multi-user packet error rate. In some implementations, the packet starting the multi-user communication frame may be received immediately preceding the gap. Additionally or alternatively, one or more packets may be received after the packet starting the multi-user communication frame and before the gap begins. 
     As illustrated in  FIG.  8    for method  800 , at block  810 , a retransmit/retry flag may be detected in a received packet of a multi-user communication frame. For example, a packet may include an indicator that the packet is being sent a second time (or multiple times) because no corresponding acknowledgment was received by the client device sending the packets to the host device. 
     At block  820 , based on the retransmit/retry flagged packets being received in duplicate, attributing all packets received in duplicate to the multi-user communication frame and being counted towards the multi-user packet error rate. In these and other implementations, the host device may identify packets received with a retransmit/retry flag which were already received and may count the second instance of the packets (e.g., those with the retransmit/retry flag despite already having been received) as attributable to the multi-user packet error rate. 
     At block  830 , a block acknowledgment rate may be decreased based on the retransmitted/retried packets. For example, a host device may optionally decrease the rate at which block acknowledgments may be sent based on the retried packets. In these and other implementations, the host device may monitor the multi-user packet error rate that is determined based on packets received in duplicate with the retransmit/retry flag, and based on the multi-user packet error rate exceeding a threshold, the rate may be decreased at which the block acknowledgment signal is sent from the host device to the client device. 
     As illustrated in  FIG.  9    for method  900 , at block  910 , a sequence number of received packets may be monitored by a host device. The block  910  may be similar or comparable to the block  510  of  FIG.  5   . 
     At block  920 , a gap in the sequence numbers may be detected. The block  920  may be similar or comparable to the block  520  of  FIG.  5   . 
     At block  930 , a next packet after the gap may be identified as part of a multi-user communication frame and not starting a new PDU. For example, the packet received immediately after the gap may be received during a time window associated with the multi-user communication frame. As another example, the packet received immediately after the gap may include an indicator or identifier indicating the packet is part of the multi-user communication frame. Additionally or alternatively, the packet may not include an identifier or flag indicating the packet starts a new PDU. 
     At block  940 , based on the packet immediately preceding the gap not being part of the multi-user communication frame, and based on the packet immediately after the gap being part of the multi-user communication frame and not starting a new PDU, none of the packets from the gap may be attributed to the multi-user packet error rate. In some implementations, one of the packets (e.g., corresponding to the packet that would start the new PDU) of the gap, rather than none of the packets from the gap, may be attributable to the multi-user packet error rate. 
     As illustrated in  FIG.  10    for method  1000 , at block  1010 , a sequence number of received packets may be monitored by a host device. The block  1010  may be similar or comparable to the block  510  of  FIG.  5   . 
     At block  1020 , a gap in the sequence numbers may be detected. The block  1020  may be similar or comparable to the block  520  of  FIG.  5   . 
     At block  1030 , a next packet after the gap may be identified as not belonging to a multi-user communication frame and not starting a new PDU. For example, the packet received immediately after the gap may be received outside of a time window associated with the multi-user communication frame. As another example, the packet received immediately after the gap may not include an indicator or identifier indicating the packet is part of the multi-user communication frame. Additionally or alternatively, the packet may not include an identifier or flag indicating the packet starts a new PDU. 
     At block  1040 , based on the packet immediately preceding the gap being part of the multi-user communication frame, and based on the packet immediately after the gap not being part of the multi-user communication frame and not starting a new PDU, all of the packets from the gap may be attributed to the multi-user packet error rate. In some implementations, all but one of the packets (e.g., corresponding to the packet that would start the new PDU) of the gap, rather than all of the packets from the gap, may be attributable to the multi-user packet error rate. 
     As illustrated in  FIG.  11    for method  1100 , at block  1110 , an initial trigger may be sent from a host device to client devices for a multi-user communication frame. For example, the host device may broadcast the trigger for client devices to communicate with the host device in a designated window of time according to a designated rate. Such a multi-user communication frame may include an uplink (UL) OFDMA frame. 
     At block  1120 , the host device may identify an absence of any packets being received during the window of time designated for the multi-user communication frame. For example, if an error occurred such that the client devices did not receive the trigger, or an error occurred in the transmission of data from the client device(s) to the host device, the host device may not receive any packets during the window of time designated for the multi-user communication frame. 
     At block  1130 , based on the absence, a number of packets in a previous multi-user communication frame may be attributed to a multi-user packet error rate. For example, the host device may identify the most recently received multi-user communication frame and may increase the multi-user packet error rate by the number of packets in the most recently received multi-user communication frame. As another example, the host device may take an average number of packets in a set number of previously received multi-user communication frames (e.g., the 5 most recently received multi-user communication frames) as the size to attribute to the multi-user packet error rate. In some implementations, the host device may have a setting or preset configuration of a size to attribute to the multi-user packet error rate when no packets are received during the window of time designated for the multi-user communication frame. 
       FIG.  12    illustrates a flowchart of an additional example method  1200  of determining a packet error rate, described according to at least one implementation of the present disclosure. 
     At block  1205 , a determination may be made whether the current PDU or the immediately preceding PDU is an OFDMA frame. For example, a host device may determine whether or not the current or immediately preceding PDU is within a time window associated with an OFDMA frame. If the current PDU or the immediately preceding PDU is an OFDMA frame, the method  1200  may proceed to the block  1210 . If the current PDU or the immediately preceding PDU is not an OFDMA frame, the method  1200  may proceed to the block  1250  to end the processing of the current packet. 
     At block  1210 , a determination may be made whether or not there is a gap based on sequence numbers of received packets. For example, a host device may monitor the sequence number of received packets to determine if there is a gap in the sequence numbers of the received packets. If there is such a gap, the method  1200  may proceed to the block  1215 . If there is no gap in the sequence numbers of the received packets, the method  1200  may proceed to the block  1230 . 
     At block  1215 , a determination may be made whether the current packet is a new PDU and the previous PDU is an OFDMA frame. If both conditions are true, the method  1200  may proceed to the block  1220 . If either condition is not true (e.g., if the current packet is not a new PDU and/or the previous PDU is not an OFDMA frame), the method  1200  may proceed to the block  1225 . 
     At block  1220 , the multi-user packet error rate associated with the previous PDU may be increased by the number of packets in the gap. For example, the gap would fall in the last portion of the OFDMA frame as the current packet (the first packet after the gap) starts a new PDU and the previous PDU is the OFDMA frame. 
     At block  1225 , the multi-user packet error rate associated with the current PDU (e.g., the OFDMA frame) may be increased by the number of packets in the gap. 
     At block  1230 , a determination may be made whether the current PDU is an OFDMA frame. If the current PDU is an OFDMA frame, the method  1200  may proceed to the block  1235 . If the current PDU is not an OFDMA frame, the method  1200  may proceed to the block  1250  to end the processing of the current packet. 
     At block  1235 , an indicator associated with the previous PDU may be updated to indicate that the previous PDU is an OFDMA frame. For example, the host device may include a memory or other storage location that stores whether or not the previous PDU was an OFDMA frame. Based on the determination at the block  1230 , the indicator may be updated (e.g., the current PDU is shifted to the previous PDU and identified as an OFDMA frame). 
     At block  1240 , a determination may be made whether or not the current packet is a retry packet. For example, the host device may determine whether or not the current packet being processed includes a retry flag or other indicator that the packet is being sent a second time (or multiple times). If the current packet is a retry packet, the method  1200  may proceed to the block  1245 . If the current packet is not a retry packet, the method  1200  may proceed to the block  1250  to end the processing of the current packet. 
     At block  1245 , the current error rate may be increased by the number of retried packets. For example, in processing a single packet, the current error rate may be increased by one each time the current packet is a retried packet. 
     One skilled in the art will appreciate that, for these and other processes and methods disclosed herein, the functions performed in the processes and methods may be implemented in differing order, simultaneously, etc. Furthermore, the outlined steps and operations are only provided as examples, and some of the steps and operations may be optional, combined into fewer steps and operations, or expanded into additional steps and operations without detracting from the essence of the disclosed implementations. The methods  4 - 12  illustrated in  FIGS.  4 - 12    may be performed in whole or in part by the AP  110  of  FIG.  1   . 
     The subject technology of the present invention is illustrated, for example, according to various aspects described below. Various examples of aspects of the subject technology are described as numbered examples (1, 2, 3, etc.) for convenience. These are provided as examples and do not limit the subject technology. The aspects of the various implementations described herein may be omitted, substituted for aspects of other implementations, or combined with aspects of other implementations unless context dictates otherwise. For example, one or more aspects of example 1 below may be omitted, substituted for one or more aspects of another example (e.g., example 2) or examples, or combined with aspects of another example. The following is a non-limiting summary of some example implementations presented herein. 
     Example 1. A method includes determining a multi-user packet error rate associated with communications from a client device to a host device, the multi-user packet error rate based on a number of packets in a multi-user communication frame with an error; and sending a trigger from the host device to the client device to communicate via a second multi-user communication frame, the trigger identifying a transfer rate based on the multi-user packet error rate. 
     Example 2. An example host device includes one or more processors, and one or more non-transitory computer-readable media containing instructions that, when executed by the one or more processors, cause the host device to perform operations. The operations may include determining a multi-user packet error rate associated with communications from a client device to a host device, the multi-user packet error rate based on a number of packets in a multi-user communication frame with an error; and sending a trigger from the host device to the client device to communicate via a second multi-user communication frame, the trigger identifying a transfer rate based on the multi-user packet error rate. 
     Example 3. An example of determining a multi-user packet error rate consistent with one or more of the implementations of the present disclosure may include monitoring a received packet to determine whether or not the received packet or a previously received packet is part of an orthogonal frequency division multiple access (OFDMA) uplink transmission; monitoring a sequence number of the received packet to determine whether or not a gap in received packets exists prior to the received packet; and monitoring a received packet to determine whether or not the received packet is a retried packet, wherein the multi-user packet error rate is based on whether or not the received packet or the previously received packet is part of the OFDMA uplink transmission, whether or not the gap in received packets exists, and whether or not the received packet is a retried packet. 
     Example 4. An example of determining a multi-user packet error rate consistent with one or more of the implementations of the present disclosure may include monitoring a sequence number of received packets; detecting a gap in the sequence number of received packets; identifying an absence of a packet indicating a start of a second protocol data unit; and based on a first protocol data unit preceding the second protocol data unit being complete, attributing all packets in the gap to the multi-user packet error rate. 
     Example 5. An example of determining a multi-user packet error rate consistent with one or more of the implementations of the present disclosure may include monitoring a sequence number of received packets; detecting a gap in the sequence number of received packets; identifying a next packet after the gap as a start of a second protocol data unit; and based on a first protocol data unit preceding the second protocol data unit being the multi-user communication frame, attributing all packets in the gap to the multi-user packet error rate. 
     Example 6. An example of determining a multi-user packet error rate consistent with one or more of the implementations of the present disclosure may include monitoring a sequence number of received packets; detecting a gap in the sequence number of received packets; identifying a next packet after the gap as part of the multi-user communication frame and without data indicating a start of a new protocol data unit; and based on at least one packet preceding the gap starting the multi-user communication frame and the next packet after the gap being part of the multi-user communication frame, attributing all packets in the gap to the multi-user packet error rate. 
     Example 7. An example of determining a multi-user packet error rate consistent with one or more of the implementations of the present disclosure may include detecting a retransmit flag in a set of received packets of the multi-user communication frame; and based on the set of packets with the retransmit flag being received in duplicate, attributing all of the packets received in duplicate to the multi-user packet error rate. 
     Example 8. An example of determining a multi-user packet error rate consistent with one or more of the implementations of the present disclosure may include monitoring a sequence number of received packets; detecting a gap in the sequence number of received packets; identifying a next packet after the gap as belonging to the multi-user communication frame and without data indicating a start of a new protocol data unit; and based on a packet immediately preceding the gap not being part of the multi-user communication frame and the next packet after the gap being part of the multi-user communication frame and without data indicating a start of a new protocol data unit, attributing no packets in the gap to the multi-user packet error rate. 
     Example 9. An example of determining a multi-user packet error rate consistent with one or more of the implementations of the present disclosure may include monitoring a sequence number of received packets; detecting a gap in the sequence number of received packets; identifying a next packet after the gap as belonging to the multi-user communication frame and without data indicating a start of a new protocol data unit; and based on a packet immediately preceding the gap not being part of the multi-user communication frame and the next packet after the gap being part of the multi-user communication frame and without data indicating a start of a new protocol data unit, attributing only one packet in the gap to the multi-user packet error rate. 
     Example 10. An example of determining a multi-user packet error rate consistent with one or more of the implementations of the present disclosure may include monitoring a sequence number of received packets; detecting a gap in the sequence number of received packets; identifying a next packet after the gap as not belonging to the multi-user communication frame and without data indicating a start of a new protocol data unit; and based on a packet immediately preceding the gap being part of the multi-user communication frame and the next packet after the gap not being part of the multi-user communication frame and without data indicating a start of a new protocol data unit, attributing all packets except one in the gap to the multi-user packet error rate. 
     Example 11. An example of determining a multi-user packet error rate consistent with one or more of the implementations of the present disclosure may include sending an initial trigger from the host device to the client device to communicate via the multi-user communication frame; identifying an absence of any packets from the client device during a time indicated for the multi-user communication frame; and based on the absence of any packets from the client device during the time indicated for the multi-user communication frame, attributing a number of packets in a previous multi-user communication frame to the multi-user packet error rate. 
     Example 12. An example method consistent with one or more of the implementations of the present disclosure may further include detecting a triggering condition by the host device; and based on the triggering condition, shifting to a discovery mode in which the multi-user packet error rate is determined at an increased frequency compared to operation of the host device when outside of the discovery mode. 
     Example 13. An example method consistent with one or more of the implementations of the present disclosure such as example 12 may further include wherein the triggering condition includes one of a new client device communicatively coupling to the host device, and a complete failure in communication between the host device and the client device. 
     Example 14. An example method consistent with one or more of the implementations of the present disclosure such as example 12 may further include wherein the increased frequency of the discovery mode includes determining the multi-user packet error rate prior to sending each trigger. 
       FIG.  13    illustrates a block diagram of an example computing system  2002  that may be used to perform or direct performance of one or more operations described according to at least one implementation of the present disclosure. The computing system  2002  may include a processor  2050 , a memory  2052 , and a data storage  2054 . The processor  2050 , the memory  2052 , and the data storage  2054  may be communicatively coupled. 
     In general, the processor  2050  may include any suitable special-purpose or general-purpose computer, computing entity, or processing device including various computer hardware or software modules and may be configured to execute instructions stored on any applicable computer-readable storage media. For example, the processor  2050  may include a microprocessor, a microcontroller, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a Field-Programmable Gate Array (FPGA), or any other digital or analog circuitry configured to interpret and/or to execute computer-executable instructions and/or to process data. Although illustrated as a single processor, the processor  2050  may include any number of processors configured to, individually or collectively, perform or direct performance of any number of operations described in the present disclosure. 
     In some implementations, the processor  2050  may be configured to interpret and/or execute computer-executable instructions and/or process data stored in the memory  2052 , the data storage  2054 , or the memory  2052  and the data storage  2054 . In some implementations, the processor  2050  may fetch computer-executable instructions from the data storage  2054  and load the computer-executable instructions in the memory  2052 . After the computer-executable instructions are loaded into memory  2052 , the processor  2050  may execute the computer-executable instructions. 
     The memory  2052  and the data storage  2054  may include computer-readable storage media for carrying or having computer-executable instructions or data structures stored thereon. Such computer-readable storage media may include any available media that may be accessed by a general-purpose or special-purpose computer, such as the processor  2050 . By way of example, and not limitation, such computer-readable storage media may include tangible or non-transitory computer-readable storage media including Random Access Memory (RAM), Read-Only Memory (ROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), Compact Disc Read-Only Memory (CD-ROM) or other optical disk storage, magnetic disk storage or other magnetic storage devices, flash memory devices (e.g., solid state memory devices), or any other storage medium which may be used to carry or store particular program code in the form of computer-executable instructions or data structures and which may be accessed by a general-purpose or special-purpose computer. Combinations of the above may also be included within the scope of computer-readable storage media. Computer-executable instructions may include, for example, instructions and data configured to cause the processor  2050  to perform a certain operation or group of operations. 
     Some portions of the detailed description refer to different modules configured to perform operations. One or more of the modules may include code and routines configured to enable a computing system to perform one or more of the operations described therewith. Additionally or alternatively, one or more of the modules may be implemented using hardware including any number of processors, microprocessors (e.g., to perform or control performance of one or more operations), DSP&#39;s, FPGAs, ASICs or any suitable combination of two or more thereof. Alternatively or additionally, one or more of the modules may be implemented using a combination of hardware and software. In the present disclosure, operations described as being performed by a particular module may include operations that the particular module may direct a corresponding system (e.g., a corresponding computing system) to perform. Further, the delineating between the different modules is to facilitate explanation of concepts described in the present disclosure and is not limiting. Further, one or more of the modules may be configured to perform more, fewer, and/or different operations than those described such that the modules may be combined or delineated differently than as described. 
     Some portions of the detailed description are presented in terms of algorithms and symbolic representations of operations within a computer. These algorithmic descriptions and symbolic representations are the means used by those skilled in the data processing arts to convey the essence of their innovations to others skilled in the art. An algorithm is a series of configured operations leading to a desired end state or result. In example implementations, the operations carried out require physical manipulations of tangible quantities for achieving a tangible result. 
     Unless specifically stated otherwise, as apparent from the discussion, it is appreciated that throughout the description, discussions utilizing terms such as detecting, determining, analyzing, identifying, scanning or the like, can include the actions and processes of a computer system or other information processing device that manipulates and transforms data represented as physical (electronic) quantities within the computer system&#39;s registers and memories into other data similarly represented as physical quantities within the computer system&#39;s memories or registers or other information storage, transmission or display devices. 
     Example implementations may also relate to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may include one or more general-purpose computers selectively activated or reconfigured by one or more computer programs. Such computer programs may be stored in a computer readable medium, such as a computer-readable storage medium or a computer-readable signal medium. Computer-executable instructions may include, for example, instructions and data which cause a general-purpose computer, special-purpose computer, or special-purpose processing device (e.g., one or more processors) to perform or control performance of a certain function or group of functions. 
     Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter configured in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims. 
     An example apparatus can include a Wireless Access Point (WAP) or a station and incorporating a VLSI processor and program code to support. An example transceiver couples via an integral modem to one of a cable, fiber or digital subscriber backbone connection to the Internet to support wireless communications, e.g. IEEE 802.11 compliant communications, on a Wireless Local Area Network (WLAN). The WiFi stage includes a baseband stage, and the analog front end (AFE) and Radio Frequency (RF) stages. In the baseband portion wireless communications transmitted to or received from each user/client/station are processed. The AFE and RF portion handles the upconversion on each of transmit paths of wireless transmissions initiated in the baseband. The RF portion also handles the downconversion of the signals received on the receive paths and passes them for further processing to the baseband. 
     An example apparatus can be a multiple-input multiple-output (MIMO) apparatus supporting as many as N×N discrete communication streams over N antennas. In an example the MIMO apparatus signal processing units can be implemented as N×N. 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 antennae in communication with another similarly equipped wireless system. It should be noted that extended MIMO systems can communicate with other wireless systems even if the systems do not have the same number of antennae, but some of the antennae of one of the stations might not be utilized, reducing optimal performance. 
     Channel State Information (CSI) from any of the devices described herein can be extracted independent of changes related to channel state parameters and used for spatial diagnosis services of the network such as motion detection, proximity detection, and localization which can be utilized in, for example, WLAN diagnosis, home security, health care monitoring, smart home utility control, elder care, automotive tracking and monitoring, home or mobile entertainment, automotive infotainment, and the like. 
     Unless specific arrangements described herein are mutually exclusive with one another, the various implementations described herein can be combined in whole or in part to enhance system functionality and/or to produce complementary functions. Likewise, aspects of the implementations may be implemented in standalone arrangements. Thus, the above description has been given by way of example only and modification in detail may be made within the scope of the present invention. 
     With respect to the use of substantially any plural or singular terms herein, those having skill in the art can translate from the plural to the singular or from the singular to the plural as is appropriate to the context or application. The various singular/plural permutations may be expressly set forth herein for sake of clarity. A reference to an element in the singular is not intended to mean “one and only one” unless specifically stated, but rather “one or more.” Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the above description. 
     In general, terms used herein, and especially in the appended claims (e.g., bodies of the appended claims) are generally intended as “open” terms (e.g., the term “including” should be interpreted as “including but not limited to,” the term “having” should be interpreted as “having at least,” the term “includes” should be interpreted as “includes but is not limited to,” etc.). Furthermore, in those instances where a convention analogous to “at least one of A, B, and C, etc.” is used, in general, such a construction is intended in the sense one having skill in the art would understand the convention (e.g., “a system having at least one of A, B, and C” would include but not be limited to systems that include A alone, B alone, C alone, A and B together, A and C together, B and C together, or A, B, and C together, etc.). Also, a phrase presenting two or more alternative terms, whether in the description, claims, or drawings, should be understood to include one of the terms, either of the terms, or both terms. For example, the phrase “A or B” will be understood to include the possibilities of “A” or “B” or “A and B.” 
     Additionally, the use of the terms “first,” “second,” “third,” etc., are not necessarily used herein to connote a specific order or number of elements. Generally, the terms “first,” “second,” “third,” etc., are used to distinguish between different elements as generic identifiers. Absence a showing that the terms “first,” “second,” “third,” etc., connote a specific order, these terms should not be understood to connote a specific order. Furthermore, absence a showing that the terms first,” “second,” “third,” etc., connote a specific number of elements, these terms should not be understood to connote a specific number of elements. 
     The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described implementations are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.