Abstract:
Methods, apparatuses, and systems directed to facilitating roaming and client handoffs in wireless networks. In one implementation, the present invention is directed to a coordination mechanism facilitating handoffs of wireless clients in a wireless network infrastructure. In one implementation, the coordination mechanism minimizes the use of group- or multi-casting to provide a scalable wireless network roaming infrastructure.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application is a continuation of U.S. application Ser. No. 11/182,239 filed Jul. 15, 2005 and entitled Methods, Apparatuses and Systems Facilitating Client Handoffs in Wireless Network Systems” which claims priority to U.S. Provisional Application Ser. No. 60/654,655 filed Feb. 18, 2005, entitled “Methods, Apparatuses and Systems Facilitating Client Handoffs in Wireless Network Systems,” which is incorporated herein for all purposes. 
         [0002]    This application also makes reference to the following commonly owned U.S. patent applications and/or patents, which are incorporated herein by reference in their entirety for all purposes: 
         [0003]    U.S. patent application Ser. No. 10/155,938 in the name of Patrice R. Calhoun, Robert B. O&#39;Hara, Jr. and Robert J. Friday, entitled “Method and System for Hierarchical Processing of Protocol Information in a Wireless LAN;” 
         [0004]    U.S. patent application Ser. No. 10/407,357 in the name of Patrice R. Calhoun, Robert B. O&#39;Hara, Jr. and Robert J. Friday, entitled “Method and System for Hierarchical Processing of Protocol Information in a Wireless LAN;” and 
         [0005]    U.S. patent application Ser. No. 10/447,735 in the name of Robert B. O&#39;Hara, Jr., Robert J. Friday, Patrice R. Calhoun and Paul F. Dietrich, entitled “Wireless Network Infrastructure including Wireless Discovery and Communication Mechanism.” 
     
    
     FIELD OF THE INVENTION 
       [0006]    The present invention relates to wireless computer networks and, more particularly, to methods, apparatuses and systems facilitating client handoffs in wireless network systems. 
       BACKGROUND OF THE INVENTION 
       [0007]    Market adoption of wireless LAN (WLAN) technology has exploded, as users from a wide range of backgrounds and vertical industries have brought this technology into their homes, offices, and increasingly into the public air space. This inflection point has highlighted not only the limitations of earlier-generation systems, but the changing role WLAN technology now plays in people&#39;s work and lifestyles, across the globe. Indeed, WLANs are rapidly changing from convenience networks to business-critical networks. Increasingly users are depending on WLANs to improve the timeliness and productivity of their communications and applications, and in doing so, require greater visibility, security, management, and performance from their network. 
         [0008]    As enterprises and other entities increasingly rely on wireless networks, monitoring and management of the components implementing the wireless network environments become critical to performance and security. Heretofore, it has not been recognized how important visibility into all layers of the network protocol is to optimization of network manageability and user performance in wireless LANs (WLANs). Unlike centrally-managed cellular wireless systems, known WLAN solutions use distributed access points to act as bridges between the wired infrastructure and the wireless clients, removing physical and wireless media access protocol information from the protocol frames that are passed onto the infrastructure network. This results in uncoordinated handoffs of wireless clients moving between access points. An uncoordinated system of access points makes it difficult to manage a large number of access points, because there is no point of coordination. For example, known prior art wireless network systems such as conventional 802.11 systems provide the initial handshaking, access authentication and access association at a remote node without attention to overall network loading and signal quality. 
         [0009]    This type of distributed architecture creates many problems affecting network management, mobility, and performance. Since each wireless LAN access point is a separate managed device, a distributed architecture in general introduces many new managed elements in the network without sufficient attention to their global effects. Since the access points act in their own self-interest and are not aware of the actions taken by surrounding access points, they handle mobility (e.g., handoff actions) as a local event, which significantly increases latency. 
         [0010]    U.S. application Ser. Nos. 10/155,938 and 10/407,357, identified above, disclose hierarchical wireless network architectures that optimizes network management and performance of a relatively autonomously-managed WLAN. According to the system architecture, a central control element (such as a wireless switch) manages and controls one more access elements. These light-weight access elements perform real-time communication functions, such as data transfer and acknowledgements, while the central control element manages the connection between the access element and one or more wireless client devices. 
         [0011]    An important function to the operation of WLANs is roaming—i.e., the handoff of a client from one access point to another as the client roams about the coverage area provided by the wireless network infrastructure. During a handoff event, a wireless client essentially abandons its connection with one access point and establishes a new connection with another, resulting in a small period without connectivity and therefore possible packet loss. A handoff event can be divided into three phases: 1) scanning/probing, 2) re-association, and 3) state information transfer. When the signal quality between an access point and a client degrades, the client, sensing that connectivity has been lost, initiates a handoff by scanning available RF channels for access points with which to associate. Scanning for access points can employ both a passive mechanism (e.g., detecting beacon frames transmitted by the access points), and an active mechanism (e.g., broadcasting probe responses and receiving probe requests). After selecting an access point identified during the scan, the client attempts to associate with the selected access point. In this re-association phase, the wireless client and the selected access point engage in a handshake process to establish the connection. 
         [0012]    In 802.11 WLANs, a typical handoff may also involve an exchange of messages between the prior and new access point to complete a transfer of physical/link layer connectivity between one access point and another access point. The message exchanges may include the transfer of connection state information, such as authentication credentials, between the prior access point and the new access point. The interaction between access points can be accomplished using standard or proprietary protocols. For example, the draft IEEE 802.11F specification provides a recommended general framework for the exchange of connection state information between access points during a client handoff. For example, when a wireless client discovers a new access point, it transmits a re-association message, including the BSSID of the old access point, to the new access point. The new access point uses a mechanism to resolve the address of the old access point and transmits a request for the connection state information of the client. In hierarchical wireless networks, the handoff can occur between two access points managed by the same wireless switch, or between access points managed by different wireless switches. In the former case, the transfer of connection state information between access points is either not required or greatly simplified, as this connection state information is maintained by a common wireless switch. Client handoffs that implicate two wireless switches, however, may require the exchange of wireless connection state information between the wireless switches. While the inter-access-point protocol set forth in the draft 802.11F specification to transfer state information between the switches can be utilized, the mapping of BSSIDs to wireless switch addresses presents configuration overhead, especially for large scale deployments. For example, the 802.11F specification discloses that RADIUS servers may be used to provide the mapping between the BSSID and the previous network access device. Furthermore, the 802.11F specification does not address the situation where a client attempts to re-associate with two switches in alternating succession, or with multiple switches, as it roams about the wireless network environment. 
         [0013]    In light of the foregoing, a need in the art exists for methods, apparatuses and systems that increase the efficiency, and reduce the latency associated with, roaming in wireless network environments. Embodiments of the present invention substantially fulfill this need. 
     
    
     
       DESCRIPTION OF THE DRAWINGS 
         [0014]      FIG. 1  is a functional block diagram illustrating a wireless network system according to an embodiment of the present invention. 
           [0015]      FIG. 2  is a functional block diagram illustrating a hierarchical wireless network system deployed across a network. 
           [0016]      FIG. 3  is a flow chart diagram illustrating the process flow, according to one implementation of the present invention, directed to processing association requests transmitted by wireless clients. 
           [0017]      FIGS. 4A and 4B , together, are a flow chart diagram illustrating the process flow, according to one implementation of the present invention, including an inter-switch coordination mechanism. 
           [0018]      FIG. 5  is a functional block diagram illustrating an alternative wireless network system architecture. 
           [0019]      FIG. 6  is a functional block diagram illustrating the components of a central control element according to one embodiment of the invention. 
           [0020]      FIG. 7  is a functional block diagram illustrating the components of a wireless client according to one embodiment of the invention. 
           [0021]      FIG. 8  is a functional block diagram illustrating the components of an access element according to one embodiment of the invention. 
       
    
    
     DESCRIPTION OF PREFERRED EMBODIMENT(S) 
     A. Operating Environment and Exemplary System Architectures 
       [0022]    For didactic purposes an embodiment of the present invention is described as operating in a WLAN environment as disclosed in U.S. application Ser. Nos. 10/155,938 and 10/407,357 incorporated by reference herein. As discussed below, however, the present invention can be implemented according to a vast array of embodiments, and can be applied to a variety of WLAN architectures. 
         [0023]      FIG. 1  illustrates a wireless computer network environment according to an embodiment of the present invention. Referring to  FIG. 1 , there is shown a block diagram of a wireless Local Area Network system  10  according to an embodiment of the invention. A specific embodiment of the invention includes the following elements: access elements  12 ,  14  for wireless communication with client remote elements  16 ,  18 ,  20 ,  22 , central control elements  24 ,  25 ,  26 , and means for communication between the access elements and the central control elements, typically direct line access  28 ,  30 , but potentially a wireless backbone, fiber or other reliable link. As disclosed in U.S. patent application Ser. No. 10/407,357, in another embodiment, the access elements, such as access elements  12 ,  14  are directly connected to network  50  or a virtual local area network (VLAN) for communication with a corresponding central control element  24 ,  26 . See  FIG. 5 . For purposes of this disclosure, access elements, access points and APs are used interchangeably. Furthermore, the network may further include other functionality not illustrated, such as DHCP proxies and servers, and RADIUS or other authentication functionality. 
         [0024]    The access elements  12 - 15 , in one implementation, are coupled via communication means using a wireless local area network (WLAN) protocol (e.g., IEEE 802.11a, 802.11b/g, etc.) to the client remote elements  16 ,  18 ,  20 ,  22 . The communications means  28 ,  30  between the access elements  12 ,  14  and the central control element  24  is typically an Ethernet (e.g., IEEE 802.3) link or network, but it could be anything else which is appropriate to the environment. As described in U.S. application Ser. Nos. 10/155,938 and 10/407,357, the access elements  12 ,  14  and the central control element  24  tunnel network traffic associated with corresponding remote client elements  16 ,  18 ;  20 ,  22  via direct access lines  28  and  30 , respectively, or a LAN. Central control element  24  is also operative to bridge the network traffic between the remote client elements  16 ,  18 ;  20 ,  22  transmitted through the tunnel with corresponding access elements  12 ,  14 . In one implementation, the central control elements are Airespace 4100 WLAN switches, while the access elements are Airespace 1200 Access Points, both offered by Airespace, Inc. of San Jose, Calif. As  FIG. 6  shows, in one implementation, the central control elements each comprise a switch function or fabric  410  comprising a network interface  408  (e.g., a Ethernet adapter) for connection to network  50  and corresponding network interfaces  412  for connection to the access elements, a processor  402 , a memory  404 , one or more software modules, stored in the memory  402 , including instructions for performing the functions described herein, and a system bus  406  operably connecting these components. The central control elements may optionally include an administrative network interface  407  allowing for administrative access for such purposes as configuration and diagnostic access. Still further, access elements  12 ,  14  typically comprise a processor  310 , a memory  312 , a network interface  314  (e.g., an 802.3 interface) for communication with a central control element, and a wireless network interface  316  (e.g., an IEEE 802.11 WLAN interface) for wireless communication with remote client elements, one or more software modules including instructions for performing the functions described herein, and a system bus  308  operably connecting these components (see  FIG. 8 ). 
         [0025]    In one implementation, remote client elements include a processor, a memory, a wireless network interface, and a wireless network interface driver that includes logic directed to the roaming functions described herein. In one implementation, the client-side functionality corresponding to the present invention can be embodied in a driver code object stored on a computer-readable medium, or embodied in data signals transmitted to a remote device, that when installed on a client device implements the roaming functions described herein. 
         [0026]      FIG. 7  illustrates, for didactic purposes, the hardware architecture of a wireless client according to one implementation of the present invention. The present invention, however, can be implemented on a wide variety of computer system architectures, such as Personal Digital Assistants, Laptop computers, and the like. An operating system manages and controls the operation of system  800 , including the input and output of data to and from software applications (not shown). The operating system provides an interface, such as a graphical user interface (GUI), between the user and the software applications being executed on the system. According to one embodiment of the present invention, the operating system is the Windows® 95/98/NT/XP operating system, available from Microsoft Corporation of Redmond, Wash. However, the present invention may be used with other conventional operating systems, such as the Apple Macintosh Operating System, available from Apple Computer Inc. of Cupertino, Calif., UNIX operating systems, LINUX operating systems, and the like. 
         [0027]      FIG. 7  illustrates one embodiment of a computer hardware system suitable for use with the present invention. In the illustrated embodiment, hardware system  800  includes processor  802  and cache memory  804  coupled to each other as shown. Additionally, hardware system  800  includes high performance input/output (I/O) bus  806  and standard I/O bus  808 . Host bridge  810  couples processor  802  to high performance I/O bus  806 , whereas I/O bus bridge  812  couples the two buses  806  and  808  to each other. Coupled to bus  806  are network/communication interface  824 , system memory  814 , and video memory  816 . In turn, display device  818  is coupled to video memory  816 . Coupled to bus  808  are mass storage  820 , keyboard and pointing device  822 , and I/O ports  826 . Collectively, these elements are intended to represent a broad category of computer hardware systems, including but not limited to general purpose computer systems based on the Pentium® processor manufactured by Intel Corporation of Santa Clara, Calif., as well as any other suitable processor. 
         [0028]    The elements of computer hardware system  800  perform their conventional functions known in the art. In particular, wireless network interface  824  is used to provide communication between system  800  and any of a wide range of wireless networks, such as a WLAN (e.g., IEEE 802.11) network, etc. Mass storage  820  is used to provide permanent storage for the data and programming instructions to perform the above described functions implemented in the system controller, whereas system memory  814  (e.g., DRAM) is used to provide temporary storage for the data and programming instructions when executed by processor  802 . I/O ports  826  are one or more serial and/or parallel communication ports used to provide communication between additional peripheral devices which may be coupled to hardware system  800 . 
         [0029]    Hardware system  800  may include a variety of system architectures and various components of hardware system  800  may be rearranged. For example, cache  804  may be on-chip with processor  802 . Alternatively, cache  804  and processor  802  may be packed together as a “processor module”, with processor  802  being referred to as the “processor core”. Furthermore, certain implementations of the present invention may not require nor include all of the above components. For example, the peripheral devices shown coupled to standard I/O bus  808  may be coupled to high performance I/O bus  806 ; in addition, in some implementations only a single bus may exist with the components of hardware system  800  being coupled to the single bus. Furthermore, additional components may be included in system  800 , such as additional processors, storage devices, or memories. 
         [0030]    As discussed above, in one embodiment, the operations of the client-side roaming functionality described herein are implemented as a series of software routines run by hardware system  800  of  FIG. 7 . These software routines, which can be embodied in a wireless network interface driver, comprise a plurality or series of instructions to be executed by a processor in a hardware system, such as processor  802 . Initially, the series of instructions are stored on a storage device, such as mass storage  820 . However, the series of instructions can be stored on any conventional storage medium, such as a diskette, CD-ROM, ROM, etc. Furthermore, the series of instructions need not be stored locally, and could be received from a remote storage device, such as a server on a network, via network/communication interface  824 . The instructions are copied from the storage device, such as mass storage  820 , into memory  814  and then accessed and executed by processor  802 . 
         [0031]    As described in the above-identified patent applications, central control element  24  operates to perform link layer management functions, such as authentication and association on behalf of access elements  12 ,  14 . For example, the central control element  24  provides processing to dynamically configure a wireless Local Area Network of a system according to the invention while the access elements  12 ,  14  provide the acknowledgment of communications with the client remote elements  16 ,  18 ,  20 ,  22 . The central control element  24  may for example process the wireless LAN management messages passed on from the client remote elements  16 ,  18 ;  20 ,  22  via the access elements  12 ,  14 , such as authentication requests and association requests, whereas the access elements  12 ,  14  provide immediate acknowledgment of the communication of those messages without conventional processing thereof. Similarly, the central control element  24  may for example process physical layer information. Still further, the central control element  24  may for example process information collected at the access elements  12 ,  14  on channel characteristic, propagation, and interference or noise. Central control element  24  may also transmit control messages to the access elements  12 ,  14  to change various operational parameters, such as frequency channel and transmit power. Central control element  26  and associated access elements  13 ,  15  operate in a similar or identical manner. Still further, access elements  12 ,  14  may perform other time-sensitive operations, such as the transmission of beacon frames at each beacon interval. 
         [0032]    As  FIG. 5  illustrates, according to another embodiment, central control element  24  can communicate with access elements  12 ,  14  over local area network segment of network  50 . In addition, using a virtual local area network (VLAN) technology and protocols, central control element  24  may also communicate with access element  15  over network  50 . Suitable VLAN protocols include the IEEE 802.1Q (VLAN tagging) protocol or any other protocol allowing for a logical or virtual link layer connection between the central control element and the access elements. Of course, access element  15  can also be configured to operate in connection with central control element  26 . According to the deployment architecture illustrated in  FIG. 5 , wireless traffic associated with remote client elements  16 ,  18 ;  20 ,  22 , according to one embodiment, can be tunneled between the central control element  24  and the access elements  12 ,  14 . In another embodiment, access elements  12 ,  14  can operate to directly bridge network traffic between remote client elements  16 ,  18 ;  20 ,  22  and network  50 , while tunneling network management messages, such as authentication and association requests from remote client elements to central control element  24  as discussed above. In addition, according to either embodiment, access elements  12 ,  14 , central control element  24 , or both access elements  12 ,  14  and central control element  24  can include layer  2  discovery mechanisms allowing for automatic discovery and configuration across network  50  of the components (central control elements and access elements) effecting the wireless network environment. 
         [0033]      FIG. 2  illustrates a subset of the components of a hierarchical wireless network system deployed across a wired network environment. Specifically, routers  51  operably connect LAN segments  50   a ,  50   b , and  50   c . As  FIG. 2  illustrates, central control element  24  and access elements  12 ,  14 , are connected to LAN segment  50   a . LAN segment  50   b  includes central control element  26 , while LAN segment  50   c  includes access element  19 . In one embodiment, central control elements  24 ,  26  are each configured with the IP or other network layer address of at least one other central control element. For example, central control element  24  may be configured with the IP address of central control element  26  and/or other central control elements. In one embodiment, each central control element  24 ,  26  maintains a mobility group data structure that stores the IP addresses of the central control elements and the mobility group identifiers corresponding to each central control element. In one implementation, a mobility group is an administratively (manually) or automatically defined grouping of central control elements some of whose access elements share radio connectivity to facilitate various wireless management tasks such as load sharing and hand-offs between access elements. Still further, each central control element, in one implementation, is configured with a mobility group identifier, which is advertised in various wireless management frames. In one implementation, wireless clients may use the mobility group identifier, during roaming, to preferentially select access elements that advertise the same mobility group identifier. With knowledge of the IP address of central control element  26 , central control element  24  may more efficiently accomplish hand-offs of wireless clients from an access element controlled by it to an access element controlled by central control element  26 . In one embodiment, once the mobility group is defined, the central control elements are operative to monitor the status (e.g., up or down) of the other central control elements in that mobility group. In one embodiment, this is accomplished by periodically transmitting “keep-alive” packets or other messages to the other central control elements in the mobility groups. If a central control element does not respond to the “keep-alive” packet after a threshold period of time, the transmitting central control element assumes that it is down. To add a central control element to a given mobility group, a network administrator accesses a configuration interface for a central control element within that group and specifies the mobility group identifier and the IP address of the central control element. In one implementation, a user may also configure the central control element with the IP addresses of other central control elements in that mobility group. In other implementations, a new central control element may be automatically configured as a member of a mobility group using multicast announcements or other protocols, such as the Service Location Protocol (RFC 2608). The updated mobility group data is then shared across the other central control elements in that group. In other implementations, the central control element can automatically discover the mobility group information, as well as the IP/network address of the central control elements in that mobility group, using layer  2  and/or layer  3  discovery methods. Still further, the IP or network addresses of the central control elements can be static or dynamic. For example, the central control elements may lease network addresses from a DHCP server operably connected to network  50 . 
       B. Operation of Inter-Switch Roaming Functionality 
       [0034]    In one implementation, the present invention includes extensions to the IEEE 802.11 WLAN protocols implemented on wireless clients and the wireless network infrastructure. The present invention, however, can be implemented in any suitable wireless network implementing other WLAN protocols. In one implementation, the central control elements (e.g., 24) advertise their corresponding mobility group identifier and IP address in various wireless management frames. In 802.11 network deployments, the central control elements include the mobility group identifier and the IP address in an information element added to beacon frames, probe response frames, association response frames, re-association response frames and disassociation frames, as discussed in more detail below (see AP_DETAILS information element). Wireless clients, in one implementation, cache the IP address and mobility group identifier of the central control element with which it associates (via an access point) and provides this information during re-associations with other central control elements. 
         [0035]      FIG. 3  illustrates a process flow, according to one embodiment of the invention, implemented by a central control element in response to an association or re-association request transmitted from a wireless client. When a central control element receives an association request ( 102 ), it determines whether any authentication credentials can be re-used in a fast authentication process ( 104 ). If so, the central control element transmits an association response to the client ( 108 ). Otherwise, an authentication process, such as an 802.1x authentication, is performed ( 106 ). If the association request transmitted by the wireless client identifies a central control element (switch) ( 110 ), the central control element transmits an inter-domain mobility notification (IDMN) message to the identified central control element ( 112 ), as discussed in more detail below. 
         [0036]    As discussed above, when a wireless client roams from one access point and associates with a new access point, it includes the IP address of the central control element with which it was previously associated through a given access point. In one implementation, the wireless client obtains the IP address of a central control element in the association response (included, in one implementation, in an AP_DETAILS information element) transmitted during the association phase. During a handoff event, a wireless client sends the stored IP address (and, in one implementation, the mobility group identifier) of the previous central control element in an association or re-association request frame (in one implementation, in a STATION_DETAILS information element). 
         [0037]    If the association request transmitted by the wireless client does not identify a central control element, the new central control element group-casts to the other central control elements (or broadcasts/multicasts) a message announcing the client&#39;s association to identify the central control element, if any, with which the client was previously associated ( 120 ). That is, central control elements, in one implementation, are configured to check their association tables in response to announce messages and respond to the transmitting central control element if the client&#39;s MAC address (included in the announce message) is contained in its association tables. In one implementation, the response includes any state information corresponding to the client identified in the announce message. This also allows other central control elements to clean up their connection state data structures in response to the announce message. 
         [0038]    However, if the association request identifies another central control element, after responding to the wireless client by transmitting an association response, the new central control element, in one implementation, sends an inter-domain mobility notification (IDMN) message to the old central control element specified in the STATION_DETAILS Information Element ( 112 ). Of course, if the client roams to a new access point controlled by the same central control element, no IDMN messages are required. In one implementation, IDMN messages are encrypted using an ‘inter-mobility domain secret’. Furthermore, the unicast IDMN message, in one implementation, obviates the need to broadcast a message that announces the association to other central control elements. 
         [0039]    In some situations (especially in picocell environments where access points and central elements are deployed in relatively large density), a potential exists for a race condition, if a wireless client device were to attempt re-associations with a number of central control elements in succession, such as attempting to association with two central control elements in alternating succession, or attempting a re-association with a second central control element before completing a re-association with a first central control element. In order to reduce the unneeded exchanges of connection state information, the wireless client, in one implementation, uses a hand-off count, which is included in the IDMN messages transmitted between central control elements. In such an implementation, wireless clients maintain a handoff counter, which is monotonically incremented every time a wireless client issues an Association Request or Re-Association Request to a new access point (meaning the message is sent to an AP other than the one the station is currently association with). The current value of the handoff counter is included by the wireless client in the STATION_DETAILS IE attached to the association request. Central control elements can make use of the STATION_DETAILS information element to detect these “ping-pong” events, by evaluating whether the handoff counter corresponding to a wireless client in its association table is greater than the value found in the IDMN message. For instance, if the locally cached handoff counter value is higher than the IDMN message, the new central control element does not transmit connection state information to the central control element that transmitted the IDMN message, as the wireless client has already come back to and associated with the new central control element. 
         [0040]    For example, assume that a wireless client associates with a first access point (managed by a first central control element), roams to and associates with a second access point (managed by a second central control element), and then roams to and associates with the first access point before the first and second central control elements have exchanged connection state information. By inspecting the handoff count in the association request transmitted by the wireless client, the first and second central control elements can prevent the unneeded transfer of connection state information. For example, assume that during the first association, the wireless client transmits an association request including a handoff counter value of 10. When it roams to the second access point, the wireless client increases the handoff counter value to 11, and includes the new handoff counter value in the association request transmitted to the second access point. The second central control element, in one implementation, accepts the association and transmits an association response to the wireless client. According to the example set forth above, when the wireless client roams back to the first access point, it again increments the handoff counter to 12, which value is included in the association response transmitted to the first access point. In the example, the second central control element transmits an IDMN message to the first central control element including an identification of the wireless client and the handoff counter value it received (here, 11). The first central control element receives the IDMN message and compares the handoff counter it has cached in association with the wireless client to the handoff counter value in the received IDMN message. Since the locally cached handoff counter value is greater, the first central control element, in one implementation, ignores the IDMN message transmitted by the second access point. If the handoff counter value in the IDMN message is greater than the locally cached handoff counter value, the first central control element responds to the IDMN message with connection state information corresponding to the wireless client. 
         [0041]    Accordingly, as  FIG. 3  illustrates, the second central control element monitors for a response to the IDMN message ( 114 ,  116 ). If the response times out ( 116 ), the second central control element eventually deletes the association state information from its association tables ( 119 ) in a background process. However, if the second central control element receives a response to the IDMN message, it stores the connection state information it receives from the first central control element ( 118 ). Of course, other implementations are possible. As discussed below, central control elements can be configured to transmit explicit responses to IDMN messages, as opposed to simply discarding or ignoring them. 
         [0042]    In addition, after a successful association, the central control element allows the DHCP (or other dynamic network address assignment) mechanisms to complete. However, until the association and network address assignments are successful, the central control element does not respond to Address Resolution Protocol messages identifying the client, or allow data packets corresponding to the client to pass. In one implementation, the new central control element does not respond to, or otherwise transmit Address Resolution Protocol (ARP) messages until it has received a response from the previous central control element. In addition, upon receipt of the IDMN message, the previous central control element removes any processing rules corresponding to the client from its network processing unit (NPU) and deletes its ARP entry for the client. 
         [0043]    As to the fast authentication process, in implementations using 802.1x or other authentication mechanisms, the new central control element also determines whether credentials are already present, or whether a full 802.1x authentication exchange will be required. Still further, the mobility group identifiers can be used to group central control elements, and control the manner in which authentication credentials and encryption keys are cached and shared. In one implementation, encryption keys established during an 802.1X authentication can be re-used across all central control elements and access elements within a single mobility group. Within a given mobility group, all central control elements have access to the Pairwise Master Key (PMK) information of every associated and authenticated client. To accomplish this, a central control element pushes the PMK information to all peer central control elements in the mobility group, upon completion of each 802.1x/EAP authentication. In one implementation, wireless clients are configured to use the mobility group identifier to determine whether a previously created PMK (and potentially the associated Pairwise Transient Key (PTK)) may be re-used after a handoff to a new access element. When a wireless client encounters an access element that is advertising a new mobility group identifier, it recognizes that an 802.1x authentication will be required (or it must have a cached PMK/PTK that was previously created via a successful authentication). In order to be capable of caching PMK/PTKs for various mobility domains, the client includes the mobility group identifier in its key cache entry. 
         [0044]    Still further,  FIGS. 4A and 4B  illustrate the integration of a key distribution and caching mechanism according to one implementation of the present invention. In one implementation, the present invention includes extensions to the IEEE 802.11 WLAN protocols implemented on wireless clients and the wireless network infrastructure. The present invention, however, can be implemented in any suitable wireless network implementing other WLAN protocols. In one implementation, the central control elements (e.g., 24) advertise their corresponding mobility group identifier and IP address in various wireless management frames. In 802.11 network deployments, the central control elements include the mobility group identifier and the IP address in an information element added to beacon frames, probe response frames, association response frames, re-association response frames and disassociation frames, as discussed in more detail below (see AP_DETAILS information element). Wireless clients, in one implementation, cache the IP address and mobility group identifier of the central control element with which it associates (via an access point) and provides this information during re-associations with other central control elements. 
         [0045]      FIGS. 4A and 4B  illustrate a process flow implemented by a central control element in response to an association or re-association request frame transmitted from a client. In one implementation, and as discussed more fully below, central control element stores PMKs generated during an 802.1x authentication between clients and an authentication server (e.g., RADIUS, etc.) in a cache. In one implementation, PMKs are stored in association with a client MAC address and, optionally, a time-to-live value indicating the expiration time of the PMK. Likewise, wireless clients are also configured to cache PMKs. In one implementation, the wireless client and control element first complete a null authentication phase (not illustrated). 
         [0046]    When a central control element receives an association request ( 202 ), it transmits an association response ( 204 ), and determines, using the MAC address of the client, whether it has a valid, unexpired Pair-wise Master Key (PMK) corresponding to the client stored in a cache ( 206 ). If so, the central control element and the client engage in a handshake process to generate Pair-wise Transient Keys (PTKs) using the stored PMK ( 208 ). PTKs are used for encryption and authentication of wireless frames transmitted between the central control element (via an access element) and the client. If the fast authentication method was not successful (e.g., the client did not have a matching PMK, etc.) ( 210 ), the central control element initiates and proxies a full 802.1x authentication between the wireless client and an authentication server ( 212 ). In one implementation, the central control element is configured to include an authenticator, while the wireless client includes a supplicant. The authenticator essentially proxies the exchange between the authentication server and the supplicant/client. When the authentication server generates the PMK after a successful authentication, it distributes the PMK to both the authenticator and the supplicant. As  FIG. 3A  illustrates, after the central control element receives the PMK it pushes the PMK to all other central control elements within its mobility group ( 214 ). The message including the PMK also identifies the client (by MAC address) and includes an expiration time. 
         [0047]    As  FIG. 4B  illustrates, the central control element may also perform other operations, such as interacting with the old central control element with which the client was previously associated to exchange connection state information. For example, if the association request transmitted by the client identifies a central control element (switch) ( 218 ), the central control element transmits an inter-domain mobility notification (IDMN) message to the identified switch ( 220 ). In one implementation, the central control elements can be configured, as discussed above, to conditionally respond to IDMN messages based on a comparison of handoff counter values. However, in another implementation, the central control elements can be configured to transmit a response to IDMN messages, where the response indicates whether the receiving central control element should delete the wireless client from its association tables, or should add connection state information in the response to its association tables or other data structures, as discussed in more detail below. More specifically, after a first central control element transmits an IDMN message identifying a wireless client and a handoff counter value, a second central control element compares the handoff counter value in the message to a locally cached handoff counter value, if any, for the identified wireless client. If the handoff counter value in the local cache is greater than the corresponding value in the IDMN message, the second central control element transmits a response to the IDMN message indicating that the first central control element should delete the wireless client from its association tables. On the other hand, if the handoff counter value in the local cache is less than the corresponding value in the IDMN message, the second central control element transmits a response with the connection state information corresponding to the wireless client identified in the IDMN message. 
         [0048]    Accordingly, as  FIG. 4B  illustrates, after transmitting an IDMN message, the central control element monitors for a response ( 222 ,  224 ). If the response times out, the group-casts to the other central control elements (or broadcasts/multicasts) a message announcing the client&#39;s association to identify the central control element, if any, with which the client was previously associated ( 228 ). If the central control element receives a response, however, it either deletes the wireless client from its association tables ( 232 ), or stores connection state information received in the response ( 230 ), depending on the content of the response ( 226 ). 
       C. Wireless Frame Formats 
       [0049]    To implement the functions described above in an 802.11 WLAN environment, extensions to some 802.11 MAC Management frames may be required. This section describes the frame formats and information elements, according to one implementation of the invention, used to implement many of the functions that support the handoff functionality described above. In one implementation, the Beacon, Probe Response, Association Request, Reassociation Request, Association Response, Reassociation Response, and Disassociation frames carry an information element, and in one implementation a Vendor-specific information element. Each of these frames will be described. In addition, the format and content of the Vendor-specific information element are described. 
         [0050]    C.1. Beacon and Probe Response Frames 
         [0051]    The Beacon and Probe Response frames both include the Vendor-specific information element following all information elements defined to be present in the frames by the IEEE 802.11 specification and its amendments. The Vendor-specific information element may appear more than once in a frame. The Beacon and Probe Response frames, in one implementation, may include the WLAN Capabilities and AP Details information elements, as set forth below. 
         [0052]    C.2. Association and Reassociation Request Frames 
         [0053]    The Association Request and Reassociation Request frames both include the Vendor-specific information element following all information elements defined to be present in the frames by the 802.11 standard and its amendments. The Vendor-specific information element may appear more than once in a frame. The client also includes the AP details information element, which includes the mobility domain and address information which the client received in the previous successful association. 
         [0054]    C.3. Association and Reassociation Response Frames 
         [0055]    The Association Response and Reassociation Response frames, in one implementation, both include the Vendor-specific information element following all information elements defined to be present in the frames by the 802.11 standard and its amendments. The Vendor-specific information element may appear more than once in a frame. The association and reassociation response frames may include the WLAN Capabilities information elements. 
         [0056]    C.4. Disassociation Frames 
         [0057]    The Disassociation frame, in one implementation, includes the Vendor-specific information element following the Reason Code defined to be present in the frames by the 802.11 standard and its amendments. 
         [0058]    C.5. Vendor-specific Information Element 
         [0059]    The Vendor-specific information element is a standard information element defined in 802.11 where the Element ID value of 221 (0xdd) has been allocated by the 802.11 working group to designate an information element that may be used for carrying proprietary information. The 802.11 working group requires that the first three bytes following the Length be the OUI (IEEE-assigned Organizational Unique Identifier) of the vendor that has defined the particular information element being transmitted. The format of the Vendor-specific information element is shown in the following Table. 
         [0000]    
       
         
               
             
               
               
               
               
             
           
               
                 TABLE 1 
               
             
             
               
                   
               
               
                 Vendor-specific Information Element Format 
               
             
          
           
               
                   
                   
                   
                 INFORMATION 
               
               
                 ELEMENT ID (221) 
                 LENGTH 
                 OUI 
                 FIELD 
               
               
                   
               
               
                 1 BYTE 
                 1 BYTE 
                 3 BYTES 
                 N BYTES 
               
               
                   
               
             
          
         
       
     
         [0060]    For Vendor-specific information elements described herein, the value of the OUI field, in one implementation, is 0x000b85. For all Vendor-specific information elements where the OUI is 0x000b85, the first byte of the Information Field is the Sub-element ID. The following table describes the allowable values for the sub-element ID according to one implementation of the present invention. 
         [0000]    
       
         
               
             
               
               
             
           
               
                 TABLE 2 
               
             
             
               
                   
               
               
                 Sub-element ID Values 
               
             
          
           
               
                 SUB-ELEMENT ID 
                 DESCRIPTION 
               
               
                   
               
               
                 0 
                 RESERVED 
               
               
                 1 
                 RESERVED 
               
               
                 2 
                 RESERVED 
               
               
                 3 
                 RESERVED 
               
               
                 4 
                 WLAN CAPABILITIES 
               
               
                 5 
                 AP DETAILS 
               
               
                 6-255 
                 RESERVED 
               
               
                   
               
             
          
         
       
     
         [0061]    C.6 WLAN Capabilities 
         [0062]    The WLAN Capabilities information element is used by the central control element (switch) and AP to indicate the features and functions present in the WLAN that a client device, such as a client, can make use of. The format of the information element is shown in Table 3 
         [0000]                              TABLE 3                   WLAN Capabilities Format            Length (bytes)   Description               1   Element ID (221 = Vendor-specific information element)       1   Length (number of bytes following this field = 5)       3   OUI (0x00, 0x0b, 0x85)       1   Sub-element ID (WLAN Capabilities = 4)       1   Capabilities (bit significant)                    
