Network Working Group P. Calhoun Internet-Draft B. O'Hara Expires: December 26, 2005 R. Suri N. Cam Winget Cisco Systems, Inc. S. Kelly Facetime Communications M. Williams Nokia, Inc. S. Hares Nexthop Technologies, Inc. June 24, 2005 Light Weight Access Point Protocol draft-ohara-capwap-lwapp-03.txt Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on December 26, 2005. Copyright Notice Copyright (C) The Internet Society (2005). Abstract Calhoun, et al. Expires December 26, 2005 [Page 1] Internet-Draft Light Weight Access Point Protocol June 2005 In the recent years, there has been a shift in wireless LAN product architectures from autonomous access points to centralized control of light weight access points. The general goal has been to move most of the traditional wireless functionality such as access control (user authentication and authorization), mobility and radio management out of the access point into a centralized controller. The IETF's CAPWAP WG has identified that a standards based protocol is necessary between a wireless Access Controller and Wireless Termination Points (the latter are also commonly referred to as Light Weight Access Points). This specification defines the Light Weight Access Point Protocol (LWAPP), which addresses the CAPWAP's protocol requirements. Although the LWAPP protocol is designed to be flexible enough to be used for a variety of wireless technologies, this specific document describes the base protocol, and an extension that allows it to be used with the IEEE's 802.11 wireless LAN protocol. Calhoun, et al. Expires December 26, 2005 [Page 2] Internet-Draft Light Weight Access Point Protocol June 2005 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 8 1.1 Conventions used in this document . . . . . . . . . . . 9 2. Protocol Overview . . . . . . . . . . . . . . . . . . . . . 10 2.1 Wireless Binding Definition . . . . . . . . . . . . . . 11 2.2 LWAPP State Machine Definition . . . . . . . . . . . . . 12 3. LWAPP Transport Layers . . . . . . . . . . . . . . . . . . . 21 3.1 LWAPP Transport Header . . . . . . . . . . . . . . . . . 21 3.1.1 VER Field . . . . . . . . . . . . . . . . . . . . . 21 3.1.2 RID Field . . . . . . . . . . . . . . . . . . . . . 21 3.1.3 C Bit . . . . . . . . . . . . . . . . . . . . . . . 21 3.1.4 F Bit . . . . . . . . . . . . . . . . . . . . . . . 21 3.1.5 L Bit . . . . . . . . . . . . . . . . . . . . . . . 22 3.1.6 Fragment ID . . . . . . . . . . . . . . . . . . . . 22 3.1.7 Length . . . . . . . . . . . . . . . . . . . . . . . 22 3.1.8 Status and WLANS . . . . . . . . . . . . . . . . . . 22 3.1.9 Payload . . . . . . . . . . . . . . . . . . . . . . 22 3.2 Using IEEE 802.3 MAC as LWAPP transport . . . . . . . . 22 3.2.1 Framing . . . . . . . . . . . . . . . . . . . . . . 23 3.2.2 AC Discovery . . . . . . . . . . . . . . . . . . . . 23 3.2.3 LWAPP Message Header format over IEEE 802.3 MAC transport . . . . . . . . . . . . . . . . . . . . . 23 3.2.4 Fragmentation/Reassembly . . . . . . . . . . . . . . 23 3.2.5 Multiplexing . . . . . . . . . . . . . . . . . . . . 24 3.3 Using IP/UDP as LWAPP transport . . . . . . . . . . . . 24 3.3.1 Framing . . . . . . . . . . . . . . . . . . . . . . 24 3.3.2 AC Discovery . . . . . . . . . . . . . . . . . . . . 24 3.3.3 LWAPP Message Header format over IP/UDP transport . 25 3.3.4 Fragmentation/Reassembly for IPv4 . . . . . . . . . 26 3.3.5 Fragmentation/Reassembly for IPv6 . . . . . . . . . 26 3.3.6 Multiplexing . . . . . . . . . . . . . . . . . . . . 26 4. LWAPP Packet Definitions . . . . . . . . . . . . . . . . . . 27 4.1 LWAPP Data Messages . . . . . . . . . . . . . . . . . . 27 4.2 LWAPP Control Messages Overview . . . . . . . . . . . . 27 4.2.1 Control Message Format . . . . . . . . . . . . . . . 28 4.2.2 Message Element Format . . . . . . . . . . . . . . . 30 4.2.3 Quality of Service . . . . . . . . . . . . . . . . . 31 5. LWAPP Discovery Operations . . . . . . . . . . . . . . . . . 32 5.1 Discovery Request . . . . . . . . . . . . . . . . . . . 32 5.1.1 Discovery Type . . . . . . . . . . . . . . . . . . . 33 5.1.2 WTP Descriptor . . . . . . . . . . . . . . . . . . . 33 5.1.3 WTP Radio Information . . . . . . . . . . . . . . . 34 5.2 Discovery Response . . . . . . . . . . . . . . . . . . . 35 5.2.1 AC Address . . . . . . . . . . . . . . . . . . . . . 35 5.2.2 AC Descriptor . . . . . . . . . . . . . . . . . . . 36 5.2.3 AC Name . . . . . . . . . . . . . . . . . . . . . . 37 5.2.4 WTP Manager Control IPv4 Address . . . . . . . . . . 37 Calhoun, et al. Expires December 26, 2005 [Page 3] Internet-Draft Light Weight Access Point Protocol June 2005 5.2.5 WTP Manager Control IPv6 Address . . . . . . . . . . 38 5.3 Primary Discovery Request . . . . . . . . . . . . . . . 38 5.3.1 Discovery Type . . . . . . . . . . . . . . . . . . . 39 5.3.2 WTP Descriptor . . . . . . . . . . . . . . . . . . . 39 5.3.3 WTP Radio Information . . . . . . . . . . . . . . . 39 5.4 Primary Discovery Response . . . . . . . . . . . . . . . 39 5.4.1 AC Descriptor . . . . . . . . . . . . . . . . . . . 39 5.4.2 AC Name . . . . . . . . . . . . . . . . . . . . . . 40 5.4.3 WTP Manager Control IPv4 Address . . . . . . . . . . 40 5.4.4 WTP Manager Control IPv6 Address . . . . . . . . . . 40 6. Control Channel Management . . . . . . . . . . . . . . . . . 41 6.1 Join Request . . . . . . . . . . . . . . . . . . . . . . 41 6.1.1 WTP Descriptor . . . . . . . . . . . . . . . . . . . 42 6.1.2 AC Address . . . . . . . . . . . . . . . . . . . . . 42 6.1.3 WTP Name . . . . . . . . . . . . . . . . . . . . . . 42 6.1.4 Location Data . . . . . . . . . . . . . . . . . . . 42 6.1.5 WTP Radio Information . . . . . . . . . . . . . . . 43 6.1.6 Certificate . . . . . . . . . . . . . . . . . . . . 43 6.1.7 Session ID . . . . . . . . . . . . . . . . . . . . . 43 6.1.8 Test . . . . . . . . . . . . . . . . . . . . . . . . 44 6.1.9 XNonce . . . . . . . . . . . . . . . . . . . . . . . 44 6.2 Join Response . . . . . . . . . . . . . . . . . . . . . 44 6.2.1 Result Code . . . . . . . . . . . . . . . . . . . . 45 6.2.2 Status . . . . . . . . . . . . . . . . . . . . . . . 46 6.2.3 Certificate . . . . . . . . . . . . . . . . . . . . 46 6.2.4 WTP Manager Data IPv4 Address . . . . . . . . . . . 46 6.2.5 WTP Manager Data IPv6 Address . . . . . . . . . . . 47 6.2.6 AC IPv4 List . . . . . . . . . . . . . . . . . . . . 47 6.2.7 AC IPv6 List . . . . . . . . . . . . . . . . . . . . 48 6.2.8 ANonce . . . . . . . . . . . . . . . . . . . . . . . 48 6.2.9 PSK-MIC . . . . . . . . . . . . . . . . . . . . . . 49 6.3 Join ACK . . . . . . . . . . . . . . . . . . . . . . . . 50 6.3.1 Session ID . . . . . . . . . . . . . . . . . . . . . 50 6.3.2 WNonce . . . . . . . . . . . . . . . . . . . . . . . 50 6.3.3 PSK-MIC . . . . . . . . . . . . . . . . . . . . . . 51 6.4 Join Confirm . . . . . . . . . . . . . . . . . . . . . . 51 6.4.1 Session ID . . . . . . . . . . . . . . . . . . . . . 51 6.4.2 PSK-MIC . . . . . . . . . . . . . . . . . . . . . . 52 6.5 Echo Request . . . . . . . . . . . . . . . . . . . . . . 52 6.6 Echo Response . . . . . . . . . . . . . . . . . . . . . 52 6.7 Key Update Request . . . . . . . . . . . . . . . . . . . 52 6.7.1 Session ID . . . . . . . . . . . . . . . . . . . . . 53 6.7.2 XNonce . . . . . . . . . . . . . . . . . . . . . . . 53 6.8 Key Update Response . . . . . . . . . . . . . . . . . . 53 6.8.1 Session ID . . . . . . . . . . . . . . . . . . . . . 53 6.8.2 ANonce . . . . . . . . . . . . . . . . . . . . . . . 53 6.8.3 PSK-MIC . . . . . . . . . . . . . . . . . . . . . . 53 6.9 Key Update ACK . . . . . . . . . . . . . . . . . . . . . 53 Calhoun, et al. Expires December 26, 2005 [Page 4] Internet-Draft Light Weight Access Point Protocol June 2005 6.9.1 WNonce . . . . . . . . . . . . . . . . . . . . . . . 54 6.9.2 PSK-MIC . . . . . . . . . . . . . . . . . . . . . . 54 6.10 Key Update Confirm . . . . . . . . . . . . . . . . . . . 54 6.10.1 PSK-MIC . . . . . . . . . . . . . . . . . . . . . . 54 6.11 Key Update Trigger . . . . . . . . . . . . . . . . . . . 54 6.11.1 Session ID . . . . . . . . . . . . . . . . . . . . . 54 7. WTP Configuration Management . . . . . . . . . . . . . . . . 55 7.1 Configuration Consistency . . . . . . . . . . . . . . . 55 7.2 Configure Request . . . . . . . . . . . . . . . . . . . 56 7.2.1 Administrative State . . . . . . . . . . . . . . . . 56 7.2.2 AC Name . . . . . . . . . . . . . . . . . . . . . . 57 7.2.3 AC Name with Index . . . . . . . . . . . . . . . . . 57 7.2.4 WTP Board Data . . . . . . . . . . . . . . . . . . . 57 7.2.5 Statistics Timer . . . . . . . . . . . . . . . . . . 58 7.2.6 WTP Static IP Address Information . . . . . . . . . 59 7.2.7 WTP Reboot Statistics . . . . . . . . . . . . . . . 59 7.3 Configure Response . . . . . . . . . . . . . . . . . . . 60 7.3.1 Decryption Error Report Period . . . . . . . . . . . 61 7.3.2 Change State Event . . . . . . . . . . . . . . . . . 61 7.3.3 LWAPP Timers . . . . . . . . . . . . . . . . . . . . 62 7.3.4 AC IPv4 List . . . . . . . . . . . . . . . . . . . . 62 7.3.5 AC IPv6 List . . . . . . . . . . . . . . . . . . . . 63 7.3.6 WTP Fallback . . . . . . . . . . . . . . . . . . . . 63 7.3.7 Idle Timeout . . . . . . . . . . . . . . . . . . . . 63 7.4 Configuration Update Request . . . . . . . . . . . . . . 64 7.4.1 WTP Name . . . . . . . . . . . . . . . . . . . . . . 64 7.4.2 Change State Event . . . . . . . . . . . . . . . . . 64 7.4.3 Administrative State . . . . . . . . . . . . . . . . 64 7.4.4 Statistics Timer . . . . . . . . . . . . . . . . . . 64 7.4.5 Location Data . . . . . . . . . . . . . . . . . . . 64 7.4.6 Decryption Error Report Period . . . . . . . . . . . 64 7.4.7 AC IPv4 List . . . . . . . . . . . . . . . . . . . . 64 7.4.8 AC IPv6 List . . . . . . . . . . . . . . . . . . . . 65 7.4.9 Add Blacklist Entry . . . . . . . . . . . . . . . . 65 7.4.10 Delete Blacklist Entry . . . . . . . . . . . . . . . 65 7.4.11 Add Static Blacklist Entry . . . . . . . . . . . . . 66 7.4.12 Delete Static Blacklist Entry . . . . . . . . . . . 66 7.4.13 LWAPP Timers . . . . . . . . . . . . . . . . . . . . 67 7.4.14 AC Name with Index . . . . . . . . . . . . . . . . . 67 7.4.15 WTP Fallback . . . . . . . . . . . . . . . . . . . . 67 7.4.16 Idle Timeout . . . . . . . . . . . . . . . . . . . . 67 7.5 Configuration Update Response . . . . . . . . . . . . . 67 7.5.1 Result Code . . . . . . . . . . . . . . . . . . . . 68 7.6 Change State Event Request . . . . . . . . . . . . . . . 68 7.6.1 Change State Event . . . . . . . . . . . . . . . . . 68 7.7 Change State Event Response . . . . . . . . . . . . . . 68 7.8 Clear Config Indication . . . . . . . . . . . . . . . . 68 8. Device Management Operations . . . . . . . . . . . . . . . . 70 Calhoun, et al. Expires December 26, 2005 [Page 5] Internet-Draft Light Weight Access Point Protocol June 2005 8.1 Image Data Request . . . . . . . . . . . . . . . . . . . 70 8.1.1 Image Download . . . . . . . . . . . . . . . . . . . 70 8.1.2 Image Data . . . . . . . . . . . . . . . . . . . . . 70 8.2 Image Data Response . . . . . . . . . . . . . . . . . . 71 8.3 Reset Request . . . . . . . . . . . . . . . . . . . . . 71 8.4 Reset Response . . . . . . . . . . . . . . . . . . . . . 71 8.5 WTP Event Request . . . . . . . . . . . . . . . . . . . 72 8.5.1 Decryption Error Report . . . . . . . . . . . . . . 72 8.5.2 Duplicate IPv4 Address . . . . . . . . . . . . . . . 72 8.5.3 Duplicate IPv6 Address . . . . . . . . . . . . . . . 73 8.6 WTP Event Response . . . . . . . . . . . . . . . . . . . 74 8.7 Data Transfer Request . . . . . . . . . . . . . . . . . 74 8.7.1 Data Transfer Mode . . . . . . . . . . . . . . . . . 74 8.7.2 Data Transfer Data . . . . . . . . . . . . . . . . . 75 8.8 Data Transfer Response . . . . . . . . . . . . . . . . . 75 9. Mobile Session Management . . . . . . . . . . . . . . . . . 77 9.1 Mobile Config Request . . . . . . . . . . . . . . . . . 77 9.1.1 Delete Mobile . . . . . . . . . . . . . . . . . . . 77 9.2 Mobile Config Response . . . . . . . . . . . . . . . . . 78 9.2.1 Result Code . . . . . . . . . . . . . . . . . . . . 78 10. LWAPP Security . . . . . . . . . . . . . . . . . . . . . . 79 10.1 Securing WTP-AC communications . . . . . . . . . . . . . 79 10.2 LWAPP Frame Encryption . . . . . . . . . . . . . . . . . 80 10.3 Authenticated Key Exchange . . . . . . . . . . . . . . . 80 10.3.1 Terminology . . . . . . . . . . . . . . . . . . . . 81 10.3.2 Initial Key Generation . . . . . . . . . . . . . . . 82 10.3.3 Refreshing Cryptographic Keys . . . . . . . . . . . 86 10.4 Certificate Usage . . . . . . . . . . . . . . . . . . . 87 11. IEEE 802.11 Binding . . . . . . . . . . . . . . . . . . . 88 11.1 Division of labor . . . . . . . . . . . . . . . . . . . 88 11.1.1 Split MAC . . . . . . . . . . . . . . . . . . . . . 88 11.1.2 Local MAC . . . . . . . . . . . . . . . . . . . . . 90 11.2 Roaming Behavior and 802.11 security . . . . . . . . . . 93 11.3 Transport specific bindings . . . . . . . . . . . . . . 94 11.3.1 Status and WLANS field . . . . . . . . . . . . . . . 94 11.4 BSSID to WLAN ID Mapping . . . . . . . . . . . . . . . . 95 11.5 Quality of Service . . . . . . . . . . . . . . . . . . . 95 11.6 Data Message bindings . . . . . . . . . . . . . . . . . 95 11.7 Control Message bindings . . . . . . . . . . . . . . . . 95 11.7.1 Mobile Config Request . . . . . . . . . . . . . . . 96 11.7.2 WTP Event Request . . . . . . . . . . . . . . . . . 102 11.8 802.11 Control Messages . . . . . . . . . . . . . . . . 104 11.8.1 IEEE 802.11 WLAN Config Request . . . . . . . . . . 104 11.8.2 IEEE 802.11 WLAN Config Response . . . . . . . . . . 109 11.8.3 IEEE 802.11 WTP Event . . . . . . . . . . . . . . . 109 11.9 Message Element Bindings . . . . . . . . . . . . . . . . 111 11.9.1 IEEE 802.11 WTP WLAN Radio Configuration . . . . . . 111 11.9.2 IEEE 802.11 Rate Set . . . . . . . . . . . . . . . . 113 Calhoun, et al. Expires December 26, 2005 [Page 6] Internet-Draft Light Weight Access Point Protocol June 2005 11.9.3 IEEE 802.11 Multi-domain Capability . . . . . . . . 114 11.9.4 IEEE 802.11 MAC Operation . . . . . . . . . . . . . 114 11.9.5 IEEE 802.11 Tx Power . . . . . . . . . . . . . . . . 116 11.9.6 IEEE 802.11 Tx Power Level . . . . . . . . . . . . . 117 11.9.7 IEEE 802.11 Direct Sequence Control . . . . . . . . 117 11.9.8 IEEE 802.11 OFDM Control . . . . . . . . . . . . . . 118 11.9.9 IEEE 802.11 Antenna . . . . . . . . . . . . . . . . 119 11.9.10 IEEE 802.11 Supported Rates . . . . . . . . . . . 120 11.9.11 IEEE 802.11 CFP Status . . . . . . . . . . . . . . 120 11.9.12 IEEE 802.11 WTP Mode and Type . . . . . . . . . . 121 11.9.13 IEEE 802.11 Broadcast Probe Mode . . . . . . . . . 121 11.9.14 IEEE 802.11 WTP Quality of Service . . . . . . . . 122 11.9.15 IEEE 802.11 MIC Error Report From Mobile . . . . . 123 11.10 IEEE 802.11 Message Element Values . . . . . . . . . . 124 12. LWAPP Protocol Timers . . . . . . . . . . . . . . . . . . 125 12.1 MaxDiscoveryInterval . . . . . . . . . . . . . . . . . . 125 12.2 SilentInterval . . . . . . . . . . . . . . . . . . . . . 125 12.3 NeighborDeadInterval . . . . . . . . . . . . . . . . . . 125 12.4 EchoInterval . . . . . . . . . . . . . . . . . . . . . . 125 12.5 DiscoveryInterval . . . . . . . . . . . . . . . . . . . 125 12.6 RetransmitInterval . . . . . . . . . . . . . . . . . . . 125 12.7 ResponseTimeout . . . . . . . . . . . . . . . . . . . . 126 12.8 KeyLifetime . . . . . . . . . . . . . . . . . . . . . . 126 13. LWAPP Protocol Variables . . . . . . . . . . . . . . . . . 127 13.1 MaxDiscoveries . . . . . . . . . . . . . . . . . . . . . 127 13.2 DiscoveryCount . . . . . . . . . . . . . . . . . . . . . 127 13.3 RetransmitCount . . . . . . . . . . . . . . . . . . . . 127 13.4 MaxRetransmit . . . . . . . . . . . . . . . . . . . . . 127 14. NAT Considerations . . . . . . . . . . . . . . . . . . . . 128 15. Security Considerations . . . . . . . . . . . . . . . . . 130 15.1 Certificate based Session Key establishment . . . . . . 131 15.2 PSK based Session Key establishment . . . . . . . . . . 131 16. IANA Considerations . . . . . . . . . . . . . . . . . . . 132 17. Acknowledgements . . . . . . . . . . . . . . . . . . . . . 133 18. IPR Statement . . . . . . . . . . . . . . . . . . . . . . 134 19. References . . . . . . . . . . . . . . . . . . . . . . . . 135 19.1 Normative References . . . . . . . . . . . . . . . . . . 135 19.2 Informational References . . . . . . . . . . . . . . . . 136 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 136 Intellectual Property and Copyright Statements . . . . . . . 138 Calhoun, et al. Expires December 26, 2005 [Page 7] Internet-Draft Light Weight Access Point Protocol June 2005 1. Introduction Unlike wired network elements, Wireless Termination Points (WTPs) require a set of dynamic management and control functions related to their primary task of connecting the wireless and wired mediums. Today, protocols for managing WTPs are either manual static configuration via HTTP, proprietary Layer 2 specific or non-existent (if the WTPs are self-contained). The emergence of simple 802.11 WTPs that are managed by a WLAN appliance or switch (also known as an Access Controller, or AC) suggests that having a standardized, interoperable protocol could radically simplify the deployment and management of wireless networks. In many cases the overall control and management functions themselves are generic and could apply to an AP for any wireless Layer 2 protocol. Being independent of specific wireless Layer 2 technologies, such a protocol could better support interoperability between Layer 2 devices and enable smoother intertechnology handovers. The details of how these functions would be implemented are dependent on the particular Layer 2 wireless technology. Such a protocol would need provisions for binding to specific technologies. LWAPP assumes a network configuration that consists of multiple WTPs communicating either via layer 2 (MAC) or layer 3 (IP) to an AC. The WTPs can be considered as remote RF interfaces, being controlled by the AC. The AC forwards all L2 frames it wants to transmit to an WTP via the LWAPP protocol. Packets from mobile nodes are forwarded by the WTP to the AC, also via this protocol. Figure 1 illustrates this arrangement as applied to an IEEE 802.11 binding. +-+ 802.11frames +-+ | |--------------------------------| | | | +-+ | | | |--------------| |---------------| | | | 802.11 PHY/ | | LWAPP | | | | MAC sublayer | | | | +-+ +-+ +-+ STA WTP AC Figure 1: LWAPP Architecture Security is another aspect of Wireless Termination Point management that is not well served by existing solutions. Provisioning WTPs with security credentials, and managing which WTPs are authorized to provide service are today handled by proprietary solutions. Allowing these functions to be performed from a centralized AC in an interoperable fashion increases managability and allows network operators to more tightly control their wireless network Calhoun, et al. Expires December 26, 2005 [Page 8] Internet-Draft Light Weight Access Point Protocol June 2005 infrastructure. This document describes the Light Weight Access Point Protocol (LWAPP), allowing an AC to manage a collection of WTPs. The protocol is defined to be independent of Layer 2 technology, but an 802.11 binding is provided for use in growing 802.11 wireless LAN networks. Goals The following are goals for this protocol: 1. Centralization of the bridging, forwarding, authentication and policy enforcement functions for a wireless network. Optionally, the AC may also provide centralized encryption of user traffic. This will permit reduced cost and higher efficiency when applying the capabilities of network processing silicon to the wireless network, as it has already been applied to wired LANs. 2. Permit shifting of the higher level protocol processing burden away from the WTP. This leaves the computing resource of the WTP to the timing critical applications of wireless control and access. This makes the most efficient use of the computing power available in WTPs that are the subject of severe cost pressure. 3. Providing a generic encapsulation and transport mechanism, the protocol may be applied to other access point type in the future by adding the binding. The LWAPP protocol concerns itself solely with the interface between the WTP and the AC. Inter-AC, or mobile to AC communication is strictly outside the scope of this document. 1.1 Conventions used in this document The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [1]. Calhoun, et al. Expires December 26, 2005 [Page 9] Internet-Draft Light Weight Access Point Protocol June 2005 2. Protocol Overview LWAPP is a generic protocol defining how Wireless Termination Points communicate with Access Controllers. Wireless Termination Points and Access Controllers may communicate either by means of Layer 2 protocols or by means of a routed IP network. LWAPP messages and procedures defined in this document apply to both types of transports unless specified otherwise. Transport independence is achieved by defining formats for both MAC level and IP level transport (see Section 3). Also defined are framing, fragmentation/reassembly, and multiplexing services to LWAPP for each transport type. The LWAPP Transport layer carries two types of payload. LWAPP Data Messages are forwarded wireless frames. LWAPP Control Messages are management messages exchanged between an WTP and an AC. The LWAPP transport header defines the "C-bit", which is used to distinguish data and control traffic. When used over IP, the LWAPP data and control traffic are also sent over separate UDP ports. Since both data and control frames can exceed PMTU, the payload of an LWAPP data or control message can be fragmented. The fragmentation behavior is highly dependent upon the lower layer transport and is defined in Section 3. The Light Weight Access Protocol (LWAPP) begins with a discovery phase. The WTPs send a Discovery Request frame, causing any Access Controller (AC) , receiving that frame to respond with a Discovery Response. From the Discovery Responses received, an WTP will select an AC with which to associate, using the Join Request and Join Response. The Join Request also provides an MTU discovery mechanism, to determine whether there is support for the transport of large frames between the WTP and it's AC. If support for large frames is not present, the LWAPP frames will be fragmented to the maximum length discovered to be supported by the network. Once the WTP and the AC have joined, a configuration exchange is accomplished that will cause both devices to agree on version information. During this exchange the WTP may receive provisioning settings. For the 802.11 binding, this information would typically include a name (802.11 Service Set Identifier, SSID), and security parameters, the data rates to be advertised as well as the radio channel (channels, if the WTP is capable of operating more than one 802.11 MAC and PHY simultaneously) to be used. Finally, the WTPs are enabled for operation. When the WTP and AC have completed the version and provision exchange and the WTP is enabled, the LWAPP encapsulates the wireless frames Calhoun, et al. Expires December 26, 2005 [Page 10] Internet-Draft Light Weight Access Point Protocol June 2005 sent between them. LWAPP will fragment its packets, if the size of the encapsulated wireless user data (Data) or protocol control (Management) frames causes the resultant LWAPP packet to exceed the MTU supported between the WTP and AC. Fragmented LWAPP packets are reassembled to reconstitute the original encapsulated payload. In addition to the functions thus far described, LWAPP also provides for the delivery of commands from the AC to the WTP for the management of devices that are communicating with the WTP. This may include the creation of local data structures in the WTP for the managed devices and the collection of statistical information about the communication between the WTP and the 802.11 devices. LWAPP provides the ability for the AC to obtain any statistical information collected by the WTP. LWAPP also provides for a keep alive feature that preserves the communication channel between the WTP and AC. If the AC fails to appear alive, the WTP will try to discover a new AC to communicate through. This Document uses terminology defined in [5] 2.1 Wireless Binding Definition This draft standard specifies a protocol independent of a specific wireless access point radio technology. Elements of the protocol are designed to accommodate specific needs of each wireless technology in a standard way. Implementation of this standard for a particular wireless technology must follow the binding requirements defined for that technology. This specification includes a binding for the IEEE 802.11 (see Section 11). When defining a binding for other technologies, the authors MUST include any necessary definitions for technology-specific messages and all technology-specific message elements for those messages. At a minimum, a binding MUST provide the definition for a binding- specific Statistics message element, which is carried in the WTP Event Request message, and Add Mobile message element, which is carried in the Mobile Configure Request. If any technology specific message elements are required for any of the existing LWAPP messages defined in this specification, they MUST also be defined in the technology binding document. The naming of binding-specific message elements MUST begin with the name of the technology type, e.g., the binding for IEEE 802.11, provided in this standard, begins with "IEEE 802.11"." Calhoun, et al. Expires December 26, 2005 [Page 11] Internet-Draft Light Weight Access Point Protocol June 2005 2.2 LWAPP State Machine Definition The following state diagram represents the lifecycle of an WTP-AC session: /-------------\ | v | +------------+ | C| Idle |<-----------------------------------\ | +------------+<-----------------------\ | | ^ |a ^ | | | | | \----\ | | | | | | +------------+ | | | | | -------| Key Confirm| | | | | | w/ +------------+ | | | | | | ^ | | | | |t V |5 | | | | +-----------+ +------------+ | | / | C| Run | | Key Update | | | / | r+-----------+------>+------------+ | | / | ^ |s u x| | | | v | | | | | | +--------------+ | | v |y | | C| Discovery | q| \--------------->+-------+ | | b+--------------+ +-------------+ | Reset | | | |d f| ^ | Configure |------->+-------+ | | | | | +-------------+p ^ | |e v | | ^ | | +---------+ v |i 2| | | C| Sulking | +------------+ +--------------+ | | +---------+ C| Join |--->| Join-Confirm | | | g+------------+z +--------------+ | | |h m| 3| |4 | | | | | v |o |\ | | | +------------+ \\-----------------/ \--------+---->| Image Data |C \------------------------------------/ +------------+n Figure 2: LWAPP State Machine The LWAPP state machine, depicted above, is used by both the AC and the WTP. For every state defined, only certain messages are permitted to be sent and received. In all of the LWAPP control messages defined in this document, the state for which each command is valid is specified. Note that in the state diagram figure above, the 'C' character is Calhoun, et al. Expires December 26, 2005 [Page 12] Internet-Draft Light Weight Access Point Protocol June 2005 used to represent a condition that causes the state to remain the same. The following text discusses the various state transitions, and the events that cause them. Idle to Discovery (a): This is the initialization state. WTP: The WTP enters the Discovery state prior to transmitting the first Discovery Request (see Section 5.1). Upon entering this state, the WTP sets the DiscoveryInterval timer (see Section 12). The WTP resets the DiscoveryCount counter to zero (0) (see Section 13). The WTP also clears all information from ACs (e.g., AC Addresses) it may have received during a previous Discovery phase. AC: The AC does not need to maintain state information for the WTP upon reception of the Discovery Request, but it MUST respond with a Discovery Response (see Section 5.2). Discovery to Discovery (b): This is the state the WTP uses to determine which AC it wishes to connect to. WTP: This event occurs when the DiscoveryInterval timer expires. The WTP transmits a Discovery Request to every AC which the WTP hasn't received a response to. For every transition to this event, the WTP increments DisoveryCount counter. See Section 5.1) for more information on how the WTP knows which ACs it should transmit the Discovery Requests to. The WTP restarts the DiscoveryInterval timer. AC: This is a noop. Discovery to Sulking (d): This state occurs on a WTP when Discovery or connectivity to the AC fails. WTP: The WTP enters this state when the DiscoveryInterval timer expires and the DiscoveryCount variable is equal to the MaxDiscoveries variable (see Section 13). Upon entering this state, the WTP will start the SilentInterval timer. While in the Sulking state, all LWAPP messages received are ignored. AC: This is a noop. Calhoun, et al. Expires December 26, 2005 [Page 13] Internet-Draft Light Weight Access Point Protocol June 2005 Sulking to Idle (e): This state occurs on a WTP when it must restart the discovery phase. WTP: The WTP enters this state when the SilentInterval timer (see Section 12) expires. AC: This is a noop. Discovery to Join (f): This state is used by the WTP to confirm its commitment to an AC that it wishes to be provided service. WTP: The WTP selects the best AC based on the information it gathered during the Discovery Phase. It then transmits a Join Request (see Section 6.1 to its preferred AC. The WTP starts the WaitJoin Timer (see Section 12). AC: The AC enters this state for the given WTP upon reception of a Join Request. The AC processes the request and responds with a Join Response. Join to Join (g): This state transition occurs during the join phase. WTP: The WTP enters this state when the WaitJoin timer expires, and the underlying transport requires LWAPP MTU detection Section 3). AC: This state occurs when the AC receives a retransmission of a Join Request. The AC processes the request and responds with the Join Response.. Join to Idle (h): This state is used when the join process failed. WTP: This state transition occurs if the WTP is configured to use PSK security and receives a Join Response that includes an invalid PSK-MIC message element. AC: The AC enters this state when it transmits an unsuccessful Join Response. Join to Discovery (i): This state is used when the join process failed. WTP: The WTP enters this state when it receives an unsuccessful Join Response. Upon entering this state, the WTP sets the DiscoveryInterval timer (see Section 12). The WTP resets the DiscoveryCount counter to zero (0) (see Section 13). This state transition may also occur if the PSK-MIC (see Section 6.2.9) message element is invalid. Calhoun, et al. Expires December 26, 2005 [Page 14] Internet-Draft Light Weight Access Point Protocol June 2005 AC: This state transition is invalid. Join to Join-Confirm (z): This state is used to provide key confirmation during the join process. WTP: This state is entered when the WTP receives a Join Response. In the event that certificate based security is utilized, this transition will occur if the Certificate message element is present and valid in the Join Response. For pre-shared key security, the Join Response must include a valdd and authenticated PSK-MIC message element. The WTP MUST respond with a Join ACK, which is used to provide key confirmation. AC: The AC enters this state when it receives a valid Join ACK. For certificate based security, the Join ACK MUST include a valid and authenticated PSK-MIC message element. For pre- shared key security, the message must include a valid PSK-MIC message element. The AC MUST respond with a Join Confirm message, which includes the Session Key message element. Join-Confirm to Idle (3): This state is used when the join process failed. WTP: This state transition occurs when the WTP receives an invalid Join Confirm. AC: The AC enters this state when it receives an invalid Join ACK. Join-Confirm to Configure (2): This state is used by the WTP and the AC to exchange configuration information. WTP: The WTP enters this state when it receives a successful Join Confirm, and determines that its version number and the version number advertised by the AC are the same. The WTP transmits the Configure Request (see Section 7.2) message to the AC with a snapshot of its current configuration. The WTP also starts the ResponseTimeout timer (see Section 12). AC: This state transition occurs when the AC receives the Configure Request from the WTP. The AC must transmit a Configure Response (see Section 7.3) to the WTP, and may include specific message elements to override the WTP's configuration. Calhoun, et al. Expires December 26, 2005 [Page 15] Internet-Draft Light Weight Access Point Protocol June 2005 Join-Confirm to Image Data (4): This state is used by the WTP and the AC to download executable firmware. WTP: The WTP enters this state when it receives a successful Join Confirm, and determines that its version number and the version number advertised by the AC are different. The WTP transmits the Image Data Request (see Section 8.1) message requesting that the AC's latest firmware be initiated. AC: This state transition occurs when the AC receives the Image Data Request from the WTP. The AC must transmit a Image Data Response (see Section 8.2) to the WTP, which includes a portion of the firmware. Image Data to Image Data (n): This state is used by WTP and the AC during the firmware download phase. WTP: The WTP enters this state when it receives a Image Data Response that indicates that the AC has more data to send. AC: This state transition occurs when the AC receives the Image Data Request from the WTP while already in this state, and it detects that the firmware download has not completed. Image Data to Reset (o): This state is used when the firmware download is completed. WTP: The WTP enters this state when it receives a Image Data Response that indicates that the AC has no more data to send, or if the underlying LWAPP transport indicates a link failure. At this point, the WTP reboots itself. AC: This state transition occurs when the AC receives the Image Data Request from the WTP while already in this state, and it detects that the firmware download has completed, or if the underlying LWAPP transport indicates a link failure. Note that the AC itself does not reset, but it places the specific WTPs context it is communicating with in the reset state, meaning that it clears all state associated with the WTP. Configure to Reset (p): This state transition occurs if the Configure phase fails. WTP: The WTP enters this state when the reliable transport fails to deliver the Configure Request, or if the ResponseTimeout Timer (see Section 12)expires. Calhoun, et al. Expires December 26, 2005 [Page 16] Internet-Draft Light Weight Access Point Protocol June 2005 AC: This state transition occurs if the AC is unable to transmit the Configure Response to a specific WTP. Note that the AC itself does not reset, but it places the specific WTPs context it is communicating with in the reset state, meaning that it clears all state associated with the WTP. Configure to Run (q): This state transition occurs when the WTP and AC enters their normal state of operation. WTP: The WTP enters this state when it receives a successful Configure Response from the AC. The WTP initializes the HeartBeat Timer (see Section 12), and transmits the Change State Event Request message (see Section 7.6). AC: This state transition occurs when the AC receives the Change State Event Request (see Section 7.6) from the WTP. The AC responds with a Change State Event Response (see Section 7.7) message. The AC must start the Session ID and Neighbor Dead timers (see Section 12). Run to Run (r): This is the normal state of operation. WTP: This is the WTP's normal state of operation, and there are many events that cause this to occur: Configuration Update: The WTP receives a Configuration Update Request (see Section 7.4). The WTP MUST respond with a Configuration Update Response (see Section 7.5). Change State Event: The WTP receives a Change State Event Response, or determines that it must initiate a Change State Event Request, as a result of a failure or change in the state of a radio. Echo Request: The WTP receives an Echo Request message Section 6.5), which it MUST respond with an Echo Response (see Section 6.6). Clear Config Indication: The WTP receives a Clear Config Indication message Section 7.8). The WTP MUST reset its configuration back to manufacturer defaults. WTP Event: The WTP generates a WTP Event Request to send information to the AC Section 8.5). The WTP receives a WTP Event Response from the AC Section 8.6). Calhoun, et al. Expires December 26, 2005 [Page 17] Internet-Draft Light Weight Access Point Protocol June 2005 Data Transfer: The WTP generates a Data Transfer Request to the AC Section 8.7). The WTP receives a Data Transfer Response from the AC Section 8.8). WLAN Config Request: The WTP receives an WLAN Config Request message Section 11.8.1), which it MUST respond with an WLAN Config Response (see Section 11.8.2). Mobile Config Request: The WTP receives an Mobile Config Request message Section 9.1), which it MUST respond with an Mobile Config Response (see Section 9.2). AC: This is the AC's normal state of operation, and there are many events that cause this to occur: Configuration Update: The AC sends a Configuration Update Request (see Section 7.4) to the WTP to update its configuration. The AC receives a Configuration Update Response (see Section 7.5) from the WTP. Change State Event: The AC receives a Change State Event Request (see Section 7.6), which it MUST respond to with the Change State Event Response (see Section 7.7). Echo: The AC sends an Echo Request message Section 6.5) or receives the associated Echo Response (see Section 6.6) from the WTP. Clear Config Indication: The AC sends a Clear Config Indication message Section 7.8). WLAN Config: The AC sends an WLAN Config Request message Section 11.8.1) or receives the associated WLAN Config Response (see Section 11.8.2) from the WTP. Mobile Config: The AC sends an Mobile Config Request message Section 9.1) or receives the associated Mobile Config Response (see Section 9.2) from the WTP. Data Transfer: The AC receives a Data Transfer Request from the AC (see Section 8.7) and MUST generate the associated Data Transfer Response message (see Section 8.8). WTP Event: The AC receives a WTP Event Request from the AC (see Section 8.5) and MUST generate the associated WTP Event Response message (see Section 8.6). Calhoun, et al. Expires December 26, 2005 [Page 18] Internet-Draft Light Weight Access Point Protocol June 2005 Run to Reset (s): This event occurs when the AC wishes for the WTP to reboot. WTP: The WTP enters this state when it receives a Reset Request (see Section 8.3). It must respond with a Reset Response (see Section 8.4), and once the reliable transport acknowledgement has been received, it must reboot itself. AC: This state transition occurs either through some administrative action, or via some internal event on the AC that causes it to request that the WTP disconnect. Note that the AC itself does not reset, but it places the specific WTPs context it is communicating with in the reset state. Run to Idle (t): This event occurs when an error occurs in the communication between the WTP and the AC. WTP: The WTP enters this state when the underlying reliable transport in unable to transmit a message within the RetransmitInterval timer (see Section 12), and the maximum number of RetransmitCount counter has reached the MaxRetransmit variable (see Section 13). AC: The AC enters this state when the underlying reliable transport in unable to transmit a message within the RetransmitInterval timer (see Section 12), and the maximum number of RetransmitCount counter has reached the MaxRetransmit variable (see Section 13). Run to Key Update (u): This event occurs when the WTP and the AC are to exchange new keying material, with which it must use to protect all future messages. WTP: This state transition occurs when the KeyLifetime timer expires (see Section 12). AC: The WTP enters this state when it receives a Key Update Request (see Section 6.7). Key Update to Key Confirm (w): This event occurs during the rekey phase and is used to complete the loop. WTP: This state transition occurs when the WTP receives the Key Update Response. The WTP MUST only accept the message if it is authentic. The WTP responds to this response with a Key Update ACK. Calhoun, et al. Expires December 26, 2005 [Page 19] Internet-Draft Light Weight Access Point Protocol June 2005 AC: The AC enters this state when it receives an authenticated Key Update ACK message. Key Confirm to Run (5): This event occurs when the rekey exchange phase is completed. WTP: This state transition occurs when the WTP receives the Key Update Confirm. The newly derived encryption key and IV must be plumbed into the crypto module after validating the message's authentication. AC: The AC enters this state when it transmits the Key Update Confirm message. The newly derived encryption key and IV must be plumbed into the crypto module after transmitting a Key Update Confirm message. Key Update to Reset (x): This event occurs when the key exchange phase times out. WTP: This state transition occurs when the WTP does not receive a Key Update Response from the AC. AC: The AC enters this state when it is unable to process a Key Update Request. Reset to Idle (y): This event occurs when the state machine is restarted. WTP: The WTP reboots itself. After reboot the WTP will start its LWAPP state machine in the Idle state. AC: The AC clears out any state associated with the WTP. The AC generally does this as a result of the reliable link layer timing out. Calhoun, et al. Expires December 26, 2005 [Page 20] Internet-Draft Light Weight Access Point Protocol June 2005 3. LWAPP Transport Layers The LWAPP protocol can operate at layer 2 or 3. For layer 2 support, the LWAPP messages are carried in a native Ethernet frame. As such, the protocol is not routable and depends upon layer 2 connectivity between the WTP and the AC. Layer 3 support is provided by encapsulating the LWAPP messages within UDP. 3.1 LWAPP Transport Header All LWAPP protocol packets are encapsulated using a common header format, regardless of the transport used to carry the frames. However, certain flags are not applicable for a given transport, and it is therefore necessary to refer to the specific transport section in order to determine which flags are valid. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |VER| RID |C|F|L| Frag ID | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Status/WLANs | Payload... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3.1.1 VER Field A 2 bit field which contains the version of LWAPP used in this packet. The value for this draft is 0. 3.1.2 RID Field A 3 bit field which contains the Radio ID number for this packet. WTPs with multiple radios but a single MAC Address use this field to indicate which radio is associated with the packet. 3.1.3 C Bit The Control Message 'C' bit indicates whether this packet carries a data or control message. When this bit is zero (0), the packet carries an LWAPP data message in the payload (see Section 4.1). When this bit is one (1), the packet carries an LWAPP control message as defined in section Section 4.2 for consumption by the addressed destination. 3.1.4 F Bit The Fragment 'F' bit indicates whether this packet is a fragment. Calhoun, et al. Expires December 26, 2005 [Page 21] Internet-Draft Light Weight Access Point Protocol June 2005 When this bit is one (1), the packet is a fragment and MUST be combined with the other corresponding fragments to reassemble the complete information exchanged between the WTP and AC. 3.1.5 L Bit The Not Last 'L' bit is valid only if the 'F' bit is set and indicates whether the packet contains the last fragment of a fragmented exchange between WTP and AC. When this bit is 1, the packet is not the last fragment. When this bit is 0, the packet is the last fragment. 3.1.6 Fragment ID An 8 bit field whose value is assigned to each group of fragments making up a complete set. The fragment ID space is managed individually for every WTP/AC pair. The value of Fragment ID is incremented with each new set of fragments. The Fragment ID wraps to zero after the maximum value has been used to identify a set of fragments. LWAPP only supports up to 2 fragments per frame. 3.1.7 Length The 16 bit length field contains the number of bytes in the Payload. The field is encoded as an unsigned number. If the LWAPP packet is encrypted, the length field includes the AES-CCM MIC (see Section 10.2 for more information). 3.1.8 Status and WLANS The interpretation of this 16 bit field is binding specific. Refer to the transport portion of the binding for a wireless technology for the specification. 3.1.9 Payload This field contains the header for an LWAPP Data Message or LWAPP Control Message, followed by the data associated with that message. 3.2 Using IEEE 802.3 MAC as LWAPP transport This section describes how the LWAPP protocol is provided over native ethernet frames. An LWAPP packet is formed from the MAC frame header followed by the LWAPP message header. The following figure provides an example of the frame formats used when LWAPP is used over the IEEE 802.3 transport. Calhoun, et al. Expires December 26, 2005 [Page 22] Internet-Draft Light Weight Access Point Protocol June 2005 Layer 2 LWAPP Data Frame +-----------------------------------------------------------+ | MAC Header | LWAPP Header [C=0] | Forwarded Data ... | +-----------------------------------------------------------+ Layer 2 LWAPP Control Frame +---------------------------------------------------+ | MAC Header | LWAPP Header [C=1] | Control Message | +---------------------------------------------------+ | Message Elements ... | +----------------------+ 3.2.1 Framing Source Address A MAC address belonging to the interface from which this message is sent. If multiple source addresses are configured on an interface, then the one chosen is implementation dependent. Destination Address A MAC address belonging to the interface to which this message is to be sent. This destination address MAY be either an individual address or a multicast address, if more than one destination interface is intended. Ethertype The Ethertype field is set to 0x88bb. 3.2.2 AC Discovery When run over IEEE 802.3, LWAPP messages are distributed to a specific MAC level broadcast domain. The AC discovery mechanism used with this transport is for an WTP to transmit a Discovery Request message to a broadcast destination MAC address. The ACs will receive this message and reply based on their policy. 3.2.3 LWAPP Message Header format over IEEE 802.3 MAC transport All of the fields described in Section 3.1 are used when LWAPP uses the IEEE 802.3 MAC transport. 3.2.4 Fragmentation/Reassembly Fragmentation at the MAC layer is managed using the F,L and Frag ID Calhoun, et al. Expires December 26, 2005 [Page 23] Internet-Draft Light Weight Access Point Protocol June 2005 fields of the LWAPP message header. The LWAPP protocol only allows a single packet to be fragmented into 2, which is sufficient for a frame that exceeds MTU due to LWAPP encapsulation. When used with layer 2 (Ethernet) transport, both fragments MUST include the LWAPP header. 3.2.5 Multiplexing LWAPP control messages and data messages are distinguished by the C Bit in the LWAPP message header. 3.3 Using IP/UDP as LWAPP transport This section defines how LWAPP makes use of IP/UDP transport between the WTP and the AC. When this transport is used, the MAC layer is controlled by the IP stack, and there are therefore no special MAC layer requirements. The following figure provides an example of the frame formats used when LWAPP is used over the IP/UDP transport. IP stacks can be either IPv4 or IPv6. Layer 3 LWAPP Data Frame +--------------------------------------------+ | MAC Header | IP | UDP | LWAPP Header [C=0] | +--------------------------------------------+ |Forwarded Data ... | +-------------------+ Layer 3 LWAPP Control Frame +--------------------------------------------+ | MAC Header | IP | UDP | LWAPP Header [C=1] | +--------------------------------------------+ | Control Message | Message Elements ... | +-----------------+----------------------+ 3.3.1 Framing Communication between WTP and AC is established according to the standard UDP client/server model. The connection is initiated by the WTP (client) to the well-known UDP port of the AC (server) used for control messages. This UDP port number of the AC is 12222 for LWAPP data and 12223 for LWAPP control frames. 3.3.2 AC Discovery When LWAPP is run over routed IP networks, the WTP and the AC do not need to reside in the same IP subnet (broadcast domain). However, in the event the peers reside on separate subnets, there must exist a Calhoun, et al. Expires December 26, 2005 [Page 24] Internet-Draft Light Weight Access Point Protocol June 2005 mechanism for the WTP to discover the AC. As the WTP attempts to establish communication with the AC, it sends the Discovery Request message and receives the corresponding response message from the AC. The WTP must send the Discovery Request message to either the limited broadcast IP address (255.255.255.255), a well known multicast address or to the unicast IP address of the AC. Upon receipt of the message, the AC issues a Discovery Response message to the unicast IP address of the WTP, regardless of whether Discovery Request was sent as a broadcast, multicast or unicast message. Whether the WTP uses a limited IP broadcast, multicast or unicast IP address is implementation dependent. In order for a WTP to transmit a Discovery Request to a unicast address, the WTP must first obtain the IP address of the AC. Any static configuration of an AC's IP address on the WTP non-volatile storage is implementation dependent. However, additional dynamic schemes are possible, for example: DHCP: A comma delimited ASCII encoded list of AC IP addresses is embedded inside a DHCP vendor specific option 43 extension. An example of the actual format of the vendor specific payload for IPv4 is of the form "10.1.1.1, 10.1.1.2". DNS: The DNS name "LWAPP-AC-Address" MAY be resolvable to or more AC addresses 3.3.3 LWAPP Message Header format over IP/UDP transport All of the fields described in Section 3.1 are used when LWAPP uses the IPv4/UDP or IPv6/UDP transport, with the following exceptions: 3.3.3.1 F Bit This flag field is not used with this transport, and MUST be set to zero. 3.3.3.2 L Bit This flag field is not used with this transport, and MUST be set to zero. 3.3.3.3 Frag ID This field is not used with this transport, and MUST be set to zero. Calhoun, et al. Expires December 26, 2005 [Page 25] Internet-Draft Light Weight Access Point Protocol June 2005 3.3.4 Fragmentation/Reassembly for IPv4 When LWAPP is implemented at L3, the transport layer uses IP fragmentation to fragment and reassemble LWAPP messages that are longer than MTU size used by either WTP or AC. The details of IP fragmentation are covered in [8]. When used with the IP transport, only the first fragment would include the LWAPP header [ed: IP fragmentation may raise security concerns and bring additional configuration requirements for certain firewalls and NATs. One alternative is to re-use the layer 2 (application layer) fragmentation reassembly. Comments are welcomed.] 3.3.5 Fragmentation/Reassembly for IPv6 IPv6 does MTU discovery so fragmentation and re-assembly is not necessary for UDP packets. 3.3.6 Multiplexing LWAPP messages convey control information between WTP and AC, as well as binding specific data frames or binding specific management frames. As such, LWAPP messages need to be multiplexed in the transport sub-layer and be delivered to the proper software entities in the endpoints of the protocol. However, the 'C' bit is still used to differentiate between data and control frames. In case of Layer 3 connection, multiplexing is achieved by use of different UDP ports for control and data packets (see Section 3.3.1. As part of Join procedure, the WTP and AC may negotiate different IP Addresses for data or control messages. The IP Address returned in the AP Manager Control IP Address message element is used to inform the WTP with the IP address to which it must sent all control frames. The AP Manager Data IP Address message element MAY be present only if the AC has a different IP Address which the WTP is to use to send its data LWAPP frames. In the event the WTP and AC are separated by a NAT, with the WTP using private IP address space, it is the responsibility of the NAT to manage appropriate UDP port mapping. Calhoun, et al. Expires December 26, 2005 [Page 26] Internet-Draft Light Weight Access Point Protocol June 2005 4. LWAPP Packet Definitions This section contains the packet types and format. The LWAPP protocol is designed to be transport agnostic by specifying packet formats for both MAC frames and IP packets. An LWAPP packet consists of an LWAPP Transport Layer packet header followed by an LWAPP message. Transport details can be found in Section 3. 4.1 LWAPP Data Messages An LWAPP data message is a forwarded wireless frame. When forwarding wireless frames, the sender simply encapsulates the wireless frame in an LWAPP data packet, using the appropriate transport rules defined in section Section 3. In the event that the encapsulated frame would exceed the transport layer's MTU, the sender is responsible for the fragmentation of the frame, as specified in the transport specific section of Section 3. The actual format of the encapsulated LWAPP data frame is subject to the rules defined under the specific wireless technology binding. 4.2 LWAPP Control Messages Overview The LWAPP Control protocol provides a control channel between the WTP and the AC. The control channel is the series of control messages between the WTP and AC, associated with a session ID and key. Control messages are divided into the following distinct message types: Discovery: LWAPP Discovery messages are used to identify potential ACs, their load and capabilities. Control Channel Management: Messages that fall within this classification are used for the discovery of ACs by the WTPs as well as the establishment and maintenance of an LWAPP control channel. WTP Configuration: The WTP Configuration messages are used by the AC to push a specific configuration to the WTPs it has a control channel with. Messages that deal with the retrieval of statistics from the WTP also fall in this category. Calhoun, et al. Expires December 26, 2005 [Page 27] Internet-Draft Light Weight Access Point Protocol June 2005 Mobile Session Management: Mobile session management messages are used by the AC to push specific mobile policies to the WTP. Firmware Management: Messages in this category are used by the AC to push a new firmware image down to the WTP. Control Channel, WTP Configuration and Mobile Session Management MUST be implemented. Firmware Management MAY be implemented. In addition, technology specific bindings may introduce new control channel commands that depart from the above list. 4.2.1 Control Message Format All LWAPP control messages are sent encapsulated within the LWAPP header (see Section 3.1). Immediately following the header, is the LWAPP control header, which has the following format: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message Type | Seq Num | Msg Element Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Session ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Msg Element [0..N] | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4.2.1.1 Message Type The Message Type field identifies the function of the LWAPP control message. The valid values for Message Type are the following: Calhoun, et al. Expires December 26, 2005 [Page 28] Internet-Draft Light Weight Access Point Protocol June 2005 Description Value Discovery Request 1 Discovery Response 2 Join Request 3 Join Response 4 Join ACK 5 Join Confirm 6 Unused 7-9 Configure Request 10 Configure Response 11 Configuration Update Request 12 Configuration Update Response 13 WTP Event Request 14 WTP Event Response 15 Change State Event Request 16 Change State Event Response 17 Unused 18-21 Echo Request 22 Echo Response 23 Image Data Request 24 Image Data Response 25 Reset Request 26 Reset Response 27 Unused 28-29 Key Update Request 30 Key Update Response 31 Primary Discovery Request 32 Primary Discovery Response 33 Data Transfer Request 34 Data Transfer Response 35 Clear Config Indication 36 WLAN Config Request 37 WLAN Config Response 38 Mobile Config Request 39 Mobile Config Response 40 4.2.1.2 Sequence Number The Sequence Number Field is an identifier value to match request/ response packet exchanges. When an LWAPP packet with a request message type is received, the value of the sequence number field is copied into the corresponding response packet. When an LWAPP control frame is sent, its internal sequence number counter is monotonically incremented, ensuring that no two requests pending have the same sequence number. This field will wrap back to zero. Calhoun, et al. Expires December 26, 2005 [Page 29] Internet-Draft Light Weight Access Point Protocol June 2005 4.2.1.3 Message Element Length The Length field indicates the number of bytes following the Session ID field. If the LWAPP packet is encrypted, the length field includes the AES-CCM MIC (see Section 10.2 for more information). 4.2.1.4 Session ID The Session ID is a 32-bit unsigned integer that is used to identify the security context for encrypted exchanges between the WTP and the AC. Note that a Session ID is a random value that MUST be unique between a given AC and any of the WTP it may be communicating with. 4.2.1.5 Message Element[0..N] The message element(s) carry the information pertinent to each of the control message types. Every control message in this specification specifies which message elements are permitted. 4.2.2 Message Element Format The message element is used to carry information pertinent to a control message. Every message element is identified by the Type field, whose numbering space is managed via IANA (see Section 16). The total length of the message elements is indicated in the Message Element Length field. All of the message element definitions in this document use a diagram similar to the one below in order to depict its format. Note that in order to simplify this specification, these diagrams do not include the header fields (Type and Length). However, in every message element description, the header's fields values will be defined. Note that additional message elements may be defined in separate IETF documents. The format of a message element uses the TLV format shown here: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | Value ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Where Type (8 bit) identifies the character of the information carried in the Value field and Length (16 bits) indicates the number of bytes in the Value field. Calhoun, et al. Expires December 26, 2005 [Page 30] Internet-Draft Light Weight Access Point Protocol June 2005 4.2.2.1 Generic Message Elements This section includes message elements that are not bound to a specific control message. 4.2.2.1.1 Vendor Specific The Vendor Specific Payload is used to communicate vendor specific information between the WTP and the AC. The value contains the following format: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Vendor Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Element ID | Value... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type: 104 for Vendor Specific Length: >= 7 Vendor Identifier: A 32-bit value containing the IANA assigned "SMI Network Management Private Enterprise Codes" [14] Element ID: A 16-bit Element Identifier which is managed by the vendor. Value: The value associated with the vendor specific element. 4.2.3 Quality of Service It is recommended that LWAPP control messages be sent by both the AC and the WTP with an appropriate Quality of Service precedence value, ensuring that congestion in the network minimizes occurences of LWAPP control channel disconnects. Therefore, a Quality of Service enabled LWAPP device should use: 802.1P: The precedence value of 7 SHOULD be used. DSCP: The dscp tag value of 46 SHOULD be used. Calhoun, et al. Expires December 26, 2005 [Page 31] Internet-Draft Light Weight Access Point Protocol June 2005 5. LWAPP Discovery Operations The Discovery messages are used by an WTP to determine which ACs are available to provide service, as well as the capabilities and load of the ACs. 5.1 Discovery Request The Discovery Request is used by the WTP to automatically discover potential ACs available in the network. An WTP must transmit this command even if it has a statically configured AC, as it is a required step in the LWAPP state machine. Discovery Requests MUST be sent by an WTP in the Discover state after waiting for a random delay less than MaxDiscoveryInterval, after an WTP first comes up or is (re)initialized. An WTP MUST send no more than a maximum of MaxDiscoveries discoveries, waiting for a random delay less than MaxDiscoveryInterval between each successive discovery. This is to prevent an explosion of WTP Discoveries. An example of this occurring would be when many WTPs are powered on at the same time. Discovery requests MUST be sent by an WTP when no echo responses are received for NeighborDeadInterval and the WTP returns to the Idle state. Discovery requests are sent after NeighborDeadInterval, they MUST be sent after waiting for a random delay less than MaxDiscoveryInterval. An WTP MAY send up to a maximum of MaxDiscoveries discoveries, waiting for a random delay less than MaxDiscoveryInterval between each successive discovery. If a discovery response is not received after sending the maximum number of discovery requests, the WTP enters the Sulking state and MUST wait for an interval equal to SilentInterval before sending further discovery requests. The Discovery Request message may be sent as a unicast, broadcast or multicast message. Upon receiving a discovery request, the AC will respond with a Discovery Response sent to the address in the source address of the received discovery request. The following subsections define the message elements that MUST be included in this LWAPP operation. Calhoun, et al. Expires December 26, 2005 [Page 32] Internet-Draft Light Weight Access Point Protocol June 2005 5.1.1 Discovery Type The Discovery message element is used to configure an WTP to operate in a specific mode. 0 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+ | Discovery Type| +-+-+-+-+-+-+-+-+ Type: 58 for Discovery Type Length: 1 Discovery Type: An 8-bit value indicating how the AC was discovered. The following values are supported: 0 - Broadcast 1 - Configured 5.1.2 WTP Descriptor The WTP descriptor message element is used by the WTP to communicate it's current hardware/firmware configuration. The value contains the following fields. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Hardware Version | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Software Version | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Boot Version | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Max Radios | Radios in use | Encryption Capabilities | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type: 3 for WTP Descriptor Length: 16 Calhoun, et al. Expires December 26, 2005 [Page 33] Internet-Draft Light Weight Access Point Protocol June 2005 Hardware Version: A 32-bit integer representing the WTP's hardware version number Software Version: A 32-bit integer representing the WTP's Firmware version number Boot Version: A 32-bit integer representing the WTP's boot loader's version number Max Radios: An 8-bit value representing the number of radios (where each radio is identified via the RID field) supported by the WTP Radios in use: An 8-bit value representing the number of radios present in the WTP Encryption Capabilities: This 16-bit field is used by the WTP to communicate it's capabilities to the AC. Since most WTPs support link layer encryption, the AC may make use of these services. There are binding dependent encryption capabilites. An WTP that does not have any encryption capabilities would set this field to zero (0). Refer to the specific binding for the specification. 5.1.3 WTP Radio Information The WTP radios information message element is used to communicate the radio information in a specific slot. The Discovery Request MUST include one such message element per radio in the WTP. The Radio- Type field is used by the AC in order to determine which technology specific binding is to be used with the WTP. The value contains two fields, as shown. 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Radio ID | Radio Type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type: 4 for WTP Radio Information Length: 2 Radio ID: The Radio Identifier, typically refers to some interface index on the WTP Calhoun, et al. Expires December 26, 2005 [Page 34] Internet-Draft Light Weight Access Point Protocol June 2005 Radio Type: The type of radio present. The following values are supported 1 - 802.11bg: An 802.11bg radio. 2 - 802.11a: An 802.11a radio. 3 - 802.16: An 802.16 radio. 4 - Ultra Wideband: An UWB radio. 7 - all: Used to specify all radios in the WTP. 5.2 Discovery Response The Discovery Response is a mechanism by which an AC advertises its services to requesting WTPs. Discovery Responses are sent by an AC after receiving a Discovery Request. When an WTP receives a Discovery Response, it MUST wait for an interval not less than DiscoveryInterval for receipt of additional Discovery Responses. After the DiscoveryInterval elapses, the WTP enters the Joining state and will select one of the ACs that sent a Discovery Response and send a Join Request to that AC. The following subsections define the message elements that MUST be included in this LWAPP operation. 5.2.1 AC Address The AC address message element is used to communicate the identity of the AC. The value contains two fields, as shown. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | MAC Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MAC Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Calhoun, et al. Expires December 26, 2005 [Page 35] Internet-Draft Light Weight Access Point Protocol June 2005 Type: 2 for AC Address Length: 7 Reserved: MUST be set to zero Mac Address: The MAC Address of the AC 5.2.2 AC Descriptor The AC payload message element is used by the AC to communicate it's current state. The value contains the following fields. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | Hardware Version ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | HW Ver | Software Version ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SW Ver | Stations | Limit | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Limit | Radios | Max Radio | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Max Radio | Security | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type: 6 for AC Descriptor Length: 17 Reserved: MUST be set to zero Hardware Version: A 32-bit integer representing the AC's hardware version number Software Version: A 32-bit integer representing the AC's Firmware version number Stations: A 16-bit integer representing number of mobile stations currently associated with the AC Limit: A 16-bit integer representing the maximum number of stations supported by the AC Calhoun, et al. Expires December 26, 2005 [Page 36] Internet-Draft Light Weight Access Point Protocol June 2005 Radios: A 16-bit integer representing the number of WTPs currently attached to the AC Max Radio: A 16-bit integer representing the maximum number of WTPs supported by the AC Security: A 8 bit bit mask specifying the security schemes supported by the AC. The following values are supported (see Section 10): 1 - X.509 Certificate Based 2 - Pre-Shared Secret 5.2.3 AC Name The AC name message element contains an ASCII representation of the AC's identity. The value is a variable length byte string. The string is NOT zero terminated. 0 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+ | Name ... +-+-+-+-+-+-+-+-+ Type: 31 for AC Name Length: > 0 Name: A variable length ASCII string containing the AC's name 5.2.4 WTP Manager Control IPv4 Address The WTP Manager Control IPv4 Address message element is sent by the AC to the WTP during the discovery process and is used by the AC to provide the interfaces available on the AC, and their current load. This message element is useful for the WTP to perform load balancing across multiple interfaces. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IP Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | WTP Count | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Calhoun, et al. Expires December 26, 2005 [Page 37] Internet-Draft Light Weight Access Point Protocol June 2005 Type: 99 for WTP Manager Control IPv4 Address Length: 6 IP Address: The IP Address of an interface. WTP Count: The number of WTPs currently connected to the interface. 5.2.5 WTP Manager Control IPv6 Address The WTP Manager Control IPv6 Address message element is sent by the AC to the WTP during the discovery process and is used by the AC to provide the interfaces available on the AC, and their current load. This message element is useful for the WTP to perform load balancing across multiple interfaces. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IP Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IP Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IP Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IP Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | WTP Count | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type: 142 for WTP Manager Control IPv6 Address Length: 18 IP Address: The IP Address of an interface. WTP Count: The number of WTPs currently connected to the interface. 5.3 Primary Discovery Request The Primary Discovery Request is sent by the WTP in order to determine whether its preferred (or primary) AC is available. Primary Discovery Request are sent by an WTP when it has a primary AC configured, and is connected to another AC. This generally occurs as a result of a failover, and is used by the WTP as a means to discover Calhoun, et al. Expires December 26, 2005 [Page 38] Internet-Draft Light Weight Access Point Protocol June 2005 when its primary AC becomes available. As a consequence, this message is only sent by a WTP when it is in the Run state. The frequency of the Primary Discovery Requests should be no more often than the sending of the Echo Request message. Upon receiving a discovery request, the AC will respond with a Primary Discovery Response sent to the address in the source address of the received Primary Discovery Request. The following subsections define the message elements that MUST be included in this LWAPP operation. 5.3.1 Discovery Type The Discovery Type message element is defined in section Section 5.1.1. 5.3.2 WTP Descriptor The WTP Descriptor message element is defined in section Section 5.1.2. 5.3.3 WTP Radio Information An WTP Radio Information message element must be present for every radio in the WTP. This message element is defined in section Section 5.1.3. 5.4 Primary Discovery Response The Primary Discovery Response is a mechanism by which an AC advertises its availability and services to requesting WTPs that are configured to have the AC as its primary AC. Primary Discovery Responses are sent by an AC after receiving a Primary Discovery Request. When an WTP receives a Primary Discovery Response, it may opt to establish an LWAPP connection to its primary AC, based on the configuration of the WTP Fallback Status message element on the WTP. The following subsections define the message elements that MUST be included in this LWAPP operation. 5.4.1 AC Descriptor The Discovery Type message element is defined in section Calhoun, et al. Expires December 26, 2005 [Page 39] Internet-Draft Light Weight Access Point Protocol June 2005 Section 5.2.2. 5.4.2 AC Name The AC Name message element is defined in section Section 5.2.3. 5.4.3 WTP Manager Control IPv4 Address An WTP Radio Information message element MAY be present for every radio in the WTP which are reachable via IPv4. This message element is defined in section Section 5.2.4. 5.4.4 WTP Manager Control IPv6 Address An WTP Radio Information message element must be present for every radio in the WTP which are reachable via IPv6. This message element is defined in section Section 5.2.5. Calhoun, et al. Expires December 26, 2005 [Page 40] Internet-Draft Light Weight Access Point Protocol June 2005 6. Control Channel Management The Control Channel Management messages are used by the WTP and AC to create and maintain a channel of communication on which various other commands may be transmitted, such as configuration, firmware update, etc. 6.1 Join Request The Join Request is used by an WTP to inform an AC that it wishes to provide services through it. Join Requests are sent by an WTP in the Joining state after receiving one or more Discovery Responses. The Join Request is also used as an MTU discovery mechanism by the WTP. The WTP issues a Join Request with a Test message element, bringing the total size of the message to exceed MTU. If the transport used does not provide MTU path discovery, the initial Join Request is padded with the Test message element to 1596 bytes. If a Join Response is received, the WTP can forward frames without requiring any fragmentation. If no Join Response is received, it issues a second Join Request padded with the Test payload to a total of 1500 bytes. The WTP continues to cycle from large (1596) to small (1500) packets until a Join Response has been received , or until both packets sizes have been retransmitted 3 times . If the Join Response is not received after the maximum number of retransmissions, the WTP MUST abandon the AC and restart the discovery phase. When an AC receives a Join Request it will respond with a Join Response. If the certificate based security mechanism is used, the AC validates the certificate found in the request. If valid, the AC generates a session key which will be used to secure the control frames it exchanges with the WTP. When the AC issues the Join Response, the AC creates a context for the session with the WTP. If the pre-shared session key security mechanism is used, the AC saves the WTP's nonce, found in the WNonce message element, creates its own nonce which it includes in the ANonce message element. Finally, the AC creates the PSK-MIC, which is computed using a key that is derived from the PSK. A Join Request that includes both a WNonce and a Certificate message element MUST be considered invalid. Details on the key generation is found in Section 10. Calhoun, et al. Expires December 26, 2005 [Page 41] Internet-Draft Light Weight Access Point Protocol June 2005 The following subsections define the message elements that MUST be included in this LWAPP operation. 6.1.1 WTP Descriptor The WTP Descriptor message element is defined in section Section 5.1.2. 6.1.2 AC Address The AC Address message element is defined in section Section 5.2.1. 6.1.3 WTP Name The WTP name message element value is a variable length byte string. The string is NOT zero terminated. 0 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+ | Name ... +-+-+-+-+-+-+-+-+ Type: 5 for WTP Name Length: > 0 Name: A non zero terminated string containing the WTP's name. 6.1.4 Location Data The location data message element is a variable length byte string containing user defined location information (e.g. "Next to Fridge"). The string is NOT zero terminated. 0 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+ | Location ... +-+-+-+-+-+-+-+-+ Type: 35 for Location Data Length: > 0 Calhoun, et al. Expires December 26, 2005 [Page 42] Internet-Draft Light Weight Access Point Protocol June 2005 Location: A non zero terminated string containing the WTP's location. 6.1.5 WTP Radio Information An WTP Radio Information message element must be present for every radio in the WTP. This message element is defined in section Section 5.1.3. 6.1.6 Certificate The certificate message element value is a byte string containing a DER-encoded x.509v3 certificate. This message element is only included if the LWAPP security type used between the WTP and the AC makes use of certificates (see Section 10 for more information). 0 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+ | Certificate... +-+-+-+-+-+-+-+-+ Type: 44 for Certificate Length: > 0 Certificate: A non zero terminated string containing the device's certificate. 6.1.7 Session ID The session ID message element value contains a randomly generated [4] unsigned 32-bit integer. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Session ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type: 45 for Session ID Length: 4 Calhoun, et al. Expires December 26, 2005 [Page 43] Internet-Draft Light Weight Access Point Protocol June 2005 Session ID: 32 bit random session identifier. 6.1.8 Test The test message element is used as padding to perform MTU discovery, and MAY contain any value, of any length. 0 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+ | Padding ... +-+-+-+-+-+-+-+-+ Type: 18 for Test Length: > 0 Padding: A variable length pad. 6.1.9 XNonce The XNonce is used by the WTP to communicate its random nonce during the join or rekey phase. See Section 10 for more information. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Nonce | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Nonce | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Nonce | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Nonce | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type: 111 for XNonce Length: 16 Nonce: 1 16 octet random nonce. 6.2 Join Response The Join Response is sent by the AC to indicate to an WTP whether it Calhoun, et al. Expires December 26, 2005 [Page 44] Internet-Draft Light Weight Access Point Protocol June 2005 is capable and willing to provide service to it. Join Responses are sent by the AC after receiving a Join Request. Once the Join Response has been sent, the heartbeat timer is initiated for the session to EchoInterval. Expiration of the timer will result in deletion of the AC-WTP session. The timer is refreshed upon receipt of the Echo Request. If the security method used is certificate based, when a WTP receives a Join Response it enters the Joined state and initiates either a Configure Request or Image Data to the AC to which it is now joined. Upon entering the Joined state, the WTP begins timing an interval equal to NeighborDeadInterval. Expiration of the timer will result in the transmission of the Echo Request. If the security method used is pre-shared secret based, when a WTP receives a Join Response that includes a valid PSK-MIC message element, it responds with a Join ACK that also MUST include a locally computed PSK-MIC message element. The following subsections define the message elements that MUST be included in this LWAPP operation. 6.2.1 Result Code The Result Code message element value is a 32-bit integer value, indicating the result of the request operation corresponding to the sequence number in the message. The Result Code is included in a successful Join Response. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Result Code | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type: 2 for Result Code Length: 4 Result Code: The following values are defined: 0 Success 1 Failure (AC List message element MUST be present) Calhoun, et al. Expires December 26, 2005 [Page 45] Internet-Draft Light Weight Access Point Protocol June 2005 6.2.2 Status The Status message element is sent by the AC to the WTP in a non- successful Join Response message. This message element is used to indicate the reason for the failure and should only be accompanied with a Result Code message element that indicates a failure. 0 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+ | Status | +-+-+-+-+-+-+-+-+ Type: 60 for Status Length: 1 Status: The status field indicates the reason for an LWAPP failure. The following values are supported: 1 - Reserved - do not use 2 - Resource Depletion 3 - Unknown Source 4 - Incorrect Data 6.2.3 Certificate The Certificate message element is defined in section Section 6.1.6. Note this message element is only included if the WTP and the AC make use of certificate based security as defined in section Section 10. 6.2.4 WTP Manager Data IPv4 Address The WTP Manager Data IPv4 Address message element is optionally sent by the AC to the WTP during the join phase. If present, the IP Address contained in this message element is the address the WTP is to use when sending any of its LWAPP data frames. Note this message element is only valid when LWAPP uses the IP/UDP layer 3 transport Calhoun, et al. Expires December 26, 2005 [Page 46] Internet-Draft Light Weight Access Point Protocol June 2005 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IP Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type: 143 for WTP Manager Data IPv4 Address Length: 4 IP Address: The IP Address of an interface. 6.2.5 WTP Manager Data IPv6 Address The WTP Manager Data IPv6 Address message element is optionally sent by the AC to the WTP during the join phase. If present, the IP Address contained in this message element is the address the WTP is to use when sending any of its LWAPP data frames. Note this message element is only valid when LWAPP uses the IP/UDP layer 3 transport 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IP Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IP Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IP Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IP Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type: 139 for WTP Manager Data IPv6 Address Length: 16 IP Address: The IP Address of an interface. 6.2.6 AC IPv4 List The AC List message element is used to configure an WTP with the latest list of ACs in a cluster. This message element MUST be included if the Join Response returns a failure indicating that the AC cannot handle the WTP at this time, allowing the WTP to find an Calhoun, et al. Expires December 26, 2005 [Page 47] Internet-Draft Light Weight Access Point Protocol June 2005 alternate AC to connect to. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | AC IP Address[] | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type: 59 for AC List Length: >= 4 AC IP Address: An array of 32-bit integers containing an AC's IPv4 Address. 6.2.7 AC IPv6 List The AC List message element is used to configure an WTP with the latest list of ACs in a cluster. This message element MUST be included if the Join Response returns a failure indicating that the AC cannot handle the WTP at this time, allowing the WTP to find an alternate AC to connect to. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | AC IP Address[] | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | AC IP Address[] | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | AC IP Address[] | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | AC IP Address[] | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type: 141 for AC List Length: >= 16 AC IP Address: An array of 32-bit integers containing an AC's IPv6 Address. 6.2.8 ANonce The ANonce message element is sent by a AC during the join or rekey phase. The contents of the ANonce are encrypted as described in Calhoun, et al. Expires December 26, 2005 [Page 48] Internet-Draft Light Weight Access Point Protocol June 2005 section Section 10 for more information. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Nonce | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Nonce | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Nonce | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Nonce | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type: 108 for ANonce Length: 16 Nonce: An encrypted 16 octet random nonce. 6.2.9 PSK-MIC The PSK-MIC message element includes a message integrity check, whose purpose is to provide confirmation to the peer that the sender has the proper session key. This message element is only included if the security method used between the WTP and the AC is the pre-shared secret mechanism. See Section 10 for more information. When present, the PSK-MIC message element MUST be the last message element in the message. The MIC is computed over the complete LWAPP packet, from the LWAPP control header as defined in Section 4.2.1 to the end of the packet (which MUST be this PSK-MIC message element). The MIC field in this message element and the sequence number field in the LWAPP control header MUST be set to zeroes prior to computing the MIC. The length field in the LWAPP control header must already include this message element prior to computing the MIC. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SPI | MIC ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Calhoun, et al. Expires December 26, 2005 [Page 49] Internet-Draft Light Weight Access Point Protocol June 2005 Type: 109 for PSK-MIC Length: > 1 SPI: The SPI field specifies the cryptographic algorithm used to create the message integrity check. The following values are supported: 0 - Unused 1 - HMAC-SHA-1 (RFC 2104 [17]) 1 - AES-CMAC ([13]) MIC: A 20 octet Message Integrity Check. 6.3 Join ACK The Join ACK message is sent by the WTP upon receiving a Join Response, which has a valid PSK-MIC message element, as a means of providing key confirmation to the AC. The Join ACK is only used in the case where the WTP makes use of the pre-shared key LWAPP mode (See Section 10 for more information). Note that the AC should never receive this message unless the security method used between the WTP and the AC is pre-shared secret based. The following subsections define the message elements that MUST be included in this LWAPP operation. 6.3.1 Session ID The Session ID message element is defined in section Section 6.1.7. 6.3.2 WNonce The WNonce message element is sent by a WTP during the join or rekey phase. The contents of the ANonce are encrypted as described in section Section 10 for more information. Calhoun, et al. Expires December 26, 2005 [Page 50] Internet-Draft Light Weight Access Point Protocol June 2005 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Nonce | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Nonce | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Nonce | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Nonce | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type: 107 for WNonce Length: 16 Nonce: An encrypted 16 octet random nonce. 6.3.3 PSK-MIC The PSK-MIC message element is defined in section Section 6.2.9. 6.4 Join Confirm The Join Confirm message is sent by the AC upon receiving a Join ACK, which has a valid PSK-MIC message element, as a means of providing key confirmation to the WTP. The Join Confirm is only used in the case where the WTP makes use of the pre-shared key LWAPP mode (See Section 10 for more information). If the security method used is pre-shared key based, when an WTP receives a Join Confirm it enters the Joined state and initiates either a Configure Request or Image Data to the AC to which it is now joined. Upon entering the Joined state, the WTP begins timing an interval equal to NeighborDeadInterval. Expiration of the timer will result in the transmission of the Echo Request. This message is never received, or sent, when the security type used between the WTP and the AC is certificated based. The following subsections define the message elements that MUST be included in this LWAPP operation. 6.4.1 Session ID The Session ID message element is defined in section Section 6.1.7. Calhoun, et al. Expires December 26, 2005 [Page 51] Internet-Draft Light Weight Access Point Protocol June 2005 6.4.2 PSK-MIC The PSK-MIC message element is defined in section Section 6.2.9. 6.5 Echo Request The Echo Request message is a keepalive mechanism for the LWAPP control message. Echo Requests are sent periodically by an WTP in the Run state (see Figure 2) to determine the state of the connection between the WTP and the AC. The Echo Request is sent by the WTP when the Heartbeat timer expires, and it MUST start its NeighborDeadInterval timer. The Echo Request carries no message elements. When an AC receives an Echo Request it responds with an Echo Response. 6.6 Echo Response The Echo Response acknowledges the Echo Request, and are only accepted while in the Run state (see Figure 2). Echo Responses are sent by an AC after receiving an Echo Request. After transmitting the Echo Response, the AC should reset its Heartbeat timer to expire in the value configured for EchoInterval. If another Echo request is not received by the AC when the timer expires, the AC SHOULD consider the WTP to no longer be reachable. The Echo Response carries no message elements. When an WTP receives an Echo Response it stops the NeighborDeadInterval timer, and starts the Heartbeat timer to EchoInterval. If the NeighborDeadInterval timer expires prior to receiving an Echo Response, the WTP enters the Idle state. 6.7 Key Update Request The Key Update Request is used by the WTP to initiate the rekeying phase. This message is sent by a WTP when in the Run state and MUST include a new unique Session Identifier. This message MUST also include a unique Nonce in the XNonce message element, which is used to protect against replay attacks (see Section 10). The following subsections define the message elements that MUST be Calhoun, et al. Expires December 26, 2005 [Page 52] Internet-Draft Light Weight Access Point Protocol June 2005 included in this LWAPP operation. 6.7.1 Session ID The Session ID message element is defined in section Section 6.1.7. 6.7.2 XNonce The XNonce message element is defined in section Section 6.1.9. 6.8 Key Update Response The Key Update Response is sent by the AC in response to the request message, and includes an encrypted ANonce, which is used to derive new session keys. This message MUST include a Session Identifier message element, whose value MUST be identical to the one found in the Key Update Request. The AC MUST include a PSK-MIC message element, which provides message integrity over the whole message. The following subsections define the message elements that MUST be included in this LWAPP operation. 6.8.1 Session ID The Session ID message element is defined in section Section 6.1.7. 6.8.2 ANonce The ANonce message element is defined in section Section 6.2.8. 6.8.3 PSK-MIC The PSK-MIC message element is defined in section Section 6.2.9. 6.9 Key Update ACK The Key Update ACK is sent by the WTP and includes an encryption version of the WTP's Nonce, which is used in the key derivation process. The session keys derived are then used as new LWAPP control message encryption keys (see Section 10). The WTP MUST include a PSK-MIC message element, which provides message integrity over the whole message. The following subsections define the message elements that MUST be included in this LWAPP operation. Calhoun, et al. Expires December 26, 2005 [Page 53] Internet-Draft Light Weight Access Point Protocol June 2005 6.9.1 WNonce The WNonce message element is defined in section Section 6.3.2. 6.9.2 PSK-MIC The PSK-MIC message element is defined in section Section 6.2.9. 6.10 Key Update Confirm The Key Update Confirm closes the rekeying loop, and allows the WTP to recognize that the AC has received and processed the key update messages. At this point, the WTP updates its session key in its crypto engine, and the associated Initialization Vector, ensuring that all future LWAPP control frames are encrypted with the newly derived encryption key. The WTP MUST include a PSK-MIC message element, which provides message integrity over the whole message. The following subsections define the message elements that MUST be included in this LWAPP operation. 6.10.1 PSK-MIC The PSK-MIC message element is defined in section Section 6.2.9. 6.11 Key Update Trigger The Key Update Trigger is used by the AC to request that a Key Update Request be initiated by the WTP. Key Update Trigger are sent by an AC in the Run state to inform the WTP to initiate a Key Update Request message. When a WTP receives a Key Update Trigger it generates a key Update Request. The following subsections define the message elements that MUST be included in this LWAPP operation. 6.11.1 Session ID The Session ID message element is defined in section Section 6.1.7. Calhoun, et al. Expires December 26, 2005 [Page 54] Internet-Draft Light Weight Access Point Protocol June 2005 7. WTP Configuration Management The Wireless Termination Point Configuration messages are used to exchange configuration between the AC and the WTP. 7.1 Configuration Consistency The LWAPP protocol provides flexibility in how WTP configuration is managed. To put it simply, a WTP has one of two options: 1. WTP retain no configuration and simply abides by the configuration provided by the AC. 2. WTP retain the configuration of parameters provided by the AC that are non-default values. If the WTP opts to save configuration locally, the LWAPP protocol state machine defines the "configure" state, which is used during the initial binding WTP-AC phase, which allows for configuration exchange. During this period, the WTP sends its current configuration overrides to the AC via the COnfigure Request message. A configuration override is a parameter that is non-default. One example is that in the LWAPP protocol the default antenna configuration is internal omni antenna. However, a WTP that either has no internal antennas, or has been explicitely configured by the AC to use external antennas, would send its antenna configuration during the configure phase, allowing the AC to become aware of the WTP's current configuration. Once the WTP has provided its configuration to the AC, the AC sends down its own configuration. This allows the WTP to inherit the configuration and policies on the AC. An LWAPP AC maintains a copy of each active WTP's configuration. There is no need for versioning or other means to identify configuration changes. If a WTP becomes inactive, the AC MAY delete the configuration associated with it. If a WTP were to fail, and connect to a new AC, it would provide its overriden configuration parameters, allowing the new AC to be aware of the WTP's configuration. As a consequence, this model allows for relisiency, whereby in light of an AC failure, another AC could provide service to the WTP. In this scenario, the new AC would be automatically updated on any possible WTP configuration changes - eliminating the need for inter-AC communication or the need for all ACs to be aware of the configuration of all WTPs in the network. Calhoun, et al. Expires December 26, 2005 [Page 55] Internet-Draft Light Weight Access Point Protocol June 2005 Once the LWAPP protocol enters the Run state, the WTPs begin to provide service. However, it is quite common for administrators to require that configuration changes be made while the network is operational. Therefore, the Configuration Update Request is sent by the AC to the WTP in order to make these changes at run-time. 7.2 Configure Request The Configure Request message is sent by an WTP to send its current configuration to its AC. Configure Requests are sent by an WTP after receiving a Join Response, while in the Configure state. The Configure Request carries binding specific message elements. Refer to the appropriate binding for the definition of this structure. When an AC receives a Configure Request it will act upon the content of the packet and respond to the WTP with a Configure Response. The Configure Request includes multiple Administrative State message Elements. There is one such message element for the WTP, and then one per radio in the WTP. The following subsections define the message elements that MUST be included in this LWAPP operation. 7.2.1 Administrative State The administrative event message element is used to communicate the state of a particular radio. The value contains the following fields. 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Radio ID | Admin State | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type: 27 for Administrative State Length: 2 Radio ID: An 8-bit value representing the radio to configure. The Radio ID field may also include the value of 0xff, which is used to identify the WTP itself. Therefore, if an AC wishes to change the administrative state of an WTP, it would include 0xff in the Calhoun, et al. Expires December 26, 2005 [Page 56] Internet-Draft Light Weight Access Point Protocol June 2005 Radio ID field. Admin State: An 8-bit value representing the administrative state of the radio. The following values are supported: 1 - Enabled 2 - Disabled 7.2.2 AC Name The AC Name message element is defined in section Section 5.2.3. 7.2.3 AC Name with Index The AC Name with Index message element is sent by the AC to the WTP to configure preferred ACs. The number of instances where this message element would be present is equal to the number of ACs configured on the WTP. 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Index | AC Name... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type: 90 for AC Name with Index Length: 5 Index: The index of the preferred server (e.g., 1=primary, 2=secondary). AC Name: A variable length ASCII string containing the AC's name. 7.2.4 WTP Board Data The WTP Board Data message element is sent by the WTP to the AC and contains information about the hardware present. Calhoun, et al. Expires December 26, 2005 [Page 57] Internet-Draft Light Weight Access Point Protocol June 2005 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Card ID | Card Revision | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | WTP Model | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | WTP Model | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | WTP Serial Number ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Ethernet MAC Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Ethernet MAC Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type: 50 for WTP Board Data Length: 26 Card ID: A hardware identifier. Card Revision: 4 byte Revision of the card. WTP Model: 8 byte WTP Model Number. WTP Serial Number: 24 byte WTP Serial Number. Reserved: A 4 byte reserved field that MUST be set to zero (0). Ethernet MAC Address: MAC Address of the WTP's Ethernet interface. 7.2.5 Statistics Timer The statistics timer message element value is used by the AC to inform the WTP of the frequency which it expects to receive updated statistics. 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Statistics Timer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Calhoun, et al. Expires December 26, 2005 [Page 58] Internet-Draft Light Weight Access Point Protocol June 2005 Type: 37 for Statistics Timer Length: 2 Statistics Timer: A 16-bit unsigned integer indicating the time, in seconds 7.2.6 WTP Static IP Address Information The WTP Static IP Address Information message element is used by an AC to configure or clear a previously configured static IP address on an WTP. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IP Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Netmask | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Gateway | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Static | +-+-+-+-+-+-+-+-+ Type: 82 for WTP Static IP Address Information Length: 13 IP Address: The IP Address to assign to the WTP. Netmask: The IP Netmask. Gateway: The IP address of the gateway. Netmask: The IP Netmask. Static: An 8-bit boolean stating whether the WTP should use a static IP address or not. A value of zero disables the static IP address, while a value of one enables it. 7.2.7 WTP Reboot Statistics The WTP Reboot Statistics message element is sent by the WTP to the AC to communicate information about reasons why reboots have occurred. Calhoun, et al. Expires December 26, 2005 [Page 59] Internet-Draft Light Weight Access Point Protocol June 2005 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Crash Count | LWAPP Initiated Count | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Link Failure Count | Failure Type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type: 67 for WTP Reboot Statistics Length: 7 Crash Count: The number of reboots that have occurred due to an WTP crash. LWAPP Initiated Count: The number of reboots that have occured at the request of some LWAPP message, such as a change in configuration that required a reboot or an explicit LWAPP reset request. Link Failure Count: The number of times that an LWAPP connection with an AC has failed. Failure Type: The last WTP failure. The following values are supported: 0 - Link Failure 1 - LWAPP Initiated 2 - WTP Crash 7.3 Configure Response The Configure Response message is sent by an AC and provides an opportunity for the AC to override an WTP's requested configuration. Configure Responses are sent by an AC after receiving a Configure Request. The Configure Response carries binding specific message elements. Refer to the appropriate binding for the definition of this structure. When an WTP receives a Configure Response it acts upon the content of the packet, as appropriate. If the Configure Response message includes a Change State Event message element that causes a change in Calhoun, et al. Expires December 26, 2005 [Page 60] Internet-Draft Light Weight Access Point Protocol June 2005 the operational state of one of the Radio, the WTP will transmit a Change State Event to the AC, as an acknowledgement of the change in state. The following subsections define the message elements that MUST be included in this LWAPP operation. 7.3.1 Decryption Error Report Period The Decryption Error Report Period message element value is used by the AC to inform the WTP how frequently it should send decryption error report messages. 0 1 2 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Radio ID | Report Interval | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type: 38 for Decryption Error Report Period Length: 3 Radio ID: The Radio Identifier, typically refers to some interface index on the WTP Report Interval: A 16-bit unsigned integer indicating the time, in seconds 7.3.2 Change State Event The WTP radios information message element is used to communicate the operational state of a radio. The value contains two fields, as shown. 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Radio ID | State | Cause | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type: 26 for Change State Event Length: 3 Calhoun, et al. Expires December 26, 2005 [Page 61] Internet-Draft Light Weight Access Point Protocol June 2005 Radio ID: The Radio Identifier, typically refers to some interface index on the WTP. State: An 8-bit boolean value representing the state of the radio. A value of one disables the radio, while a value of two enables it. Cause: In the event of a radio being inoperable, the cause field would contain the reason the radio is out of service. Cause: In the event of a radio being inoperable, the cause field would contain the reason the radio is out of service. The following values are supported: 0 - Normal 1 - Radio Failure 2 - Software Failure 7.3.3 LWAPP Timers The LWAPP Timers message element is used by an AC to configure LWAPP timers on an WTP. 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Discovery | Echo Request | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type: 68 for LWAPP Timers Length: 2 Discovery: The number of seconds between LWAPP Discovery packets, when the WTP is in the discovery mode. Echo Request: The number of seconds between WTP Echo Request LWAPP messages. 7.3.4 AC IPv4 List The AC List message element is defined in section Section 6.2.6. Calhoun, et al. Expires December 26, 2005 [Page 62] Internet-Draft Light Weight Access Point Protocol June 2005 7.3.5 AC IPv6 List The AC List message element is defined in section Section 6.2.7. 7.3.6 WTP Fallback The WTP Fallback message element is sent by the AC to the WTP to enable or disable automatic LWAPP fallback in the event that an WTP detects its preferred AC, and is not currently connected to it. 0 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+ | Mode | +-+-+-+-+-+-+-+-+ Type: 91 for WTP Fallback Length: 1 Mode: The 8-bit boolean value indicates the status of automatic LWAPP fallback on the WTP. A value of zero disables the fallback feature, while a value of one enables it. When enabled, if the WTP detects that its primary AC is available, and it is not connected to it, it SHOULD automatically disconnect from its current AC and reconnect to its primary. If disabled, the WTP will only reconnect to its primary through manual intervention (e.g., through the Reset Request command). 7.3.7 Idle Timeout The Idle Timeout message element is sent by the AC to the WTP to provide it with the idle timeout that it should enforce on its active mobile station entries. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Timeout | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+