Embodiments of the present subject matter generally relate to the field of communication systems, and, more particularly, to communication systems that utilize frame aggregation.
Many factors impact the efficiency of communication systems. For example, physical layer (PHY) transmission properties, media access control layer (MAC) protocols, and environmental factors may all impact the total throughput of communications via a communications channel. When the communications channel has improved channel conditions, then higher data rates may be reliably transmitted. However, when the communications channel has increased noise and/or interference, it may be preferable to adjust PHY transmission properties or MAC protocol options to maximize the throughput.
As communications technology has evolved, faster PHY transmission rates are possible. For example, the use of orthogonal frequency-division multiplexing (OFDM) modulation techniques, enhanced modulation and coding schemes (MCS), and the use of multiple-input multiple-output (MIMO) antennas are among the examples of technology that have increased the physical layer transmission rates achievable by a communications channel. In addition to faster transmission rates, improvements in MAC protocols have also increased throughput. For example, reducing MAC protocol overhead has shown to improve throughput in communication systems. For example, frame aggregation is a process of arranging several MAC protocol data units (MPDUs) together into a single PHY transmission frame. Having fewer PHY transmission frames is preferable in some communication systems that define a contention process between PHY frames, interframe spacing, or PHY transmission frame headers (PHY overhead).
Further improvements to throughput may be possible in communications systems that employ frame aggregation feedback in the form of block acknowledgement. Block acknowledgment is a mechanism for a receiver to acknowledge multiple MPDUs (associated with frame aggregation) in a single block acknowledgement message.
Various embodiments are described in which a transmission rate is determined based at least in part on frame aggregation characteristics. For example, a projected frame aggregation window size may be determined based, at least in part, on block acknowledgement. The projected frame aggregation window size (or an associated frame aggregation shift parameter) may be used by a rate control module to determine an appropriate physical layer (PHY) transmission rate for the communications channel. The PHY transmission rate may be selected based on optimizing overall throughput resulting from different frame aggregation window sizes for various PHY transmission rates.
In one embodiment, a transmission rate used for transmissions via a communications channel is adjusted based at least in part upon a frame aggregation shift parameter derived from frame aggregation feedback information.
The present embodiments may be better understood, and numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying drawings.
The description that follows includes exemplary systems, methods, techniques, instruction sequences and computer program products that embody techniques of the present subject matter. However, it is understood that the described embodiments may be practiced without these specific details. For instance, although examples refer to certain wireless communications protocols, rate control may be improved in a variety of communications medium configured to utilize frame aggregation and frame aggregation feedback. In other instances, well-known instruction instances, protocols, structures and techniques have not been shown in detail in order not to obfuscate the description.
Frame aggregation (also referred to as MPDU aggregation or MAC layer aggregation) is a technique in which MAC protocol data units (MPDUs) are aggregated into a single PHY transmission frame. An Aggregated MPDU (AMPDU) includes a number of MPDU delimiters each followed by an MPDU. The transmission frame that includes aggregated MPDUs may be referred to as an AMPDU frame or transmission. A frame aggregation scheme was introduced in IEEE 802.11e standard for wireless local area networks (WLANs) as a MAC-layer enhancement for reducing the PHY protocol timing overheads. IEEE 802.11n standard provided improvements to the frame aggregation scheme and improvements to feedback messages associated with frame aggregation. Other technologies (including other wireless or wire line technologies) may also utilize frame aggregation and feedback.
An example of frame aggregation feedback is a block acknowledgement (BA) message. Block Acknowledgment is a mechanism for a recipient of an AMPDU transmission to acknowledge multiple MPDUs in a single BA frame. Typically the BA frame includes a bitmap which identifies acknowledgement (often indicated as a “1” value) or non-acknowledgement (often indicated as a “0” value) for particular MPDUs in the AMPDU transmission. Each bit of the bitmap typically represents an indication whether the recipient successfully received and decoded a MPDU. A compressed block acknowledgement is a form of a BA frame that has a smaller bitmap and may be used for feedback of AMPDUs that only include non-fragmented MPDUs.
In a traditional communication system, a transmitting station receives a BA frame from a recipient station to indicate success/failure of the MPDUs in an AMPDU frame. The transmitting station may adjust the quantity of MPDUs included in the next AMPDU. For example, a transmitting station may reduce the number of MPDUs in the subsequent AMPDU frame based on feedback that indicates errors in the previous AMPDU frame. Currently the standard for some WLAN networks allow up to 64 MPDUs to be included in an AMPDU frame. The quantity of MPDUs included in an AMPDU may also be referred to as an aggregation window size. An adaption algorithm may change the quantity of MPDUs in subsequent AMPDUs based on which MPDU failed in the previous AMPDU. However, this may result in an unnecessarily small AMPDU window size.
In accordance with this disclosure, a transmitting station may determine a transmission rate based on frame aggregation feedback. In one example, frame aggregation techniques may be improved by reducing a PHY transmission rate so that a larger aggregation window size is possible. In one embodiment, the feedback included in a block acknowledgement frame may be used to determine whether the transmission rate should be changed. For example, the frame aggregation efficiency of a system may be dependent upon the frame aggregation window size that would result from a failed MPDU in a previous AMPDU message. In one example, rather than changing the frame aggregation window size, the transmission rate is changed so that frame aggregation can include a larger window size at a different transmission rate.
In accordance with this disclosure, impact of frame aggregation may be used by a rate control module for determining PHY transmission rate. The impact of frame aggregation may be used by the rate control module to determine the PHY transmission rate by adjusting a packet error rate based on aggregation size or by using aggregation size as a separate parameter in a rate control process. In another example, a goodput calculation may incorporate the impact of frame aggregation prior to selecting a transmission rate based on the calculated goodput for particular transmission rates.
The system 100 may include a second device 120 that has a network interface 124 and PHY/MAC protocols 126. The second device 120 includes a block acknowledgement module 128 (referred to as Block Ack module) configured to send a BA frame to the first device 110 to indicate acknowledgement/non-acknowledgement (ACK/NAK) for a series of MPDUs included in the AMPDU frame transmitted from the first device 110 to the second device 120.
First device 110 also includes a rate control module 108. In a traditional device, the rate control module may adjust the PHY transmission rate based on channel conditions, such as bit error rate, signal to noise ratio, or power limitations. The rate control module can adjust the modulation and coding scheme (MCS) used over the communications channel 115. For example, different MCS may be associated with different data transmission rates. MCS involves the coding of data into symbols in a modulation scheme. A greater number of symbols may allow for a greater number of bits to be represented by each symbol. Therefore, a higher MCS indicates modulation using greater numbers of bits for each symbol. A higher MCS is associated with a higher PHY transmission rate since more data can be communicated in each transmission.
In accordance with this disclosure, the rate control module 108 is configured to determine the transmission rate based at least in part upon the frame aggregation efficiency that would result for different transmission rates. For example, if a higher MCS results in greater MPDU failures then the frame aggregation window would be smaller. A smaller frame aggregation window may limit throughput of MPDUs for the higher MCS. Alternatively, the rate control module 108 may select a lower MCS. Even though the lower MCS may result in a lower bit rate, the lower MCS may support a larger frame aggregation window. The larger frame aggregation window can reduce PHY overhead and improves the frame aggregation efficiency of the communications channel. This disclosure includes various alternatives for determining an optimal transmission rate based, at least in part, on the frame aggregation feedback.
Having described the structural and logical components of the system 100 in
At stage A, the first device transmits a first quantity of MPDUs using frame aggregation. The quantity of MPDUs is included in an AMPDU transmission from the first device 110 to the second device 120 via the communications channel 115. The first device 110 may be referred to as a transmitting device or an originator for this example. The second device 120 may be referred to as a receiving device or recipient for this example. In one embodiment, the MAC layer 102 of the first device 110 is configured to implement the frame aggregation based on MAC protocol data units. In an example, the AMPDU transmission may include 64 MPDUs in the single AMPDU PHY-level frame.
At stage B, the second device sends a block acknowledgement (BA) frame indicating which MPDUs failed. The BA frame may be generated by a Block Ack Module 128 of the second device 120. Alternatively, the BA frame may be generated by a communications unit, network interface component, processor, or other suitable components of the second device 120.
In some embodiments, the BA frame is responsive to a block acknowledgement request (BAR) frame from the first device 110 to the second device 120. In other embodiments, the second device 120 may be configured to automatically send a BA frame for each AMPDU transmission that the second device 120 receives. The BA frame includes a bitmap in which each bit represents an acknowledgement (ACK) or non-acknowledgement (NAK) of one of the MPDUs in the AMPDU transmission. For example, the bitmap may be 64 bits long, each bit representing one of the 64 MPDUs that was included in the received AMPDU transmission. A zero (“0”) value may indicate a non-acknowledgement, such as a failure to decode the MPDU. For example, the MPDU frame check sequence may not match the contents of the decoded MPDU. Alternatively, a missing MPDU may be detected based, at least in part, on a missing sequence number. For example, each MPDU in the AMPDU transmission may be associated with a sequence number. The second device 120 may determine that a MPDU was not properly received if there is a skip (i.e., “hole”) in the sequence numbers of the MPDUs that are decoded from the AMPDU transmission.
At stage C, the first device 110 may determine a transmission rate based at least in part on frame aggregation efficiency. The frame aggregation efficiency may be determined based, at least in part, on the frame aggregation feedback (e.g., the BA frame). In one embodiment, the frame aggregation efficiency may be calculated based, at least in part, on a predicted frame aggregation window size of a next AMPDU transmission. The frame aggregation window size may be responsive to which MPDUs in the previous AMPDU transmission are indicated as non-acknowledged in the BA frame.
As an example, at stage C1, the transmission rate may be based at least in part on a frame aggregation shift parameter derived from the BA frame. The frame aggregation shift parameter indicates a change in the frame aggregation window size associated with the failed MPDU in the BA frame. Using the example in
If the frame aggregation shift parameter is above a threshold value, then the rate control module 108 may determine to reduce the PHY transmission rate. The reduced PHY transmission rate may support a smaller (or no) frame aggregation shift.
As a further example, at stage C2, the transmission rate may be based at least in part on an adjusted packet error rate (PER). Typically, a PER represents a ratio of failed MPDUs to the number of MPDUs included in the AMPDU. For example, if one (1) MPDU failed out of an AMPDU that includes 64 MPDUs, then the PER would be relatively low (1/64). However, in accordance with this disclosure, the PER may be adjusted to indicate a higher PER when the frame aggregation window size is decreasing. Similar to the frame aggregation shift parameter described with regard to stage C1, the frame aggregation window size is responsive to at least the lowest indicated MPDU failure in the BA frame. In one embodiment, the PER may be increased in proportion to the frame aggregation shift parameter. A larger frame aggregation shift parameter would result in a higher adjusted PER.
The adjustment of the PER may be useful in a device that uses the PER to determine the transmission rate. For example, a high PER may be associated with lowering the MCS. A rate control module that is already configured to utilize a PER may be used in accordance with this disclosure. For example, the adjusted PER may be calculated based on the frame aggregation feedback and the adjusted PER provided to a rate control module. By adjusting the PER based on the frame aggregation feedback, the rate control module may determine a transmission rate that is based at least in part on the frame aggregation feedback.
As an illustrative example, consider the following PER calculation in accordance with one embodiment of this disclosure:
Where:
The PERcurrent includes a portion which increases based on quantity of failed MPDUs and also includes a portion which increases relative to the frame aggregation shift due to the first hole in the AMPDU indicated in the BA frame. The first hole relates to first failed MPDU in the series of MPDUs. Typically the first MPDU is associated the least significant bit (LSB) from the BA frame bitmap. Starting from the LSB and moving to the left, the position of the first hole would be the first zero (non-acknowledged) bit.
In some communications, the PER is a moving average or weighted based on a series of PER calculations. For example, consider the following calculation:
PERAverage=(1−α)*PERPrevious+α*PERCurrent
Where α is a weighting factor (0<=α<=1)
Because the PERcurrent is adjusted based, at least in part, on the frame aggregation window shift parameter, the rate control module 108 may utilize existing algorithms for determining the transmission rate based on PER. For example, the rate control module 108 may decrease the transmission rate (using a lower MCS) if the PER is above a predefined threshold. Because the PER is penalized greater for larger frame aggregation window shift values, the rate control module 108 may use a lower transmission rate. However, the lower transmission rate may provide more reliable communications to support greater frame aggregation window sizes. The frame aggregation efficiency may be improved for the lower transmission rate. Therefore, the actual data throughput may increase despite the lower transmission rate.
The efficiency of frame aggregation decreases as PER increases. For example, when the PER is only 5% the aggregation size is dropped from 64 MPDUs to 38 MPDUs in the AMPDU window size. The effect of PER on aggregation size is more pronounced for higher PHY data rates. While aggregation size is more efficient at the higher PHY data rates, small increases in PER may have dramatic effects. Therefore, by adjusting the PER or by taking into account the aggregation size in the selection of a transmission rate, the efficiency of the communications channel may be improved.
Empirically, a communications channel having −81 dBm attenuation may have random holes in the frame aggregation mechanism when using Modulation Coding Scheme 7 (MCS7). The same communications channel may have relatively fewer frame aggregation holes when using Modulation Coding Scheme 5 (MCS5). In one example, the rate control module may use the unadjusted PER (e.g., not using an adjustment that is based on the frame aggregation shift parameter) to determine the transmission rate. The rate control module may select MCS7 based on the unadjusted PER. However, the use of MCS7 may yield poor throughput due to BA holes in the frame aggregation feedback causing smaller frame aggregation window sizes. In another example, the rate control module may use the adjusted PER which incorporates an adjustment based on the frame aggregation shift parameter. In other words, the adjusted PER may be higher if the frame aggregation shift is higher. In this example, the rate control module may select MCS5 based on the adjusted PER value. Comparing the two examples, the overall throughput for MCS7 may be found to be 540 mps for User Datagram Protocol (UDP) traffic using frame aggregation, while the overall throughput for MCS5 may be found to be 602 mps for the same UDP traffic using frame aggregation. Therefore, in accordance with the PER calculations in this disclosure, the lower transmission rate (MCS5) may be selected.
Further examples of the frame aggregation shift parameter are provided in
A rate control module 252 can provide PHY settings (shown as arrow 236) to the PHY controller 226 in PHY layer 224. The provided PHY settings can include an initial transmission rate setting as described in stage C above. In one embodiment, PHY controller 226 can determine modulation characteristics for data to be transmitted into communications channel 215 based, at least in part, on the PHY settings 236. PHY layer 224 can transmit data from MAC layer 222 at the data rate determined by rate control module 252 via the communications channel 215.
The rate control module 252 may include inputs such as error rate information 232 (such as bit error rate or traditional packet error rate) or weighting variables 234 (such as α or β described above). In accordance with an embodiment of this disclosure, the rate control module 252 may also receive AMPDU acknowledgement information 240 from the MAC layer 222. For example, the frame aggregation feedback in the BA frame may be converted to a frame aggregation shift parameter or block acknowledgement window size based, at least in part, on the position of a first hole in the BA frame.
Because the rate control module 252 is responsive to the frame aggregation feedback information, the rate control module 252 may determine a PHY settings 236 (e.g., transmission rate) in dependence upon the frame aggregation shift characteristics described above.
Each MPDU subframe may have a structure similar to example MPDU subframe 310. The example MPDU subframe 310 includes a delimiter field 312, an MPDU 301, and padding 318. The MPDU 301 may comprise an MPDU header 304, a payload 306, and a frame check sequence (FCS) 308. Typically the payload 306 of the MPDU may include a MAC service data unit (MSDU).
It should be understood that the quantity of MPDU subframes included in the AMPDU frame may be variable. In accordance with some WLAN standards, the quantity of MPDU subframes may be limited to a maximum of 64 units. Furthermore, the quantity of MPDU subframes may be selectable from fixed predetermined quantities (e.g., 1, 2, 4, 8, 16, 32, or 64).
In one example, the BA information field 436 may include a BA starting sequence control 422 and a BA bitmap 424. The BA starting sequence control 422 includes a value to indicate the first sequence number of the MPDUs acknowledged by the BA frame 400. The BA bitmap 424 may include one or more bits for each MPDU acknowledged (or non-acknowledged) in the BA frame 400.
The transmitting device 510 and receiving device 520 are coupled via a communications channel that supports frame aggregation. Block acknowledgement may be used with the frame aggregation to improve the efficiency of the communications channel. Block acknowledgement consists of a setup and a tear-down phase. In the setup phase, capability information such as buffer size and BA policy are negotiated with the receiver.
At 512, the transmitting device 510 and receiving device 520 may exchange messages to negotiate or setup a block acknowledgement scheme. For example, the transmitting device 510 may send a BA setup message (referred to as “ADDBA”) to the receiving device 520 and wait for an acknowledgement from the receiving device 520 before determining that the block acknowledgement scheme is activated. The ADDBA message may also include a block acknowledgement policy. For example, a parameter may indicate the type of BA scheme requested (e.g., immediate block ack, delayed block ack, or normal block ack) or whether compressed BA is permitted.
At 522, the transmitting device 510 may transmit an AMPDU frame to the receiving device 520. The AMPDU frame may include a plurality of MPDUs. For example, the AMPDU frame may be formatted similar to the example AMPDU frame described in
At 532, the transmitting device 510 may send a Block Ack Request (BAR) frame to the receiving device 520 to request acknowledgement of the MPDUs included in the AMPDU frame.
The transmitting device 510 may include a Block Ack starting sequence control value in the BAR frame to signal the first MPDU in the block for which an acknowledgment is expected. MPDUs in the receiving device's 520 buffer with a sequence control value that precedes the starting sequence control value may be called preceding MPDUs. The receiving device 520 may reassemble any complete MSDUs from buffered preceding MPDUs and indicate these to its higher layer. The receiving device 520 may maintain a Block Ack record consisting of originator address, and a record of reordering buffer size indexed by the received MPDU sequence control value. This record holds the acknowledgment state of the data frames received from the transmitting device 510.
At 534, the receiving device 520 may respond with a Block Ack (BA) frame. The BA frame may be formatted similar to the example BA frame described in
At 546, the transmitting device 510 may determine whether to change the transmission rate based at least in part upon the frame aggregation shift parameter. For example, the transmitting device 510 may compare the frame aggregation efficiency associated with a first option (e.g., using the current transmission rate and a frame aggregation window size reduced by the frame aggregation shift parameter) with the frame aggregation efficiency of a second option (e.g., using a different transmission rate with less or no reduction in the frame aggregation window size). In accordance with an embodiment of this disclosure, the transmitting device 510 selects a different transmission rate based on a probability for greater throughput resulting from the change in transmission rate.
It should be understood that in some embodiments, the transmitting device 510 communicates the change in transmission rate to the receiving device 520 prior to transmitting frames using the new transmission rate. In some embodiments, the PHY header of a subsequent frame may indicate the new transmission rate. In other embodiments, a separate message may be transmitted to indicate the change in transmission rate to the receiving device 520.
At 552, the transmitting device 510 transmits a subsequent AMPDU frame using the new transmission rate. In some embodiments, the quantity of aggregated MPDUs may be the same as the quantity of MPDUs included in the previous AMPDU frame, e.g., when the transmitting device 510 starts with new AMPDU.
At 562, the block acknowledgement session may be terminated using a tear down process. For example, a tear down message (referred to as “DELBA”) may be used to communicate the end of the block acknowledgement session.
At 610, a device may transmit an AMPDU frame. At 620 the device may receive a block acknowledgement (BA) frame indicating failure of an MPDU at a particular position in the AMPDU frame. For example, a hole in a particular position of the BA bitmap is associated with a non-acknowledged MPDU at a corresponding position (subframe) in the AMPDU frame.
At 625, the flow diagram 600 includes a decision whether to implement rate control based on the frame aggregation feedback. In some embodiments, a device may be capable of enabling or disabling the improved rate control feature. Alternatively, the improved rate control feature may be toggled based, at least in part, on a threshold decision upon analyzing the BA frame. If the improved rate control feature is not implemented or not enabled, the flow continues to block 630. If the improved rate control feature is implemented and enabled, then the flow continues to block 640.
At 630, the AMPDU window size is adjusted based on the failures indicted in the BA frame. The AMPDU window size may be decreased to limit the quantity of MPDUs included in the next AMPDU transmission. For example, the position of the first failed MPDU may be used as a limit on the AMPDU window size. As a result, at block 660, the frame aggregation efficiency depends on the position of the failed MPDU in the previous AMPDU transmission.
If improved rate control is used, the flow continues to block 640. At block 640, the PHY transmission rate may be adjusted in dependence on the position of the failed MPDU in the previous AMPDU transmission. For example, the transmission rate may be decreased if the position of the failed MPDU is associated with causing a smaller frame aggregation window size (at block 630).
At block 650, due to the adjustment of the transmission rate, the subsequent AMPDU transmission(s) may support a higher quantity of MPDUs. For example, if the transmission rate is decreased to a more reliable (e.g., lower error rate) state, then the frame aggregation may utilize a larger frame aggregation window size. Having a larger frame aggregation window size reduces PHY overhead and increases upper layer data throughput. Therefore, at block 670, the frame aggregation efficiency may be improved based, at least in part, on the new transmission rate.
At 710, an operation may include a device receiving frame aggregation feedback. For example, the frame aggregation feedback may be in the form of a block acknowledgement (BA) frame.
At 720, the device may determine a packet error rate (PER) based on the frame aggregation feedback. For example, the PER may include a calculation of a ratio of number of failed MPDUs indicated by the BA frame compared to the total number of MPDUs transmitted.
At 730, an operation may include adjusting the PER based on an adjustment factor (such as a frame aggregation shift parameter or projected frame aggregation window size) that correlates to frame aggregation efficiency. As an example, the adjusted PER may be considered “penalized” (i.e., a higher PER) if the frame aggregation efficiency will drop as a result of the frame aggregation shift parameter or projected frame aggregation window size. When the adjusted PER is higher, the rate control module is more likely to reduce the transmission rate.
At 740, an operation includes determining a transmission rate based on the adjusted PER. In some embodiments, the transmission rate may be determined by a look up table that compares a PER value with a threshold value for the current transmission rate. When the PER is higher than a threshold value, the transmission rate is decreased.
In a first example 800, the BA bitmap includes a zero 801 in the most significant bit (MSB) which is associated with the last MPDU (i.e., the 64th MPDU) that was included in the AMPDU transmission. The raw packet error rate for this example would be 1 failed MPDU divided by 64 transmitted MPDUs in the AMPDU frame (1/64 expressed as a percentage is roughly 1.5%). The frame aggregation shift parameter would also be fairly small. For example, the next AMPDU would include 63 frames (rather than 64 frames) so the frame aggregation shift parameter would be 1. Therefore the frame aggregation shift parameter will have very little effect on the adjusted PER. The adjusted PER is still fairly low, so the rate control module may leave the transmission rate unchanged or may increase the transmission rate. In other words, frame aggregation remains efficient at the current transmission rate, so there is no need to reduce the transmission rate. Whether the rate control module is configured to use the frame aggregation shift parameter directly or use the adjusted PER, the rate control module may determine a higher transmission rate remains possible while still maintaining high frame aggregation efficiency.
In the second example 810, the BA bitmap includes a zero 811 in the LSB which is associated with the first MPDU (i.e., the 1st MPDU) that was included in the AMPDU transmission. The raw packet rate for this example is the same as in example 800—specifically 1 failed MPDU divided by 64 transmitted MPDUs in the AMPDU frame. However, the frame aggregation shift parameter is much higher in the second example 810. Because the first MPDU failed (even though the rest of the MPDUs may have been successful), the transmitting device may send a subsequent AMPDU having only one MPDU. For example, the transmitting device may be configured to set the frame aggregation window size based, at least in part, on the number of MPDUs that are acknowledged in the BA bitmap before encountering a non-acknowledged MPDU in the BA bitmap. The frame aggregation shift parameter would be 63 (i.e., shifting the frame aggregation window size from 64 MPDUs to 1 MPDU). Therefore the frame aggregation shift parameter will have a large effect on the adjusted PER. For example, the adjusted PER would be very high (perhaps 100%) using the formula for PERcurrent described previously. The rate control module would likely reduce the transmission rate due to the high adjusted PER. In other words, frame aggregation would not be efficient at the current transmission rate, so there is a need to reduce the transmission rate. The lower transmission rate may allow for more frame aggregation window size than what would be used at the higher transmission rate.
Comparing the first example 800 and second example 810 as extreme scenarios, one aspect to point out is that the number of failed MPDUs in both examples is the same: only one failed MPDU. However, because of the position of the failed MPDU in the previous AMPDU transmission, the subsequent AMPDU transmission would have very different window sizes. Therefore, the position of the first failed MPDU greatly impacts the frame aggregation efficiency.
Example 820 is provided as a more realistic scenario. Random MPDU failures (“0”) 821 are indicated in the BA bitmap. The quantity of MPDU failures will impact the raw (unadjusted) PER. The position of the first failure may be indicated at different points in the BA bitmap. Therefore, a calculation similar to the one described above for PERcurrent may take into account both the raw PER as well as an adjustment based, at least in part, on the frame aggregation shift parameter. In one embodiment, a pre-defined algorithm may be used to calculate the adjusted PER prior to sending the adjusted PER to the rate control module. In other embodiments, the rate control module may be modified to utilize the unadjusted PER (or other parameters) in addition to the frame aggregation shift parameter to determine whether to change the transmission rate. The resulting PHY transmission rate for a next AMPDU transmission may be determined based on the position of the first error in the BA bitmap for the most recent AMPDU transmission.
Turning now to another example embodiment, the effect of aggregation size on goodput is also considered. Aggregation size may have a direct impact on MAC efficiency and the throughput.
The table shows that a rate control algorithm that does not consider the aggregation factor will choose the non-optimal rate. For example, in a scenario where MCS8 has 0 PER and MCS9 has 0.05 PER:
It should be understood that
As will be appreciated by one skilled in the art, aspects of the present subject matter may be embodied as a system, method, or computer program product. Accordingly, aspects of the present subject matter may take the form of an entirely hardware embodiment, a software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present subject matter may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more non-transitory computer readable medium(s) may be utilized. Non-transitory computer-readable media comprise all computer-readable media, with the sole exception being a transitory, propagating signal. The non-transitory computer readable medium may be a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
Computer program code embodied on a computer readable medium for carrying out operations for aspects of the present subject matter may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
Aspects of the present subject matter are described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the inventive subject matter. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The electronic device 1000 also includes a rate control module 1008. As described above in
While the embodiments are described with reference to various implementations and exploitations, it will be understood that these embodiments are illustrative and that the scope of the inventive subject matter is not limited to them. In general, techniques for determining a transmission rate based at least in part upon frame aggregation feedback information as described herein may be implemented with facilities consistent with any hardware system or hardware systems. Many variations, modifications, additions, and improvements are possible.
Plural instances may be provided for components, operations or structures described herein as a single instance. Finally, boundaries between various components, operations and data stores are somewhat arbitrary, and particular operations are illustrated in the context of specific illustrative configurations. Other allocations of functionality are envisioned and may fall within the scope of the inventive subject matter. In general, structures and functionality presented as separate components in the exemplary configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements may fall within the scope of the inventive subject matter.
This application claims the priority benefit of U.S. Provisional Patent Application Ser. No. 61/775,436 filed Mar. 8, 2013.
Number | Date | Country | |
---|---|---|---|
61775436 | Mar 2013 | US |