There is a single field specific to this information element.
 
Capabilities: This field is a variable length bit field. The bit field is segmented at each byte boundary to prevent ambiguity in the transmission order as the bit field expands as new capabilities are included in the system. Each bit of this field has significance independent of any other bit in the field. The format of the field is shown in Table 4.
 
         [0000]                                      TABLE 4                   Format of the Capabilities Field                Byte   Bit   Description                       0   0   Proxy ARP           0   1   Platinum Queue/Dynamic QoS           0   2   Cooperative Handoff           0   3   Single Authentication           0   4   Reserved           0   5-7   Reserved (transmit as 0, ignore on reception)                        
The bits of the Capabilities field are defined below.
 
Proxy ARP: When the value of this bit is 1, the switch/AP provides proxy ARP service for associated client devices. When the value of this bit is 0, no proxy ARP service is provided.
 
Platinum Queue/Dynamic QoS: When the value of this bit is 1, the switch/AP provides dynamic QoS using the Vendor-specific information element and reassociation of the client device. When the value of this bit is 0, no dynamic QoS service is provided.
 
Cooperative Handoff When the value of this bit is 1, the switch/AP provides cooperative handoff services using the Vendor-specific information element. When the value of this bit is 0, no cooperative handoff service is provided.
 
Single Authentication When the value of this bit is 1, the switch/AP provides single authentication services for 802.1x as the client roams from one AP to another in the same mobility group. When the value of this bit is 0, no single authentication service is provided.
 
         [0063]    C.7. AP Details 
         [0064]    The AP Details information element is used to announce information about the access element and its associated central control element. The wireless client uses this information when roaming from one access element to another. The format of the information element is shown in Table 5. 
         [0000]                              TABLE 5                   AP Details Format            Length (bytes)   Description               1   Element ID (221 = Vendor-specific information element)       1   Length (number of bytes following this field = 13)       3   OUI (0x00, 0x0b, 0x85)       1   Sub-element ID (AP Details = 5)       1   Load Factor (%)       8   Mobility Group Identifier       4   Central Controller Address                    
