Network-based control of stations in a wireless communication network

Using the feature named “KEY_SEARCH_AD1” in the Atheros 11n chipset, an access point can determine whether to send an ACK packet in response to a message packet in response to whether the BSSID present in the sender address is present in the keycache. The AP can maintain a list of about 128 arbitrarily selected BSSID's, to each of which it will respond with an ACK packet if it receives a message from a mobile station with that BSSID. (1) the number of mobile stations that can be assigned to that AP is relatively greater. (2) the selection of those BSSID's is no longer constrained by having to match the AP's BSSID using a mask. With selection of those BSSID's being no longer so constrained, it is easier to assign BSSID's to mobile stations while allowing those mobile stations to roam among multiple AP's.

RELATED APPLICATIONS

This application claims priority from the following documents.U.S. patent application Ser. No. 11/298,864, filed Dec. 9, 2005 in the name of inventors Vaduvur BHARGHAVAN et al., titled “Seamless Mobility in Wireless Networks”.U.S. patent application Ser. No. 11/715,287, filed Mar. 7, 2007 in the name of inventors Vaduvur BHARGHAVAN et al., titled “Seamless Mobility in Wireless Networks”.

Each of these documents is hereby incorporated by reference as if fully set forth herein. These documents are herein sometimes referred to as the “Incorporated Documents”.

BACKGROUND

Wireless communication systems include mobile stations (MS's), which communicate with access points (AP's), which collectively communicate using wireless and wired techniques. In a wireless communication system operating using an IEEE 802.11 protocol, or variant thereof, each access point controls wireless communication with those mobile stations in a localized communication region (also known as a “cell”). Mobile stations operating according to an IEEE 802.11 protocol, or variant thereof, attempt to determine in which cell they are operating, and attempt to communicate with the particular access point for that cell.

SUMMARY OF THE DESCRIPTION

Using the feature named “KEY_SEARCH_AD1” in the Atheros 11n chipset, an access point can determine whether to send an ACK packet in response to a message packet in response to whether the BSSID present in the receiver address (not the sender address) is present in the keycache. This has the effect that the access point can maintain a list of about 128 arbitrarily selected BSSID's, to each of which it will respond with an ACK packet if it receives a message from a mobile station addressed to that BSSID. (Effectively, each of the access point's BSSID's represents a method for mobile stations to access the AP; this has the effect that BSSID's could be considered either addresses for AP's or addresses for services offered by AP's.) This has two effects: (1) the number of mobile stations that can be assigned to that AP is relatively greater, and (2) the selection of those BSSID's is no longer constrained by having to match the access point's BSSID using a mask. With selection of those BSSID's being no longer so constrained, it is easier to assign BSSID's for use by mobile stations while allowing those mobile stations to roam among multiple access points.

DETAILED DESCRIPTION

Overview

In systems described in the Incorporated Documents, handoff and other functions of wireless communication systems are controlled by access points, themselves under direction of a control element, rather than by the mobile stations seeking out and communicating with access points. The Incorporated Documents describe at least two techniques, “virtual cells” and “personal access points”, and their advantages, including for example roaming among access points without the mobile station having to conduct handoff operations.

In systems using virtual cells, mobile stations are all associated with a common BSSID they might access, which is shared among substantially all of the access points. In such cases, the control element selects one or more access points (typically one at any particular time) to communicate with the mobile station; those one or more access points are the only access points which respond to message packets from the mobile station.

In systems using personal access points, mobile stations are each associated with a unique BSSID they might access, which is associated with the particular one or more access points the system associates with that particular mobile station. In such cases, the mobile station's unique BSSID access ability is moved from one to another access point as it is desired to re-assign the mobile station; the one or more access points maintaining that unique BSSID (typically one at any particular time) are the only access points which respond to message packets from the mobile station.

In one vendor's implementation of access points in the IEEE 802.11n protocol, including at least the Atheros model AR5416 and the Atheros model AR9160 (and of course any other devices having this or a similar capability, whether or not from the same vendor), access points include a feature named “KEY_SEARCH_AD1”, which when enabled provides that the access point, when responding with an acknowledgement (ACK) packet to a message from a mobile station, will match the receiver (i.e., not sender) address of the incoming packet against an entry in a locally maintained table of mobile station address (the “keycache”). For each entry in the keycache, a separate register controls whether the access point will provide ACK packets in response to an address match on that entry.

