Reverse Direction (RD) ProtocolBy CWNP On 08/27/2007 - 12 Comments
The purpose of the 802.11n RD protocol is to more efficiently transfer data between two 802.11 devices during a TXOP by eliminating the need for either device to initiate a new data transfer. Before the RD protocol, each uni-directional data transfer required the initiating station to capture (and possibly reserve time on) a contention-based RF medium. With RD, once the transmitting station has obtained a TXOP, it may essentially grant permission to the other station to send information back during its TXOP. This requires that two roles be defined: RD iniator and RD responder. The RD initiator sends its permission to the RD responder using a Reverse Direction Grant (RDG) in the RDG/More PPDU field of the HT Control field in the MAC frame. This bit is used by the RD initator for granting permission (RDG) to the RD responder, and it is used by the RD responder to signal whether or not it is sending more frames immediately following the one just received (More PPDU). For a more technical walk-through of this functionality, here are some excerpts from the 802.11n-draft2.00 amendment with my occassional input inserted.
During an RD exchange sequence, the RD initiator station may transmit PPDUs and obtain response PPDUs from a single station (RD responder) during the exchange. Support of the RD feature is an option for an HT station. It is optional in the sense that a TXOP holder is never required to generate a RD grant, and a station receiving a RD grant is never required to use the grant.
Support of the RD feature as a RD responder is indicated using the RD Responder subfield of the HT Extended Capabilities field of the HT Capabilities element. The RD mechanism enables the generation of a response burst (by the RD responder) containing one or more PPDUs. The "RDG/More PPDU" field in the HT Control field is used to indicate non-final PPDUs in transmissions by a responder. Under the RD rules, the RD responder must not generate a response containing more than one PPDU if the RDG/More PPDU field is set to 0 in the last PPDU sent by the RD initiator.
The response starts a SIFS after the end of the PPDU containing one or more +HTC MPDUs (those MPDUs containing a HT Control field) in which the RDG/More PPDU field was set to 1. Any PPDUs in a response burst are separated by SIFS or RIFS. The RIFS rules in the reverse direction are the same as in the forward direction. When a PPDU is not the final PPDU of a response burst, an HT Control field carrying the RDG/More PPDU field set to 1 must be present in every MPDU within the PPDU capable of carrying the HT Control field. The last PPDU of a response burst must have the RDG/More PPDU field set to 0 in all +HTC MPDUs contained in that PPDU.
During a response burst, only the RD responder may transmit (i.e., there are no transmissions by any other station, including the RD initiator). See below for an example of an RD exchange sequence with response bursts.
The RD responder must ensure that its PPDU transmission(s) and any expected responses fit entirely within the remaining TXOP duration, as indicated in the Duration/ID field of the PPDU carrying the RDG.
The transmission of a response by the RD responder does not comprise a new channel access but a continuation of the RD initiator’s TXOP. An RD responder ignores the NAV when responding to an RDG.
The recipient of an RDG may decline to accept the RDG by not transmitting any frames following the PPDU that contains the RDG/More PPDU field set to 1 when no response is otherwise required, or by transmitting a frame with the RDG/More PPDU field set to 0 or that contains no HT Control field.
An RD initiator is not required to examine the RD Responder subfield of a potential responder before deciding whether to send a PPDU to that station in which the RDG/More PPDU field is set to 1. An RD initiator may include multiple RD transmit sequences addressed to multiple recipients within a single TXOP. The RD initiator may transmit a CF-End frame following an RD transmit sequence.
Transmission of a frame by an RD initiator with the RDG/More PPDU field set to 1 indicates that the remaining TXOP duration is available for a response burst. An RD initiator that sets the RDG field to 1 must set the AC Constraint field to 1 if the TXOP was gained through the EDCA channel access mechanism, and must set it to 0 if the TXOP was gained through HCCA (not currently implemented) or any other access mechanism that is not EDCA.
If the AC Constraint field is set to 1, the RD responder must transmit Data frames of only the same AC as the last frame received from the RD initiator for which an AC can be determined.
For a Block Ack Request (BAR) or Block Ack (BA) frame, the AC is determined by examining the Traffic Identifier (TID) field. For a management frame, the AC is AC_VO (the Voice Access Category). The RD initiator must not transmit a +HTC MPDU with the RDG/More PPDU field set to 1 from which the AC cannot be determined. If the AC Constraint field is set to 0, the RD responder may transmit Data frames of any TID. During an RDG, the RD responder must not transmit any frames that are not addressed to the RD initiator as the Receiver Address (RA).
The RDG/More PPDU field must be set to the same value in all HT Control fields present in a PPDU. Subject to TXOP constraints, after transmitting a PPDU containing the RDG/More PPDU field set to 1:
— Normal Continuation: The RD initiator may transmit its next PPDU a minimum of a SIFS after receiving a response PPDU with the RDG/More PPDU field set to 0.
— Error Recovery: Error recovery of the RDG mechanism is the responsibility of the RD initiator. The RD initiator may transmit its next PPDU when the medium is sensed idle for PIFS (this is a continuation of the current TXOP). If the RD initiator receives a PPDU that does not carry the RDG/More PPDU field, it must not transmit until the medium has been sensed idle for a PIFS.
RD Response Constraints:
The first PPDU of any response burst must contain any frames required to provide an immediate response. A PPDU that is not the last PPDU of a response burst must not contain a frame requiring an immediate response. The RD initiator must interpret the presence of a frame in a response PPDU requiring an immediate response as an implicit indication that the field RDG/More PPDU is set to 0. The RD responder must not set the More PPDU field to 1 in any MPDU in a PPDU that contains an MPDU that requires an immediate response.
After transmitting a PPDU containing one or more +HTC MPDUs (frames containing an HT Control field) in which the RDG/More PPDU field set to 0, the RD responder must not transmit any more PPDUs within the current response burst. If the RD responder transmits a PPDU that expects a transmission by the RD initiator after SIFS, and no such transmission is detected, the RD responder must wait for either another RDG or its own TXOP before it can retry the exchange.