The fields of the AP Details information element are defined as follows.
 
Load factor: This is the value, in percent, of the load carried by the AP described in the descriptor. This value is ignored when the IE is included in the client&#39;s Association Requests
 
Mobility Group Identifier: This is a unique value that identifies all of the switches, and the APs that are connected to these switches, in a common mobility group.
 
Controller Address This is the IP address of the AP (or controller in a hierarchical system)
 
         [0065]    C.8. Client Details Information Element 
         [0066]    The Client Details information element is used to announce information about the wireless client, such as the handoff counter, and the access element/central control element with which it was previously associated. As discussed above, wireless clients and central control elements use this information during roaming. The format of the information element is shown in Table 6. 
         [0000]    
       
         
               
             
               
               
             
           
               
                 TABLE 6 
               
             
             
               
                   
               
               
                 Client Details Format 
               
             
          
           
               
                 Length (bytes) 
                 Description 
               
               
                   
               
               
                 1 
                 Element ID (221 = Vendor-specific information element) 
               
               
                 1 
                 Length (number of bytes following this field = 13) 
               
               
                 3 
                 OUI (0x00, 0x0b, 0x85) 
               
               
                 1 
                 Sub-element ID (Client Details = 6) 
               
               
                 4 
                 Hand-off Counter 
               
               
                 8 
                 Mobility Group Identifier 
               
               
                 4 
                 Controller Address 
               
               
                   
               
             
          
         
       
     
         [0067]    The fields of the Client Details information element are defined as follows. 
         [0068]    Hand-off Counter: This counter maintained by the client and is monotonically increased upon every association request. 
         [0069]    Mobility Group Identifier: This value is sent to the client in the AP Details IE and is cached by the client when it successfully associates with an AP. 
         [0070]    Controller Address: As discussed above, this value is sent to the client in the AP Details IE and is cached by the client when it successfully associates with an AP. 
         [0071]    The invention has been explained with reference to specific embodiments. Other embodiments will be evident to those of ordinary skill in the art. In addition, the present invention can be applied to a wireless network system comprising a plurality of conventional, substantially autonomous access points. In addition, although embodiments of the present invention have been described as operating in 802.11 wireless networks, the present invention can be applied other wireless network environments implementing alternative networking protocols. Furthermore, the present invention has application to other wireless network environments and implementations; for example, the division of functionality between the access elements and the central control elements can be shifted. For example, the access elements can bridge network traffic associated with the remote client elements directly, while transmitting management packets to the central control element. It is, therefore, intended that the claims set forth below not be limited to the embodiments described above.