When the mobile station sends a message packet to the access point, the sender address for that packet is the MAC address associated with the mobile station, and the receiver address is the BSSID for the access point. This has the effect that, if the access point determines whether to send an ACK packet in response to a message packet, it must do so in response to whether its own BSSID is present in the receiver address. In contrast, when an access point sends a message to a mobile station, the sender address for that packet is the BSSID for which the mobile station has been assigned the capability of access, and the receiver address for that packet is the MAC address for the mobile station.

In many implementations of the IEEE 802.11n protocol, the access point can also mask some of the bits of its BSSID. This has the effect that the access point can respond to multiple BSSID's, but the number of possibilities is limited by the ability to maintain unique BSSID's that still match the access point's own BSSID after masking. Mobile stations can thus be assigned the ability to access BSSID's that match the access point's own BSSID after masking, but the number of such BSSID's would be relatively limited. In systems using personal access points, this has the effect of limiting the number of mobile stations that can be assigned to the access point, as well as constraining the BSSID's that can be accessible by mobile stations while allowing those mobile stations to roam among multiple access points.

When using the feature named “KEY_SEARCH_AD1”, the access point can determine whether to send an ACK packet in response to a message packet in response to whether the BSSID present in the receiver address is present in the keycache. This has the effect that the access point can maintain a list of about 128 arbitrarily selected BSSID's, to each of which it will respond with an ACK packet if it receives a message from a mobile station assigned to that BSSID. This has two effects: (1) the number of mobile stations that can be assigned to that access point is relatively greater, and (2) the selection of those BSSID's is no longer constrained by having to match the access point's BSSID using a mask. With selection of those BSSID's being no longer so constrained, it is easier to assign BSSID's for access by mobile stations while allowing those mobile stations to roam among multiple access points.

FIGURES AND TEXT

FIG. 1shows a block diagram of a system according to this application.

A wireless communication system100includes a control element110, a set of access points120, and a set of mobile stations130.

Each access point120includes registers maintaining its own AP BSSID121, a “KEY_SEARCH_AD1 enabled” bit122, and a keycache123. The keycache123includes approximately 128 keycache registers124, each including a MAC address associated with a mobile station130. Each mobile station130includes a register maintaining its own MAC address131.

Mobile stations130send message packets132wirelessly, those message packets132each including a sender address133and a receiver address134. Each access point120is disposed for receiving those message packets132. In operation, when an access point120receives a message packet132, it uses the KEY_SEARCH_AD1 feature to determine whether to respond with an ACK packet125. This has the effect that the access point120compares the receiver address134of the message packet132with its keycache registers124. The access point120responds with an ACK packet125if and only if that receiver address134matches one of those keycache registers124; otherwise it does not respond with an ACK packet125.

In operation, the access point120is directed by the control element110to insert a BSSID to be accessible by a selected mobile station130into its keycache123when the control element110assigns that particular mobile station130to that access point120. Similarly, the access point120is directed by the control element110to delete a BSSID previously accessible by a selected mobile station130from its keycache123when the control element110de-assigns that particular mobile station130from that access point120.

FIG. 2shows a block diagram of a software ACK system according to this application.

FIG. 3shows a process flow diagram of a software ACK method according to this application.

One problem with the “KEY_SEARCH_AD1” feature is that current implementations by the Atheros model AR5416 and the Atheros model AR9160 access points120erroneously treat recovery from failed transmissions of message packets (sometimes known as “multiple retries”). More specifically, in proper operation, when a device, whether an access point120or otherwise, sends a unicast message packet, it should wait a designated duration of time for an ACK packet125. If no ACK packet125arrives within that designated duration of time, the device resends the message packet, until a matching ACK packet125arrives or a maximum designated number of retries have been attempted. In many cases, the data-rate for transmission of the retried message packets is different, typically decreasing with each retry, with the effect that the chance of successful transmission is increased with each retry.

In current implementations by (at least) the Atheros model AR5416 and the Atheros model AR9160 access points120, it is possible for software controlling the access point to designate a set of parameters for the access point120to use when attempting multiple retries. More specifically, that set of parameters might specify the maximum number of retries and the data-rate for each such retry. In such cases, when the access point120is ready to transmit a message packet, it should transmit the message packet and await an ACK packet125according to the designated set of parameters. If the access point120does not receive an ACK packet125within the designated duration of time for an ACK packet125, it should retry transmission, according to the designated set of parameters, until either an ACK packet125is received or the designated maximum number of retries is reached. If an ACK packet125is ultimately received, the access point120should return a status code to the controlling software indicating successful transmission, while if no ACK packet125is received after the designated maximum number of retries is reached, the access point120should return a status code to the controlling software indicating failure of the transmission.

However, in current implementations by (at least) the Atheros model AR5416 and the Atheros model AR9160 access points120, when the “KEY_SEARCH_AD1” feature is set. In such cases, the access point120fails to match received ACK packets125to those transmitted message packets. This has the effect that the access point120will fail to recognize receipt of any ACK packets125; the access point120will therefore retry the message packet until the designated maximum number of retries is reached, and therefore always return a status code to the controlling software indicating failure of the transmission.

Accordingly, in one embodiment, software performs matching of transmitted message packets and received ACK packets125.

In theFIG. 2, the access point120includes a hardware transmit queue210, a receive queue220, and for each mobile station130, a mobile station queue230.

A method300includes a set of flow labels and method steps as shown in theFIG. 3, including at least the following.

BEGINNING OF METHOD

Reaching the flow label300A indicates the beginning of the method.

At a method step310a packet is removed from the mobile station queue followed by a method step312wherein the MS queue is blocked preventing further queuing.

At a method step314the original packet descriptor is saved for later recall and setting the MAXRETRY parameter of the packet to 1 for providing only a subset of possible retries for the transmission.

The method step316provides for placing the modified packet (the TX packet) with the hardware (HW) queue for transmission reaching the flow label300D.

Reaching a flow label300B indicates the TX packet transmission is complete.

At a method step318the TX packet is removed from the HW queue and at a method step320provides for storing the TX packet for later ACK matching. Reaching a method step340wherein a timer is set or timing indication is recorded. Upon completion of a timing indication, if a packet has not been received, then at a method label300F reaching a timeout wherein operation transfers to a method step334.

Reaching the flow label300C indicates reception of an RX packet.

At a method step322the RX packet is removed from the received queue and tested in a method step324. If the RX packet is not a complementary packet such as an ACK packet, the packet is passed unchanged to the access point (AP) software in a method step326thus reaching the end of the method at flow label300E.

If the determination in the method step324is that the RX packet is a complementary packet such as an ACK packet, the ACK packet is stored for later matching in the method step328.

A method step330provides for comparing the RX packet stored in the method step328with the TX packet stored in the method step320wherein the two packets are compared to determine if the RX packet is a complementary packet corresponding to the TX packet.

The method step332provides for the determination of a match wherein if there is a match, operation proceeds from the method step336. If there is not a match, operation moves to a method step334wherein the number of retries is compared to a predetermined retry limit. If the retry limit is exceeded, operation proceeds to a method step336. If the retry limit is not exceeded, operation proceeds to the method step338.

At a method step338the TX packet is prepared for requeuing. This may include adjusting one or more transmission parameters, such as the transmission rate, to provide for more reliable communications with a mobile station. A method step338provides for incrementing a retry counter associated with the packet under consideration. When the method step338is completed, operation moves to a method step316for further transmission according to the foregoing description.

Returning to the method step334, if the retry limit is found to be exceeded, operation moves to the method step336. In the method step336, the original descriptor from the method step314is restored to the packet. A flag indicating transmission success or failure is set, said flag indication being based on a comparison between the number of retries and a predetermined amount. The number of retries is associated with the packet before operation moves to a method step338a.

The method step338aunblocks the MS queue that has been previously blocked in the method step312thus allowing for system operation involving future packets. Operation then moves to the method step326wherein the packet is passed to the access point.

The method300terminates at the flow label300E.

END OF METHOD

In one embodiment, the method300is repeated continually by the wireless communication system for each message packet to be transmitted.

To prevent re-ordering of message packets, the method300requires that only one frame per mobile station130is allowed to be enqueued at the hardware transmit queue210from the mobile station queue230for that mobile station130. Accordingly, upon moving a message packet from the mobile station queue230for that mobile station130, the method300requires the mobile station queue230for that mobile station130to wait for successful transmission of that message packet before attempting to move a further message packet from the mobile station queue230for that mobile station130onto the hardware transmit queue210for the access point120.

ALTERNATIVE EMBODIMENTS

After reading this application, those skilled in the art would recognize that the scope and spirit of the invention includes other and further embodiments beyond the specifics of those disclosed herein, and that such other and further embodiments would not require new invention or undue experimentation.