draft-ietf-capwap-protocol-specification-04.txt   draft-ietf-capwap-protocol-specification-05.txt 
Network Working Group P. Calhoun, Editor Network Working Group P. Calhoun, Editor
Internet-Draft Cisco Systems, Inc. Internet-Draft Cisco Systems, Inc.
Expires: July 27, 2007 M. Montemurro, Editor Expires: September 5, 2007 M. Montemurro, Editor
Research In Motion Research In Motion
D. Stanley, Editor D. Stanley, Editor
Aruba Networks Aruba Networks
January 23, 2007 March 4, 2007
CAPWAP Protocol Specification CAPWAP Protocol Specification
draft-ietf-capwap-protocol-specification-04 draft-ietf-capwap-protocol-specification-05
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware 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 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. aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
skipping to change at page 1, line 37 skipping to change at page 1, line 37
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on July 27, 2007. This Internet-Draft will expire on September 5, 2007.
Copyright Notice Copyright Notice
Copyright (C) The IETF Trust (2007). Copyright (C) The IETF Trust (2007).
Abstract Abstract
This specification defines the Control And Provisioning of Wireless This specification defines the Control And Provisioning of Wireless
Access Points (CAPWAP) Protocol. The CAPWAP protocol meets the IETF Access Points (CAPWAP) Protocol. The CAPWAP protocol meets the IETF
CAPWAP working group protocol requirements. The CAPWAP protocol is CAPWAP working group protocol requirements. The CAPWAP protocol is
designed to be flexible, allowing it to be used for a variety of designed to be flexible, allowing it to be used for a variety of
wireless technologies. This document describes the base CAPWAP wireless technologies. This document describes the base CAPWAP
protocol. The CAPWAP protocol binding which defines extensions for protocol. The CAPWAP protocol binding which defines extensions for
use with the IEEE 802.11 wireless LAN protocol is available in [12]. use with the IEEE 802.11 wireless LAN protocol is available in [13].
Extensions are expected to be defined to enable use of the CAPWAP Extensions are expected to be defined to enable use of the CAPWAP
protocol with additional wireless technologies. protocol with additional wireless technologies.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 6 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1. Goals . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.1. Goals . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2. Conventions used in this document . . . . . . . . . . . . 7 1.2. Conventions used in this document . . . . . . . . . . . . 8
1.3. Contributing Authors . . . . . . . . . . . . . . . . . . 8 1.3. Contributing Authors . . . . . . . . . . . . . . . . . . 9
1.4. Acknowledgements . . . . . . . . . . . . . . . . . . . . 9 1.4. Terminology . . . . . . . . . . . . . . . . . . . . . . . 10
1.5. Terminology . . . . . . . . . . . . . . . . . . . . . . . 9 2. Protocol Overview . . . . . . . . . . . . . . . . . . . . . . 11
2. Protocol Overview . . . . . . . . . . . . . . . . . . . . . . 10 2.1. Wireless Binding Definition . . . . . . . . . . . . . . . 12
2.1. Wireless Binding Definition . . . . . . . . . . . . . . . 11 2.2. CAPWAP Session Establishment Overview . . . . . . . . . . 13
2.2. CAPWAP Session Establishment Overview . . . . . . . . . . 11 2.3. CAPWAP State Machine Definition . . . . . . . . . . . . . 14
2.3. CAPWAP State Machine Definition . . . . . . . . . . . . . 13 2.3.1. CAPWAP Protocol State Transitions . . . . . . . . . . 16
2.3.1. CAPWAP Protocol State Transitions . . . . . . . . . . 15 2.3.2. CAPWAP/DTLS Interface . . . . . . . . . . . . . . . . 27
2.3.2. CAPWAP/DTLS Interface . . . . . . . . . . . . . . . . 24 2.4. Use of DTLS in the CAPWAP Protocol . . . . . . . . . . . 29
2.4. Use of DTLS in the CAPWAP Protocol . . . . . . . . . . . 26 2.4.1. DTLS Handshake Processing . . . . . . . . . . . . . . 29
2.4.1. DTLS Handshake Processing . . . . . . . . . . . . . . 26 2.4.2. DTLS Session Establishment . . . . . . . . . . . . . 30
2.4.2. DTLS Session Establishment . . . . . . . . . . . . . 28 2.4.3. DTLS Error Handling . . . . . . . . . . . . . . . . . 31
2.4.3. DTLS Error Handling . . . . . . . . . . . . . . . . . 28 2.4.4. DTLS EndPoint Authentication and Authorization . . . 32
2.4.4. DTLS EndPoint Authentication . . . . . . . . . . . . 29 3. CAPWAP Transport . . . . . . . . . . . . . . . . . . . . . . 36
3. CAPWAP Transport . . . . . . . . . . . . . . . . . . . . . . 33 3.1. UDP Transport . . . . . . . . . . . . . . . . . . . . . . 36
3.1. UDP Transport . . . . . . . . . . . . . . . . . . . . . . 33 3.2. AC Discovery . . . . . . . . . . . . . . . . . . . . . . 36
3.2. AC Discovery . . . . . . . . . . . . . . . . . . . . . . 33 3.3. Fragmentation/Reassembly . . . . . . . . . . . . . . . . 37
3.3. Fragmentation/Reassembly . . . . . . . . . . . . . . . . 34 4. CAPWAP Packet Formats . . . . . . . . . . . . . . . . . . . . 38
4. CAPWAP Packet Formats . . . . . . . . . . . . . . . . . . . . 35 4.1. CAPWAP Preamble . . . . . . . . . . . . . . . . . . . . . 40
4.1. CAPWAP preamble . . . . . . . . . . . . . . . . . . . . . 37 4.2. CAPWAP Header . . . . . . . . . . . . . . . . . . . . . . 40
4.2. CAPWAP Header . . . . . . . . . . . . . . . . . . . . . . 37 4.3. CAPWAP Data Messages . . . . . . . . . . . . . . . . . . 44
4.3. CAPWAP Data Messages . . . . . . . . . . . . . . . . . . 41 4.3.1. CAPWAP Data Keepalive . . . . . . . . . . . . . . . . 44
4.3.1. CAPWAP Data Keepalive . . . . . . . . . . . . . . . . 41 4.3.2. Data Payload . . . . . . . . . . . . . . . . . . . . 45
4.3.2. Station Data Payloads . . . . . . . . . . . . . . . . 42 4.3.3. Establishment of a DTLS Data Channel . . . . . . . . 46
4.4. CAPWAP Control Messages . . . . . . . . . . . . . . . . . 43 4.4. CAPWAP Control Messages . . . . . . . . . . . . . . . . . 46
4.4.1. Control Message Format . . . . . . . . . . . . . . . 43 4.4.1. Control Message Format . . . . . . . . . . . . . . . 47
4.4.2. Control Message Quality of Service . . . . . . . . . 46 4.4.2. Control Message Quality of Service . . . . . . . . . 49
4.5. CAPWAP Protocol Message Elements . . . . . . . . . . . . 46 4.4.3. Retransmissions . . . . . . . . . . . . . . . . . . . 50
4.5.1. AC Descriptor . . . . . . . . . . . . . . . . . . . . 49 4.5. CAPWAP Protocol Message Elements . . . . . . . . . . . . 50
4.5.2. AC IPv4 List . . . . . . . . . . . . . . . . . . . . 50 4.5.1. AC Descriptor . . . . . . . . . . . . . . . . . . . . 53
4.5.3. AC IPv6 List . . . . . . . . . . . . . . . . . . . . 51 4.5.2. AC IPv4 List . . . . . . . . . . . . . . . . . . . . 54
4.5.4. AC Name . . . . . . . . . . . . . . . . . . . . . . . 51 4.5.3. AC IPv6 List . . . . . . . . . . . . . . . . . . . . 55
4.5.5. AC Name with Index . . . . . . . . . . . . . . . . . 52 4.5.4. AC Name . . . . . . . . . . . . . . . . . . . . . . . 55
4.5.6. AC Timestamp . . . . . . . . . . . . . . . . . . . . 52 4.5.5. AC Name with Index . . . . . . . . . . . . . . . . . 56
4.5.7. Add MAC ACL Entry . . . . . . . . . . . . . . . . . . 53 4.5.6. AC Timestamp . . . . . . . . . . . . . . . . . . . . 56
4.5.8. Add Station . . . . . . . . . . . . . . . . . . . . . 53 4.5.7. Add MAC ACL Entry . . . . . . . . . . . . . . . . . . 57
4.5.9. Add Static MAC ACL Entry . . . . . . . . . . . . . . 54 4.5.8. Add Station . . . . . . . . . . . . . . . . . . . . . 57
4.5.10. CAPWAP Control IPv4 Address . . . . . . . . . . . . . 55 4.5.9. Add Static MAC ACL Entry . . . . . . . . . . . . . . 58
4.5.11. CAPWAP Control IPv6 Address . . . . . . . . . . . . . 55 4.5.10. CAPWAP Control IPv4 Address . . . . . . . . . . . . . 58
4.5.12. CAPWAP Timers . . . . . . . . . . . . . . . . . . . . 56 4.5.11. CAPWAP Control IPv6 Address . . . . . . . . . . . . . 59
4.5.13. Data Transfer Data . . . . . . . . . . . . . . . . . 56 4.5.12. CAPWAP Timers . . . . . . . . . . . . . . . . . . . . 60
4.5.14. Data Transfer Mode . . . . . . . . . . . . . . . . . 57 4.5.13. Data Transfer Data . . . . . . . . . . . . . . . . . 60
4.5.15. Decryption Error Report . . . . . . . . . . . . . . . 57 4.5.14. Data Transfer Mode . . . . . . . . . . . . . . . . . 61
4.5.16. Decryption Error Report Period . . . . . . . . . . . 58 4.5.15. Decryption Error Report . . . . . . . . . . . . . . . 61
4.5.17. Delete MAC ACL Entry . . . . . . . . . . . . . . . . 58 4.5.16. Decryption Error Report Period . . . . . . . . . . . 62
4.5.18. Delete Station . . . . . . . . . . . . . . . . . . . 59 4.5.17. Delete MAC ACL Entry . . . . . . . . . . . . . . . . 62
4.5.19. Delete Static MAC ACL Entry . . . . . . . . . . . . . 59 4.5.18. Delete Station . . . . . . . . . . . . . . . . . . . 63
4.5.20. Discovery Type . . . . . . . . . . . . . . . . . . . 60 4.5.19. Delete Static MAC ACL Entry . . . . . . . . . . . . . 63
4.5.21. Duplicate IPv4 Address . . . . . . . . . . . . . . . 61 4.5.20. Discovery Type . . . . . . . . . . . . . . . . . . . 64
4.5.22. Duplicate IPv6 Address . . . . . . . . . . . . . . . 61 4.5.21. Duplicate IPv4 Address . . . . . . . . . . . . . . . 65
4.5.23. Idle Timeout . . . . . . . . . . . . . . . . . . . . 62 4.5.22. Duplicate IPv6 Address . . . . . . . . . . . . . . . 65
4.5.24. Image Data . . . . . . . . . . . . . . . . . . . . . 63 4.5.23. Idle Timeout . . . . . . . . . . . . . . . . . . . . 66
4.5.25. Image Filename . . . . . . . . . . . . . . . . . . . 63 4.5.24. Image Data . . . . . . . . . . . . . . . . . . . . . 67
4.5.26. Initiate Download . . . . . . . . . . . . . . . . . . 64 4.5.25. Image Identifier . . . . . . . . . . . . . . . . . . 67
4.5.27. Location Data . . . . . . . . . . . . . . . . . . . . 64 4.5.26. Image Information . . . . . . . . . . . . . . . . . . 68
4.5.28. MTU Discovery Padding . . . . . . . . . . . . . . . . 65 4.5.27. Initiate Download . . . . . . . . . . . . . . . . . . 69
4.5.29. Radio Administrative State . . . . . . . . . . . . . 65 4.5.28. Location Data . . . . . . . . . . . . . . . . . . . . 69
4.5.30. Radio Operational State . . . . . . . . . . . . . . . 66 4.5.29. Maximum Message Length . . . . . . . . . . . . . . . 69
4.5.31. Result Code . . . . . . . . . . . . . . . . . . . . . 67 4.5.30. MTU Discovery Padding . . . . . . . . . . . . . . . . 70
4.5.32. Returned Message Element . . . . . . . . . . . . . . 68 4.5.31. Radio Administrative State . . . . . . . . . . . . . 70
4.5.33. Session ID . . . . . . . . . . . . . . . . . . . . . 69 4.5.32. Radio Operational State . . . . . . . . . . . . . . . 71
4.5.34. Statistics Timer . . . . . . . . . . . . . . . . . . 69 4.5.33. Result Code . . . . . . . . . . . . . . . . . . . . . 72
4.5.35. Vendor Specific Payload . . . . . . . . . . . . . . . 70 4.5.34. Returned Message Element . . . . . . . . . . . . . . 73
4.5.36. WTP Board Data . . . . . . . . . . . . . . . . . . . 70 4.5.35. Session ID . . . . . . . . . . . . . . . . . . . . . 74
4.5.37. WTP Descriptor . . . . . . . . . . . . . . . . . . . 71 4.5.36. Statistics Timer . . . . . . . . . . . . . . . . . . 74
4.5.38. WTP Fallback . . . . . . . . . . . . . . . . . . . . 73 4.5.37. Vendor Specific Payload . . . . . . . . . . . . . . . 75
4.5.39. WTP Frame Tunnel Mode . . . . . . . . . . . . . . . . 73 4.5.38. WTP Board Data . . . . . . . . . . . . . . . . . . . 75
4.5.40. WTP IPv4 IP Address . . . . . . . . . . . . . . . . . 74 4.5.39. WTP Descriptor . . . . . . . . . . . . . . . . . . . 76
4.5.41. WTP MAC Type . . . . . . . . . . . . . . . . . . . . 75 4.5.40. WTP Fallback . . . . . . . . . . . . . . . . . . . . 78
4.5.42. WTP Name . . . . . . . . . . . . . . . . . . . . . . 75 4.5.41. WTP Frame Tunnel Mode . . . . . . . . . . . . . . . . 79
4.5.43. WTP Operational Statistics . . . . . . . . . . . . . 76 4.5.42. WTP IPv4 IP Address . . . . . . . . . . . . . . . . . 80
4.5.44. WTP Radio Statistics . . . . . . . . . . . . . . . . 76 4.5.43. WTP MAC Type . . . . . . . . . . . . . . . . . . . . 80
4.5.45. WTP Reboot Statistics . . . . . . . . . . . . . . . . 78 4.5.44. WTP Name . . . . . . . . . . . . . . . . . . . . . . 81
4.5.46. WTP Static IP Address Information . . . . . . . . . . 79 4.5.45. WTP Operational Statistics . . . . . . . . . . . . . 81
4.6. CAPWAP Protocol Timers . . . . . . . . . . . . . . . . . 80 4.5.46. WTP Radio Statistics . . . . . . . . . . . . . . . . 82
4.6.1. DataChannelKeepAlive . . . . . . . . . . . . . . . . 80 4.5.47. WTP Reboot Statistics . . . . . . . . . . . . . . . . 83
4.6.2. DataChannelDeadInterval . . . . . . . . . . . . . . . 80 4.5.48. WTP Static IP Address Information . . . . . . . . . . 84
4.6.3. DiscoveryInterval . . . . . . . . . . . . . . . . . . 81 4.6. CAPWAP Protocol Timers . . . . . . . . . . . . . . . . . 85
4.6.4. DTLSRehandshake . . . . . . . . . . . . . . . . . . . 81 4.6.1. ChangeStatePendingTimer . . . . . . . . . . . . . . . 85
4.6.5. DTLSSessionDelete . . . . . . . . . . . . . . . . . . 81 4.6.2. DataChannelKeepAlive . . . . . . . . . . . . . . . . 85
4.6.6. EchoInterval . . . . . . . . . . . . . . . . . . . . 81 4.6.3. DataChannelDeadInterval . . . . . . . . . . . . . . . 86
4.6.7. KeyLifetime . . . . . . . . . . . . . . . . . . . . . 81 4.6.4. DiscoveryInterval . . . . . . . . . . . . . . . . . . 86
4.6.8. MaxDiscoveryInterval . . . . . . . . . . . . . . . . 81 4.6.5. DTLSRehandshake . . . . . . . . . . . . . . . . . . . 86
4.6.9. MaxFailedDTLSSessionRetry . . . . . . . . . . . . . . 82 4.6.6. DTLSSessionDelete . . . . . . . . . . . . . . . . . . 86
4.6.10. NeighborDeadInterval . . . . . . . . . . . . . . . . 82 4.6.7. EchoInterval . . . . . . . . . . . . . . . . . . . . 86
4.6.11. ResponseTimeout . . . . . . . . . . . . . . . . . . . 82 4.6.8. KeyLifetime . . . . . . . . . . . . . . . . . . . . . 86
4.6.12. RetransmitInterval . . . . . . . . . . . . . . . . . 82 4.6.9. MaxDiscoveryInterval . . . . . . . . . . . . . . . . 87
4.6.13. SilentInterval . . . . . . . . . . . . . . . . . . . 82 4.6.10. MaxFailedDTLSSessionRetry . . . . . . . . . . . . . . 87
4.6.14. StatisticsTimer . . . . . . . . . . . . . . . . . . . 82 4.6.11. NeighborDeadInterval . . . . . . . . . . . . . . . . 87
4.6.15. WaitDTLS . . . . . . . . . . . . . . . . . . . . . . 82 4.6.12. ResponseTimeout . . . . . . . . . . . . . . . . . . . 87
4.7. CAPWAP Protocol Variables . . . . . . . . . . . . . . . . 83 4.6.13. RetransmitInterval . . . . . . . . . . . . . . . . . 87
4.7.1. AdminState . . . . . . . . . . . . . . . . . . . . . 83 4.6.14. SilentInterval . . . . . . . . . . . . . . . . . . . 87
4.7.2. DiscoveryCount . . . . . . . . . . . . . . . . . . . 83 4.6.15. StatisticsTimer . . . . . . . . . . . . . . . . . . . 88
4.7.3. FailedDTLSSessionCount . . . . . . . . . . . . . . . 83 4.6.16. WaitDTLS . . . . . . . . . . . . . . . . . . . . . . 88
4.7.4. IdleTimeout . . . . . . . . . . . . . . . . . . . . . 83 4.6.17. WaitJoin . . . . . . . . . . . . . . . . . . . . . . 88
4.7.5. MaxDiscoveries . . . . . . . . . . . . . . . . . . . 83 4.7. CAPWAP Protocol Variables . . . . . . . . . . . . . . . . 88
4.7.6. MaxRetransmit . . . . . . . . . . . . . . . . . . . . 83 4.7.1. AdminState . . . . . . . . . . . . . . . . . . . . . 88
4.7.7. ReportInterval . . . . . . . . . . . . . . . . . . . 83 4.7.2. DiscoveryCount . . . . . . . . . . . . . . . . . . . 88
4.7.8. RetransmitCount . . . . . . . . . . . . . . . . . . . 84 4.7.3. FailedDTLSAuthFailCount . . . . . . . . . . . . . . . 88
4.7.9. WTPFallBack . . . . . . . . . . . . . . . . . . . . . 84 4.7.4. FailedDTLSSessionCount . . . . . . . . . . . . . . . 88
4.8. WTP Saved Variables . . . . . . . . . . . . . . . . . . . 84 4.7.5. IdleTimeout . . . . . . . . . . . . . . . . . . . . . 89
4.8.1. AdminRebootCount . . . . . . . . . . . . . . . . . . 84 4.7.6. MaxDiscoveries . . . . . . . . . . . . . . . . . . . 89
4.8.2. FrameEncapType . . . . . . . . . . . . . . . . . . . 84 4.7.7. MaxRetransmit . . . . . . . . . . . . . . . . . . . . 89
4.8.3. LastRebootReason . . . . . . . . . . . . . . . . . . 84 4.7.8. ReportInterval . . . . . . . . . . . . . . . . . . . 89
4.8.4. MacType . . . . . . . . . . . . . . . . . . . . . . . 84 4.7.9. RetransmitCount . . . . . . . . . . . . . . . . . . . 89
4.8.5. PreferredACs . . . . . . . . . . . . . . . . . . . . 84 4.7.10. WTPFallBack . . . . . . . . . . . . . . . . . . . . . 89
4.8.6. RebootCount . . . . . . . . . . . . . . . . . . . . . 84 4.8. WTP Saved Variables . . . . . . . . . . . . . . . . . . . 89
4.8.7. Static ACL Table . . . . . . . . . . . . . . . . . . 85 4.8.1. AdminRebootCount . . . . . . . . . . . . . . . . . . 89
4.8.8. Static IP Address . . . . . . . . . . . . . . . . . . 85 4.8.2. FrameEncapType . . . . . . . . . . . . . . . . . . . 89
4.8.9. WTPLinkFailureCount . . . . . . . . . . . . . . . . . 85 4.8.3. LastRebootReason . . . . . . . . . . . . . . . . . . 90
4.8.10. WTPLocation . . . . . . . . . . . . . . . . . . . . . 85 4.8.4. MacType . . . . . . . . . . . . . . . . . . . . . . . 90
4.8.11. WTPName . . . . . . . . . . . . . . . . . . . . . . . 85 4.8.5. PreferredACs . . . . . . . . . . . . . . . . . . . . 90
5. CAPWAP Discovery Operations . . . . . . . . . . . . . . . . . 86 4.8.6. RebootCount . . . . . . . . . . . . . . . . . . . . . 90
5.1. Discovery Request Message . . . . . . . . . . . . . . . . 86 4.8.7. Static ACL Table . . . . . . . . . . . . . . . . . . 90
5.2. Discovery Response Message . . . . . . . . . . . . . . . 87 4.8.8. Static IP Address . . . . . . . . . . . . . . . . . . 90
5.3. Primary Discovery Request Message . . . . . . . . . . . . 87 4.8.9. WTPLinkFailureCount . . . . . . . . . . . . . . . . . 90
5.4. Primary Discovery Response . . . . . . . . . . . . . . . 88 4.8.10. WTPLocation . . . . . . . . . . . . . . . . . . . . . 90
6. CAPWAP Join Operations . . . . . . . . . . . . . . . . . . . 90 4.8.11. WTPName . . . . . . . . . . . . . . . . . . . . . . . 90
6.1. Join Request . . . . . . . . . . . . . . . . . . . . . . 90 5. CAPWAP Discovery Operations . . . . . . . . . . . . . . . . . 91
6.2. Join Response . . . . . . . . . . . . . . . . . . . . . . 91 5.1. Discovery Request Message . . . . . . . . . . . . . . . . 91
7. Control Channel Management . . . . . . . . . . . . . . . . . 92 5.2. Discovery Response Message . . . . . . . . . . . . . . . 92
7.1. Echo Request . . . . . . . . . . . . . . . . . . . . . . 92 5.3. Primary Discovery Request Message . . . . . . . . . . . . 93
7.2. Echo Response . . . . . . . . . . . . . . . . . . . . . . 92 5.4. Primary Discovery Response . . . . . . . . . . . . . . . 94
8. WTP Configuration Management . . . . . . . . . . . . . . . . 93 6. CAPWAP Join Operations . . . . . . . . . . . . . . . . . . . 95
8.1. Configuration Consistency . . . . . . . . . . . . . . . . 93 6.1. Join Request . . . . . . . . . . . . . . . . . . . . . . 95
8.1.1. Configuration Flexibility . . . . . . . . . . . . . . 94 6.2. Join Response . . . . . . . . . . . . . . . . . . . . . . 96
8.2. Configuration Status . . . . . . . . . . . . . . . . . . 94 7. Control Channel Management . . . . . . . . . . . . . . . . . 98
8.3. Configuration Status Response . . . . . . . . . . . . . . 95 7.1. Echo Request . . . . . . . . . . . . . . . . . . . . . . 98
8.4. Configuration Status Acknowledge . . . . . . . . . . . . 96 7.2. Echo Response . . . . . . . . . . . . . . . . . . . . . . 98
8.5. Configuration Update Request . . . . . . . . . . . . . . 96 8. WTP Configuration Management . . . . . . . . . . . . . . . . 100
8.6. Configuration Update Response . . . . . . . . . . . . . . 97 8.1. Configuration Consistency . . . . . . . . . . . . . . . . 100
8.7. Change State Event Request . . . . . . . . . . . . . . . 97 8.1.1. Configuration Flexibility . . . . . . . . . . . . . . 101
8.8. Change State Event Response . . . . . . . . . . . . . . . 98 8.2. Configuration Status . . . . . . . . . . . . . . . . . . 101
8.9. Clear Configuration Request . . . . . . . . . . . . . . . 99 8.3. Configuration Status Response . . . . . . . . . . . . . . 102
8.10. Clear Configuration Response . . . . . . . . . . . . . . 99 8.4. Configuration Update Request . . . . . . . . . . . . . . 103
9. Device Management Operations . . . . . . . . . . . . . . . . 100 8.5. Configuration Update Response . . . . . . . . . . . . . . 104
9.1. Image Data Request . . . . . . . . . . . . . . . . . . . 100 8.6. Change State Event Request . . . . . . . . . . . . . . . 104
9.2. Image Data Response . . . . . . . . . . . . . . . . . . . 101 8.7. Change State Event Response . . . . . . . . . . . . . . . 105
9.3. Reset Request . . . . . . . . . . . . . . . . . . . . . . 101 8.8. Clear Configuration Request . . . . . . . . . . . . . . . 106
9.4. Reset Response . . . . . . . . . . . . . . . . . . . . . 101 8.9. Clear Configuration Response . . . . . . . . . . . . . . 106
9.5. WTP Event Request . . . . . . . . . . . . . . . . . . . . 102 9. Device Management Operations . . . . . . . . . . . . . . . . 107
9.6. WTP Event Response . . . . . . . . . . . . . . . . . . . 102 9.1. Firmware Management . . . . . . . . . . . . . . . . . . . 107
9.7. Data Transfer Request . . . . . . . . . . . . . . . . . . 103 9.1.1. Image Data Request . . . . . . . . . . . . . . . . . 110
9.8. Data Transfer Response . . . . . . . . . . . . . . . . . 103 9.1.2. Image Data Response . . . . . . . . . . . . . . . . . 111
10. Station Session Management . . . . . . . . . . . . . . . . . 104 9.2. Reset Request . . . . . . . . . . . . . . . . . . . . . . 112
10.1. Station Configuration Request . . . . . . . . . . . . . . 104 9.3. Reset Response . . . . . . . . . . . . . . . . . . . . . 112
10.2. Station Configuration Response . . . . . . . . . . . . . 104 9.4. WTP Event Request . . . . . . . . . . . . . . . . . . . . 113
11. NAT Considerations . . . . . . . . . . . . . . . . . . . . . 105 9.5. WTP Event Response . . . . . . . . . . . . . . . . . . . 114
12. Security Considerations . . . . . . . . . . . . . . . . . . . 107 9.6. Data Transfer Request . . . . . . . . . . . . . . . . . . 114
12.1. CAPWAP Security . . . . . . . . . . . . . . . . . . . . . 107 9.7. Data Transfer Response . . . . . . . . . . . . . . . . . 114
12.1.1. Converting Protected Data into Unprotected Data . . . 108 10. Station Session Management . . . . . . . . . . . . . . . . . 116
10.1. Station Configuration Request . . . . . . . . . . . . . . 116
10.2. Station Configuration Response . . . . . . . . . . . . . 116
11. NAT Considerations . . . . . . . . . . . . . . . . . . . . . 117
12. Security Considerations . . . . . . . . . . . . . . . . . . . 119
12.1. CAPWAP Security . . . . . . . . . . . . . . . . . . . . . 119
12.1.1. Converting Protected Data into Unprotected Data . . . 120
12.1.2. Converting Unprotected Data into Protected Data 12.1.2. Converting Unprotected Data into Protected Data
(Insertion) . . . . . . . . . . . . . . . . . . . . . 108 (Insertion) . . . . . . . . . . . . . . . . . . . . . 120
12.1.3. Deletion of Protected Records . . . . . . . . . . . . 108 12.1.3. Deletion of Protected Records . . . . . . . . . . . . 120
12.1.4. Insertion of Unprotected Records . . . . . . . . . . 108 12.1.4. Insertion of Unprotected Records . . . . . . . . . . 120
12.2. Use of Preshared Keys in CAPWAP . . . . . . . . . . . . . 108 12.2. Session ID Security . . . . . . . . . . . . . . . . . . . 120
12.3. Use of Certificates in CAPWAP . . . . . . . . . . . . . . 109 12.3. Discovery Attacks . . . . . . . . . . . . . . . . . . . . 121
12.4. AAA Security . . . . . . . . . . . . . . . . . . . . . . 110 12.4. Interference with a DTLS Session . . . . . . . . . . . . 121
13. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 111 12.5. Use of Preshared Keys in CAPWAP . . . . . . . . . . . . . 121
14. References . . . . . . . . . . . . . . . . . . . . . . . . . 112 12.6. Use of Certificates in CAPWAP . . . . . . . . . . . . . . 122
14.1. Normative References . . . . . . . . . . . . . . . . . . 112 12.7. AAA Security . . . . . . . . . . . . . . . . . . . . . . 123
14.2. Informational References . . . . . . . . . . . . . . . . 112 13. Management Considerations . . . . . . . . . . . . . . . . . . 124
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 114 14. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 125
Intellectual Property and Copyright Statements . . . . . . . . . 115 14.1. CAPWAP Message Types . . . . . . . . . . . . . . . . . . 125
15. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 126
16. References . . . . . . . . . . . . . . . . . . . . . . . . . 127
16.1. Normative References . . . . . . . . . . . . . . . . . . 127
16.2. Informational References . . . . . . . . . . . . . . . . 127
16.3. Informational References . . . . . . . . . . . . . . . . 128
Editors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 129
Intellectual Property and Copyright Statements . . . . . . . . . 130
1. Introduction 1. Introduction
This document describes the CAPWAP Protocol, a standard, This document describes the CAPWAP Protocol, a standard,
interoperable protocol which enables an Access Controller (AC) to interoperable protocol which enables an Access Controller (AC) to
manage a collection of Wireless Termination Points (WTPs). The manage a collection of Wireless Termination Points (WTPs). The
CAPWAP protocol is defined to be independent of layer 2 technology. CAPWAP protocol is defined to be independent of layer 2 technology.
The emergence of centralized IEEE 802.11 Wireless Local Area Network The emergence of centralized IEEE 802.11 Wireless Local Area Network
(WLAN) architectures, in which simple IEEE 802.11 WTPs are managed by (WLAN) architectures, in which simple IEEE 802.11 WTPs are managed by
an Access Controller (AC) suggested that a standards based, an Access Controller (AC) suggested that a standards based,
interoperable protocol could radically simplify the deployment and interoperable protocol could radically simplify the deployment and
management of wireless networks. WTPs require a set of dynamic management of wireless networks. WTPs require a set of dynamic
management and control functions related to their primary task of management and control functions related to their primary task of
connecting the wireless and wired mediums. Traditional protocols for connecting the wireless and wired mediums. Traditional protocols for
managing WTPs are either manual static configuration via HTTP, managing WTPs are either manual static configuration via HTTP,
proprietary Layer 2 specific or non-existent (if the WTPs are self- proprietary Layer 2 specific or non-existent (if the WTPs are self-
contained). An IEEE 802.11 binding is defined in [12] to support use contained). An IEEE 802.11 binding is defined in [13] to support use
of the CAPWAP protocol with IEEE 802.11 WLAN networks. of the CAPWAP protocol with IEEE 802.11 WLAN networks.
CAPWAP assumes a network configuration consisting of multiple WTPs CAPWAP assumes a network configuration consisting of multiple WTPs
communicating via the Internet Protocol (IP) to an AC. WTPs are communicating via the Internet Protocol (IP) to an AC. WTPs are
viewed as remote RF interfaces controlled by the AC. The CAPWAP viewed as remote RF interfaces controlled by the AC. The CAPWAP
protocol supports two modes of operation: Split and Local MAC. In protocol supports two modes of operation: Split and Local MAC. In
Split MAC mode all L2 wireless data and management frames are Split MAC mode all L2 wireless data and management frames are
encapsulated via the CAPWAP protocol and exchanged between the AC and encapsulated via the CAPWAP protocol and exchanged between the AC and
the WTP. As shown in Figure 1, the wireless frames received from a the WTP. As shown in Figure 1, the wireless frames received from a
mobile device, which is referred to in this specification as a mobile device, which is referred to in this specification as a
Station (or STA for short), are directly encapsulated by the WTP and Station (STA), are directly encapsulated by the WTP and forwarded to
forwarded to the AC. the AC.
+-+ wireless frames +-+ +-+ wireless frames +-+
| |--------------------------------| | | |--------------------------------| |
| | +-+ | | | | +-+ | |
| |--------------| |---------------| | | |--------------| |---------------| |
| |wireless PHY/ | | CAPWAP | | | |wireless PHY/ | | CAPWAP | |
| | MAC sublayer | | | | | | MAC sublayer | | | |
+-+ +-+ +-+ +-+ +-+ +-+
STA WTP AC STA WTP AC
skipping to change at page 7, line 45 skipping to change at page 8, line 45
the WTP. This leaves the time critical applications of wireless the WTP. This leaves the time critical applications of wireless
control and access in the WTP, making efficient use of the control and access in the WTP, making efficient use of the
computing power available in WTPs which are the subject to severe computing power available in WTPs which are the subject to severe
cost pressure. cost pressure.
3. To provide a generic encapsulation and transport mechanism, 3. To provide a generic encapsulation and transport mechanism,
enabling the CAPWAP protocol to be applied to many access point enabling the CAPWAP protocol to be applied to many access point
types in the future, via a specific wireless binding. types in the future, via a specific wireless binding.
The CAPWAP protocol concerns itself solely with the interface between The CAPWAP protocol concerns itself solely with the interface between
the WTP and the AC. Inter-AC, or station to AC communication is the WTP and the AC. Inter-AC and station-to AC-communication are
strictly outside the scope of this document. strictly outside the scope of this document.
1.2. Conventions used in this document 1.2. Conventions used in this document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [1]. document are to be interpreted as described in RFC 2119 [1].
1.3. Contributing Authors 1.3. Contributing Authors
This section lists and acknowledges the authors of significant text This section lists and acknowledges the authors of significant text
and concepts included in this specification. [Note: This section and concepts included in this specification.
needs work to accurately reflect the contribution of each author and
this work will be done a future revision of this document.]
The CAPWAP Working Group selected the Lightweight Access Point The CAPWAP Working Group selected the Lightweight Access Point
Protocol (LWAPP) [add reference, when available]to be used as the Protocol (LWAPP) [add reference, when available]to be used as the
basis of the CAPWAP protocol specification. The following people are basis of the CAPWAP protocol specification. The following people are
authors of the LWAPP document: authors of the LWAPP document:
Bob O'Hara, Cisco Systems, Inc.,170 West Tasman Drive, San Jose, CA 95134 Bob O'Hara, Cisco Systems, Inc.,170 West Tasman Drive, San Jose, CA 95134
Phone: +1 408-853-5513, Email: bob.ohara@cisco.com Phone: +1 408-853-5513, Email: bob.ohara@cisco.com
Pat Calhoun, Cisco Systems, Inc., 170 West Tasman Drive, San Jose, CA 95134 Pat Calhoun, Cisco Systems, Inc., 170 West Tasman Drive, San Jose, CA 95134
skipping to change at page 9, line 14 skipping to change at page 10, line 14
Partha Narasimhan, Aruba Networks, 1322 Crossman Ave, Sunnyvale, CA 94089 Partha Narasimhan, Aruba Networks, 1322 Crossman Ave, Sunnyvale, CA 94089
Phone: +1 408-480-4716, Email: partha@arubanetworks.com Phone: +1 408-480-4716, Email: partha@arubanetworks.com
Dan Harkins, Tropos Networks, 555 Del Rey Avenue, Sunnyvale, CA, 95085 Dan Harkins, Tropos Networks, 555 Del Rey Avenue, Sunnyvale, CA, 95085
Phone: +1 408 470 7372, Email: dharkins@tropos.com Phone: +1 408 470 7372, Email: dharkins@tropos.com
Subbu Ponnuswamy, Aruba Networks, 1322 Crossman Ave, Sunnyvale, CA 94089 Subbu Ponnuswamy, Aruba Networks, 1322 Crossman Ave, Sunnyvale, CA 94089
Phone: +1 408-754-1213, Email: subbu@arubanetworks.com Phone: +1 408-754-1213, Email: subbu@arubanetworks.com
1.4. Acknowledgements The following individuals contributed significant security related
text to the draft:
The authors thank Michael Vakulenko for contributing text that T. Charles Clancy, Laboratory for Telecommunications Sciences,
describes how CAPWAP can be used over a layer 3 (IP/UDP) network. 8080 Greenmead Drive, College Park, MD 20740
Phone: +1 240-373-5069, Email: clancy@ltsnet.net
The authors thank Russ Housley and Charles Clancy for their Scott Kelly, Aruba Networks, 1322 Crossman Ave, Sunnyvale, CA 94089
assistance in provide a security review of the LWAPP specification. Phone: +1 408-754-8408, Email: skelly@arubanetworks.com
Charles' review can be found at [11].
1.5. Terminology 1.4. Terminology
Access Controller (AC): The network entity that provides WTPs access Access Controller (AC): The network entity that provides WTPs access
to the network infrastructure in the data plane, control plane, to the network infrastructure in the data plane, control plane,
management plane, or a combination therein. management plane, or a combination therein.
Station (STA): A device that contains an IEEE 802.11 conformant Station (STA): A device that contains an IEEE 802.11 conformant
medium access control (MAC) and physical layer (PHY) interface to the medium access control (MAC) and physical layer (PHY) interface to the
wireless medium (WM). wireless medium (WM).
Wireless Termination Point (WTP): The physical or network entity that Wireless Termination Point (WTP): The physical or network entity that
contains an RF antenna and wireless PHY to transmit and receive contains an RF antenna and wireless PHY to transmit and receive
station traffic for wireless access networks. station traffic for wireless access networks.
This Document uses additional terminology defined in [8]. This document uses additional terminology defined in [8].
2. Protocol Overview 2. Protocol Overview
The CAPWAP protocol is a generic protocol defining AC and WTP control The CAPWAP protocol is a generic protocol defining AC and WTP control
and data plane communication via a CAPWAP protocol transport and data plane communication via a CAPWAP protocol transport
mechanism. CAPWAP control messages, and optionally CAPWAP data mechanism. CAPWAP control messages, and optionally CAPWAP data
messages, are secured using Datagram Transport Layer Security (DTLS) messages, are secured using Datagram Transport Layer Security (DTLS)
[7]. DTLS is a standards-track IETF protocol based upon TLS. The [7]. DTLS is a standards-track IETF protocol based upon TLS. The
underlying security-related protocol mechanisms of TLS have been underlying security-related protocol mechanisms of TLS have been
successfully deployed for many years. successfully deployed for many years.
The CAPWAP protocol Transport layer carries two types of payload, The CAPWAP protocol Transport layer carries two types of payload,
CAPWAP Data messages and CAPWAP Control messages. CAPWAP Data CAPWAP Data messages and CAPWAP Control messages. CAPWAP Data
messages encapsulate forwarded wireless frames. CAPWAP protocol messages encapsulate forwarded wireless frames. CAPWAP protocol
Control messages are management messages exchanged between a WTP and Control messages are management messages exchanged between a WTP and
an AC. The CAPWAP Data and Control packets are sent over separate an AC. The CAPWAP Data and Control packets are sent over separate
UDP ports. Since both data and control frames can exceed the PMTU, UDP ports. Since both data and control packets can exceed the
the payload of a CAPWAP data or control message can be fragmented. Maximum Transmission Unit (MTU) length, the payload of a CAPWAP data
The fragmentation behavior is defined in Section 3. or control message can be fragmented. The fragmentation behavior is
defined in Section 3.
The CAPWAP Protocol begins with a discovery phase. The WTPs send a The CAPWAP Protocol begins with a discovery phase. The WTPs send a
Discovery Request message, causing any Access Controller (AC) Discovery Request message, causing any Access Controller (AC)
receiving the message to respond with a Discovery Response message. receiving the message to respond with a Discovery Response message.
From the Discovery Response messages received, a WTP will select an From the Discovery Response messages received, a WTP selects an AC
AC with which to establish a secure DTLS session. CAPWAP protocol with which to establish a secure DTLS session. CAPWAP protocol
messages will be fragmented to the maximum length discovered to be messages will be fragmented to the maximum length discovered to be
supported by the network. supported by the network.
Once the WTP and the AC have completed DTLS session establishment, a Once the WTP and the AC have completed DTLS session establishment, a
configuration exchange occurs in which both devices to agree on configuration exchange occurs in which both devices agree on version
version information. During this exchange the WTP may receive information. During this exchange the WTP may receive provisioning
provisioning settings. The WTP is then enabled for operation. settings. The WTP is then enabled for operation.
When the WTP and AC have completed the version and provision exchange When the WTP and AC have completed the version and provision exchange
and the WTP is enabled, the CAPWAP protocol is used to encapsulate and the WTP is enabled, the CAPWAP protocol is used to encapsulate
the wireless data frames sent between the WTP and AC. The CAPWAP the wireless data frames sent between the WTP and AC. The CAPWAP
protocol will fragment the L2 frames if the size of the encapsulated protocol will fragment the L2 frames if the size of the encapsulated
wireless user data (Data) or protocol control (Management) frames wireless user data (Data) or protocol control (Management) frames
causes the resulting CAPWAP protocol packet to exceed the MTU causes the resulting CAPWAP protocol packet to exceed the MTU
supported between the WTP and AC. Fragmented CAPWAP packets are supported between the WTP and AC. Fragmented CAPWAP packets are
reassembled to reconstitute the original encapsulated payload. reassembled to reconstitute the original encapsulated payload.
skipping to change at page 11, line 21 skipping to change at page 12, line 22
The CAPWAP protocol is independent of a specific WTP radio The CAPWAP protocol is independent of a specific WTP radio
technology. Elements of the CAPWAP protocol are designed to technology. Elements of the CAPWAP protocol are designed to
accommodate the specific needs of each wireless technology in a accommodate the specific needs of each wireless technology in a
standard way. Implementation of the CAPWAP protocol for a particular standard way. Implementation of the CAPWAP protocol for a particular
wireless technology must follow the binding requirements defined for wireless technology must follow the binding requirements defined for
that technology. that technology.
When defining a binding for wireless technologies, the authors MUST When defining a binding for wireless technologies, the authors MUST
include any necessary definitions for technology-specific messages include any necessary definitions for technology-specific messages
and all technology-specific message elements for those messages. At and all technology-specific message elements for those messages. At
a minimum, a binding MUST provide the definition for a binding- a minimum, a binding MUST provide:
specific Statistics message element, carried in the WTP Event Request
message, a message element carried in the Station Configure Request 1 - The definition for a binding-specific Statistics message
to configure STA information on the WTP, and a WTP Radio Information element, carried in the WTP Event Request message
message element carried in the Discovery Request, Primary Discovery
Request and and Join Request messages, indicating the binding 2 - A message element carried in the Station Configuration Request
specific radio types supported at the WTP. If technology specific message to configure station information on the WTP
message elements are required for any of the existing CAPWAP messages
defined in this specification, they MUST also be defined in the 3 - A WTP Radio Information message element carried in the
technology binding document. Discovery, Primary Discovery and Join Request and Response
messages, indicating the binding specific radio types supported at
the WTP and AC.
If technology specific message elements are required for any of the
existing CAPWAP 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 The naming of binding-specific message elements MUST begin with the
name of the technology type, e.g., the binding for IEEE 802.11, name of the technology type, e.g., the binding for IEEE 802.11,
provided in [12], begins with "IEEE 802.11"." provided in [13], begins with "IEEE 802.11".
The CAPWAP binding concept is also used in any future specifications
that add functionality to either the base CAPWAP protocol
specification, or any published CAPWAP binding specification. A
separate WTP Radio Information message element MUST be created to
properly advertise support for the specification. This mechanism
allows for future protocol extensibility, while providing the
necessary capabilities advertisement, through the WTP Radio
Information message element, to ensure WTP/AC interoperability.
2.2. CAPWAP Session Establishment Overview 2.2. CAPWAP Session Establishment Overview
This section describes the session establishment process message This section describes the session establishment process message
exchanges in the ideal case. The annotated ladder diagram shows the exchanges in the ideal case. The annotated ladder diagram shows the
AC on the right, the WTP on the left, and assumes the use of AC on the right, the WTP on the left, and assumes the use of
certificates for DTLS authentication. The CAPWAP Protocol State certificates for DTLS authentication. The CAPWAP Protocol State
Machine is described in detail in Section 2.3. Machine is described in detail in Section 2.3.
============ ============ ============ ============
WTP AC WTP AC
============ ============ ============ ============
[----------- begin optional discovery ------------] [----------- begin optional discovery ------------]
Discover Request ------> Discover Request ------>
<------ Discover Response <------ Discover Response
[----------- end optional discovery ------------] [----------- end optional discovery ------------]
(--- begin dtls handshake ---)
(--- begin DTLS handshake ---)
ClientHello ------> ClientHello ------>
<------ HelloVerifyRequest <------ HelloVerifyRequest
(with cookie) (with cookie)
ClientHello ------> ClientHello ------>
(with cookie) (with cookie)
<------ ServerHello <------ ServerHello
<------ Certificate <------ Certificate
<------ ServerHelloDone <------ ServerHelloDone
skipping to change at page 12, line 34 skipping to change at page 14, line 4
(AC callout for WTP (AC callout for WTP
authorization) authorization)
[ChangeCipherSpec] [ChangeCipherSpec]
<------ Finished <------ Finished
(--- DTLS session is established now ---) (--- DTLS session is established now ---)
Join Request ------> Join Request ------>
<------ Join Response <------ Join Response
( ---assume image is up to date ---) ( ---assume image is up to date ---)
Configure Request -------> Configuration Status Request ------->
<------ Configure Response <------ Configuration Status Response
(--- enter RUN state ---) (--- enter RUN state ---)
: :
: :
Echo Request -------> Echo Request ------->
<------ Echo Response <------ Echo Response
: :
skipping to change at page 13, line 21 skipping to change at page 14, line 38
idealized illustration, provided to clarify protocol operation. idealized illustration, provided to clarify protocol operation.
Section 2.3 provides a detailed description of the corresponding Section 2.3 provides a detailed description of the corresponding
state machine. state machine.
2.3. CAPWAP State Machine Definition 2.3. CAPWAP State Machine Definition
The following state diagram represents the lifecycle of a WTP-AC The following state diagram represents the lifecycle of a WTP-AC
session. Use of DTLS by the CAPWAP protocol results in the session. Use of DTLS by the CAPWAP protocol results in the
juxtaposition of two nominally separate yet tightly bound state juxtaposition of two nominally separate yet tightly bound state
machines. The DTLS and CAPWAP state machines are coupled through an machines. The DTLS and CAPWAP state machines are coupled through an
API consisting of commands (from CAPWAP to DTLS) and notifications API consisting of commands (see Section 2.3.2.1) and notifications
(from DTLS to CAPWAP). Certain transitions in the DTLS state machine (see Section 2.3.2.2). Certain transitions in the DTLS state machine
are triggered by commands from the CAPWAP state machine, while are triggered by commands from the CAPWAP state machine, while
certain transitions in the CAPWAP state machine are triggered by certain transitions in the CAPWAP state machine are triggered by
notifications from the DTLS state machine. notifications from the DTLS state machine.
/-------------------------\ /-------------------------\
w| | w| |
5+----------+ x +------------+ | 5+----------+ x +------------+ |
| Run |-->| Reset |-\| | Run |-->| Reset |-\|
+----------+ +------------+ || +----------+ +------------+ ||
u ^ ^ ^ y|| u ^ ^ ^ y||
+------------+--------/ | | || +------------+--------/ | | ||
| Data Check | /-------/ | || | Data Check | /-------/ | ||
+------------+<-------\ | | || +------------+<-------\ | | ||
t| s| 4 o| || | | ||
+--------+ +-----------+ +------------+ || /------------------+--------\ | ||
| Join |---->| Configure |---->| Image Data | || r| t| s| 4 v o| ||
+--------+ q +-----------+ r +------------+ || +--------+ +-----------+ +--------------+||
^ p| || | Join |---->| Configure | | Image Data |||
| \------------------------------------\ || +--------+ q +-----------+ +--------------+||
\---------------------\ | || ^ p| V| x| ||
/--------------<----------------+---------------\ | || | | \-------------------\ | ||
| /------------<-------------\ | | | || | \--------------------------------------\| | ||
| | m| |n z| v vv \------------------------\ || | ||
/--------------<----------------+--------------\ || | ||
| /------------<-------------\ | | || | ||
| | m| |n z| vv v vv
| | +----------------+ +--------------+ +-----------+ | | +----------------+ +--------------+ +-----------+
| | | DTLS Setup | | DTLS Connect | | DTLS TD | | | | DTLS Setup | | DTLS Connect | | DTLS TD |
| | +----------------+ +--------------+ +-----------+ | | +----------------+ +--------------+ +-----------+
| | g| ^ ^ |h ^ ^ | | g| ^ ^ |h ^ ^
v v | | | | | | v v | | | | | |
| | | | | \-------\ | /-----------/ | | | | | \-------\ | /-----------/
| | | | | | | | | | | | | | | |
| | v |e f| 2 v |j |k | | v |e f| 2 v |j |k
| \->+------+ +------+ +-----------+ | \->+------+ +------+ +-----------+
| | Idle |-->| Disc | | Authorize | | | Idle |-->| Disc | | Authorize |
skipping to change at page 15, line 5 skipping to change at page 16, line 6
Figure 3: CAPWAP Integrated State Machine Figure 3: CAPWAP Integrated State Machine
The CAPWAP protocol state machine, depicted above, is used by both The CAPWAP protocol state machine, depicted above, is used by both
the AC and the WTP. In cases where states are not shared (i.e. not the AC and the WTP. In cases where states are not shared (i.e. not
implemented in one or the other of the AC or WTP), this is explicitly implemented in one or the other of the AC or WTP), this is explicitly
called out in the transition descriptions below. For every state called out in the transition descriptions below. For every state
defined, only certain messages are permitted to be sent and received. defined, only certain messages are permitted to be sent and received.
The CAPWAP control messages definitions specify the state(s) in which The CAPWAP control messages definitions specify the state(s) in which
each message is valid. each message is valid.
Since the WTP only communicates with a single AC, it only has a
single instance of the CAPWAP state machine. The AC has a separate
instance of the CAPWAP state machine per WTP it is communicating
with.
2.3.1. CAPWAP Protocol State Transitions 2.3.1. CAPWAP Protocol State Transitions
The following text discusses the various state transitions, and the This section describes the various state transitions, and the events
events that cause them. This section does not discuss interactions that cause them. This section does not discuss interactions between
between DTLS- and CAPWAP-specific states. Those interactions, as DTLS- and CAPWAP-specific states. Those interactions, and DTLS-
well as DTLS-specific states and transitions, are discussed in specific states and transitions, are discussed in Section 2.3.2.
Section 2.3.2.
Idle to Discovery (a): This transition occurs once device Idle to Discovery (a): This transition occurs once device
initialization is complete. initialization is complete.
WTP: The WTP enters the Discovery state prior to transmitting the WTP: The WTP enters the Discovery state prior to transmitting the
first Discovery Request message (see Section 5.1). Upon first Discovery Request message (see Section 5.1). Upon
entering this state, the WTP sets the DiscoveryInterval timer entering this state, the WTP sets the DiscoveryInterval timer
(see Section 4.6). The WTP resets the DiscoveryCount counter (see Section 4.6). The WTP resets the DiscoveryCount counter
to zero (0) (see Section 4.7). The WTP also clears all to zero (0) (see Section 4.7). The WTP also clears all
information from ACs it may have received during a previous information from ACs it may have received during a previous
skipping to change at page 15, line 33 skipping to change at page 16, line 38
AC: The AC does not maintain state information for the WTP upon AC: The AC does not maintain state information for the WTP upon
reception of the Discovery Request message, but it SHOULD reception of the Discovery Request message, but it SHOULD
respond with a Discovery Response message (see Section 5.2). respond with a Discovery Response message (see Section 5.2).
This transition is a no-op for the AC. This transition is a no-op for the AC.
Idle to Sulking (b): This transition occurs to force the WTP and AC Idle to Sulking (b): This transition occurs to force the WTP and AC
to enter a quiet period to avoid repeatedly attempting to to enter a quiet period to avoid repeatedly attempting to
establish a connection. establish a connection.
WTP: The WTP enters this state when the FailedDTLSSessionCount WTP: The WTP enters this state when the FailedDTLSSessionCount or
counter reaches MaxFailedDTLSSessionRetry variable (see the FailedDTLSAuthFailCount counter reaches
Section 4.7). Upon entering this state, the WTP shall start MaxFailedDTLSSessionRetry variable (see Section 4.7). Upon
the SilentInterval timer. While in the Sulking state, all entering this state, the WTP MUST start the SilentInterval
received CAPWAP and DTLS protocol messages received shall be timer. While in the Sulking state, all received CAPWAP and
ignored. DTLS protocol messages received MUST be ignored.
AC: The AC enters this state with the specific WTP when the AC: The AC enters this state with the specific WTP when the
FailedDTLSSessionCount counter reaches FailedDTLSSessionCount or the FailedDTLSAuthFailCount counter
MaxFailedDTLSSessionRetry variable (see Section 4.7). Upon reaches MaxFailedDTLSSessionRetry variable (see Section 4.7).
entering this state, the AC shall start the SilentInterval Upon entering this state, the AC MUST start the SilentInterval
timer. While in the Sulking state, all received CAPWAP and timer. While in the Sulking state, all received CAPWAP and
DTLS protocol messages received from the WTP shall be ignored. DTLS protocol messages received from the WTP MUST be ignored.
Discovery to Discovery (2): In the Discovery state, the WTP Discovery to Discovery (2): In the Discovery state, the WTP
determines which AC to connect to. determines which AC to connect to.
WTP: This transition occurs when the DiscoveryInterval timer WTP: This transition occurs when the DiscoveryInterval timer
expires. If the WTP is configured with a list of ACs, it expires. If the WTP is configured with a list of ACs, it
transmits a Discovery Request message to every AC from which it transmits a Discovery Request message to every AC from which it
has not received a Discovery Response message. For every has not received a Discovery Response message. For every
transition to this event, the WTP increments the DiscoveryCount transition to this event, the WTP increments the DiscoveryCount
counter. See Section 5.1 for more information on how the WTP counter. See Section 5.1 for more information on how the WTP
skipping to change at page 16, line 23 skipping to change at page 17, line 26
whenever it transmits Discovery Request messages. whenever it transmits Discovery Request messages.
AC: This is a no-op. AC: This is a no-op.
Discovery to Sulking (c): This transition occurs on a WTP when Discovery to Sulking (c): This transition occurs on a WTP when
Discovery or connectivity to the AC fails. Discovery or connectivity to the AC fails.
WTP: The WTP enters this state when the DiscoveryInterval timer WTP: The WTP enters this state when the DiscoveryInterval timer
expires or the DiscoveryCount variable is equal to the expires or the DiscoveryCount variable is equal to the
MaxDiscoveries variable (see Section 4.7). Upon entering this MaxDiscoveries variable (see Section 4.7). Upon entering this
state, the WTP shall start the SilentInterval timer. While in state, the WTP MUST start the SilentInterval timer. While in
the Sulking state, all received CAPWAP protocol messages the Sulking state, all received CAPWAP protocol messages
received shall be ignored. received MUST be ignored.
AC: This is a no-op. AC: This is a no-op.
Sulking to Idle (d): This transition occurs on a WTP when it must Sulking to Idle (d): This transition occurs on a WTP when it must
restart the discovery phase. restart the discovery phase.
WTP: The WTP enters this state when the SilentInterval timer (see WTP: The WTP enters this state when the SilentInterval timer (see
Section 4.6) expires. The FailedDTLSSessionCount and Section 4.6) expires. The FailedDTLSSessionCount,
DiscoveryCount counters are reset to zero. DiscoveryCount and FailedDTLSAuthFailCount counters are reset
to zero.
AC: The AC enters this state when the SilentInterval timer (see AC: The AC enters this state when the SilentInterval timer (see
Section 4.6) expires. The FailedDTLSSessionCount and Section 4.6) expires. The FailedDTLSSessionCount,
DiscoveryCount counters are reset to zero. DiscoveryCount and FailedDTLSAuthFailCount counters are reset
to zero.
Sulking to Sulking (3): The Sulking state provides the silent Sulking to Sulking (3): The Sulking state provides the silent
period, minimizing the possibility for Denial of service attacks. period, minimizing the possibility for Denial of Service (DoS)
attacks.
WTP: All packets received from the AC while in the sulking state WTP: All packets received from the AC while in the sulking state
are ignored. are ignored.
AC: All packets receive from the WTP while in the sulking state AC: All packets receive from the WTP while in the sulking state
are ignored. are ignored.
Idle to DTLS Setup (e): This transition occurs to establish a secure Idle to DTLS Setup (e): This transition occurs to establish a secure
DTLS session with the peer. DTLS session with the peer.
WTP: The WTP initiates this transition by invoking the DTLSStart WTP: The WTP initiates this transition by invoking the DTLSStart
command, which starts the DTLS session establishment with the command, which starts the DTLS session establishment with the
chosen AC. This decision is performed via local configuration chosen AC. When the discovery phase is bypassed, it is assumed
of the AC. the WTP has a locally configured AC.
AC: The AC initiates this transition by invoking the DTLSListen AC: The AC initiates this transition by invoking the DTLSListen
command, which informs the DTLS stack that it is willing to command, which informs the DTLS stack that it is willing to
listen for an incoming session. The AC MAY provide optional listen for an incoming session. The AC MAY provide optional
qualifiers in the DTLSListen to only accept session requests qualifiers in the DTLSListen command to only accept session
from specific WTP. requests from specific WTPs.
Discovery to DTLS Setup (f): This transition occurs to establish a Discovery to DTLS Setup (f): This transition occurs to establish a
secure DTLS session with the peer. secure DTLS session with the peer.
WTP: The WTP initiates this transition by invoking the DTLSStart WTP: The WTP initiates this transition by invoking the DTLSStart
command (see Section 2.3.2.1), which starts the DTLS session command (see Section 2.3.2.1), which starts the DTLS session
establishment with the chosen AC. The decision of which AC to establishment with the chosen AC. The decision of which AC to
connect to is the result of the discovery phase, which is connect to is the result of the discovery phase, which is
described in Section 3.2. described in Section 3.2.
AC: The AC initiates this transition by invoking the DTLSListen AC: The AC initiates this transition by invoking the DTLSListen
command (see Section 2.3.2.1), which informs the DTLS stack command (see Section 2.3.2.1), which informs the DTLS stack
that it is willing to listen for an incoming session. The AC that it is willing to listen for an incoming session. The AC
MAY have maintained state information when it received the MAY have maintained state information when it received the
Discovery Request in order to provide optional qualifiers in Discovery Request message to provide optional qualifiers in the
the DTLSListen command to only accept session requests from DTLSListen command to only accept session requests from a
specific WTP. Note that maintaining state information based on specific WTP. Note that maintaining state information based on
an unsecured discovery request MAY lead to a Denial of Service an unsecured Discovery Request message MAY lead to a Denial of
attack. Therefore the AC SHOULD ensure that the state Service attack. Therefore the AC SHOULD ensure that the state
information is freed after a period, which is implementation information is freed after a period, which is implementation
specific. specific.
DTLS Setup to Idle (g): This transition occurs when the DTLS Session DTLS Setup to Idle (g): This transition occurs when the DTLS Session
failed to be established. failed to be established.
WTP: The WTP initiates this state transition when it receives a WTP: The WTP initiates this state transition when it receives a
DTLSEstablishFail notification from DTLS (see Section 2.3.2.2). DTLSEstablishFail notification from DTLS (see Section 2.3.2.2).
This error notification aborts the secure DTLS session This error notification aborts the secure DTLS session
establishment. When this transition occurs, the establishment. When this notification is received, the
FailedDTLSSessionCount counter is incremented. FailedDTLSSessionCount counter is incremented.
AC: The WTP initiates this state transition when it receives a AC: The WTP initiates this state transition when it receives a
DTLSEstablishFail notification from DTLS (see Section 2.3.2.2). DTLSEstablishFail notification from DTLS (see Section 2.3.2.2).
This error notification means a DTLS session was attempted with This error notification aborts the secure DTLS session
a WTP, but failed. The notification should include information establishment. When this notification is received, the
such as the offending WTP, and the reason for the failure. FailedDTLSSessionCount counter is incremented.
When this transition occurs, the FailedDTLSSessionCount counter
is incremented.
DTLS Setup to Authorize (h): This transition occurs an incoming DTLS DTLS Setup to Authorize (h): This transition occurs when an incoming
session is being established, and the DTLS stack needs DTLS session is being established, and the DTLS stack needs
authorization to proceed with the session establishment. authorization to proceed with the session establishment.
WTP: This state transition occurs when the WTP receives the WTP: This state transition occurs when the WTP receives the
DTLSPeerAuthorize notification (see Section 2.3.2.2). Upon DTLSPeerAuthorize notification (see Section 2.3.2.2). Upon
entering this state, the WTP MAY perform an authorization check entering this state, the WTP performs an authorization check
against the AC's credentials. The method by which this against the AC credentials. See Section 2.4.4 for more
authorization is performed is outside the scope of the CAPWAP information on AC authorization.
specification.
AC: This state transition occurs when the AC receives the AC: This state transition occurs when the AC receives the
DTLSPeerAuthorize notification (see Section 2.3.2.2). Upon DTLSPeerAuthorize notification (see Section 2.3.2.2). Upon
entering this state, the AC MAY perform an authorization check entering this state, the AC performs an authorization check
against the WTP's credentials. The method by which this against the WTP credentials. See Section 2.4.4 for more
authorization is performed is outside the scope of the CAPWAP information on WTP authorization.
specification.
Authorize to DTLS Connect (j): This transition occurs to notify the Authorize to DTLS Connect (j): This transition occurs to notify the
DTLS stack that the session should be established. DTLS stack that the session should be established.
WTP: This state transition occurs when the WTP has either opted WTP: This state transition occurs when the WTP has either opted
to forgo the authorization check of the AC's credentials, or to forgo the authorization check of the AC's credentials, or
the credentials were successfully authorized. This is done by the credentials were successfully authorized. This is done by
invoking the DTLSAccept DTLS command (see Section 2.3.2.1). invoking the DTLSAccept DTLS command (see Section 2.3.2.1).
AC: This state transition occurs when the AC has either opted to AC: This state transition occurs when the AC has either opted to
forgo the authorization check of the WTP's credentials, or the forgo the authorization check of the WTP's credentials, or the
credentials were successfully authorized. This is done by credentials were successfully authorized. This is done by
invoking the DTLSAccept DTLS command (see Section 2.3.2.1). invoking the DTLSAccept DTLS command (see Section 2.3.2.1).
Authorize to DTLS Teardown (k): This transition occurs to notify the Authorize to DTLS Teardown (k): This transition occurs to notify the
DTLS stack that the session should be aborted. DTLS stack that the session should be aborted.
WTP: This state transition occurs when the WTP was unable to WTP: This state transition occurs when the WTP was unable to
authorize the AC, via its credentials. The WTP then aborts the authorize the AC, using the AC credentials. The WTP then
DTLS session, which is done by invoking DTLSAbortSession (see aborts the DTLS session by invoking the DTLSAbortSession
Section 2.3.2.1). command (see Section 2.3.2.1).
AC: This state transition occurs when the AC was unable to AC: This state transition occurs when the AC was unable to
authorize the WTP, via its credentials. The AC then aborts the authorize the WTP, using the WTP credentials. The AC then
DTLS session, which is done by invoking DTLSAbortSession (see aborts the DTLS session by invoking the DTLSAbortSession
Section 2.3.2.1). command (see Section 2.3.2.1).
DTLS Connect to Idle (m): This transition occurs when the DTLS DTLS Connect to Idle (m): This transition occurs when the DTLS
Session failed to be established. Session failed to be established.
WTP: This state transition occurs when the WTP receives the WTP: This state transition occurs when the WTP receives either a
DTLSAborted notification (see Section 2.3.2.2), indicating that DTLSAborted or DTLSAuthenticateFail notification (see
the DTLS session was not successfully established. When this Section 2.3.2.2), indicating that the DTLS session was not
notification is received, the FailedDTLSSessionCount counter is successfully established. When this transition occurs due to
incremented. the DTLSAuthenticateFail notification, the
FailedDTLSAuthFailCount is incremented, otherwise the
FailedDTLSSessionCount counter is incremented.
AC: This state transition occurs when the AC receives the AC: This state transition occurs when the AC receives either a
DTLSAborted notification (see Section 2.3.2.2), indicating that DTLSAborted or DTLSAuthenticateFail notification (see
the DTLS session was not successfully established. When this Section 2.3.2.2), indicating that the DTLS session was not
notification is received, the FailedDTLSSessionCount counter is successfully established. When this transition occurs due to
incremented. the DTLSAuthenticateFail notification, the
FailedDTLSAuthFailCount is incremented, otherwise the
FailedDTLSSessionCount counter is incremented.
DTLS Connect to Join (n): This transition occurs when the DTLS DTLS Connect to Join (n): This transition occurs when the DTLS
Session is successfully established. Session is successfully established.
WTP: This state transition occurs when the WTP receives the WTP: This state transition occurs when the WTP receives the
DTLSEstablished notification (see Section 2.3.2.2), indicating DTLSEstablished notification (see Section 2.3.2.2), indicating
that the DTLS session was successfully established. When this that the DTLS session was successfully established. When this
notification is received, the FailedDTLSSessionCount counter is notification is received, the FailedDTLSSessionCount counter is
set to zero. set to zero.
AC: This state transition occurs when the AC receives the AC: This state transition occurs when the AC receives the
DTLSEstablished notification (see Section 2.3.2.2), indicating DTLSEstablished notification (see Section 2.3.2.2), indicating
that the DTLS session was successfully established. When this that the DTLS session was successfully established. When this
notification is received, the FailedDTLSSessionCount counter is notification is received, the FailedDTLSSessionCount counter is
set to zero. set to zero, and the WaitJoin timer is started (see
Section 4.6).
Join to DTLS Teardown (p): This transition occurs when the join Join to DTLS Teardown (p): This transition occurs when the join
process failed. process failed.
WTP: This state transition occurs when the WTP receives a Join WTP: This state transition occurs when the WTP receives a Join
Response with a Result Code message element containing an Response message with a Result Code message element containing
error. This causes the WTP to initiate the DTLSShutdown an error, if the Image Identifier provided by the AC in the
command (see Section 2.3.2.1). Join Response message differs from the WTP's currently running
firmware version and the WTP has the requested image in its
non-volatile memory, or if the WaitDTLS timer expires. This
causes the WTP to initiate the DTLSShutdown command (see
Section 2.3.2.1). This transition also occurs if the WTP
receives one of the following DTLS notifications: DTLSAborted,
DTLSReassemblyFailure or DTLSPeerDisconnect.
AC: This state transition occurs when the AC transmits a Join AC: This state transition occurs either if the WaitJoin timer
Response with a Result Code message element containing an expires or if the AC transmits a Join Response message with a
error. This causes the WTP to initiate the DTLSShutdown Result Code message element containing an error. This causes
command (see Section 2.3.2.1). the AC to initiate the DTLSShutdown command (see
Section 2.3.2.1). This transition also occurs if the AC
receives one of the following DTLS notifications: DTLSAborted,
DTLSReassemblyFailure or DTLSPeerDisconnect.
Join to Configure (g): This state transition is used by the WTP and Join to Image Data (r): This state transition is used by the WTP and
the AC to download executable firmware.
WTP: The WTP enters the Image Data state when it receives a
successful Join Response message and determines and the
included Image Identifier message element is not the same as
its currently running image. The WTP also detects that the
requested image version is not currently available in the WTP's
non-volatile storage (see Section 9.1 for a full description of
the firmware download process). The WTP transmits the Image
Data Request message (see Section 9.1.1) requesting the start
of the firwware download.
AC: This state transition occurs when the AC receives the Image
Data Request message from the WTP. The AC must transmit an
Image Data Response message (see Section 9.1.2) to the WTP,
which includes a portion of the firmware.
Join to Configure (q): This state transition is used by the WTP and
the AC to exchange configuration information. the AC to exchange configuration information.
WTP: The WTP enters the Configure state when it successfully WTP: The WTP enters the Configure state when it receives a
completes the Join operation. If it determines that its successful Join Response, and determines that the included
version number and the version number advertised by the AC are Image Identifier message element is the same as its currently
compatible, the WTP transmits the Configuration Status message running image. The WTP transmits the Configuration Status
(see Section 8.2) to the AC with a snapshot of its current message (see Section 8.2) to the AC with message elements
configuration. The WTP also starts the ResponseTimeout timer describing its current configuration. The WTP also starts the
(see Section 4.6). If the version numbers are not compatible, ResponseTimeout timer (see Section 4.6).
the WTP will immediately transition to Image Data state (see
transition (g)). If the AC determines that a new firmware
image should be installed on the WTP, the AC initiates a
firmware download by sending an Image Data Request Message with
an Initiate Download message element to the WTP
AC: This state transition occurs immediately after the AC AC: This state transition occurs immediately after the AC
transmits the Join Response message to the WTP. If the AC transmits the Join Response message to the WTP. If the AC
receives the Configuration Status message from the WTP, the AC receives the Configuration Status message from the WTP, the AC
must transmit a Configuration Status Response message (see must transmit a Configuration Status Response message (see
Section 8.3) to the WTP, and may include specific message Section 8.3) to the WTP, and may include specific message
elements to override the WTP's configuration. If the AC elements to override the WTP's configuration. The WTP also
instead receives the Image Data Request from the WTP, it starts the ChangeStatePendingTimer timer (see Section 4.6).
immediately transitions to the Image Data state (see transition
(g)).
Configure to Reset (s): This state transition is used to reset the Configure to Reset (s): This state transition is used to reset the
connection either due to an error during the configuration phase, connection either due to an error during the configuration phase,
or when the WTP determines it needs to reset in order for the new or when the WTP determines it needs to reset in order for the new
configuration to take effect. configuration to take effect.
WTP: The WTP enters the Reset state when it receives a WTP: The WTP enters the Reset state when it receives a
Configuration Status Response indicating an error or when it Configuration Status Response indicating an error or when it
determines that a reset of the WTP is required, due to the determines that a reset of the WTP is required, due to the
characteristics of a new configuration. characteristics of a new configuration.
AC: The AC transitions to the Reset state when it receives a AC: The AC transitions to the Reset state when it receives a
Change State Event message from the WTP that contains an error Change State Event message from the WTP that contains an error
for which the AC's policy does not permit the WTP providing for which AC policy does not permit the WTP to provide service.
service. This state transition also occurs when the AC
ChangeStatePendingTimer timer expires.
Configure to Image Data (r): This state transition is used by the Configure to DTLS Teardown (V): This transition occurs when the
WTP and the AC to download executable firmware. configuration process aborts due to a DTLS error.
WTP: The WTP enters the Image Data state when it successfully WTP: The WTP enters this state when it receives one of the
comletes DTLS session establishment, and determines that its following DTLS notifications: DTLSAborted,
version number and the version number advertised by the AC are DTLSReassemblyFailure or DTLSPeerDisconnect (see
different. The WTP transmits the Image Data Request (see Section 2.3.2.2). The WTP MAY tear down the DTLS session if it
Section 9.1) message requesting that a download of the AC's receives frequent DTLSDecapFailure notifications.
latest firmware be initiated.
AC: This state transition occurs when the AC receives the Image AC: The AC enters this state when it receives one of the
Data Request message from the WTP. The AC must transmit an following DTLS notifications: DTLSAborted,
Image Data Response message (see Section 9.2) to the WTP, which DTLSReassemblyFailure or DTLSPeerDisconnect (see
includes a portion of the firmware. Section 2.3.2.2). The WTP MAY tear down the DTLS session if it
receives frequent DTLSDecapFailure notifications.
Image Data to Image Data (4): The Image Data state is used by WTP Image Data to Image Data (4): The Image Data state is used by the
and the AC during the firmware download phase. WTP and the AC during the firmware download phase.
WTP: The WTP enters the Image Data state when it receives an WTP: The WTP enters the Image Data state when it receives an
Image Data Response message indicating that the AC has more Image Data Response message indicating that the AC has more
data to send. data to send.
AC: This state transition occurs when the AC receives the Image AC: This state transition occurs when the AC receives the Image
Data Request message from the WTP while already in the Image Data Request message from the WTP while already in the Image
Data state, and it detects that the firmware download has not Data state, and it detects that the firmware download has not
completed. completed.
Image Data to Reset (o): This state transition is used to reset the Image Data to Reset (o): This state transition is used to reset the
DTLS connection prior to restarting the WTP after an image DTLS connection prior to restarting the WTP after an image
download. download.
WTP: When an image download completes, the WTP enters the Reset WTP: When an image download completes, the WTP enters the Reset
state. The WTP MAY also transition to this state upon state. The WTP MAY also transition to this state upon
receiving an Image Data Response from the AC (see Section 9.2) receiving an Image Data Response message from the AC (see
indicating a failure. Section 9.1.2) indicating a failure.
AC: The AC enters the Reset state when the image download is AC: The AC enters the Reset state when the image download is
complete, or if an error occurs during the image download complete, or if an error occurs during the image download
process. process.
Image Data to DTLS Teardown (x): This transition occurs when the
firmware download process aborts due to a DTLS error.
WTP: The WTP enters this state when it receives one of the
following DTLS notifications: DTLSAborted,
DTLSReassemblyFailure or DTLSPeerDisconnect (see
Section 2.3.2.2). The WTP MAY tear down the DTLS session if it
receives frequent DTLSDecapFailure notifications.
AC: The AC enters this state when it receives one of the
following DTLS notifications: DTLSAborted,
DTLSReassemblyFailure or DTLSPeerDisconnect (see
Section 2.3.2.2). The WTP MAY tear down the DTLS session if it
receives frequent DTLSDecapFailure notifications.
Configure to Data Check (t): This state transition occurs when the Configure to Data Check (t): This state transition occurs when the
WTP and AC confirm the configuration. WTP and AC confirm the configuration.
WTP: The WTP enters this state when it receives a successful WTP: The WTP enters this state when it receives a successful
Configuration Status Response message from the AC. The WTP Configuration Status Response message from the AC. The WTP
initializes the HeartBeat timer (see Section 4.6), and initializes the HeartBeat timer (see Section 4.6), and
transmits the Change State Event Request message (see transmits the Change State Event Request message (see
Section 8.7). Section 8.6).
AC: This state transition occurs when the AC receives the Change AC: This state transition occurs when the AC receives the Change
State Event Request message (see Section 8.7) from the WTP. State Event Request message (see Section 8.6) from the WTP.
The AC responds with a Change State Event Response (see The AC responds with a Change State Event Response message (see
Section 8.8) message. The AC must start the Section 8.7). The AC must start the NeighborDeadInterval timer
NeighborDeadInterval timer (see Section 4.6). (see Section 4.6).
Data Check to Run (u): This state transition occurs once the linkage Data Check to Run (u): This state transition occurs when the linkage
between the control and data channels has occured, which causes between the control and data channels has occured, causing the WTP
the WTP and AC to enter their normal state of operation. and AC to enter their normal state of operation.
WTP: The WTP enters this state when it receives a successful WTP: The WTP enters this state when it receives a successful
Change State Event Response from the AC. The WTP initiates the Change State Event Response message from the AC. The WTP
data channel, which MAY require the establishment of a DTLS initiates the data channel, which MAY require the establishment
session, starts the DataChannelKeepAlive timer (see of a DTLS session, starts the DataChannelKeepAlive timer (see
Section 4.6) and transmits a Data Channel Keep Alive (see Section 4.6) and transmits a Data Channel Keep Alive packet
Section 4.3.1). The WTP then starts the (see Section 4.3.1). The WTP then starts the
DataChannelDeadInterval timer (see Section 4.6). DataChannelDeadInterval timer (see Section 4.6).
AC: This state transition occurs when the AC receives the Data AC: This state transition occurs when the AC receives the Data
Channel Keep Alive (see Section 4.3.1), whose Session ID Channel Keep Alive packet (see Section 4.3.1), with a Session
message element matches the one included by the WTP in the Join ID message element matching that included by the WTP in the
Request. Note that if the AC's policy is to require the data Join Request message. Note that if AC policy is to require the
channel to be encrypted, this process would also require the data channel to be encrypted, this process would also require
establishment of the data channel's DTLS session. Upon the establishment of a data channel DTLS session. Upon
receiving the Data Channel Keep Alive, the AC transmits its own receiving the Data Channel Keep Alive packet, the AC transmits
Data Channel Keep Alive. its own Data Channel Keep Alive packet.
Run to DTLS Teardown (u): This state transition occurs when an error Run to DTLS Teardown (u): This state transition occurs when an error
has occured in the DTLS stack, causing the DTLS session to be has occured in the DTLS stack, causing the DTLS session to be
torndown. torndown.
WTP: The WTP enters this state when it receives a one of the WTP: The WTP enters this state when it receives one of the
following DTLS notifications: DTLSAborted, following DTLS notifications: DTLSAborted,
DTLSReassemblyFailure, DTLSDecapFailure or DTLSPeerDisconnect DTLSReassemblyFailure or DTLSPeerDisconnect (see
(see Section 2.3.2.2). Section 2.3.2.2). The WTP MAY tear down the DTLS session if it
receives frequent DTLSDecapFailure notifications. The WTP also
transitions to this state if the underlying reliable
transport's RetransmitCount counter has reached the
MaxRetransmit variable (see Section 4.6).
AC: The AC enters this state when it receives a one of the AC: The AC enters this state when it receives one of the
following DTLS notifications: DTLSAborted, following DTLS notifications: DTLSAborted,
DTLSReassemblyFailure, DTLSDecapFailure or DTLSPeerDisconnect DTLSReassemblyFailure or DTLSPeerDisconnect (see
(see Section 2.3.2.2). Section 2.3.2.2). The WTP MAY tear down the DTLS session if it
receives frequent DTLSDecapFailure notifications. The AC
transitions to this state if the underlying reliable
transport's RetransmitCount counter has reached the
MaxRetransmit variable (see Section 4.6).
Run to Run (5): This is the normal state of operation. Run to Run (5): This is the normal state of operation.
WTP: This is the WTP's normal state of operation. There are many WTP: This is the WTP's normal state of operation. There are many
events that result this state transition: events that result this state transition:
Configuration Update: The WTP receives a Configuration Update Configuration Update: The WTP receives a Configuration Update
Request message(see Section 8.5). The WTP MUST respond with Request message(see Section 8.4). The WTP MUST respond with
a Configuration Update Response message (see Section 8.6). a Configuration Update Response message (see Section 8.5).
Change State Event: The WTP receives a Change State Event Change State Event: The WTP receives a Change State Event
Response message, or determines that it must initiate a Response message, or determines that it must initiate a
Change State Event Request message, as a result of a failure Change State Event Request message, as a result of a failure
or change in the state of a radio. or change in the state of a radio.
Echo Request: The WTP receives an Echo Request message (see Echo Request: The WTP sends an Echo Request message
Section 7.1), to which it MUST respond with an Echo Response (Section 7.1) or receives the corresponding Echo Response
message(see Section 7.2). message, (see Section 7.2) from the AC.
Clear Config Request: The WTP receives a Clear Configuration Clear Config Request: The WTP receives a Clear Configuration
Request message (see Section 8.9). The WTP MUST reset its Request message (see Section 8.8). The WTP MUST reset its
configuration back to manufacturer defaults. configuration back to manufacturer defaults.
WTP Event: The WTP generates a WTP Event Request message to WTP Event: The WTP sends a WTP Event Request message,
send information to the AC (see Section 9.5). The WTP delivering information to the AC (see Section 9.4). The WTP
receives a WTP Event Response message from the AC (see receives a WTP Event Response message from the AC (see
Section 9.6). Section 9.5).
Data Transfer: The WTP generates a Data Transfer Request Data Transfer: The WTP sends a Data Transfer Request message
message to the AC (see Section 9.7). The WTP receives a to the AC (see Section 9.6). The WTP receives a Data
Data Transfer Response message from the AC (see Transfer Response message from the AC (see Section 9.7).
Section 9.8).
Station Configuration Request: The WTP receives a Station Station Configuration Request: The WTP receives a Station
Config Request message (see Section 10.1), to which it MUST Configuration Request message (see Section 10.1), to which
respond with a Station Config Response message (see it MUST respond with a Station Configuration Response
Section 10.2). message (see Section 10.2).
AC: This is the AC's normal state of operation: AC: This is the AC's normal state of operation:
Configuration Update: The AC sends a Configuration Update Configuration Update: The AC sends a Configuration Update
Request message (see Section 8.5) to the WTP to update its Request message (see Section 8.4) to the WTP to update its
configuration. The AC receives a Configuration Update configuration. The AC receives a Configuration Update
Response message (see Section 8.6) from the WTP. Response message (see Section 8.5) from the WTP.
Change State Event: The AC receives a Change State Event Change State Event: The AC receives a Change State Event
Request message (see Section 8.7), to which it MUST respond Request message (see Section 8.6), to which it MUST respond
with the Change State Event Response message (see with the Change State Event Response message (see
Section 8.8). Section 8.7).
Echo: The AC sends an Echo Request message Section 7.1 or Echo Request: The AC receives an Echo Request message (see
receives the corresponding Echo Response message, see Section 7.1), to which it MUST respond with an Echo Response
Section 7.2 from the WTP. message(see Section 7.2).
Clear Config Response: The AC receives a Clear Configuration Clear Config Response: The AC receives a Clear Configuration
Response message (see Section 8.10). Response message from the WTP (see Section 8.9).
Station Config: The AC sends a Station Configuration Request WTP Event: The AC receives a WTP Event Request message from
message (see Section 10.1) or receives the corresponding the WTP (see Section 9.4) and MUST generate a corresponding
Station Configuration Response message (see Section 10.2) WTP Event Response message (see Section 9.5).
from the WTP.
Data Transfer: The AC receives a Data Transfer Request message Data Transfer: The AC receives a Data Transfer Request message
from the AC (see Section 9.7) and MUST generate a from the WTP (see Section 9.6) and MUST generate a
corresponding Data Transfer Response message (see corresponding Data Transfer Response message (see
Section 9.8). Section 9.7).
WTP Event: The AC receives a WTP Event Request message from Station Configuration Request: The AC sends a Station
the AC (see Section 9.5) and MUST generate a corresponding Configuration Request message (see Section 10.1) or receives
WTP Event Response message (see Section 9.6). the corresponding Station Configuration Response message
(see Section 10.2) from the WTP.
Run to Reset (x): This state transition is used when the AC or WTP Run to Reset (x): This state transition is used when either the AC
wish to tear down the connection. This may occur as part of or WTP tear down the connection. This may occur as part of normal
normal operation, or due to error conditions. operation, or due to error conditions.
WTP: The WTP enters the Reset state when it receives a Reset WTP: The WTP enters the Reset state when it receives a Reset
Request from the AC. Request message from the AC.
AC: The AC enters the reset state when it transmits a Reset AC: The AC enters the Reset state when it transmits a Reset
Request to the WTP. Request message to the WTP.
Reset to DTLS Teardown (y): This transition occurs when the CAPWAP Reset to DTLS Teardown (y): This transition occurs when the CAPWAP
reset is complete to terminate the DTLS session. reset is complete, to terminate the DTLS session.
WTP: This state transition occurs when the WTP receives a Reset WTP: This state transition occurs when the WTP receives a Reset
Response. This causes the WTP to initiate the DTLSShutdown Response message. This causes the WTP to initiate the
command (see Section 2.3.2.1). DTLSShutdown command (see Section 2.3.2.1).
AC: This state transition occurs when the AC transmits a Reset AC: This state transition occurs when the AC transmits a Reset
Response. This causes the WTP to initiate the DTLSShutdown Response message. The AC does not invoke the DTLSShutdown
command (see Section 2.3.2.1). command (see Section 2.3.2.1).
DTLS Teardown to Idle (z): This transition occurs when the DTLS DTLS Teardown to Idle (z): This transition occurs when the DTLS
session has been shutdown. session has been shutdown.
WTP: This state transition occurs when the WTP receives a WTP: This state transition occurs when the WTP has successfully
DTLSPeerDisconnect notification (see Section 2.3.2.2). cleaned up all resources associated with the control plane DTLS
session. The data plane DTLS session is also shutdown, and all
resources freed, if a DTLS session was established for the data
plane. Any timers set for the current instance of the state
machine are also cleared.
AC: This state transition occurs when the AC receives a AC: This state transition occurs when the AC has successfully
DTLSPeerDisconnect notification (see Section 2.3.2.2). cleaned up all resources associated with the control plane DTLS
session. The data plane DTLS session is also shutdown, and all
resources freed, if a DTLS session was established for the data
plane. Any timers set for the current instance of the state
machine are also cleared.
2.3.2. CAPWAP/DTLS Interface 2.3.2. CAPWAP/DTLS Interface
This section describes the DTLS Commands used by CAPWAP, as well as This section describes the DTLS Commands used by CAPWAP, and the
the notifications received from DTLS to the CAPWAP protocol stack. notifications received from DTLS to the CAPWAP protocol stack.
2.3.2.1. CAPWAP to DTLS Commands 2.3.2.1. CAPWAP to DTLS Commands
Four commands are defined for the CAPWAP to DTLS API. These Six commands are defined for the CAPWAP to DTLS API. These
"commands" are conceptual, and may be implemented as one or more "commands" are conceptual, and may be implemented as one or more
function calls. This API definition is provided to clarify function calls. This API definition is provided to clarify
interactions between the DTLS and CAPWAP components of the integrated interactions between the DTLS and CAPWAP components of the integrated
CAPWAP state machine. CAPWAP state machine.
Below is a list of the minimal command API: Below is a list of the minimal command API:
o DTLSStart is sent to the DTLS module to cause a DTLS session to be o DTLSStart is sent to the DTLS component to cause a DTLS session to
established. Upon invoking the DTLSStart command, the WaitDTLS be established. Upon invoking the DTLSStart command, the WaitDTLS
timer is started. The WTP is the only CAPWAP device that timer is started. The WTP initiates this DTLS command, as the AC
initiates this DTLS command, as the AC does not initiate DTLS does not initiate DTLS sessions.
sessions.
o DTLSListen is sent to the DTLS module to allow the DTLS to listen o DTLSListen is sent to the DTLS component to allow the DTLS
for incoming DTLS session requests. component to listen for incoming DTLS session requests.
o DTLSAccept is sent to the DTLS module to allow the DTLS session o DTLSAccept is sent to the DTLS component to allow the DTLS session
establishment to continue successfully. establishment to continue successfully.
o DTLSAbortSession is sent to the DTLS module to cause the session o DTLSAbortSession is sent to the DTLS component to cause the
that is in the process of being established, to be aborted. This session that is in the process of being established to be aborted.
command is also sent when the WaitDTLS timer expires. When this This command is also sent when the WaitDTLS timer expires. When
command is executed, the FailedDTLSSessionCount counter is this command is executed, the FailedDTLSSessionCount counter is
incremented. incremented.
o DTLSShutdown is sent to the DTLS module to cause session teardown. o DTLSShutdown is sent to the DTLS component to cause session
teardown.
o DTLSMtuUpdate is sent by the CAPWAP component to modify the MTU
size used by the DTLS component. The default size is 1468 bytes.
2.3.2.2. DTLS to CAPWAP Notifications 2.3.2.2. DTLS to CAPWAP Notifications
DTLS notifications are defined for the DTLS to CAPWAP API. These DTLS notifications are defined for the DTLS to CAPWAP API. These
"notifications" are conceptual, and may be implemented in numerous "notifications" are conceptual, and may be implemented in numerous
ways (e.g. as function return values). This API definition is ways (e.g. as function return values). This API definition is
provided to clarify interactions between the DTLS and CAPWAP provided to clarify interactions between the DTLS and CAPWAP
components of the integrated CAPWAP state machine. It is important components of the integrated CAPWAP state machine. It is important
to note that the notifications listed below MAY cause the CAPWAP to note that the notifications listed below MAY cause the CAPWAP
state machine to jump from one state to another using a state state machine to jump from one state to another using a state
transition not listed in section Section 2.3.1. When a notification transition not listed in Section 2.3.1. When a notification listed
listed below occurs, the target CAPWAP state shown in Figure 3 below occurs, the target CAPWAP state shown in Figure 3 becomes the
becomes the current state. current state.
Below is a list of the API notifications: Below is a list of the API notifications:
o DTLSIncomingSession is sent to the CAPWAP protocol stack during o DTLSIncomingSession is sent to the CAPWAP component during DTLS
the DTLS session establishment once the peer's identity has been session establishment once the peer's identity has been received.
received. This notification MAY be used by the CAPWAP protocol This notification MAY be used by the CAPWAP component to authorize
stack in order to authorize the session, based on the peer's the session, based on the peer's identity. The authorization
identity. The authorization process will lead to the CAPWAP process will lead to the CAPWAP component initiating either the
protocol stack initiating either the DTLSAccept or DTLSAccept or DTLSAbortSession commands.
DTLSAbortSession commands.
o DTLSEstablished is sent to the CAPWAP module to indicate that that o DTLSEstablished is sent to the CAPWAP component to indicate that
a secure channel now exists, using the parameters provided during that a secure channel now exists, using the parameters provided
the DTLS initialization process. When this notification is during the DTLS initialization process. When this notification is
received, the FailedDTLSSessionCount counter is reset to zero. received, the FailedDTLSSessionCount counter is reset to zero.
When this notification is received, the WaitDTLS is stopped. When this notification is received, the WaitDTLS timer is stopped.
o DTLSEstablishFail is sent when the DTLS session establishment has o DTLSEstablishFail is sent when the DTLS session establishment has
failed, either due to a local error, or due to the peer rejecting failed, either due to a local error, or due to the peer rejecting
the session establishment. When this notification is received, the session establishment. When this notification is received,
the FailedDTLSSessionCount counter is reset to zero. When this the FailedDTLSSessionCount counter is incremented.
notification is received, the WaitDTLS is stopped.
o DTLSAborted is sent to the CAPWAP module to indicate that session o DTLSAuthenticateFail is sent when DTLS session establishment
abort (as requested by CAPWAP) is complete; this occurs to confirm failed due to an authentication error. When this notification is
a DTLS session abort, or when the WaitDTLS timer expires. When received, the FailedDTLSAuthFailCount counter is incremented.
this notification is received, the WaitDTLS is stopped.
o DTLSReassemblyFailure may be sent to the CAPWAP module to indicate o DTLSAborted is sent to the CAPWAP component to indicate that
DTLS fragment reassembly failure. session abort (as requested by CAPWAP) is complete; this occurs to
confirm a DTLS session abort, or when the WaitDTLS timer expires.
When this notification is received, the WaitDTLS timer is stopped.
o DTLSDecapFailure may be sent to CAPWAP to indicate an o DTLSReassemblyFailure may be sent to the CAPWAP component to
decapsulation failure. DTLSDecapFailure may be sent to CAPWAP to indicate DTLS fragment reassembly failure.
indicate an encryption/authentication failure.
o DTLSPeerDisconnect is sent to the CAPWAP module to indicate the o DTLSDecapFailure may be sent to the CAPWAP module to indicate a
decapsulation failure. DTLSDecapFailure may be sent to the CAPWAP
module to indicate an encryption/authentication failure. This
notification is intended for informative purposes only, and is not
intended to cause a change in the CAPWAP state machine (see
Section 12.4).
o DTLSPeerDisconnect is sent to the CAPWAP component to indicate the
DTLS session has been torn down. Note that this notification is DTLS session has been torn down. Note that this notification is
only received if the DTLS session has been established. only received if the DTLS session has been established.
2.4. Use of DTLS in the CAPWAP Protocol 2.4. Use of DTLS in the CAPWAP Protocol
DTLS is used as a tightly-integrated, secure wrapper for the CAPWAP DTLS is used as a tightly-integrated, secure wrapper for the CAPWAP
protocol. In this document DTLS and CAPWAP are discussed as protocol. In this document DTLS and CAPWAP are discussed as
nominally distinct entitites; however they are very closely coupled, nominally distinct entitites; however they are very closely coupled,
and may even be implemented inseparably. Since there are DTLS and may even be implemented inseparably. Since there are DTLS
library implementations currently available, and since security library implementations currently available, and since security
skipping to change at page 27, line 13 skipping to change at page 30, line 8
section describes the interactions between the DTLS session section describes the interactions between the DTLS session
establishment process and the CAPWAP protocol. Note that the establishment process and the CAPWAP protocol. Note that the
conceptual DTLS state is shown below to help understand the point at conceptual DTLS state is shown below to help understand the point at
which the DTLS states transition. In the normal case, the DTLS which the DTLS states transition. In the normal case, the DTLS
handshake will proceed as follows (NOTE: this example uses handshake will proceed as follows (NOTE: this example uses
certificates, but preshared keys are also supported): certificates, but preshared keys are also supported):
============ ============ ============ ============
WTP AC WTP AC
============ ============ ============ ============
<DTLS Idle> <DTLS Idle>
ClientHello ------> ClientHello ------>
<------ HelloVerifyRequest <------ HelloVerifyRequest
(with cookie) (with cookie)
<DTLS Setup>
ClientHello ------> ClientHello ------>
(with cookie) (with cookie)
<DTLS Setup>
<------ ServerHello <------ ServerHello
<------ Certificate <------ Certificate
<------ ServerHelloDone <------ ServerHelloDone
(WTP callout for AC authorization (WTP callout for AC authorization
occurs in CAPWAP Auth state) occurs in CAPWAP Auth state)
<DTLS Run>
Certificate* Certificate*
ClientKeyExchange ClientKeyExchange
CertificateVerify* CertificateVerify*
[ChangeCipherSpec] [ChangeCipherSpec]
Finished ------> Finished ------>
(AC callout for WTP authorization (AC callout for WTP authorization
occurs in CAPWAP Auth state) occurs in CAPWAP Auth state)
<DTLS Run>
[ChangeCipherSpec] [ChangeCipherSpec]
<------ Finished <------ Finished
DTLS, as specified, provides its own retransmit timers with an DTLS, as specified, provides its own retransmit timers with an
exponential back-off. However, it will never terminate the handshake exponential back-off. However, DTLS will never terminate the
due to non-responsiveness; rather, it will continue to increase its handshake due to non-responsiveness; instead, DTLS will continue to
back-off timer period. Hence, timing out incomplete DTLS handshakes increase its back-off timer period. Hence, timing out incomplete
is entirely the responsiblity of the CAPWAP protocol. DTLS handshakes is entirely the responsiblity of the CAPWAP module.
The DTLS implementation used by CAPWAP MUST support TLS Session
Resumption. Session resumption is used to establish the DTLS session
used for the data channel. The DTLS implementation on the WTP MUST
return some unique identifier to the CAPWAP module to enable
subsequent establishment of a DTLS-encrypted data channel, if
necessary.
2.4.2. DTLS Session Establishment 2.4.2. DTLS Session Establishment
The WTP, either through the Discovery process, or through pre- The WTP, either through the Discovery process, or through pre-
configuration, determines the AC to connect to. The WTP uses the configuration, determines the AC to connect to. The WTP uses the
DTLSStart command to request that a secure connection be established DTLSStart command to request that a secure connection be established
to the selected AC. Prior to initiation of the DTLS handshake, the to the selected AC. Prior to initiation of the DTLS handshake, the
WTP sets the WaitDTLS timer. Upon receiving the DTLSIncomingSession WTP sets the WaitDTLS timer. Upon receiving the DTLSIncomingSession
DTLS notification, the AC sets the WaitDTLS timer. If the DTLS notification, the AC sets the WaitDTLS timer. If the
DTLSEstablished notification is not received prior to timer DTLSEstablished notification is not received prior to timer
expiration, the DTLS session is aborted by issuing the expiration, the DTLS session is aborted by issuing the
DTLSAbortSession DTLS command. This notification causes the CAPWAP DTLSAbortSession DTLS command. This notification causes the CAPWAP
state to transition back to the Idle state. Upon receiving a module to transition to the Idle state. Upon receiving a
DTLSEstablished notification, the WaitDTLS timer is deactivated. DTLSEstablished notification, the WaitDTLS timer is deactivated.
2.4.3. DTLS Error Handling 2.4.3. DTLS Error Handling
If the AC does not respond to any DTLS messages sent by the WTP, the If the AC does not respond to any DTLS messages sent by the WTP, the
DTLS specification calls for the WTP to retransmit these messages. DTLS specification calls for the WTP to retransmit these messages.
If the WaitDTLS timer expires, CAPWAP will issue the DTLSAbortSession If the WaitDTLS timer expires, CAPWAP will issue the DTLSAbortSession
command, causing DTLS to terminate the handshake and remove any command, causing DTLS to terminate the handshake and remove any
allocated session context. Note that DTLS MAY send a single TLS allocated session context. Note that DTLS MAY send a single TLS
Alert message to the AC to indicate session termination. Alert message to the AC to indicate session termination.
If the WTP does not respond to any DTLS messages sent by the AC, the If the WTP does not respond to any DTLS messages sent by the AC, the
CAPWAP protocol allows for three possiblities, listed below. Note CAPWAP protocol allows for three possiblities, listed below. Note
that DTLS MAY send a single TLS Alert message to the AC to indicate that DTLS MAY send a single TLS Alert message to the AC to indicate
session termination. session termination.
o The message was lost in transit; in this case, the WTP will re- o The message was lost in transit; in this case, the WTP will re-
transmit its last outstanding message, since it did not receive transmit its last outstanding message, since it did not receive a
the reply. reply.
o The WTP sent a DTLS Alert, which was lost in transit; in this o The WTP sent a DTLS Alert, which was lost in transit; in this
case, the AC's WaitDTLS timer will expire, and the session will be case, the AC's WaitDTLS timer will expire, and the session will be
terminated. terminated.
o Communication with the WTP has completely failed; in this case, o Communication with the WTP has completely failed; in this case,
the AC's WaitDTLS timer will expire, and the session will be the AC's WaitDTLS timer will expire, and the session will be
terminated. terminated.
The DTLS specification provides for retransmission of unacknowledged The DTLS specification provides for retransmission of unacknowledged
requests. If retransmissions remain unacknowledged, the WaitDTLS requests. If retransmissions remain unacknowledged, the WaitDTLS
timer will eventually expire, at which time the CAPWAP module will timer will eventually expire, at which time the CAPWAP component will
terminate the session. terminate the session.
If a cookie fails to validate, this could represent a WTP error, or If a cookie fails to validate, this could represent a WTP error, or
it could represent a DoS attack. Hence, AC resource utilization it could represent a DoS attack. Hence, AC resource utilization
SHOULD be minimized. The AC MAY log a message indicating the SHOULD be minimized. The AC MAY log a message indicating the
failure, but SHOULD NOT attempt to reply to the WTP. failure, but SHOULD NOT attempt to reply to the WTP.
Since DTLS handshake messages are potentially larger than the maximum Since DTLS handshake messages are potentially larger than the maximum
record size, DTLS supports fragmenting of handshake messages across record size, DTLS supports fragmenting of handshake messages across
multiple records. There are several potential causes of re-assembly multiple records. There are several potential causes of re-assembly
errors, including overlapping and/or lost fragments. The DTLS module errors, including overlapping and/or lost fragments. The DTLS
MUST send a DTLSReassemblyFailure notification to CAPWAP. Whether component MUST send a DTLSReassemblyFailure notification to the
precise information is given along with notification is an CAPWAP component. Whether precise information is given along with
implementation issue, and hence is beyond the scope of this document. notification is an implementation issue, and hence is beyond the
Upon receipt of such an error, the CAPWAP protocol implementation scope of this document. Upon receipt of such an error, the CAPWAP
SHOULD log an appropriate error message. Whether processing component SHOULD log an appropriate error message. Whether
continues or the DTLS session is terminated is implementation processing continues or the DTLS session is terminated is
dependent. implementation dependent.
DTLS decapsulation errors consist of three types: decryption errors, DTLS decapsulation errors consist of three types: decryption errors,
and authentication errors, and malformed DTLS record headers. Since authentication errors, and malformed DTLS record headers. Since DTLS
DTLS authenticates the data prior to encapsulation, if decryption authenticates the data prior to encapsulation, if decryption fails,
fails, it is difficult to detect this without first attempting to it is difficult to detect this without first attempting to
authenticate the packet. If authentication fails, a decryption error authenticate the packet. If authentication fails, a decryption error
is also likely, but not guaranteed. Rather than attempt to derive is also likely, but not guaranteed. Rather than attempt to derive
(and require the implementation of) algorithms for detecting (and require the implementation of) algorithms for detecting
decryption failures, these are reported as authentication failures. decryption failures, decryption failures are reported as
The DTLS module MUST provide a DTLSDecapFailure notification to authentication failures. The DTLS component MUST provide a
CAPWAP when such errors occur. If a malformed DTLS record header is DTLSDecapFailure notification to the CAPWAP component when such
detected, the packets SHOULD be silently discarded, and the receiver errors occur. If a malformed DTLS record header is detected, the
MAY log an error message. packets SHOULD be silently discarded, and the receiver MAY log an
error message.
There is currently only one encapsulation error defined: MTU There is currently only one encapsulation error defined: MTU
exceeeded. As part of DTLS session establishment, CAPWAP informs exceeded. As part of DTLS session establishment, the CAPWAP
DTLS of the MTU size. This may be dynamically modified at any time component informs the DTLS component of the MTU size. This may be
when CAPWAP sends the DTLSMtuUpdate command to DTLS. DTLS returns dynamically modified at any time when the CAPWAP component sends the
this notification to CAPWAP whenever a transmission request will DTLSMtuUpdate command to the DTLS component (see Section 2.3.2.1).
result in a packet which exceeds the MTU. The DTLS component returns this notification to the CAPWAP component
whenever a transmission request will result in a packet which exceeds
the MTU.
2.4.4. DTLS EndPoint Authentication 2.4.4. DTLS EndPoint Authentication and Authorization
DTLS supports endpoint authentication with certificates or preshared DTLS supports endpoint authentication with certificates or preshared
keys. The TLS algorithm suites for each endpoint authentication keys. The TLS algorithm suites for each endpoint authentication
method are described below. method are described below.
2.4.4.1. Authenticating with Certificates 2.4.4.1. Authenticating with Certificates
Note that only block ciphers are currently recommended for use with Note that only block ciphers are currently recommended for use with
DTLS. To understand the reasoning behind this, see [14]. However, DTLS. To understand the reasoning behind this, see [16]. At
support for AES counter mode encryption is currently progressing in present, the following algorithms MUST be supported when using
the TLS working group, and once protocol identifiers are available, certificates for CAPWAP authentication:
they will be added below. At present, the following algorithms MUST
be supported when using certificates for CAPWAP authentication:
o TLS_RSA_WITH_AES_128_CBC_SHA o TLS_RSA_WITH_AES_128_CBC_SHA
o TLS_RSA_WITH_3DES_EDE_CBC_SHA
The following algorithms SHOULD be supported when using certificates: The following algorithms SHOULD be supported when using certificates:
o TLS_DH_RSA_WITH_AES_128_CBC_SHA o TLS_DH_RSA_WITH_AES_128_CBC_SHA
o TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA
The following algorithms MAY be supported when using certificates: The following algorithms MAY be supported when using certificates:
o TLS_RSA_WITH_AES_256_CBC_SHA o TLS_RSA_WITH_AES_256_CBC_SHA
o TLS_DH_RSA_WITH_AES_256_CBC_SHA o TLS_DH_RSA_WITH_AES_256_CBC_SHA
2.4.4.2. Authenticating with Preshared Keys 2.4.4.2. Authenticating with Preshared Keys
Pre-shared keys present significant challenges from a security Pre-shared keys present significant challenges from a security
perspective, and for that reason, their use is strongly discouraged. perspective, and for that reason, their use is strongly discouraged.
However, [6] defines several different methods for authenticating Several methods for authenticating with preshared keys are defined
with preshared keys, and we focus on the following two: [6], and we focus on the following two:
o PSK key exchange algorithm - simplest method, ciphersuites use o PSK key exchange algorithm - simplest method, ciphersuites use
only symmetric key algorithms only symmetric key algorithms
o DHE_PSK key exchange algorithm - use a PSK to authenticate a o DHE_PSK key exchange algorithm - use a PSK to authenticate a
Diffie-Hellman exchange. These ciphersuites give some additional Diffie-Hellman exchange. These ciphersuites give some additional
protection against dictionary attacks and also provide Perfect protection against dictionary attacks and also provide Perfect
Forward Secrecy (PFS). Forward Secrecy (PFS).
The first approach (plain PSK) is susceptible to passive dictionary The first approach (plain PSK) is susceptible to passive dictionary
attacks; hence, while this alorithm MUST be supported, special care attacks; hence, while this alorithm MUST be supported, special care
should be taken when choosing that method. In particular, user- should be taken when choosing that method. In particular, user-
readable passphrases SHOULD NOT be used, and use of short PSKs SHOULD readable passphrases SHOULD NOT be used, and use of short PSKs SHOULD
be strongly discouraged. be strongly discouraged.
The following cryptographic algorithms MUST be supported when using The following cryptographic algorithms MUST be supported when using
preshared keys: preshared keys:
o TLS_PSK_WITH_AES_128_CBC_SHA o TLS_PSK_WITH_AES_128_CBC_SHA
o TLS_PSK_WITH_3DES_EDE_CBC_SHA
o TLS_DHE_PSK_WITH_AES_128_CBC_SHA o TLS_DHE_PSK_WITH_AES_128_CBC_SHA
o TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA
The following algorithms MAY be supported when using preshared keys: The following algorithms MAY be supported when using preshared keys:
o TLS_PSK_WITH_AES_256_CBC_SHA o TLS_PSK_WITH_AES_256_CBC_SHA
o TLS_DHE_PSK_WITH_AES_256_CBC_SHA o TLS_DHE_PSK_WITH_AES_256_CBC_SHA
2.4.4.3. Certificate Usage 2.4.4.3. Certificate Usage
When using certificates, both authentication and authorization must
be considered. Section 12.3 provides recommendations on how to
authenticate a certificate and bind that to a CAPWAP entity. This
section deals with certificate authorization.
Certificate authorization by the AC and WTP is required so that only Certificate authorization by the AC and WTP is required so that only
an AC may perform the functions of an AC and that only a WTP may an AC may perform the functions of an AC and that only a WTP may
perform the functions of a WTP. This restriction of functions to the perform the functions of a WTP. This restriction of functions to the
AC or WTP requires that the certificates used by the AC MUST be AC or WTP requires that the certificates used by the AC MUST be
distinguishable from the certificate used by the WTP. To accomplish distinguishable from the certificate used by the WTP. To accomplish
this differentiation, the x.509 certificates MUST include the this differentiation, the x.509 certificates MUST include the
Extended Key Usage (EKU) certificate extension [4]. Extended Key Usage (EKU) certificate extension [4].
The EKU field indicates one or more purposes for which a certificate The EKU field indicates one or more purposes for which a certificate
may be used. It is an essential part in authorization. Its syntax may be used. It is an essential part in authorization. Its syntax
is as follows: is as follows:
ExtKeyUsageSyntax ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeId ExtKeyUsageSyntax ::= SEQUENCE SIZE (1..MAX) OF KeyPurposeId
KeyPurposeId ::= OBJECT IDENTIFIER KeyPurposeId ::= OBJECT IDENTIFIER
Here we define two KeyPurposeId values, one for the WTP and one for Here we define two KeyPurposeId values, one for the WTP and one for
the AC. Inclusion of one of those two values indicates a certificate the AC. Inclusion of one of these two values indicates a certificate
is authorized for use by a WTP or AC, respectively. These values are is authorized for use by a WTP or AC, respectively. These values are
formatted as id-kp fields. formatted as id-kp fields.
id-kp OBJECT IDENTIFIER ::= id-kp OBJECT IDENTIFIER ::=
{ iso(1) identified-organization(3) dod(6) internet(1) { iso(1) identified-organization(3) dod(6) internet(1)
security(5) mechanisms(5) pkix(7) 3 } security(5) mechanisms(5) pkix(7) 3 }
id-kp-capwapWTP OBJECT IDENTIFIER ::= { id-kp 19 }
id-kp-capwapAC OBJECT IDENTIFIER ::= { id-kp 18 } id-kp-capwapAC OBJECT IDENTIFIER ::= { id-kp 18 }
id-kp-capwapWTP OBJECT IDENTIFIER ::= { id-kp 19 }
For an AC, the id-kp-capwapAC EKU MUST be present in the certificate. For an AC, the id-kp-capwapAC EKU MUST be present in the certificate.
For a WTP, the id-kp-capwapWTP EKU MUST be present in the For a WTP, the id-kp-capwapWTP EKU MUST be present in the
certificate. certificate.
Part of the CAPWAP certificate validation process includes ensuring Part of the CAPWAP certificate validation process includes ensuring
that the proper EKU is included and only allowing the CAPWAP session that the proper EKU is included and allowing the CAPWAP session to be
to be established if the extension properly represents the device. established only if the extension properly represents the device.
The certificate common name (CN) for both the WTP and AC MUST be the
MAC address of that device. The MAC address MUST be formatted as
ASCII HEX, e.g. 01:23:45:67:89:ab.
ACs and WTPs SHOULD authorize (e.g. through access control lists)
certificates of devices to which they are connecting, based on the
MAC address and organizational information specified in the O and OU
fields. The identities specified in the certificates bind a
particular DTLS session to a specific pair of mutually-authenticated
and authorized MAC addresses.
2.4.4.4. PSK Usage
When DTLS uses PSK Ciphersuites, the ServerKeyExchange message MUST
contain the "PSK identity hint" field and the ClientKeyExchange
message MUST contain the "PSK identity" field. These fields are used
to help the WTP select the appropriate PSK for use with the AC, and
then indicate to the AC which key is being used. When PSKs are
provisioned to WTPs and ACs, both the PSK Hint and PSK Identity for
the key MUST be specified.
The PSK Hint SHOULD uniquely identify the AC and the PSK Identity
SHOULD uniquely identify the WTP. It is RECOMMENDED that these hints
and identities be the ASCII HEX-formatted MAC addresses of the
respective devices, since each pairwise combination of WTP and AC
SHOULD have a unique PSK. The PSK hint and identity SHOULD be
sufficient to perform authorization, as simply having knowledge of a
PSK does not necessarily imply authorization.
If a single PSK is being used for multiple devices on a CAPWAP
network, which is NOT RECOMMENDED, the PSK Hint and Identity can no
longer be a MAC address, so appropriate hints and identities SHOULD
be selected to identify the group of devices to which the PSK is
provisioned.
3. CAPWAP Transport 3. CAPWAP Transport
The CAPWAP protocol uses UDP as a transport, and can be used with The CAPWAP protocol uses UDP as a transport protocol, and can be used
IPv4 or IPv6. This section details the specifics of how the CAPWAP with IPv4 or IPv6. This section details the specifics of how the
protocol works in conjunction with IP. CAPWAP protocol works with IP.
3.1. UDP Transport 3.1. UDP Transport
Communication between a WTP and an AC is established according to the Communication between a WTP and an AC is established according to the
standard UDP client/server model. One of the CAPWAP requirements is standard UDP client/server model. One of the CAPWAP protocol
to allow a WTP to reside behind a firewall and/or Network Address requirements is to allow a WTP to reside behind a firewall and/or
Translation (NAT) device. Since the connection is initiated by the Network Address Translation (NAT) device. Since the connection is
WTP (client) to the well-known UDP port of the AC (server), the use initiated by the WTP (client) to the well-known UDP port of the AC
of UDP is a logical choice. (server), the use of UDP is a logical choice.
CAPWAP protocol control packets sent between the WTP and the AC use CAPWAP protocol control packets sent between the WTP and the AC use
well known UDP port [to be IANA assigned]. CAPWAP protocol data well known UDP port [to be IANA assigned]. CAPWAP protocol data
packets sent between the WTP and the AC use UDP port [to be IANA packets sent between the WTP and the AC use UDP port [to be IANA
assigned]. assigned].
3.2. AC Discovery 3.2. AC Discovery
The AC discovery phase allows the WTP to determine which ACs are
available, and chose the best AC with which to establish a CAPWAP
session. The discovery phase occurs when the WTP enters the optional
Discovery state. A WTP does not need to complete the AC Discovery
phase if it uses a pre-configured AC. This section details the
mechanism used by a WTP to dynamically discover candidate ACs.
A WTP and an AC will frequently not reside in the same IP subnet A WTP and an AC will frequently not reside in the same IP subnet
(broadcast domain). When this occurs, the WTP must be capable of (broadcast domain). When this occurs, the WTP must be capable of
discovering the AC, without requiring that multicast services are discovering the AC, without requiring that multicast services are
enabled in the network. This section describes how AC discovery is enabled in the network.
performed by WTPs.
As the WTP attempts to establish communication with an AC, it sends When the WTP attempts to establish communication with an AC, it sends
the Discovery Request message and receives the corresponding response the Discovery Request message and receives the Discovery Response
message from the AC(s). The WTP must send the Discovery Request message from the AC(s). The WTP must send the Discovery Request
message to either the limited broadcast IP address (255.255.255.255), 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 a well known multicast address or to the unicast IP address of the
AC. Upon receipt of the Discovery Request message, the AC issues a AC. For IPv6 networks, since broadcast does not exist, the use of
Discovery Response message to the unicast IP address of the WTP, "All ACs multicast address" is used instead. Upon receipt of the
regardless of whether the Discovery Request message was sent as a Discovery Request message, the AC sends a Discovery Response message
broadcast, multicast or unicast message. to the unicast IP address of the WTP, regardless of whether the
Discovery Request message was sent as a broadcast, multicast or
unicast message.
WTP use of a limited IP broadcast, multicast or unicast IP address is WTP use of a limited IP broadcast, multicast or unicast IP address is
implementation dependent. implementation dependent.
When a WTP transmits a Discovery Request message to a unicast When a WTP transmits a Discovery Request message to a unicast
address, the WTP must first obtain the IP address of the AC. Any 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 static configuration of an AC's IP address on the WTP non-volatile
storage is implementation dependent. However, additional dynamic storage is implementation dependent. However, additional dynamic
schemes are possible, for example: schemes are possible, for example:
DHCP: A comma delimited ASCII encoded list of AC IP addresses is DHCP: A comma delimited ASCII encoded list of AC IP addresses is
embedded in the DHCP code number TBD. An example of the actual embedded in DHCP code number TBD. An example of the actual format
format of the vendor specific payload for IPv4 is of the form of the vendor specific payload for IPv4 is of the form "10.1.1.1,
"10.1.1.1, 10.1.1.2". 10.1.1.2".
DNS: The DNS name "CAPWAP-AC-Address" MAY be resolvable to one or DNS: The DNS name "CAPWAP-AC-Address" MAY be resolvable to one or
more AC addresses. more AC addresses.
An AC MAY also communicate alternative ACs to the WTP within the
Discovery Response message through the AC IPv4 List (see
Section 4.5.2) and AC IPv6 List (see Section 4.5.2). The addresses
provided in these two message elements are intended to help the WTP
discover additional ACs through means other than those listed above.
The AC Name with Index message element (see Section 4.5.5), is used
to communicate a list of preferred ACs to the WTP. The WTP SHOULD
attempt to utilize the ACs listed in the order provided by the AC.
The Name to IP Address mapping is handled via the Discovery message
exchange, in which the ACs provide their identity in the AC Name (see
Section 4.5.4) message element in the Discovery Response message.
Once the WTP has received Discovery Response messages from the
candidate ACs, it MAY use other factors to determine the preferred
AC. For instance, each binding defines a WTP Radio Information
message element (see Section 2.1), which the AC includes in Discovery
Response messages. The presence of one or more of these message
elements is used to identify the CAPWAP bindings supported by the AC.
A WTP MAY connect to an AC based on the supported bindings
advertised.
3.3. Fragmentation/Reassembly 3.3. Fragmentation/Reassembly
While fragmentation and reassembly services are provided by IP, the While fragmentation and reassembly services are provided by IP, the
CAPWAP protocol also provides such services. Environments where the CAPWAP protocol also provides such services. Environments where the
CAPWAP protocol is used involve firewall, Network Address Translation CAPWAP protocol is used involve firewall, NAT and "middle box"
(NAT) and "middle box" devices, which tend to drop IP fragments in devices, which tend to drop IP fragments to minimize possible DoS
order to minimize possible Denial of Service attacks. By providing attacks. By providing fragmentation and reassembly at the
fragmentation and reassembly at the application layer, any application layer, any fragmentation required due to the tunneling
fragmentation required due to the tunneling component of the CAPWAP component of the CAPWAP protocol becomes transparent to these
protocol becomes transparent to these intermediate devices. intermediate devices. Consequently, the CAPWAP protocol can be used
Consequently, the CAPWAP protocol is not impacted by any network in any network configuration.
configurations.
4. CAPWAP Packet Formats 4. CAPWAP Packet Formats
This section contains the CAPWAP protocol packet formats. A CAPWAP This section contains the CAPWAP protocol packet formats. A CAPWAP
protocol packet consists of a CAPWAP Transport Layer packet header protocol packet consists of a CAPWAP Transport Layer packet header
followed by a CAPWAP message. The CAPWAP message can be either of followed by a CAPWAP message. The CAPWAP message can be either of
type Control or Data, where Control packets carry signaling, and Data type Control or Data, where Control packets carry signaling, and Data
packets carry user payloads. The CAPWAP frame formats for CAPWAP packets carry user payloads. The CAPWAP frame formats for CAPWAP
Data packets, and for DTLS encapsulated CAPWAP Data and Control Data packets, and for DTLS encapsulated CAPWAP Data and Control
packets. See section Section 3.1 for more information on the use of packets are defined below.
UDP.
The CAPWAP Control protocol includes two messages that are never The CAPWAP Control protocol includes two messages that are never
protected by DTLS. These messages, called the Discovery Request and protected by DTLS: the Discovery Request message and the Discovery
Discovery Response, need to be in the clear in order for the CAPWAP Response message. These messages need to be in the clear to allow
protocol to properly identify and process them. The format of these the CAPWAP protocol to properly identify and process them. The
packets are as follows: format of these packets are as follows:
CAPWAP Control Packet (Discovery Request/Response): CAPWAP Control Packet (Discovery Request/Response):
+---------------------------------------------------+ +-----------------------------------------------------+
| IP | UDP | CAPWAP |CAPWAP | Control | Message | | IP | UDP | CAPWAP |CAPWAP | Control | Message |
| Hdr | Hdr | p-amble|Header | Header | Element(s) | | Hdr | Hdr | Preamble| Header | Header | Element(s) |
+---------------------------------------------------+ +-----------------------------------------------------+
All other CAPWAP control protocol messages MUST be protected via the All other CAPWAP control protocol messages MUST be protected via the
DTLS protocol, which ensures that the packets are both authenticated DTLS protocol, which ensures that the packets are both authenticated
and encrypted. The format of these packets are as follows: and encrypted. The format of these packets is as follows:
CAPWAP Control Packet (DTLS Security Required): CAPWAP Control Packet (DTLS Security Required):
+------------------------------------------------------------------+ +-----------------------------------------------------------------+
| IP | UDP | CAPWAP | DTLS | CAPWAP | Control | Message | DTLS | | IP | UDP | CAPWAP | DTLS | CAPWAP | Control | Message | DTLS |
| Hdr | Hdr | p-amble| Hdr | Header | Header | Element(s) | Trlr | | Hdr | Hdr | Preamble| Hdr | Header | Header | Element(s)| Trlr |
+------------------------------------------------------------------+ +-----------------------------------------------------------------+
\----------- authenticated ------------/ \---------- authenticated -----------/
\------------- encrypted -------------/ \------------- encrypted ------------/
The CAPWAP protocol allows optional encryption of the data frames, The CAPWAP protocol allows optional protection of data packets, using
once again using the DTLS protocol. Whether or not the data frames DTLS. Use of data packet protection is determined by AC policy. The
are encrypted is a matter of policy, which is described in a later format of CAPWAP data packets is shown below:
section of this specification. The format of these packets is as
follows:
CAPWAP Plain Text Data Packet : CAPWAP Plain Text Data Packet :
+-----------------------------------------+ +-----------------------------------------+
| IP | UDP | CAPWAP | CAPWAP | Wireless | | IP | UDP | CAPWAP | CAPWAP | Wireless |
| Hdr | Hdr | p-amble| Header | Payload | | Hdr | Hdr | Preamble| Header | Payload |
+-----------------------------------------+ +-----------------------------------------+
DTLS Secured CAPWAP Data Packet: DTLS Secured CAPWAP Data Packet:
+------------------------------------------------------+ +-------------------------------------------------------+
| IP | UDP | CAPWAP | DTLS | CAPWAP | Wireless | DTLS | | IP | UDP | CAPWAP | DTLS | CAPWAP | Wireless | DTLS |
| Hdr | Hdr | p-amble| Hdr | Hdr | Payload | Trlr | | Hdr | Hdr | Preamble| Hdr | Hdr | Payload | Trlr |
+------------------------------------------------------+ +-------------------------------------------------------+
\----- authenticated -----/ \------ authenticated -----/
\------- encrypted --------/ \------- encrypted --------/
UDP: All CAPWAP packets are encapsulated within UDP. Section UDP Header: All CAPWAP packets are encapsulated within UDP. Section
Section 3.1 defines the specific UDP usage. Section 3.1 defines the specific UDP usage.
CAPWAP preamble: All CAPWAP protocol packets are prefixed with the CAPWAP Preamble: All CAPWAP protocol packets are prefixed with the
preable header, which is used to identify the frame type that CAPWAP Preamble header, used to identify the frame type that
follows. This header, is defined in Section 4.1. follows. The CAPWAP Preamble header is defined in Section 4.1.
DTLS Header: The DTLS header provides authentication and encrytion DTLS Header: The DTLS header provides authentication and encrytion
services to the CAPWAP payload it encapsulates. This protocol is services to the CAPWAP payload it encapsulates. This protocol is
defined in RFC 4347 [9]. defined in RFC 4347 [9].
CAPWAP Header: All CAPWAP protocol packets use a common header that CAPWAP Header: All CAPWAP protocol packets use a common header that
immediately follows the UDP header. This header, is defined in immediately follows the CAPWAP preamble or DTLS header. The
Section 4.2. CAPWAP Header is defined in Section 4.2.
Wireless Payload: A CAPWAP protocol packet that contains a wireless Wireless Payload: A CAPWAP protocol packet that contains a wireless
payload is known as a data frame. The CAPWAP protocol does not payload is a CAPWAP data packet. The CAPWAP protocol does not
dictate the format of the wireless payload, which is defined by specify the format of the wireless payload, which is defined by
the appropriate wireless standard. Additional information is in the appropriate wireless standard. Additional information is in
Section 4.3. Section 4.3.
Control Header: The CAPWAP protocol includes a signalling component, Control Header: The CAPWAP protocol includes a signalling component,
known as the CAPWAP control protocol. All CAPWAP control packets known as the CAPWAP control protocol. All CAPWAP control packets
include a Control Header, which is defined in Section 4.4.1. include a Control Header, which is defined in Section 4.4.1.
CAPWAP data packets do not contain a Control Header field.
Message Elements: A CAPWAP Control packet includes one or more Message Elements: A CAPWAP Control packet includes one or more
message elements, which are found immediately following the message elements, which are found immediately following the
control header. These message elements are in a Type/Length/value Control Header. These message elements are in a Type/Length/value
style header, defined in Section 4.5. style header, defined in Section 4.5.
4.1. CAPWAP preamble A CAPWAP implementation MUST be capable of receiving a reassembled
CAPWAP message of length 4096 bytes. A CAPWAP implementation MAY
indicate that it supports a higher maximum message length, by
including the Maximum Message Length message element, see
Section 4.5.29 in the Join Request message or the Join Response
message.
The CAPWAP preamble header is used to help identify the payload type 4.1. CAPWAP Preamble
that immediately follows. The reason for this header to is avoid
needing the perform byte comparisons in order to guess whether the The CAPWAP Preamble header is used to identify the payload type that
frame is DTLS encrypted or not. The format of the frame is as immediately follows, to avoid needing to perform byte comparisons to
follows: determine if the packet is DTLS encrypted or not. The format of the
CAPWAP Preamble is as follows:
0 1 2 3 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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| Type | Reserved | |Version| Type | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Version: A 4 bit field which contains the version of CAPWAP used in Version: A 4 bit field which contains the version of CAPWAP used in
this packet. The value for this draft is zero (0). this packet. The value for this specification is zero (0).
Payload Type: A 4 bit field which specifies the payload type that Payload Type: A 4 bit field which specifies the payload type that
follows the preamble header. The following values are supported: follows the preamble header. The following values are supported:
0 - Clear text. If the packet is received on the data UDP port, 0 - Clear text. If the packet is received on the data UDP port,
the CAPWAP stack MUST treat this as a clear text CAPWAP data the CAPWAP stack MUST treat the packet as a clear text CAPWAP
packet. If received on the control UDP port, the CAPWAP stack data packet. If received on the control UDP port, the CAPWAP
MUST treat this as a clear text CAPWAP control packet. If the stack MUST treat the packet as a clear text CAPWAP control
control packet is not a Discovery Request or Response packet, packet. If the control packet is not a Discovery Request or
it is illegal and MUST be dropped. Response packet, the packet MUST be dropped.
1 - DTLS Payload. The packet is either a DTLS packet and MAY be 1 - DTLS Payload. The packet is a DTLS packet and MAY be a data
a data or control packet, based on the UDP port it was received or control packet, based on the UDP port it was received on
on (see section Section 3.1). (see Section 3.1).
Reserved: The 24-bit field is reserved for future use. All Reserved: The 24-bit field is reserved for future use. All
implementations complying with this protocol MUST set to zero any implementations complying with this protocol MUST set to zero any
bits that are reserved in the version of the protocol supported by bits that are reserved in the version of the protocol supported by
that implementation. Receivers MUST ignore all bits not defined that implementation. Receivers MUST ignore all bits not defined
for the version of the protocol they support. for the version of the protocol they support.
4.2. CAPWAP Header 4.2. CAPWAP Header
All CAPWAP protocol messages are encapsulated using a common header All CAPWAP protocol messages are encapsulated using a common header
format, regardless of the CAPWAP control or CAPWAP Data transport format, regardless of the CAPWAP control or CAPWAP Data transport
used to carry the messages. However, certain flags are not used to carry the messages. However, certain flags are not
applicable for a given transport. Refer to the specific transport applicable for a given transport. Refer to the specific transport
section in order to determine which flags are valid. section in order to determine which flags are valid.
The Version field in the CAPWAP header MUST NOT be modified in any
future CAPWAP specifications unless the Version field in the CAPWAP
Preamble Header is modified. The Version field value is used to
parse the CAPWAP headers.
Note that the optional fields defined in this section MUST be present Note that the optional fields defined in this section MUST be present
in the precise order shown below. in the precise order shown below.
0 1 2 3 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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| RID | HLEN | WBID |T|F|L|W|M|K| Flags | |Version| RID | HLEN | WBID |T|F|L|W|M|K| Flags |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Fragment ID | Frag Offset |Rsvd | | Fragment ID | Frag Offset |Rsvd |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| (optional) Radio MAC Address | | (optional) Radio MAC Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| (optional) Wireless Specific Information | | (optional) Wireless Specific Information |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload .... | | Payload .... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Version: A 4 bit field which contains the version of CAPWAP used in Version: A 4 bit field which contains the version of the CAPWAP
this packet. The value of this field MUST match the version field protocol used in this packet. The value of this field MUST match
set in the CAPWAP preamble header (see Section 4.1). The reason the version field set in the CAPWAP preamble header (see
for this duplicate field is to avoid any possible tampering of the Section 4.1). The reason for this duplicate field is to avoid any
version field in the preamble header which is not encrypted or possible tampering of the version field in the preamble header
authenticated. which is not encrypted or authenticated.
RID: A 5 bit field which contains the Radio ID number for this RID: A 5 bit field which contains the Radio ID number for this
packet. WTPs with multiple radios but a single MAC Address range packet. Given that MAC Addresses are not necessarily unique
use this field to indicate which radio is associated with the across physical radios in a WTP, the Radio Identifier (RID) field
packet. is used to indiciate which physical radio the message is
associated with.
HLEN: A 5 bit field containing the length of the CAPWAP transport HLEN: A 5 bit field containing the length of the CAPWAP transport
header in 4 byte words (Similar to IP header length). This length header in 4 byte words (Similar to IP header length). This length
includes the optional headers. includes the optional headers.
WBID: A 5 bit field which is the wireless binding identifier. The WBID: A 5 bit field which is the wireless binding identifier. The
identifier will indicate the type of wireless packet type identifier will indicate the type of wireless packet type
associated with the radio. The following values are defined: associated with the radio. The following values are defined:
1 - IEEE 802.11 1 - IEEE 802.11
skipping to change at page 39, line 17 skipping to change at page 42, line 25
combined with the other corresponding fragments to reassemble the combined with the other corresponding fragments to reassemble the
complete information exchanged between the WTP and AC. complete information exchanged between the WTP and AC.
L: The Last 'L' bit is valid only if the 'F' bit is set and indicates L: The Last 'L' bit is valid only if the 'F' bit is set and indicates
whether the packet contains the last fragment of a fragmented whether the packet contains the last fragment of a fragmented
exchange between WTP and AC. When this bit is 1, the packet is exchange between WTP and AC. When this bit is 1, the packet is
the last fragment. When this bit is 0, the packet is not the last the last fragment. When this bit is 0, the packet is not the last
fragment. fragment.
W: The Wireless 'W' bit is used to specify whether the optional W: The Wireless 'W' bit is used to specify whether the optional
wireless specific information field is present in the header. A Wireless Specific Information field is present in the header. A
value of one (1) is used to represent the fact that the optional value of one (1) is used to represent the fact that the optional
header is present. header is present.
M: The M bit is used to indicate that the Radio MAC Address optional M: The M bit is used to indicate that the Radio MAC Address optional
header is present. This is used to communicate the MAC address of header is present. This is used to communicate the MAC address of
the receiving radio when the native wireless packet. This field the receiving radio. This field MUST NOT be set to one in packets
MUST NOT be set to one in packets sent by the AC to the WTP. sent by the AC to the WTP.
K: The 'Keep-alive' K bit indicates the packet is a data channel K: The 'Keep-alive' K bit indicates the packet is a Data Channel Keep
keep-alive packet. This packet is used to map the data channel to Alive packet. This packet is used to map the data channel to the
the control channel for the specified Session ID and to maintain control channel for the specified Session ID and to maintain
freshness of the Data Channel. The K bit MUST NOT be set for data freshness of the data channel. The K bit MUST NOT be set for data
packets containing user data. packets containing user data.
Flags: A set of reserved bits for future flags in the CAPWAP header. Flags: A set of reserved bits for future flags in the CAPWAP header.
All implementations complying with this protocol MUST set to zero All implementations complying with this protocol MUST set to zero
any bits that are reserved in the version of the protocol any bits that are reserved in the version of the protocol
supported by that implementation. Receivers MUST ignore all bits supported by that implementation. Receivers MUST ignore all bits
not defined for the version of the protocol they support. not defined for the version of the protocol they support.
Fragment ID: An 16 bit field whose value is assigned to each group Fragment ID: A 16 bit field whose value is assigned to each group of
of fragments making up a complete set. The fragment ID space is fragments making up a complete set. The fragment ID space is
managed individually for every WTP/AC pair. The value of Fragment managed individually for every WTP/AC pair. The value of Fragment
ID is incremented with each new set of fragments. The Fragment ID 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 wraps to zero after the maximum value has been used to identify a
set of fragments. set of fragments.
Fragment Offset: A 13 bit field that indicates where in the payload Fragment Offset: A 13 bit field that indicates where in the payload
will this fragment belong during re-assembly. This field is valid this fragment belongs during re-assembly. This field is valid
when the 'F' bit is set to 1. The fragment offset is measured in when the 'F' bit is set to 1. The fragment offset is measured in
units of 8 octets (64 bits). The first fragment has offset zero. units of 8 octets (64 bits). The first fragment has offset zero.
Note the CAPWAP protocol does not allow for overlapping fragments. Note the CAPWAP protocol does not allow for overlapping fragments.
For instance, fragment 0 would include offset 0 with a payload
length of 1000, while fragment 1 include offset 900 with a payload
length of 600.
Reserved: The 3-bit field is reserved for future use. All Reserved: The 3-bit field is reserved for future use. All
implementations complying with this protocol MUST set to zero any implementations complying with this protocol MUST set to zero any
bits that are reserved in the version of the protocol supported by bits that are reserved in the version of the protocol supported by
that implementation. Receivers MUST ignore all bits not defined that implementation. Receivers MUST ignore all bits not defined
for the version of the protocol they support. for the version of the protocol they support.
Radio MAC Address: This optional field contains the MAC address of Radio MAC Address: This optional field contains the MAC address of
the radio receiving the packet. This is useful in packets sent the radio receiving the packet. This is useful in packets sent
from the WTP to the AC, when the native wireless frame format is from the WTP to the AC, when the native wireless frame format is
converted to 802.3 by the WTP. This field is only present if the converted to 802.3 by the WTP. This field is only present if the
'M' bit is set. Given the HLEN field assumes 4 byte alignment, 'M' bit is set. The HLEN field assumes 4 byte alignment, and this
this field MUST be padded with zeroes (0x00) if it is not 4 byte field MUST be padded with zeroes (0x00) if it is not 4 byte
aligned. aligned.
The field contains the basic format: The field contains the basic format:
0 1 2 3 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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length | MAC Address | Length | MAC Address
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Length: The number of bytes in the MAC Address field. The length Length: The number of bytes in the MAC Address field. The length
field is present since some technologies (e.g., IEEE 802.16) field is present since some technologies (e.g., IEEE 802.16)
are now using 64 bit MAC addresses. use 64 bit MAC addresses.
MAC Address: The MAC Address of the receiving radio. MAC Address: The MAC Address of the receiving radio.
Wireless Specific Information: This optional field contains Wireless Specific Information: This optional field contains
technology specific information that may be used to carry per technology specific information that may be used to carry per
packet wireless information. This field is only present if the packet wireless information. This field is only present if the
'W' bit is set. Given the HLEN field assumes 4 byte alignment, 'W' bit is set. The HLEN field assumes 4 byte alignment, and this
this field MUST be padded with zeroes (0x00) if it is not 4 byte field MUST be padded with zeroes (0x00) if it is not 4 byte
aligned. aligned.
The field contains the basic format: The Wireless Specific Information field uses the following format:
0 1 2 3 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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Wireless ID | Length | Data | Wireless ID | Length | Data
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Wireless ID: The wireless binding identifier. The following Wireless ID: The wireless binding identifier. The following
values are defined: values are defined:
1 - : IEEE 802.11 1 - IEEE 802.11
IEEE 802.16 2 - IEEE 802.16
EPCGlobal 3 - EPCGlobal
Length: The length of the data field Length: The length of the data field
Data: Wireless specific information, defined by the wireless Data: Wireless specific information, defined by the wireless
specific binding. specific binding.
Payload: This field contains the header for a CAPWAP Data Message or Payload: This field contains the header for a CAPWAP Data Message or
CAPWAP Control Message, followed by the data associated with that CAPWAP Control Message, followed by the data contained in the
message. message.
4.3. CAPWAP Data Messages 4.3. CAPWAP Data Messages
There are two different types of CAPWAP data messages; keepalive and There are two different types of CAPWAP data packets, CAPWAP Data
user payload. The first is used by the WTP to synchronize the Channel Keep Alive packets and Data Payload packets. The first is
control and data channels, as well as to maintain freshness of the used by the WTP to synchronize the control and data channels, and to
data channel. The second is used to transmit user payloads between maintain freshness of the data channel. The second is used to
the AC and WTP. This section will detail both types of CAPWAP data transmit user payloads between the AC and WTP. This section
messages. describes both types of CAPWAP data packet formats.
Both CAPWAP data messages are transmitted on the data channel UDP Both CAPWAP data messages are transmitted on the data channel UDP
port. port.
4.3.1. CAPWAP Data Keepalive 4.3.1. CAPWAP Data Keepalive
The CAPWAP data keepalive is used to bind the CAPWAP control channel The CAPWAP Data Channel Keep Alive packet is used to bind the CAPWAP
with the data channel. The keep alive is also used to maintain control channel with the data channel, and to maintain freshness of
freshness of the data channel, meaning ensuring the channel is still the data channel, ensuring that the channel is still functioning.
in functioning. The CAPWAP Data Keepalive is transmitted by the WTP The CAPWAP Data Channel Keep Alive packet is transmitted by the WTP
when the DataChannelKeepAlive timer expires. When the CAPWAP Data when the DataChannelKeepAlive timer expires. When the CAPWAP Data
Keepalive is transmitted, the WTP sets the DataChannelDeadInterval Channel Keep Alive packet is transmitted, the WTP sets the
timer. DataChannelDeadInterval timer.
All of the fields in the CAPWAP header, other than the HLEN and K In the CAPWAP Data Channel Keep Alive packet, all of the fields in
bit, are set to zero upon transmission. Upon receiving a CAPWAP Data the CAPWAP header, except the HLEN field and the K bit, are set to
Keepalive, the AC transmits a CAPWAP Data Keepalive message back to zero upon transmission. Upon receiving a CAPWAP Data Channel Keep
the WTP. The contents of the CAPWAP message is assumed to be Alive packet, the AC transmits a CAPWAP Data Channel Keep Alive
identical to the one received. packet back to the WTP. The contents of the transmitted packet are
identical to the contents of the received packet.
Upon receiving a CAPWAP Data Keepalive, the WTP cancels the Upon receiving a CAPWAP Data Channel Keep Alive packet, the WTP
DataChannelDeadInterval timer and resets the DataChannelKeepAlive cancels the DataChannelDeadInterval timer and resets the
timer. The CAPWAP Data Keepalive is retranmitted by the WTP in the DataChannelKeepAlive timer. The CAPWAP Data Channel Keep Alive
same manner as the CAPWAP control messages. If the packet is retransmitted by the WTP in the same manner as the CAPWAP
DataChannelDeadInterval timer expires the WTP tears down the control control messages. If the DataChannelDeadInterval timer expires, the
DTLS session, as well as the data DTLS session if one existed. WTP tears down the control DTLS session, and the data DTLS session if
one existed.
The CAPWAP Data Keepalive contains the following payload immediately The CAPWAP Data Channel Keep Alive packet contains the following
following the CAPWAP Header (see Section 4.2) payload immediately following the CAPWAP Header (see Section 4.2)
0 1 2 3 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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Msg Element Length | Msg Element [0..N] ... | Message Element Length | Message Element [0..N] ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Message Element Length: The Length field indicates the number of Message Element Length: The Length field indicates the number of
bytes following the CAPWAP Header. bytes following the CAPWAP Header.
Message Element[0..N]: The message element(s) carry the information Message Element[0..N]: The message element(s) carry the information
pertinent to each of the CAPWAP Data Keepalive message. The pertinent to each of the CAPWAP Data Keepalive message. The
following message elements MUST be present in this CAPWAP message: following message elements MUST be present in this CAPWAP message:
Session ID, see Section 4.5.33 Session ID, see Section 4.5.35
4.3.2. Station Data Payloads 4.3.2. Data Payload
A CAPWAP protocol data message encapsulates a forwarded wireless A CAPWAP protocol Data Payload packet encapsulates a forwarded
frame. The CAPWAP protocol defines two different modes of wireless frame. The CAPWAP protocol defines two different modes of
encapsulation; IEEE 802.3 and native wireless. IEEE 802.3 encapsulation; IEEE 802.3 and native wireless. IEEE 802.3
encapsulation requires that the bridging function be performed in the encapsulation requires that the bridging function be performed in the
WTP. An IEEE 802.3 encapsulated user payload frame has the following WTP. An IEEE 802.3 encapsulated user payload frame has the following
format: format:
+------------------------------------------------------+ +------------------------------------------------------+
| IP Header | UDP Header | CAPWAP Header | 802.3 Frame | | IP Header | UDP Header | CAPWAP Header | 802.3 Frame |
+------------------------------------------------------+ +------------------------------------------------------+
The CAPWAP protocol also defines the native wireless encapsulation The CAPWAP protocol also defines the native wireless encapsulation
mode. The actual format of the encapsulated CAPWAP data frame is mode. The format of the encapsulated CAPWAP data frame is subject to
subject to the rules defined under the specific wireless technology the rules defined by the specific wireless technology binding. Each
binding. As a consequence, each wireless technology binding MUST wireless technology binding MUST contain a section entitled "Payload
define a section entitled "Payload encapsulation", which defines the Encapsulation", which defines the format of the wireless payload that
format of the wireless payload that is encapsulated within the CAPWAP is encapsulated within CAPWAP Data packets.
Data messages.
In the event that the encapsulated frame would exceed the transport If the encapsulated frame would exceed the transport layer's MTU, the
layer's MTU, the sender is responsible for the fragmentation of the sender is responsible for fragmentation of the frame, as specified in
frame, as specified in Section 3.3. Section 3.3.
4.3.3. Establishment of a DTLS Data Channel
If the AC and WTP are configured to tunnel the data channel over
DTLS, the proper DTLS session must be initiated. To avoid having to
reauthenticate and reauthorize an AC and WTP, the DTLS data channel
MUST be initiated using the TLS session resumption feature [11].
When establishing the DTLS-encrypted data channel, the WTP MUST
provide the identifier returned during the initialization of the
control channel to the DTLS component so it can perform the
resumption using the proper session information.
The AC DTLS implementation MUST NOT accept a session resumption
request for a DTLS session in which the control channel for the
session has been torn down.
4.4. CAPWAP Control Messages 4.4. CAPWAP Control Messages
The CAPWAP Control protocol provides a control channel between the The CAPWAP Control protocol provides a control channel between the
WTP and the AC. Control messages are divided into the following WTP and the AC. Control messages are divided into the following
distinct message types: message types:
Discovery: CAPWAP Discovery messages are used to identify potential Discovery: CAPWAP Discovery messages are used to identify potential
ACs, their load and capabilities. ACs, their load and capabilities.
Join: CAPWAP Join messages are used to for a WTP to request service Join: CAPWAP Join messages are used by a WTP to request service from
from an AC, and for the AC to respond to the WTP. an AC, and for the AC to respond to the WTP.
Control Channel Management: CAPWAP control channel management Control Channel Management: CAPWAP control channel management
messages are used to maintain the control channel. messages are used to maintain the control channel.
WTP Configuration Management: The WTP Configuration messages are WTP Configuration Management: The WTP Configuration messages are
used by the AC to push a specific configuration to the WTP. used by the AC to deliver a specific configuration to the WTP.
Messages which provide retrieval of statistics from the WTP also Messages which retrieve statistics from a WTP are also included in
fall in this category. WTP Configuration Management.
Station Session Management: Station session management messages are Station Session Management: Station Session Management messages are
used by the AC to push specific Station policies to the WTP. used by the AC to deliver specific station policies to the WTP.
Device Management Operations: Device management operations are used Device Management Operations: Device management operations are used
to request and deliver a firmware image to the WTP. to request and deliver a firmware image to the WTP.
Binding Specific CAPWAP Management Frames: Messages in this category Binding Specific CAPWAP Management Messages: Messages in this
are used by the AC and the WTP to exchange protocol-specific category are used by the AC and the WTP to exchange protocol-
CAPWAP management messages. These messages may or may not be used specific CAPWAP management messages. These messages may or may
to change the link state of a station. not be used to change the link state of a station.
Discovery, Join, Control Message Management, WTP Configuration Discovery, Join, Control Channel Management, WTP Configuration
Management and Station Session Management CAPWAP control messages Management and Station Session Management CAPWAP control messages
MUST be implemented. Device Operations Management messages MAY be MUST be implemented. Device Management Operations messages MAY be
implemented. implemented.
CAPWAP control messages sent from the WTP to the AC indicate that the CAPWAP control messages sent from the WTP to the AC indicate that the
WTP is operational, providing an implicit keep-alive mechanism for WTP is operational, providing an implicit keep-alive mechanism for
the WTP. The Control Channel Management Echo Request and Echo the WTP. The Control Channel Management Echo Request and Echo
Response messages provide an explicit keep-alive mechanism when other Response messages provide an explicit keep-alive mechanism when other
CAPWAP control messages are not exchanged. CAPWAP control messages are not exchanged.
4.4.1. Control Message Format 4.4.1. Control Message Format
skipping to change at page 44, line 20 skipping to change at page 47, line 35
| Seq Num | Msg Element Length | Flags | | Seq Num | Msg Element Length | Flags |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Msg Element [0..N] ... | Msg Element [0..N] ...
+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+
4.4.1.1. Message Type 4.4.1.1. Message Type
The Message Type field identifies the function of the CAPWAP control The Message Type field identifies the function of the CAPWAP control
message. The Message Type field is comprised of an IANA Enterprise message. The Message Type field is comprised of an IANA Enterprise
Number and an enterprise specific message type number. The first Number and an enterprise specific message type number. The first
three octets is the enterprise number in network byte order, with three octets contain the enterprise number in network byte order,
zero being used for CAPWAP generic message types and the IEEE 802.11 with zero used for CAPWAP protocol defined message types and the IEEE
IANA assigned enterprise number 13277 being used for IEEE 802.11 802.11 IANA assigned enterprise number 13277 is used for IEEE 802.11
technology specific message types. The last octet is the enterprise technology specific message types. The last octet is the enterprise
specific message type number, which has a range from 0 to 255. The specific message type number, which has a range from 0 to 255.
message type field can be expressed as:
Message Type = IANA Enterprise Number * 256 + enterprise specific message type number The message type field is defined as:
The valid values for base CAPWAP Message Types are given in the table Message Type = IANA Enterprise Number * 256 + Enterprise Specific Message Type Number
below:
CAPWAP Control Message Message Type The CAPWAP protocol reliability mechanism requires that messages be
Value defined in pairs, consisting of both a Request and a Response
Discovery Request 1 message. The Response message MUST acknowledge the Request message.
Discovery Response 2 The assignment of CAPWAP control Message Type Values always occurs in
Join Request 3 pairs. All Request messages have odd numbered Message Type Values,
Join Response 4 and all Response messages have even numbered Message Type Values.
Configuration Status 5 The Request value MUST be assigned first. As an example, assigning a
Configuration Status Response 6 Message Type Value of 3 for a Request message and 4 for a Response
Configuration Status Acknowledge ??? message is valid, while assigning a Message Type Value of 4 for a
Response message and 5 for the corresponding Request message is
invalid.
When a WTP or AC receives a message with a Message Type Value field
that is not recognized and is an odd number, the number in the
Message Type Value Field is incremented by one, and a Response
message with a Message Type Value field containing the incremented
value and containing the Result Code message element with the value
(Unrecognized Request) is returned to the sender of the received
message. If the unknown message type is even, the message is
ignored.
The valid values for CAPWAP Control Message Types are specified in
the table below:
CAPWAP Control Message Message Type CAPWAP Control Message Message Type
Value Value
Discovery Request 1 Discovery Request 1
Discovery Response 2 Discovery Response 2
Join Request 3 Join Request 3
Join Response 4 Join Response 4
Configuration Status 5 Configuration Status 5
Configuration Status Response 6 Configuration Status Response 6
Configuration Status Acknowledge ??? Configuration Update Request 7
Configuration Update Response 8
WTP Event Request 9
WTP Event Response 10
Change State Event Request 11
Change State Event Response 12
Echo Request 13
Echo Response 14
Image Data Request 15
Image Data Response 16
Reset Request 17
Reset Response 18
Primary Discovery Request 19
Primary Discovery Response 20
Data Transfer Request 21
Data Transfer Response 22
Clear Configuration Request 23
Clear Configuration Response 24
Station Configuration Request 25
Station Configuration Response 26
4.4.1.2. Sequence Number 4.4.1.2. Sequence Number
The Sequence Number Field is an identifier value to match request and The Sequence Number Field is an identifier value used to match
response packet exchanges. When a CAPWAP packet with a request Request and Response packets. When a CAPWAP packet with a Request
message type is received, the value of the sequence number field is Message Type Value is received, the value of the Sequence Number
copied into the corresponding response packet. field is copied into the corresponding Response message.
When a CAPWAP control message is sent, its internal sequence number When a CAPWAP control message is sent, the sender's internal sequence
counter is monotonically incremented, ensuring that no two requests number counter is monotonically incremented, ensuring that no two
pending have the same sequence number. This field will wrap back to pending Request messages have the same Sequence Number. The Sequence
zero. Number field wraps back to zero.
4.4.1.3. Message Element Length 4.4.1.3. Message Element Length
The Length field indicates the number of bytes following the Sequence The Length field indicates the number of bytes following the Sequence
Number field. Number field.
4.4.1.4. Flags 4.4.1.4. Flags
The Flags field MUST be set to zero. The Flags field MUST be set to zero.
4.4.1.5. Message Element[0..N] 4.4.1.5. Message Element[0..N]
The message element(s) carry the information pertinent to each of the The message element(s) carry the information pertinent to each of the
control message types. Every control message in this specification control message types. Every control message in this specification
specifies which message elements are permitted. specifies which message elements are permitted.
When a WTP or AC receives a CAPWAP message without a message element
that is specified as mandatory for the CAPWAP message, then the
CAPWAP message is discarded. If the received message was a Request
message for which the corresponding Response message carries message
elements, then a corresponding Response message with a Result Code
message element indicating "Failure - Missing Mandatory Message
Element" is returned to the sender.
When a WTP or AC receives a CAPWAP message with a message element
that the WTP or AC does not recognize, the CAPWAP message is
discarded. If the received message was a Request message for which
the corresponding Response message carries message elements, then a
corresponding Response message with a Result Code message element
indicating "Failure - Unrecognized Message Element" and one or more
Returned Message Element message elements is included, containing the
unrecognized message element(s).
4.4.2. Control Message Quality of Service 4.4.2. Control Message Quality of Service
It is recommended that CAPWAP control messages be sent by both the AC It is recommended that CAPWAP control messages be sent by both the AC
and the WTP with an appropriate Quality of Service precedence value, and the WTP with an appropriate Quality of Service precedence value,
ensuring that congestion in the network minimizes occurrences of ensuring that congestion in the network minimizes occurrences of
CAPWAP control channel disconnects. Therefore, a Quality of Service CAPWAP control channel disconnects. Therefore, a Quality of Service
enabled CAPWAP device should use the following values: enabled CAPWAP device SHOULD use the following values:
802.1P: The precedence value of 7 SHOULD be used. 802.1P: The precedence value of 7 SHOULD be used.
DSCP: The DSCP tag value of 46 SHOULD be used. DSCP: The DSCP tag value of 46 SHOULD be used.
4.4.3. Retransmissions
The CAPWAP control protocol operates as a reliable transport. For
each Request message, a Response message is defined, which is used to
acknowledge receipt of the Request message. In addition, the control
header Sequence Number field is used to pair the Request and Response
messages (see Section 4.4.1).
Response messages are not explicitly acknowledged, therefore if a
Response message is not received, the original Request message is
retransmitted. Implementations MAY cache Response messages to
respond to a retransmitted Request messages with minimal local
processing. Retransmitted Request messages MUST NOT be altered by
the sender. The sender MUST assume that the original Request message
was processed, but that the Response message was lost. Any
alterations to the original Request message MUST have a new Sequence
Number, and be treated as a new Request message by the receiver.
After transmitting a Request message, the RetransmitInterval (see
Section 4.6) timer and MaxRetransmit (see Section 4.7) variable are
used to determine if the original Request message needs to be
retransmitted. Response messages are not subject to these timers.
When a Request message is retransmitted, it MUST be re-encrypted via
the DTLS stack. If the peer had received the Request message, and
the corresponding Response message was lost, it is necessary to
ensure that retransmitted Request messages are not identified as
replays by the DTLS stack. Similarly, any cached Response messages
that are retransmitted as a result of receiving a retransmitted
Request message MUST be re-encrypted via DTLS.
Duplicate Response messages, identified by the Sequence Number field
in the CAPWAP control message header, SHOULD be discarded upon
receipt.
4.5. CAPWAP Protocol Message Elements 4.5. CAPWAP Protocol Message Elements
This section defines the CAPWAP Protocol message elements which are This section defines the CAPWAP Protocol message elements which are
included in CAPWAP protocol control messages. included in CAPWAP protocol control messages.
Message elements are used to carry information needed in control Message elements are used to carry information needed in control
messages. Every message element is identified by the Type field, messages. Every message element is identified by the Type Value
whose numbering space is defined below. The total length of the field, defined below. The total length of the message elements is
message elements is indicated in the Message Element Length field. indicated in the message element Length field.
All of the message element definitions in this document use a diagram 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 similar to the one below in order to depict its format. Note that to
order to simplify this specification, these diagrams do not include simplify this specification, these diagrams do not include the header
the header fields (Type and Length). The header field values are fields (Type and Length). The header field values are defined in the
defined in the Message element descriptions. message element descriptions.
Note that unless otherwise specified, a control message that lists a Unless otherwise specified, a control message that lists a set of
set of supported (or expected) message elements MUST not expect the supported (or expected) message elements MUST not expect the message
message elements to be in any specific order. The sender may order elements to be in any specific order. The sender may include the
the message elements as convenient. Furthermore, unless specifically message elements in any order. Unless otherwise noted, one message
noted, any individual message element may exist one or more times element of each type is present in a given control message.
within a given control message.
Additional message elements may be defined in separate IETF Additional message elements may be defined in separate IETF
documents. documents.
The format of a message element uses the TLV format shown here: The format of a message element uses the TLV format shown here:
0 1 2 3 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 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 | | Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Value ... | | Value ... |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
Where Type (16 bit) identifies the character of the information
carried in the Value field and Length (16 bits) indicates the number The 16 bit Type field identifies the information carried in the Value
of bytes in the Value field. Type field values are allocated as field and Length (16 bits) indicates the number of bytes in the Value
follows: field. Type field values are allocated as follows:
Usage Type Values Usage Type Values
CAPWAP Protocol Message Elements 1-1023 CAPWAP Protocol Message Elements 1-1023
IEEE 802.11 Message Elements 1024-2047 IEEE 802.11 Message Elements 1024-2047
IEEE 802.16 Message Elements 2048 - 3071 IEEE 802.16 Message Elements 2048 - 3071
EPCGlobal Message Elements 3072 - 4095 EPCGlobal Message Elements 3072 - 4095
Reserved for Future Use 4096 - 65024 Reserved for Future Use 4096 - 65024
The table below lists the CAPWAP protocol Message Elements and their The table below lists the CAPWAP protocol Message Elements and their
skipping to change at page 48, line 31 skipping to change at page 52, line 27
Decryption Error Report 15 Decryption Error Report 15
Decryption Error Report Period 16 Decryption Error Report Period 16
Delete MAC ACL Entry 17 Delete MAC ACL Entry 17
Delete Station 18 Delete Station 18
Delete Static MAC ACL Entry 19 Delete Static MAC ACL Entry 19
Discovery Type 20 Discovery Type 20
Duplicate IPv4 Address 21 Duplicate IPv4 Address 21
Duplicate IPv6 Address 22 Duplicate IPv6 Address 22
Idle Timeout 23 Idle Timeout 23
Image Data 24 Image Data 24
Image Filename 25 Image Identifier 25
Initiate Download 26 Image Info 26
Location Data 27 Initiate Download 27
MTU Discovery Padding 28 Location Data 28
Radio Administrative State 29 Maximum Message Length 29
Radio Operational State 30 MTU Discovery Padding 30
Result Code 31 Radio Administrative State 31
Returned Message Element 46 Radio Operational State 32
Session ID 32 Result Code 33
Statistics Timer 33 Returned Message Element 34
Vendor Specific Payload 34 Session ID 35
WTP Board Data 35 Statistics Timer 36
WTP Descriptor 36 Vendor Specific Payload 37
WTP Fallback 37 WTP Board Data 38
WTP Frame Tunnel Mode 38 WTP Descriptor 39
WTP IPv4 IP Address 39 WTP Fallback 40
WTP MAC Type 40 WTP Frame Tunnel Mode 41
WTP Name 41 WTP IPv4 IP Address 42
WTP Operational Statistics 42 WTP MAC Type 43
WTP Radio Statistics 43 WTP Name 44
WTP Reboot Statistics 44 WTP Operational Statistics 45
WTP Static IP Address Information 45 WTP Radio Statistics 46
WTP Reboot Statistics 47
WTP Static IP Address Information 48
4.5.1. AC Descriptor 4.5.1. AC Descriptor
The AC payload message element is used by the AC to communicate it's The AC Descriptor message element is used by the AC to communicate
current state. The value contains the following fields. its current state. The value contains the following fields.
0 1 2 3 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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Stations | Limit | | Stations | Limit |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Active WTPs | Max WTPs | | Active WTPs | Max WTPs |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Security | R-MAC Field |Wireless Field | DTLS Policy | | Security | R-MAC Field | Reserved1 | DTLS Policy |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Vendor Identifier | | Vendor Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type=4 | Length | | Type=4 | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Value... | Value...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Vendor Identifier | | Vendor Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type=5 | Length | | Type=5 | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Value... | Value...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 1 for AC Descriptor Type: 1 for AC Descriptor
Length: >= 12 Length: >= 12
Stations: The number of stations currently associated with the AC Stations: The number of stations currently served by the AC
Limit: The maximum number of stations supported by the AC Limit: The maximum number of stations supported by the AC
Active WTPs: The number of WTPs currently attached to the AC Active WTPs: The number of WTPs currently attached to the AC
Max WTPs: The maximum number of WTPs supported by the AC Max WTPs: The maximum number of WTPs supported by the AC
Security: A 8 bit bit mask specifying the authentication credential Security: A 8 bit bit mask specifying the authentication credential
type supported by the AC. The following values are supported (see type supported by the AC. The following values are supported (see
Section 2.4.4): Section 2.4.4):
1 - X.509 Certificate Based 1 - X.509 Certificate Based
2 - Pre-Shared Secret 2 - Pre-Shared Secret
R-MAC Field: The AC supports the optional Radio MAC Address field R-MAC Field: The AC supports the optional Radio MAC Address field
in the CAPWAP transport Header (see Section 4.2). in the CAPWAP transport Header (see Section 4.2).
Wireless Field: The AC supports the optional Wireless Specific Reserved: A set of reserved bits for future use. All
Information field in the CAPWAP Header (see Section 4.2). implementations complying with this protocol MUST set to zero any
bits that are reserved in the version of the protocol supported by
that implementation. Receivers MUST ignore all bits not defined
for the version of the protocol they support.
DTLS Policy: The AC communicates its policy on the use of DTLS for DTLS Policy: The AC communicates its policy on the use of DTLS for
the CAPWAP data channel. The AC MAY communicate more than one the CAPWAP data channel. The AC MAY communicate more than one
supported option, represented by the bit field below. The WTP supported option, represented by the bit field below. The WTP
MUST abide by one of the options communicated by AC. The MUST abide by one of the options communicated by AC. The
following bit field values are supported: following bit field values are supported:
1 - Clear Text Data Channel Supported 1 - Clear Text Data Channel Supported
2 - DTLS Enabled Data Channel Supported 2 - DTLS Enabled Data Channel Supported
Vendor Identifier: A 32-bit value containing the IANA assigned "SMI Vendor Identifier: A 32-bit value containing the IANA assigned "SMI
Network Management Private Enterprise Codes" Network Management Private Enterprise Codes"
Type: Vendor specific encoding of AC information. The following Type: Vendor specific encoding of AC information. The following
values are supported. The Hardware and Software Version values values are supported. The Hardware and Software Version values
MUST be included. MUST be included.
4 - Hardware Version: The AC's hardware version number. 4 - Hardware Version: The AC's hardware version number.
5 - Software Version: The AC's Firmware version number. 5 - Software Version: The AC's Software (firmware) version
number.
Length: Length of vendor specific encoding of AC information. Length: Length of vendor specific encoding of AC information.
Value: Vendor specific encoding of AC information. Value: Vendor specific encoding of AC information.
4.5.2. AC IPv4 List 4.5.2. AC IPv4 List
The AC IPv4 List message element is used to configure a WTP with the The AC IPv4 List message element is used to configure a WTP with the
latest list of ACs available for the WTP to join. latest list of ACs available for the WTP to join.
0 1 2 3 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 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[] |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 2 for AC List Type: 2 for AC IPv4 List
Length: 4 Length: >= 4
The AC IP Address: An array of 32-bit integers containing an AC's The AC IP Address: An array of 32-bit integers containing AC IPv4
IPv4 Address. Addresses.
4.5.3. AC IPv6 List 4.5.3. AC IPv6 List
The AC IPv6 List message element is used to configure a WTP with the The AC IPv6 List message element is used to configure a WTP with the
latest list of ACs available for the WTP to join. latest list of ACs available for the WTP to join.
0 1 2 3 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 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[] |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| AC IP Address[] | | AC IP Address[] |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| AC IP Address[] | | AC IP Address[] |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 3 for AC IPV6 List Type: 3 for AC IPV6 List
Length: 16 Length: >= 16
The AC IP Address: An array of 32-bit integers containing an AC's The AC IP Address: An array of 128-bit integers containing AC IPv6
IPv6 Address. Addresses.
4.5.4. AC Name 4.5.4. AC Name
The AC name message element contains an UTF-8 representation of the The AC Name message element contains an UTF-8 representation of the
AC's identity. The value is a variable length byte string. The AC identity. The value is a variable length byte string. The string
string is NOT zero terminated. is NOT zero terminated.
0 0
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
| Name ... | Name ...
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
Type: 4 for AC Name Type: 4 for AC Name
Length: > 0 Length: > 0
Name: A variable length UTF-8 encoded string containing the AC's Name: A variable length UTF-8 encoded string containing the AC's
name name
4.5.5. AC Name with Index 4.5.5. AC Name with Index
The AC Name with Index message element is sent by the AC to the WTP 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 to configure preferred ACs. The number of instances of this message
message element would be present is equal to the number of ACs element is equal to the number of ACs configured on the WTP.
configured on the WTP.
0 1 0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Index | AC Name... | Index | AC Name...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 5 for AC Name with Index Type: 5 for AC Name with Index
Length: > 2 Length: > 2
Index: The index of the preferred server (e.g., 1=primary, Index: The index of the preferred server (1=primary, 2=secondary).
2=secondary).
AC Name: A variable length UTF-8 encoded string containing the AC's AC Name: A variable length UTF-8 encoded string containing the AC
name. name.
4.5.6. AC Timestamp 4.5.6. AC Timestamp
The AC Timestamp message element is sent by the AC to synchronize the The AC Timestamp message element is sent by the AC to synchronize the
WTP's clock. WTP clock.
0 1 2 3 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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Timestamp | | Timestamp |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 6 for AC Timestamp Type: 6 for AC Timestamp
Length: 4 Length: 4
skipping to change at page 53, line 4 skipping to change at page 56, line 46
0 1 2 3 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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Timestamp | | Timestamp |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 6 for AC Timestamp Type: 6 for AC Timestamp
Length: 4 Length: 4
Timestamp: The AC's current time, allowing all of the WTPs to be Timestamp: The AC's current time, allowing all of the WTPs to be
time synchronized in the format defined by Network Time Protocol time synchronized in the format defined by Network Time Protocol
(NTP) in RFC 1305 [3]. (NTP) in RFC 1305 [3].
4.5.7. Add MAC ACL Entry 4.5.7. Add MAC ACL Entry
The Add MAC Access Control List (ACL) Entry message element is used The Add MAC Access Control List (ACL) Entry message element is used
by an AC to add a MAC ACL list entry on a WTP, ensuring that the WTP by an AC to add a MAC ACL list entry on a WTP, ensuring that the WTP
no longer provides any service to the MAC addresses provided in the no longer provides service to the MAC addresses provided in the
message. The MAC Addresses provided in this message element are not message. The MAC Addresses provided in this message element are not
expected to be saved in non-volatile memory on the WTP. expected to be saved in non-volatile memory on the WTP.
0 1 2 3 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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Num of Entries| MAC Address[] | | Num of Entries| MAC Address[] |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MAC Address[] | | MAC Address[] |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 53, line 35 skipping to change at page 57, line 32
Length: >= 7 Length: >= 7
Num of Entries: The number of MAC Addresses in the array. Num of Entries: The number of MAC Addresses in the array.
MAC Address: An array of MAC Addresses to add to the ACL. MAC Address: An array of MAC Addresses to add to the ACL.
4.5.8. Add Station 4.5.8. Add Station
The Add Station message element is used by the AC to inform a WTP The Add Station message element is used by the AC to inform a WTP
that it should forward traffic for a particular station. The Add that it should forward traffic for a station. The Add Station
Station message element will be accompanied by technology specific message element is accompanied by technology specific binding
binding information element which may include security parameters. information element(s) which may include security parameters.
Consequently, the security parameters must be applied by the WTP for Consequently, the security parameters must be applied by the WTP for
the particular station. the station.
Once a station's policy has been pushed to the WTP through this After station policy has been delivered to the WTP through the Add
message element, an AC may change any policies by simply sending a Station message element, an AC may change any policies by sending a
modified Add Station message element. When a WTP receives an Add modified Add Station message element. When a WTP receives an Add
Station message element for an existing station, it must override any Station message element for an existing station, it MUST override any
existing state it may have for the station in question. The latest existing state for the station.
Add Station message element data overrides any previously received
messages.
0 1 2 3 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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Radio ID | MAC Address | | Radio ID | MAC Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MAC Address | VLAN Name... | MAC Address | VLAN Name...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 8 for Add Station Type: 8 for Add Station
Length: >= 7 Length: >= 7
Radio ID: An 8-bit value representing the radio Radio ID: An 8-bit value representing the radio
MAC Address: The station's MAC Address MAC Address: The station's MAC Address
VLAN Name: An optional variable length UTF-8 encoded string VLAN Name: An optional variable length UTF-8 encoded string
containing the VLAN Name on which the WTP is to locally bridge containing the VLAN Name on which the WTP is to locally bridge
skipping to change at page 55, line 10 skipping to change at page 58, line 46
Num of Entries: The number of MAC Addresses in the array. Num of Entries: The number of MAC Addresses in the array.
MAC Address: An array of MAC Addresses to add to the permanent ACL. MAC Address: An array of MAC Addresses to add to the permanent ACL.
4.5.10. CAPWAP Control IPv4 Address 4.5.10. CAPWAP Control IPv4 Address
The CAPWAP Control IPv4 Address message element is sent by the AC to The CAPWAP 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 WTP during the discovery process and is used by the AC to provide
the interfaces available on the AC, and the current number of WTPs the interfaces available on the AC, and the current number of WTPs
connected. In the event that multiple CAPWAP Control IPV4 Address connected. When multiple CAPWAP Control IPV4 Address message
message elements are returned, the WTP is expected to perform load elements are returned, the WTP SHOULD perform load balancing across
balancing across the multiple interfaces. the multiple interfaces.
0 1 2 3 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 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| WTP Count | | WTP Count |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 10 for CAPWAP Control IPv4 Address Type: 10 for CAPWAP Control IPv4 Address
skipping to change at page 56, line 27 skipping to change at page 60, line 20
0 1 0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Discovery | Echo Request | | Discovery | Echo Request |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 12 for CAPWAP Timers Type: 12 for CAPWAP Timers
Length: 2 Length: 2
Discovery: The number of seconds between CAPWAP Discovery packets, Discovery: The number of seconds between CAPWAP Discovery messages,
when the WTP is in the discovery mode. when the WTP is in the discovery phase.
Echo Request: The number of seconds between WTP Echo Request CAPWAP Echo Request: The number of seconds between WTP Echo Request CAPWAP
messages. The default value for this message element can be found messages. The default value for this message element is specified
in Section 4.6.6. in Section 4.6.7.
4.5.13. Data Transfer Data 4.5.13. Data Transfer Data
The Data Transfer Data message element is used by the WTP to provide The Data Transfer Data message element is used by the WTP to provide
information to the AC for debugging purposes. information to the AC for debugging purposes.
0 1 2 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 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data Type | Data Length | Data .... | Data Type | Data Length | Data ....
skipping to change at page 57, line 43 skipping to change at page 61, line 36
1 - WTP Crash Data 1 - WTP Crash Data
2 - WTP Memory Dump 2 - WTP Memory Dump
4.5.15. Decryption Error Report 4.5.15. Decryption Error Report
The Decryption Error Report message element value is used by the WTP The Decryption Error Report message element value is used by the WTP
to inform the AC of decryption errors that have occurred since the to inform the AC of decryption errors that have occurred since the
last report. Note that this error reporting mechanism is not used if last report. Note that this error reporting mechanism is not used if
encryption and decryption services are provided via the AC. encryption and decryption services are provided in the AC.
0 1 2 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 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 |Num Of Entries | Station MAC Address | | Radio ID |Num Of Entries | Station MAC Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Station MAC Address[] | | Station MAC Address[] |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 15 for Decryption Error Report Type: 15 for Decryption Error Report
Length: >= 8 Length: >= 8
Radio ID: The Radio Identifier refers to an interface index on the
Radio ID: The Radio Identifier, which typically refers to an WTP.
interface index on the WTP
Num Of Entries: An 8-bit unsigned integer indicating the number of Num Of Entries: An 8-bit unsigned integer indicating the number of
station MAC addresses. station MAC addresses.
Station MAC Address: An array of station MAC addresses that have Station MAC Address: An array of station MAC addresses that have
caused decryption errors. caused decryption errors.
4.5.16. Decryption Error Report Period 4.5.16. Decryption Error Report Period
The Decryption Error Report Period message element value is used by The Decryption Error Report Period message element value is used by
the AC to inform the WTP how frequently it should send decryption the AC to inform the WTP how frequently it should send decryption
error report messages. error report messages. Note that this error reporting mechanism is
not used if encryption and decryption services are provided in the
AC.
0 1 2 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 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 | | Radio ID | Report Interval |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 16 for Decryption Error Report Period Type: 16 for Decryption Error Report Period
Length: 3 Length: 3
Radio ID: The Radio Identifier, typically refers to some interface Radio ID: The Radio Identifier refers to an interface index on the
index on the WTP WTP.
Report Interval: A 16-bit unsigned integer indicating the time, in Report Interval: A 16-bit unsigned integer indicating the time, in
seconds. The default value for this message element can be found seconds. The default value for this message element can be found
in Section 4.7.7. in Section 4.7.8.
4.5.17. Delete MAC ACL Entry 4.5.17. Delete MAC ACL Entry
The Delete MAC ACL Entry message element is used by an AC to delete a The Delete MAC ACL Entry message element is used by an AC to delete a
MAC ACL entry on a WTP, ensuring that the WTP provides service to the MAC ACL entry on a WTP, ensuring that the WTP provides service to the
MAC addresses provided in the message. MAC addresses provided in the message.
0 1 2 3 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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 59, line 16 skipping to change at page 63, line 14
Type: 17 for Delete MAC ACL Entry Type: 17 for Delete MAC ACL Entry
Length: >= 7 Length: >= 7
Num of Entries: The number of MAC Addresses in the array. Num of Entries: The number of MAC Addresses in the array.
MAC Address: An array of MAC Addresses to delete from the ACL. MAC Address: An array of MAC Addresses to delete from the ACL.
4.5.18. Delete Station 4.5.18. Delete Station
The Delete Station message element is used by the AC to inform an WTP The Delete Station message element is used by the AC to inform a WTP
that it should no longer provide service to a particular station. that it should no longer provide service to a particular station.
The WTP must terminate service immediately upon receiving this The WTP MUST terminate service to the station immediately upon
message element. receiving this message element.
The transmission of a Delete Station message element could occur for The transmission of a Delete Station message element could occur for
various reasons, including for administrative reasons, as a result of various reasons, including for administrative reasons, or if the
the fact that the station has roamed to another WTP, etc. station has roamed to another WTP.
The Delete Station message element MAY be sent by the WTP, through The Delete Station message element MAY be sent by the WTP, in the WTP
the WTP Event Request, to inform the AC that a particular station is Event Request message, to inform the AC that a particular station is
no longer being provided service. This could occur as a result of an no longer being provided service. This could occur as a result of an
Idle Timeout (see section 4.4.43), due to internal resource shortages Idle Timeout (see section 4.4.43), due to internal resource shortages
or for some other reason. or for some other reason.
0 1 2 3 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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Radio ID | MAC Address | | Radio ID | MAC Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MAC Address | | MAC Address |
skipping to change at page 60, line 26 skipping to change at page 64, line 25
Length: >= 7 Length: >= 7
Num of Entries: The number of MAC Addresses in the array. Num of Entries: The number of MAC Addresses in the array.
MAC Address: An array of MAC Addresses to delete from the static MAC Address: An array of MAC Addresses to delete from the static
MAC ACL entry. MAC ACL entry.
4.5.20. Discovery Type 4.5.20. Discovery Type
The Discovery Type message element is used by the WTP to indicate how The Discovery Type message element is used by the WTP to indicate how
it has come to know about the existence of the AC, to which it is it has come to know about the existence of the AC to which it is
sending the Discovery Request message. sending the Discovery Request message.
0 0
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
| Discovery Type| | Discovery Type|
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
Type: 20 for Discovery Type Type: 20 for Discovery Type
skipping to change at page 61, line 4 skipping to change at page 64, line 48
Discovery Type: An 8-bit value indicating how the WTP discovered Discovery Type: An 8-bit value indicating how the WTP discovered
the AC . The following values are supported: the AC . The following values are supported:
0 - Unknown 0 - Unknown
1 - Static Configuration 1 - Static Configuration
2 - DHCP 2 - DHCP
3 - DNS 3 - DNS
4 - AC Referral
4 - AC Referral (used when the AC was configured either through
the AC IPv4 List or AC IPv6 List message element)
4.5.21. Duplicate IPv4 Address 4.5.21. Duplicate IPv4 Address
The Duplicate IPv4 Address message element is used by a WTP to inform The Duplicate IPv4 Address message element is used by a WTP to inform
an AC that it has detected another IP device using the same IP an AC that it has detected another IP device using the same IP
address it is currently using. address that the WTP is currently using.
The WTP shall transmit this message element after it has detected a The WTP MUST transmit this message element with the status set to 1
duplicate IP address. The WTP will consider the condition cleared after it has detected a duplicate IP address. When the WTP detects
once it has successfully received a frame from the AC. that the duplicate IP address has been cleared, it MUSY send this
message element with the status set to 0.
0 1 2 3 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 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MAC Address | | MAC Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MAC Address | | MAC Address | Status |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 21 for Duplicate IPv4 Address Type: 21 for Duplicate IPv4 Address
Length: 10 Length: 11
IP Address: The IP Address currently used by the WTP. IP Address: The IP Address currently used by the WTP.
MAC Address: The MAC Address of the offending device. MAC Address: The MAC Address of the offending device.
Status: The status of the duplicate IP address. The value MUST be
set to 1 when a duplicate address is detected, and 0 when the
duplicate address has been cleared.
4.5.22. Duplicate IPv6 Address 4.5.22. Duplicate IPv6 Address
The Duplicate IPv6 Address message element is used by a WTP to inform The Duplicate IPv6 Address message element is used by a WTP to inform
an AC that it has detected another host using the same IP address it an AC that it has detected another host using the same IP address
is currently using. that the WTP is currently using.
The WTP shall transmit this message element after it has detected a The WTP MUST transmit this message element with the status set to 1
duplicate IP address. The WTP will consider the condition cleared after it has detected a duplicate IP address. When the WTP detects
once it has successfully received a frame from the AC. that the duplicate IP address has been cleared, it MUST send this
message element with the status set to 0.
0 1 2 3 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 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IP Address | | IP Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IP Address | | IP Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MAC Address | | MAC Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MAC Address | | MAC Address | Status |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 22 for Duplicate IPv6 Address Type: 23 for Duplicate IPv6 Address
Length: 22 Length: 22
IP Address: The IP Address currently used by the WTP. IP Address: The IP Address currently used by the WTP.
MAC Address: The MAC Address of the offending device. MAC Address: The MAC Address of the offending device.
Status: The status of the duplicate IP address. The value MUST be
set to 1 when a duplicate address is detected, and 0 when the
duplicate address has been cleared.
4.5.23. Idle Timeout 4.5.23. Idle Timeout
The Idle Timeout message element is sent by the AC to the WTP to 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 provide the idle timeout value that the WTP SHOULD enforce for its
station entries. The value applies for all radios on the WTP. active stations. The value applies to all radios on the WTP.
0 1 2 3 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 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 | | Timeout |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 23 for Idle Timeout Type: 23 for Idle Timeout
Length: 4 Length: 4
Timeout: The current idle timeout to be enforced by the WTP. The Timeout: The current idle timeout to be enforced by the WTP. The
default value for this message element can be found in default value for this message element is specified in
Section 4.7.4. Section 4.7.5.
4.5.24. Image Data 4.5.24. Image Data
The image data message element is present in the Image Data Request The Image Data message element is present in the Image Data Request
message sent by the AC and contains the following fields. message sent by the AC and contains the following fields.
0 1 2 3 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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Opcode | Checksum | Image Data | | Opcode | Value ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Image Data ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 24 for Image Data Type: 24 for Image Data
Length: >= 4 (allows 0 length element if last data unit is 1024 Length: >= 1
bytes)
Opcode: An 8-bit value representing the transfer opcode. The Opcode: An 8-bit value representing the transfer opcode. The
following values are supported: following values are supported:
3 - Image data is included 1 - Image data is included
2 - Last Image Data Block is included (EOF)
5 - An error occurred. Transfer is aborted 5 - An error occurred. Transfer is aborted
Checksum: A 16-bit value containing a checksum of the image data Value: The Image Data field contains up to 1024 characters. If the
that follows. The checksum field is the 16 bit one's complement block being sent is the last one, the Opcode is set to 2. The AC
of the one's complement sum of all 16 bit words in the header. MAY opt to abort the data transfer by setting the Opcode to 5.
For purposes of computing the checksum, the value of the checksum When the Opcode is 5, the Value field has a zero length.
field is zero.
Image Data: The Image Data field contains 1024 characters, unless 4.5.25. Image Identifier
the payload being sent is the last one (end of file). If the last
block was 1024 in length, an Image Data with a zero length payload
is sent.
4.5.25. Image Filename The Image Identifier message element is sent by the AC to the WTP and
is used to indicate the expected active software version that is to
be run on the WTP. The value is a variable length UTF-8 encoded
string, which is NOT zero terminated.
The image filename message element is sent by the WTP to the AC and 0 1 2 3
is used to initiate the firmware download process. This message 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
element contains the image filename, which the AC subsequently +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
transfers to the WTP via the Image Data message element. The value | Vendor Identifier |
is a variable length UTF-8 encoded string, which is NOT zero +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
terminated. | Value...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 25 for Image Identifier
Length: >= 1
Value: A variable length UTF-8 encoded string containing the
firmware identifier to be run on the WTP.
4.5.26. Image Information
The Image Information message element is present in the Image Data
Response message sent by the AC to the WTP and contains the following
fields.
0 1 2 3 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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Filename ... | | File Size | Hash |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Hash |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Hash |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Hash |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Hash |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 25 for Image Filename Type: 26 for Image Information
Length: >= 1 Length: 18
Filename: A variable length UTF-8 encoded string containing the File Size: A 16-bit value containing the size of the file that will
filename to download. be transfered by the AC to the WTP.
4.5.26. Initiate Download Hash: A 16 octet hash of the image. The hash is computed using
MD5, using the following pseudo-code:
#include <md5.h>
CapwapCreateHash(char *hash, char *image, int image_len)
{
MD_CTX context;
MDInit (&context);
MDUpdate (&context, buffer, len);
MDFinal (hash, &context);
}
4.5.27. Initiate Download
The Initiate Download message element is used by the AC to inform the The Initiate Download message element is used by the AC to inform the
WTP that it should initiate a firmware upgrade. This is performed by WTP that the WTP should initiate a firmware upgrade. The WTP
having the WTP initiate its own Image Data Request, with the Image subsequently transmits an Image Data Request message which includes
Download message element. This message element does not contain any the Image Download message element. This message element does not
data. contain any data.
Type: 24 for Initiate Download Type: 27 for Initiate Download
Length: 0 Length: 0
4.5.27. Location Data 4.5.28. Location Data
The Location Data message element is a variable length byte UTF-8 The Location Data message element is a variable length byte UTF-8
encoded string containing user defined location information (e.g. encoded string containing user defined location information (e.g.
"Next to Fridge"). This information is configurable by the network "Next to Fridge"). This information is configurable by the network
administrator, and allows for the WTP location to be determined administrator, and allows the WTP location to be determined. The
through this field. The string is not zero terminated. string is not zero terminated.
0 0
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+- +-+-+-+-+-+-+-+-+-
| Location ... | Location ...
+-+-+-+-+-+-+-+-+- +-+-+-+-+-+-+-+-+-
Type: 27 for Location Data Type: 28 for Location Data
Length: > 0 Length: > 0
Location: A non-zero terminated UTF-8 encoded string containing the Location: A non-zero terminated UTF-8 encoded string containing the
WTP location. WTP location.
4.5.28. MTU Discovery Padding 4.5.29. Maximum Message Length
The Maximum Message Length message element is included in the Join
Request message by the WTP to indicate the maximum CAPWAP message
length that it supports to the AC. The Maximum Message Length
message element is optionally included in Join Response message by
the AC to indicate the maximum CAPWAP message length that it supports
to the WTP.
0 1 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
| Maximum Message Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Type: 29 for Maximim Message Length
Length: 2
Maximum Message Length An 16-bit unsigned integer indicating the
maximum message length.
4.5.30. MTU Discovery Padding
The MTU Discovery Padding message element is used as padding to The MTU Discovery Padding message element is used as padding to
perform MTU discovery, and MUST contain octets of value 0xFF, of any perform MTU discovery, and MUST contain octets of value 0xFF, of any
length length
0 0
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
| Padding... | Padding...
+-+-+-+-+-+-+-+- +-+-+-+-+-+-+-+-
Type: 28 for MTU Discovery Padding Type: 30 for MTU Discovery Padding
Length: variable Length: variable
Pad: A variable length pad. Pad: A variable length pad.
4.5.29. Radio Administrative State 4.5.31. Radio Administrative State
The radio administrative state message element is used to communicate
the state of a particular radio. The configuration of the Radio
Administrative State is sent by the AC to change the state of the
WTP, which saves the value to ensure its effect remains across WTP
resets. The WTP communicates this message element during the
configuration phase to ensure that AC has the WTP radio's current
administrative state settings. The value contains the following
fields.
0 1 2 The Radio Administrative State message element is used to communicate
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 the state of a particular radio. The Radio Administrative State
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ message element is sent by the AC to change the state of the WTP.
| Radio ID | Admin State | Cause | The WTP saves the value, to ensure that it remains across WTP resets.
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The WTP communicates this message element during the configuration
phase, in the Configuration Status Request message, to ensure that AC
has the WTP radio current administrative state settings. The message
element contains the following fields.
Type: 29 for Administrative State 0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Radio ID | Admin State |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 31 for Radio Administrative State
Length: 2 Length: 2
Radio ID: An 8-bit value representing the radio to configure. The 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 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 to identify the WTP. If an AC wishes to change the administrative
the administrative state of a WTP, it would include 0xff in the state of a WTP, it includes 0xff in the Radio ID field.
Radio ID field.
Admin State: An 8-bit value representing the administrative state Admin State: An 8-bit value representing the administrative state
of the radio. The default value for the Admin State field is of the radio. The default value for the Admin State field is
listed in section Section 4.7.1. The following values are listed in Section 4.7.1. The following values are supported:
supported:
1 - Enabled 1 - Enabled
2 - Disabled 2 - Disabled
Cause: In the event of a radio being inoperable, the cause field 4.5.32. Radio Operational State
would contain the reason the radio is out of service. The
following values are supported:
0 - Normal
1 - Radio Failure
2 - Software Failure
3 - Radar Detection
4.5.30. Radio Operational State
The Radio Operational State message element is sent by the WTP to the The Radio Operational State message element is sent by the WTP to the
AC to communicate a change in the operational state of a radio. For AC to communicate a radio's operational state. This message element
instance, if the WTP were to detect that a hardware failure existed is included in the Configuration Update Response message by the WTP
with a radio, which caused the radio to be taken offline, the WTP if it was requested to change the state of its radio, via the Radio
would indicate this event to the AC via the message element. The AC Administrative State message element, but was unable to comply to the
MAY also send this message element to change the operational state of request. This message element is included in the Change State Event
a specific radio. Note that the operational state setting is not message when a WTP radio state was changed unexpectedly. This could
saved on the WTP, and therefore does not remain across WTP resets. occur due to a hardware failure. Note that the operational state
The value contains two fields, as shown. setting is not saved on the WTP, and therefore does not remain across
WTP resets. The value contains three fields, as shown below.
0 1 2 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 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 | State | Cause | | Radio ID | State | Cause |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 30 for Radio Operational State Type: 32 for Radio Operational State
Length: 3 Length: 3
Radio ID: The Radio Identifier, typically refers to some interface Radio ID: The Radio Identifier refers to an interface index on the
index on the WTP. A value of 0xFF is invalid, as it is not WTP. A value of 0xFF is invalid, as it is not possible to change
possible to change the WTP's operational state. the WTP's operational state.
State: An 8-bit boolean value representing the state of the radio. 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 A value of one disables the radio, while a value of two enables
it. it.
Cause: In the event of a radio being inoperable, the cause field Cause: When a radio is inoperable, the cause field contains the
would contain the reason the radio is out of service. The reason the radio is out of service. The following values are
following values are supported: supported:
0 - Normal 0 - Normal
1 - Radio Failure 1 - Radio Failure
2 - Software Failure 2 - Software Failure
3 - Administratively Set 3 - Administratively Set
4.5.31. Result Code 4.5.33. Result Code
The Result Code message element value is a 32-bit integer value, The Result Code message element value is a 32-bit integer value,
indicating the result of the request operation corresponding to the indicating the result of the Request message corresponding to the
sequence number in the message. Sequence Number included in the Response message.
0 1 2 3 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 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 | | Result Code |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 31 for Result Code Type: 33 for Result Code
Length: 4 Length: 4
Result Code: The following values are defined: Result Code: The following values are defined:
0 Success 0 Success
1 Failure (AC List message element MUST be present) 1 Failure (AC List message element MUST be present)
2 Success (NAT detected) 2 Success (NAT detected)
3 Failure (unspecified) 3 Join Failure (unspecified)
4 Failure (Join Failure, Resource Depletion) 4 Join Failure (Resource Depletion)
5 Failure (Join Failure, Unknown Source) 5 Join Failure (Unknown Source)
6 Failure (Join Failure, Incorrect Data)
7 Failure (Join Failure, Session ID already in use) 6 Join Failure (Incorrect Data)
8 Failure (Join Failure, WTP Hardware not supported) 7 Join Failure (Session ID already in use)
8 Join Failure (WTP Hardware not supported)
9 Failure (Unable to Reset) 9 Join Failure (Binding Not Supported)
10 Failure (Unable to Apply Requested Configuration - Service 10 Reset Failure (Unable to Reset)
Provided Anyhow)
11 Failure (Unable to Apply Requested Configuration - Service Not 11 Reset Failure (Firmware Write Error)
Provided)
12 Image Data Error (Invalid Checksum) 12 Configuration Failure (Unable to Apply Requested Configuration
- Service Provided Anyhow)
13 Image Data Error (Invalid Data Length) 13 Configuration Failure (Unable to Apply Requested Configuration
- Service Not Provided)
14 Image Data Error (Other Error) 14 Image Data Error (Invalid Checksum)
4.5.32. Returned Message Element 15 Image Data Error (Invalid Data Length)
The Returned Message Element is sent by the WTP within the Change 16 Image Data Error (Other Error)
State Event Request in order to communicate to the AC which message
elements in the Configuration Status Response it was unable to apply 17 Image Data Error (Image Already Present)
locally. The Returned Message Element contains a result code that is
used to indicate the reason why the configuration could not be 18 Message Unexpected (Invalid in current state)
applied, and encapsulates the offending message element.
19 Message Unexpected (Unrecognized Request)
20 Failure - Missing Mandatory Message Element
21 Failure - Unrecognized Message Element
4.5.34. Returned Message Element
The Returned Message Element is sent by the WTP in the Change State
Event Request message to communicate to the AC which message elements
in the Configuration Status Response it was unable to apply locally.
The Returned Message Element message element contains a result code
indicating the reason that the configuration could not be applied,
and encapsulates the failed message element.
0 1 2 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 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reason | Message Element... | Reason | Message Element...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 34 for Returned Message Element
Length: >= 1
Reason: The reason why the configuration in the offending message Reason: The reason why the configuration in the offending message
element could not be applied by the WTP element could not be applied by the WTP.
1 - Unknown Message Element 1 - Unknown Message Element
2 - Unsupported Message Element 2 - Unsupported Message Element
3 - Unknown Message Element Value 3 - Unknown Message Element Value
4 - Unsupported Message Element Value 4 - Unsupported Message Element Value
Message Element: The Message Element field encapsulates the message Message Element: The Message Element field encapsulates the message
element sent by the AC in the Configuration Status Response element sent by the AC in the Configuration Status Response
message that caused the error. message that caused the error.
4.5.33. Session ID 4.5.35. Session ID
The session ID message element value contains a randomly generated The Session ID message element value contains a randomly generated
unsigned 32-bit integer. unsigned 32-bit integer.
0 1 2 3 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 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 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Session ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Session ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Session ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Session ID | | Session ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 32 for Session ID Type: 35 for Session ID
Length: 16 Length: 16
Session ID: A 16 octet random session identifier Session ID: A 32-bit unsigned integer used as a random session
identifier
4.5.34. Statistics Timer 4.5.36. Statistics Timer
The statistics timer message element value is used by the AC to The Statistics Timer message element value is used by the AC to
inform the WTP of the frequency which it expects to receive updated inform the WTP of the frequency with which it expects to receive
statistics. updated statistics.
0 1 0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Statistics Timer | | Statistics Timer |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 33 for Statistics Timer Type: 36 for Statistics Timer
Length: 2 Length: 2
Statistics Timer: A 16-bit unsigned integer indicating the time, in Statistics Timer: A 16-bit unsigned integer indicating the time, in
seconds. The default value for this timer can be found in section seconds. The default value for this timer is specified in
Section 4.6.14. Section 4.6.15.
4.5.35. Vendor Specific Payload 4.5.37. Vendor Specific Payload
The Vendor Specific Payload is used to communicate vendor specific The Vendor Specific Payload message element is used to communicate
information between the WTP and the AC. The value contains the vendor specific information between the WTP and the AC. The message
following format: element uses the following format:
0 1 2 3 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 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 | | Vendor Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Element ID | Value... | | Element ID | Value... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 34 for Vendor Specific Type: 37 for Vendor Specific
Length: >= 7 Length: >= 7
Vendor Identifier: A 32-bit value containing the IANA assigned "SMI Vendor Identifier: A 32-bit value containing the IANA assigned "SMI
Network Management Private Enterprise Codes" [13] Network Management Private Enterprise Codes" [15]
Element ID: A 16-bit Element Identifier which is managed by the Element ID: A 16-bit Element Identifier which is managed by the
vendor. vendor.
Value: The value associated with the vendor specific element. Value: The value associated with the vendor specific element.
4.5.36. WTP Board Data 4.5.38. WTP Board Data
The WTP Board Data message element is sent by the WTP to the AC and The WTP Board Data message element is sent by the WTP to the AC and
contains information about the hardware present. contains information about the hardware present.
0 1 2 3 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 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 | | Vendor Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type=0 | Length | | Type=0 | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Value... | Value...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type=1 | Length | | Type=1 | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Value... | Value...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Optional additional vendor specific WTP board data TLVs | Optional additional vendor specific WTP board data TLVs.....
Type: 35 for WTP Board Data +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 38 for WTP Board Data
Length: >=14 Length: >=14
Vendor Identifier: A 32-bit value containing the IANA assigned "SMI Vendor Identifier: A 32-bit value containing the IANA assigned "SMI
Network Management Private Enterprise Codes" Network Management Private Enterprise Codes"
Type: The following values are supported: Type: The following values are supported:
0 - WTP Model Number: The WTP Model Number MUST be included in 0 - WTP Model Number: The WTP Model Number MUST be included in
the WTP Board Data message element. the WTP Board Data message element.
1 - WTP Serial Number: The WTP Serial Number MUST be included in 1 - WTP Serial Number: The WTP Serial Number MUST be included in
the WTP Board Data message element. the WTP Board Data message element.
2 - Board ID: A hardware identifier, which MAY be included in 2 - Board ID: A hardware identifier, which MAY be included in
the WTP Board Data mesage element. the WTP Board Data mesage element.
3 - Board Revision A revision number of the board, which MAY be 3 - Board Revision A revision number of the board, which MAY be
included in the WTP Board Data message element. included in the WTP Board Data message element.
4.5.37. WTP Descriptor 4 - Base MAC Addres The WTP's Base MAC Address, which MAY be
assigned to the primary Ethernet interface.
The WTP descriptor message element is used by a WTP to communicate 4.5.39. WTP Descriptor
it's current hardware/firmware configuration. The value contains the
following fields. The WTP Descriptor message element is used by a WTP to communicate
its current hardware and software (firmware) configuration. The
value contains the following fields.
0 1 2 3 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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Max Radios | Radios in use | Encryption Capabilities | | Max Radios | Radios in use | Encryption Capabilities |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Vendor Identifier | | Vendor Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type=0 | Length | | Type=0 | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 72, line 28 skipping to change at page 77, line 28
| Type=1 | Length | | Type=1 | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Value... | Value...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Vendor Identifier | | Vendor Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type=2 | Length | | Type=2 | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Value... | Value...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Vendor Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type=3 | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Value...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 36 for WTP Descriptor Type: 39 for WTP Descriptor
Length: >= 31 Length: >= 31
Max Radios: An 8-bit value representing the number of radios (where Max Radios: An 8-bit value representing the number of radios (where
each radio is identified via the Radio ID, or RID, field) each radio is identified via the Radio ID field) supported by the
supported by the WTP WTP.
Radios in use: An 8-bit value representing the number of radios Radios in use: An 8-bit value representing the number of radios in
present in the WTP use in the WTP.
Encryption Capabilities: This 16-bit field is used by the WTP to Encryption Capabilities: This 16-bit field is used by the WTP to
communicate it's capabilities to the AC. A WTP that does not have communicate its capabilities to the AC. A WTP that does not have
any encryption capabilities sets this field to zero (0). Refer to any encryption capabilities sets this field to zero (0). Refer to
the specific wireless binding for further specification of the the specific wireless binding for further specification of the
Encryption Capabilities field. Encryption Capabilities field.
Vendor Identifier: A 32-bit value containing the IANA assigned "SMI Vendor Identifier: A 32-bit value containing the IANA assigned "SMI
Network Management Private Enterprise Codes" Network Management Private Enterprise Codes".
Type: The following values are supported. The Hardware Version, Type: The following values are supported. The Hardware Version,
Software Version, and Boot Version values MUST be included. Active Software Version, and Boot Version values MUST be included.
Zero or more Other Software Version values MAY be included.
0 - Hardware Version: The WTP's hardware version number. 0 - Hardware Version: The WTP hardware version number.
1 - Software Version: The WTP's Firmware version number. 1 - Active Software Version: The WTP running software version
number.
2 - Boot Version: The WTP's boot loader's version number. 2 - Boot Version: The WTP boot loader version number.
3 - Other Software Version: The WTP non-running software
(firmware) version number.
Length: Length of vendor specific encoding of WTP information. Length: Length of vendor specific encoding of WTP information.
Value: Vendor specific data of WTP information encoded in the UTF-8 Value: Vendor specific data of WTP information encoded in the UTF-8
format. format.
4.5.38. WTP Fallback 4.5.40. WTP Fallback
The WTP Fallback message element is sent by the AC to the WTP to The WTP Fallback message element is sent by the AC to the WTP to
enable or disable automatic CAPWAP fallback in the event that a WTP enable or disable automatic CAPWAP fallback in the event that a WTP
detects its preferred AC, and is not currently connected to it. detects its preferred AC, and is not currently connected to it.
0 0
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
| Mode | | Mode |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
Type: 37 for WTP Fallback Type: 40 for WTP Fallback
Length: 1 Length: 1
Mode: The 8-bit value indicates the status of automatic CAPWAP Mode: The 8-bit value indicates the status of automatic CAPWAP
fallback on the WTP. When enabled, if the WTP detects that its fallback on the WTP. When enabled, if the WTP detects that its
primary AC is available, and it is not connected to it, it SHOULD primary AC is available, and that the WTP is not connected to the
automatically disconnect from its current AC and reconnect to its primary AC, the WTP SHOULD automatically disconnect from its
primary. If disabled, the WTP will only reconnect to its primary current AC and reconnect to its primary AC. If disabled, the WTP
through manual intervention (e.g., through the Reset Request will only reconnect to its primary AC through manual intervention
command). The default value for this field can be found in (e.g., through the Reset Request message). The default value for
section Section 4.7.9. The following values are supported: this field is specified in Section 4.7.10. The following values
are supported:
1 - Enabled 1 - Enabled
2 - Disabled 2 - Disabled
4.5.39. WTP Frame Tunnel Mode 4.5.41. WTP Frame Tunnel Mode
The WTP Frame Tunnel Mode message element allows the WTP to The WTP Frame Tunnel Mode message element allows the WTP to
communicate the tunneling modes of operation which it supports to the communicate the tunneling modes of operation which it supports to the
AC. A WTP that advertises support for all types allows the AC to AC. A WTP that advertises support for all types allows the AC to
select which type will be used, based on its local policy. select which type will be used, based on its local policy.
0 0
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
| Tunnel Mode | | Tunnel Mode |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
Type: 38 for WTP Frame Tunnel Mode Type: 41 for WTP Frame Tunnel Mode
Length: 1 Length: 1
Frame Tunnel Mode: The Frame Tunnel mode specifies the tunneling Frame Tunnel Mode: The Frame Tunnel mode specifies the tunneling
modes for station data which are supported by the WTP. The modes for station data that are supported by the WTP. The
following values are supported: following values are supported:
1 - Local Bridging: When Local Bridging is used, the WTP does 1 - Local Bridging: When Local Bridging is used, the WTP does
not tunnel user traffic to the AC; all user traffic is locally not tunnel user traffic to the AC; all user traffic is locally
bridged. This value MUST NOT be used when the WTP MAC Type is bridged. This value MUST NOT be used when the WTP MAC Type is
set to Split-MAC. set to Split-MAC.
2 - 802.3 Frame Tunnel Mode: The 802.3 Frame Tunnel Mode 2 - 802.3 Frame Tunnel Mode: The 802.3 Frame Tunnel Mode
requires the WTP and AC to encapsulate all user payload as requires the WTP and AC to encapsulate all user payload as
native IEEE 802.3 frames (see Section 4.3). All user traffic native IEEE 802.3 frames (see Section 4.3). All user traffic
skipping to change at page 74, line 39 skipping to change at page 80, line 5
WTP MAC Type is set to Split-MAC. WTP MAC Type is set to Split-MAC.
4 - Native Frame Tunnel Mode: Native Frame Tunnel mode requires 4 - Native Frame Tunnel Mode: Native Frame Tunnel mode requires
the WTP and AC to encapsulate all user payloads as native the WTP and AC to encapsulate all user payloads as native
wireless frames, as defined by the wireless binding (see for wireless frames, as defined by the wireless binding (see for
example Section 4.3). example Section 4.3).
7 - All: The WTP is capable of supporting all frame tunnel 7 - All: The WTP is capable of supporting all frame tunnel
modes. modes.
4.5.40. WTP IPv4 IP Address 4.5.42. WTP IPv4 IP Address
The WTP IPv4 address is used to perform NAT detection. The WTP IPv4 address is used to perform NAT detection.
0 1 2 3 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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| WTP IPv4 IP Address | | WTP IPv4 IP Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 39 for WTP IPv4 IP Address
Type: 42 for WTP IPv4 IP Address
Length: 4 Length: 4
WTP IPv4 IP Address: The IPv4 address from which the WTP is sending WTP IPv4 IP Address: The IPv4 address from which the WTP is sending
packets. This field is used for NAT detection. packets. This field is used for NAT detection.
4.5.41. WTP MAC Type 4.5.43. WTP MAC Type
The WTP MAC-Type message element allows the WTP to communicate its The WTP MAC-Type message element allows the WTP to communicate its
mode of operation to the AC. A WTP that advertises support for both mode of operation to the AC. A WTP that advertises support for both
modes allows the AC to select the mode to use, based on local policy. modes allows the AC to select the mode to use, based on local policy.
0 0
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
| MAC Type | | MAC Type |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
Type: 40 for WTP MAC Type Type: 43 for WTP MAC Type
Length: 1 Length: 1
MAC Type: The MAC mode of operation supported by the WTP. The MAC Type: The MAC mode of operation supported by the WTP. The
following values are supported following values are supported
0 - Local-MAC: Local-MAC is the default mode that MUST be 0 - Local-MAC: Local-MAC is the default mode that MUST be
supported by all WTPs. supported by all WTPs.
1 - Split-MAC: Split-MAC support is optional, and allows the AC 1 - Split-MAC: Split-MAC support is optional, and allows the AC
to receive and process native wireless frames. to receive and process native wireless frames.
2 - Both: WTP is capable of supporting both Local-MAC and Split- 2 - Both: WTP is capable of supporting both Local-MAC and Split-
MAC. MAC.
4.5.42. WTP Name 4.5.44. WTP Name
The WTP Name message element is a variable length byte UTF-8 encoded The WTP Name message element is a variable length byte UTF-8 encoded
string. The string is not zero terminated. string. The string is not zero terminated.
0 0
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+- +-+-+-+-+-+-+-+-+-
| WTP Name ... | WTP Name ...
+-+-+-+-+-+-+-+-+- +-+-+-+-+-+-+-+-+-
Type: 41 for WTP Name
Type: 44 for WTP Name
Length: variable Length: variable
WTP Name: A non-zero terminated UTF-8 encoded string containing the WTP Name: A non-zero terminated UTF-8 encoded string containing the
WTP name. WTP name.
4.5.43. WTP Operational Statistics 4.5.45. WTP Operational Statistics
The WTP Operational Statistics message element is sent by the WTP to The WTP Operational Statistics message element is sent by the WTP to
the AC to provide statistics related to the operation of the WTP. the AC to provide statistics related to the operation of the WTP.
0 1 2 3 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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Radio ID | Tx Queue Level | Wireless Link Frames per Sec | | Radio ID | Tx Queue Level | Wireless Link Frames per Sec |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 42 for WTP Operational Statistics Type: 45 for WTP Operational Statistics
Length: 4 Length: 4
Radio ID: The radio ID of the radio to which the statistics apply. Radio ID: The radio ID of the radio to which the statistics apply.
Wireless Transmit Queue Level: The percentage of Wireless Transmit Wireless Transmit Queue Level: The percentage of Wireless Transmit
queue utilization, calaculated as the sum of utilized transmit queue utilization, calculated as the sum of utilized transmit
queue lengths divided by the sum of maximum transmit queue queue lengths divided by the sum of maximum transmit queue
lengths, multiplied by 100. The Wireless Transmit Queue Level is lengths, multiplied by 100. The Wireless Transmit Queue Level is
representative of congestion conditions over wireless interfaces representative of congestion conditions over wireless interfaces
between the WTP and wireless terminals. between the WTP and stations.
Wireless Link Frames per Sec: The number of frames transmitted or Wireless Link Frames per Sec: The number of frames transmitted or
received per second by the WTP over the air interface. received per second by the WTP over the air interface.
4.5.44. WTP Radio Statistics 4.5.46. WTP Radio Statistics
The WTP Radio Statistics message element is sent by the WTP to the AC The WTP Radio Statistics message element is sent by the WTP to the AC
to communicate statistics on radio behavior and reasons why the WTP to communicate statistics on radio behavior and reasons why the WTP
radio has been reset. radio has been reset.
0 1 2 3 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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Radio ID | Last Fail Type| Reset Count | | Radio ID | Last Fail Type| Reset Count |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SW Failure Count | HW Failure Count | | SW Failure Count | HW Failure Count |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Other Failure Count | Unknown Failure Count | | Other Failure Count | Unknown Failure Count |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Config Update Count | Channel Change Count | | Config Update Count | Channel Change Count |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Band Change Count | Current Noise Floor | | Band Change Count | Current Noise Floor |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 43 for WTP Radio Statistics Type: 46 for WTP Radio Statistics
Length: 20 Length: 20
Radio ID: The radio ID of the radio to which the statistics apply. Radio ID: The radio ID of the radio to which the statistics apply.
Last Failure Type: The last WTP failure. The following values are Last Failure Type: The last WTP failure. The following values are
supported: supported:
0 - Statistic Not Supported 0 - Statistic Not Supported
skipping to change at page 78, line 20 skipping to change at page 83, line 26
Channel Change Count: The number of times that the radio channel Channel Change Count: The number of times that the radio channel
has been changed. has been changed.
Band Change Count: The number of times that the radio has changed Band Change Count: The number of times that the radio has changed
frequency bands. frequency bands.
Current Noise Floor: A signed integer which indicates the noise Current Noise Floor: A signed integer which indicates the noise
floor of the radio receiver in units of dBm. floor of the radio receiver in units of dBm.
4.5.45. WTP Reboot Statistics 4.5.47. WTP Reboot Statistics
The WTP Reboot Statistics message element is sent by the WTP to the The WTP Reboot Statistics message element is sent by the WTP to the
AC to communicate reasons why WTP reboots have occurred. AC to communicate reasons why WTP reboots have occurred.
0 1 2 3 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 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reboot Count | AC Initiated Count | | Reboot Count | AC Initiated Count |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Link Failure Count | SW Failure Count | | Link Failure Count | SW Failure Count |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| HW Failure Count | Other Failure Count | | HW Failure Count | Other Failure Count |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Unknown Failure Count |Last Failure Type| | Unknown Failure Count |Last Failure Type|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 44 for WTP Reboot Statistics Type: 47 for WTP Reboot Statistics
Length: 15 Length: 15
Reboot Count: The number of reboots that have occurred due to a WTP Reboot Count: The number of reboots that have occurred due to a WTP
crash. A value of 65535 implies that this information is not crash. A value of 65535 implies that this information is not
available on the WTP. available on the WTP.
AC Initiated Count: The number of reboots that have occurred at the AC Initiated Count: The number of reboots that have occurred at the
request of a CAPWAP protocol message, such as a change in request of a CAPWAP protocol message, such as a change in
configuration that required a reboot or an explicit CAPWAP configuration that required a reboot or an explicit CAPWAP
skipping to change at page 79, line 26 skipping to change at page 84, line 32
AC initiated, link, SW or HW failure. AC initiated, link, SW or HW failure.
Unknown Failure Count: The number of times that a CAPWAP protocol Unknown Failure Count: The number of times that a CAPWAP protocol
connection with an AC has failed for unknown reasons. connection with an AC has failed for unknown reasons.
Last Failure Type: The failure type of the most recent WTP failure. Last Failure Type: The failure type of the most recent WTP failure.
The following values are supported: The following values are supported:
0 - Not Supported 0 - Not Supported
1 - AC Initiated (see Section 9.3) 1 - AC Initiated (see Section 9.2)
2 - Link Failure 2 - Link Failure
3 - Software Failure 3 - Software Failure
4 - Hardware Failure 4 - Hardware Failure
5 - Other Failure 5 - Other Failure
255 - Unknown (e.g., WTP doesn't keep track of info) 255 - Unknown (e.g., WTP doesn't keep track of info)
4.5.46. WTP Static IP Address Information 4.5.48. WTP Static IP Address Information
The WTP Static IP Address Information message element is used by an The WTP Static IP Address Information message element is used by an
AC to configure or clear a previously configured static IP address on AC to configure or clear a previously configured static IP address on
a WTP. a WTP.
0 1 2 3 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 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Netmask | | Netmask |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Gateway | | Gateway |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Static | | Static |
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+
Type: 45 for WTP Static IP Address Information Type: 48 for WTP Static IP Address Information
Length: 13 Length: 13
IP Address: The IP Address to assign to the WTP. This field is IP Address: The IP Address to assign to the WTP. This field is
only valid if the static field is set to one. only valid if the static field is set to one.
Netmask: The IP Netmask. This field is only valid if the static Netmask: The IP Netmask. This field is only valid if the static
field is set to one. field is set to one.
Gateway: The IP address of the gateway. This field is only valid Gateway: The IP address of the gateway. This field is only valid
skipping to change at page 80, line 39 skipping to change at page 85, line 39
Netmask: The IP Netmask. This field is only valid if the static Netmask: The IP Netmask. This field is only valid if the static
field is set to one. field is set to one.
Static: An 8-bit boolean stating whether the WTP should use a 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 static IP address or not. A value of zero disables the static IP
address, while a value of one enables it. address, while a value of one enables it.
4.6. CAPWAP Protocol Timers 4.6. CAPWAP Protocol Timers
A WTP or AC that implements CAPWAP discovery MUST implement the This section contains the CAPWAP timers.
following timers.
4.6.1. DataChannelKeepAlive 4.6.1. ChangeStatePendingTimer
The minimum time, in seconds, between sending data channel keep-alive The maximum time, in seconds, the AC will wait for the Change State
packets to the AC with which the WTP has joined. The default value Event Request from the WTP after having transmitted a successful
is 30 seconds. Configuration Status Response message. The default value is 25
seconds.
4.6.2. DataChannelDeadInterval 4.6.2. DataChannelKeepAlive
The minimum time, in seconds, between sending Data Channel Keep Alive
packets to the AC that the WTP has joined. The default value is 30
seconds.
4.6.3. DataChannelDeadInterval
The minimum time, in seconds, a WTP MUST wait without having received The minimum time, in seconds, a WTP MUST wait without having received
data channel keep-alive packets before the destination for the data a Data Channel Keep Alive packet before the destination for the Data
channel keep-alive packets may be considered dead. Must be no less Channel Keep Alive packets may be considered dead. The value of this
than 2*DataChannelKeepAlive seconds and no greater that 240 seconds. timer MUST be no less than 2*DataChannelKeepAlive seconds and no
greater that 240 seconds.
Default: 5 Default: 5
4.6.3. DiscoveryInterval 4.6.4. DiscoveryInterval
The minimum time, in seconds, that a WTP MUST wait after receiving a The minimum time, in seconds, that a WTP MUST wait after receiving a
Discovery Response, before initiating a DTLS handshake. Discovery Response message, before initiating a DTLS handshake.
Default: 5 Default: 5
4.6.4. DTLSRehandshake 4.6.5. DTLSRehandshake
The minimum time, in seconds, a WTP MUST wait for DTLS rehandshake to The minimum time, in seconds, a WTP MUST wait for DTLS rehandshake to
complete. complete.
Default: 10 Default: 10
4.6.5. DTLSSessionDelete 4.6.6. DTLSSessionDelete
The minimum time, in seconds, a WTP MUST wait for DTLS session The minimum time, in seconds, a WTP MUST wait for DTLS session
deletion. deletion.
Default: 5 Default: 5
4.6.6. EchoInterval 4.6.7. EchoInterval
The minimum time, in seconds, between sending echo requests to the AC The minimum time, in seconds, between sending Echo Request messages
with which the WTP has joined. to the AC with which the WTP has joined.
Default: 30 Default: 30
4.6.7. KeyLifetime 4.6.8. KeyLifetime
The maximum time, in seconds, which a CAPWAP DTLS session key is The maximum time, in seconds, which a CAPWAP DTLS session key is
valid. valid.
Default: 28800 Default: 28800
4.6.8. MaxDiscoveryInterval 4.6.9. MaxDiscoveryInterval
The maximum time allowed between sending discovery requests from the The maximum time allowed between sending Discovery Request messages,
interface, in seconds. Must be no less than 2 seconds and no greater in seconds. This value MUST be no less than 2 seconds and no greater
than 180 seconds. than 180 seconds.
Default: 20 seconds. Default: 20 seconds.
4.6.9. MaxFailedDTLSSessionRetry 4.6.10. MaxFailedDTLSSessionRetry
The maximum number of failed DTLS session establishment attempts The maximum number of failed DTLS session establishment attempts
before the CAPWAP device enters a silent period. before the CAPWAP device enters a silent period.
Default: 3. Default: 3.
4.6.10. NeighborDeadInterval 4.6.11. NeighborDeadInterval
The minimum time, in seconds, a WTP MUST wait without having received The minimum time, in seconds, a WTP MUST wait without having received
Echo Responses to its Echo Requests, before the destination for the an Echo Response message to its Echo Request message, before the
Echo Request may be considered dead. Must be no less than destination for the Echo Request may be considered dead. This value
2*EchoInterval seconds and no greater than 240 seconds. MUST be no less than 2*EchoInterval seconds and no greater than 240
seconds.
Default: 60 Default: 60
4.6.11. ResponseTimeout 4.6.12. ResponseTimeout
The minimum time, in seconds, which the WTP or AC must respond to a The minimum time, in seconds, in which the WTP or AC must respond to
CAPWAP Request message. a CAPWAP Request message.
Default: 1 Default: 1
4.6.12. RetransmitInterval 4.6.13. RetransmitInterval
The minimum time, in seconds, which a non-acknowledged CAPWAP packet The minimum time, in seconds, in which a non-acknowledged CAPWAP
will be retransmitted. packet will be retransmitted.
Default: 3 Default: 3
4.6.13. SilentInterval 4.6.14. SilentInterval
For a WTP, this is the minimum time, in seconds, a WTP MUST wait For a WTP, this is the minimum time, in seconds, a WTP MUST wait
before it MAY again send discovery requests or attempt to a establish before it MAY again send Discovery Request messages or attempt to a
DTLS session. For an AC, this is the minimum time, in seconds, which establish DTLS session. For an AC, this is the minimum time, in
the AC should ignore all CAPWAP and DTLS packets received from the seconds, during which the AC SHOULD ignore all CAPWAP and DTLS
WTP that is in the sulking state. packets received from the WTP that is in the Sulking state.
Default: 30 Default: 30
4.6.14. StatisticsTimer 4.6.15. StatisticsTimer
The default Statistics Interval is 120 seconds. The default Statistics Interval is 120 seconds.
4.6.15. WaitDTLS 4.6.16. WaitDTLS
The maximum time, in seconds, a WTP MUST wait without having received The maximum time, in seconds, a WTP MUST wait without having received
a DTLS Handshake message from an AC. This timer must be greater than a DTLS Handshake message from an AC. This timer must be greater than
30 seconds. 30 seconds.
Default: 60 Default: 60
4.6.17. WaitJoin
The maximum time, in seconds, after which the DTLS session has been
established that the AC will wait before receiving a Join Request
message. This timer must be greater than 30 seconds.
Default: 60
4.7. CAPWAP Protocol Variables 4.7. CAPWAP Protocol Variables
A WTP or AC that implements CAPWAP discovery MUST allow for the A WTP or AC that implements the CAPWAP Discovery phase MUST allow for
following variables to be configured by system management; default the following variables to be configured by system management;
values are specified, making explicit configuration unnecessary in default values are specified, making explicit configuration
many cases. If the default values are explicitly overriden by the unnecessary in many cases. If the default values are explicitly
AC, t he WTP MUST save the values sent by the AC. overriden by the AC, the WTP MUST save the values sent by the AC.
4.7.1. AdminState 4.7.1. AdminState
The default Administrative State value is enabled (1). The default Administrative State value is enabled (1).
4.7.2. DiscoveryCount 4.7.2. DiscoveryCount
The number of discoveries transmitted by a WTP to a single AC. This The number of Discovery Request messages transmitted by a WTP to a
is a monotonically increasing counter. single AC. This is a monotonically increasing counter.
4.7.3. FailedDTLSSessionCount 4.7.3. FailedDTLSAuthFailCount
The number of failed DTLS session establishment attempts due to
authentication failures.
4.7.4. FailedDTLSSessionCount
The number of failed DTLS session establishment attempts. The number of failed DTLS session establishment attempts.
4.7.4. IdleTimeout 4.7.5. IdleTimeout
The default Idle Timeout is 300 seconds. The default Idle Timeout is 300 seconds.
4.7.5. MaxDiscoveries 4.7.6. MaxDiscoveries
The maximum number of discovery requests that will be sent after a The maximum number of Discovery Request messages that will be sent
WTP boots. after a WTP boots.
Default: 10 Default: 10
4.7.6. MaxRetransmit 4.7.7. MaxRetransmit
The maximum number of retransmissions for a given CAPWAP packet The maximum number of retransmissions for a given CAPWAP packet
before the link layer considers the peer dead. before the link layer considers the peer dead.
Default: 5 Default: 5
4.7.7. ReportInterval 4.7.8. ReportInterval
The default Report Interval is 120 seconds.. The default Report Interval is 120 seconds.
4.7.8. RetransmitCount 4.7.9. RetransmitCount
The number of retransmissions for a given CAPWAP packet. This is a The number of retransmissions for a given CAPWAP packet. This is a
monotonically increasing counter. monotonically increasing counter.
4.7.9. WTPFallBack 4.7.10. WTPFallBack
The default WTP Fallback value is enabled (1). The default WTP Fallback value is enabled (1).
4.8. WTP Saved Variables 4.8. WTP Saved Variables
In addition to the values defined in Section 4.7, the following In addition to the values defined in Section 4.7, the following
values SHOULD be saved on the WTP in non-volatile memory. CAPWAP values SHOULD be saved on the WTP in non-volatile memory. CAPWAP
wireless bindings may define additional values that SHOULD be stored wireless bindings may define additional values that SHOULD be stored
on the WTP. on the WTP.
4.8.1. AdminRebootCount 4.8.1. AdminRebootCount
The number of times the WTP has rebooted administratively, defined in The number of times the WTP has rebooted administratively, defined in
Section 4.5.45. Section 4.5.47.
4.8.2. FrameEncapType 4.8.2. FrameEncapType
For WTPs that support multiple Frame Encapsulation Types, it is For WTPs that support multiple Frame Encapsulation Types, it is
useful to save the value configured by the AC. The Frame useful to save the value configured by the AC. The Frame
Encapsulation Type is defined in Section 4.5.39. Encapsulation Type is defined in Section 4.5.41.
4.8.3. LastRebootReason 4.8.3. LastRebootReason
The reason why the WTP last rebooted, defined in Section 4.5.45. The reason why the WTP last rebooted, defined in Section 4.5.47.
4.8.4. MacType 4.8.4. MacType
For WTPs that support multiple MAC Types, it is usefule to save the For WTPs that support multiple MAC Types, it is useful to save the
value configured by the AC. The MAC Type is defined in value configured by the AC. The MAC Type is defined in
Section 4.5.41. Section 4.5.43.
4.8.5. PreferredACs 4.8.5. PreferredACs
The preferred ACs, with the index, defined in Section 4.5.5. The preferred ACs, with the index, defined in Section 4.5.5.
4.8.6. RebootCount 4.8.6. RebootCount
The number of times the WTP has rebooted, defined in Section 4.5.45. The number of times the WTP has rebooted, defined in Section 4.5.47.
4.8.7. Static ACL Table 4.8.7. Static ACL Table
The static ACL table saved on the WTP, as configured by the Add The static ACL table saved on the WTP, as configured by the Add
Static MAC ACL Entry message element, see Section 4.5.9. Static MAC ACL Entry message element, see Section 4.5.9.
4.8.8. Static IP Address 4.8.8. Static IP Address
The static IP Address assigned to the WTP, as configured by the The static IP Address assigned to the WTP, as configured by the WTP
message element, see Section 4.5.46. Static IP Address Information message element (see Section 4.5.48).
4.8.9. WTPLinkFailureCount 4.8.9. WTPLinkFailureCount
The number of times the link to the AC has failed, see The number of times the link to the AC has failed, see
Section 4.5.45. Section 4.5.47.
4.8.10. WTPLocation 4.8.10. WTPLocation
The WTP Location, defined in Section 4.5.27. The WTP Location, defined in Section 4.5.28.
4.8.11. WTPName 4.8.11. WTPName
The WTP Name, defined in Section 4.5.42. The WTP Name, defined in Section 4.5.44.
5. CAPWAP Discovery Operations 5. CAPWAP Discovery Operations
The Discovery messages are used by a WTP to determine which ACs are The Discovery messages are used by a WTP to determine which ACs are
available to provide service, and the capabilities and load of the available to provide service, and the capabilities and load of the
ACs. ACs.
5.1. Discovery Request Message 5.1. Discovery Request Message
The Discovery Request message is used by the WTP to automatically The Discovery Request message is used by the WTP to automatically
discover potential ACs available in the network. The Discovery discover potential ACs available in the network. The Discovery
Request message provides ACs with the primary capabilities of the Request message provides ACs with the primary capabilities of the
WTP. A WTP must exchange this information to ensure subsequent WTP. A WTP must exchange this information to ensure subsequent
exchanges with the ACs are consistent with the WTP's functional exchanges with the ACs are consistent with the WTP's functional
characteristics. A WTP must transmit this command even if it has a characteristics.
statically configured AC.
Discovery Request messages MUST be sent by a WTP in the Discover Discovery Request messages MUST be sent by a WTP in the Discover
state after waiting for a random delay less than state after waiting for a random delay less than
MaxDiscoveryInterval, after a WTP first comes up or is MaxDiscoveryInterval, after a WTP first comes up or is
(re)initialized. A WTP MUST send no more than the maximum of (re)initialized. A WTP MUST send no more than the maximum of
MaxDiscoveries Discovery Request messages, waiting for a random delay MaxDiscoveries Discovery Request messages, waiting for a random delay
less than MaxDiscoveryInterval between each successive message. less than MaxDiscoveryInterval between each successive message.
This is to prevent an explosion of WTP Discovery Request messages. This is to prevent an explosion of WTP Discovery Request messages.
An example of this occurring is when many WTPs are powered on at the An example of this occurring is when many WTPs are powered on at the
skipping to change at page 86, line 47 skipping to change at page 91, line 46
of MaxDiscoveries Discovery Request messages, waiting for a random of MaxDiscoveries Discovery Request messages, waiting for a random
delay less than MaxDiscoveryInterval between each successive message. delay less than MaxDiscoveryInterval between each successive message.
If a Discovery Response message is not received after sending the If a Discovery Response message is not received after sending the
maximum number of Discovery Request messages, the WTP enters the maximum number of Discovery Request messages, the WTP enters the
Sulking state and MUST wait for an interval equal to SilentInterval Sulking state and MUST wait for an interval equal to SilentInterval
before sending further Discovery Request messages. before sending further Discovery Request messages.
Upon receiving a Discovery Request message, the AC will respond with Upon receiving a Discovery Request message, the AC will respond with
a Discovery Response message sent to the address in the source a Discovery Response message sent to the address in the source
address of the received discovery request message. address of the received Discovery Request message.
It is possible for the AC to receive a cleartext Discovery Request
message while a DTLS session is already active with the WTP. This is
most likely the case if the WTP has rebooted, perhaps due to a
software or power failure, but could also be caused by a DoS attack.
In such cases, any WTP state, including the state machine instance,
MUST NOT be cleared until another DTLS session has been successfully
established, communicated via the DTLSSessionEstablished DTLS
notification (see Section 2.3.2.2).
The binding specific WTP Radio Information message element (see
Section 2.1) is included in the Discovery Request message to
advertise WTP support for one or more CAPWAP bindings.
The Discovery Request message is sent by the WTP when in the
Discovery State. The AC does not transmit this message.
The following message elements MUST be included in the Discovery The following message elements MUST be included in the Discovery
Request message: Request message:
o Discovery Type, see Section 4.5.20 o Discovery Type, see Section 4.5.20
o WTP Board Data, see Section 4.5.36 o WTP Board Data, see Section 4.5.38
o WTP Descriptor, see Section 4.5.37 o WTP Descriptor, see Section 4.5.39
o WTP Frame Tunnel Mode, see Section 4.5.39 o WTP Frame Tunnel Mode, see Section 4.5.41
o WTP MAC Type, see Section 4.5.41 o WTP MAC Type, see Section 4.5.43
o WTP Radio Information message element(s)that the WTP supports;
These are defined by the individual link layer CAPWAP Binding
Protocols (see Section 2.1).
5.2. Discovery Response Message 5.2. Discovery Response Message
The Discovery Response message provides a mechanism for an AC to The Discovery Response message provides a mechanism for an AC to
advertise its services to requesting WTPs. advertise its services to requesting WTPs.
The Discovery Response message is sent by an AC after receiving a
Discovery Request message from a WTP. As with the Discovery Request,
the Session ID field in the CAPWAP header MUST be set to zero.
When a WTP receives a Discovery Response message, it MUST wait for an When a WTP receives a Discovery Response message, it MUST wait for an
interval not less than DiscoveryInterval for receipt of additional interval not less than DiscoveryInterval for receipt of additional
Discovery Response messages. After the DiscoveryInterval elapses, Discovery Response messages. After the DiscoveryInterval elapses,
the WTP enters the DTLS-Init state and selects one of the ACs that the WTP enters the DTLS-Init state and selects one of the ACs that
sent a Discovery Response message and send a DTLS Handshake to that sent a Discovery Response message and send a DTLS Handshake to that
AC. AC.
One or more binding specific WTP Radio Information message elements
(see Section 2.1) are included in the Discovery Request message to
advertise AC support for the CAPWAP bindings. The AC MAY include
only the bindings it shares in common with the WTP, known through the
WTP Radio Information message elements received in the Discovery
Request message, or it MAY include all of the bindings supported.
The WTP MAY use the supported bindings in its AC decision process.
Note that if the WTP joins an AC that does not support a specific
CAPWAP binding, service for that binding MUST NOT be provided by the
WTP.
The Discovery Response message is sent by the AC when in the Idle
State. The WTP does not transmit this message.
The following message elements MUST be included in the Discovery The following message elements MUST be included in the Discovery
Response Message: Response Message:
o AC Descriptor, see Section 4.5.1 o AC Descriptor, see Section 4.5.1
o AC Name, see Section 4.5.4 o AC Name, see Section 4.5.4
o CAPWAP Control IPv4 Address, see Section 4.5.10 o WTP Radio Information message element(s)that the AC supports;
These are defined by the individual link layer CAPWAP Binding
Protocols (see Section 2.1 for more information).
o CAPWAP Control IPv6 Address, see Section 4.5.11 o One of the following message elements MUST be included in the
Discovery Response Message:
* CAPWAP Control IPv4 Address, see Section 4.5.10
* CAPWAP Control IPv6 Address, see Section 4.5.11
5.3. Primary Discovery Request Message 5.3. Primary Discovery Request Message
The Primary Discovery Request message is sent by the WTP to determine The Primary Discovery Request message is sent by the WTP to determine
whether its preferred (or primary) AC is available. whether its preferred (or primary) AC is available.
A Primary Discovery Request message is sent by a WTP when it has a A Primary Discovery Request message is sent by a WTP when it has a
primary AC configured, and is connected to another AC. This 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 generally occurs as a result of a failover, and is used by the WTP as
a means to discover when its primary AC becomes available. As a a means to discover when its primary AC becomes available. Since the
consequence, this message is only sent by a WTP when it is in the Run WTP only has a single instance of the CAPWAP state machine, the
state. Primary Discovery Request is sent by the WTP when in the Run State.
The AC does not transmit this message.
The frequency of the Primary Discovery Request messages should be no The frequency of the Primary Discovery Request messages should be no
more often than the sending of the Echo Request message. more often than the sending of the Echo Request message.
Upon receipt of a Discovery Request message, the AC responds with a Upon receipt of a Primary Discovery Request message, the AC responds
Primary Discovery Response message sent to the address in the source with a Primary Discovery Response message sent to the address in the
address of the received Primary Discovery Request message. source address of the received Primary Discovery Request message.
The following message elements MUST be included in the Primary The following message elements MUST be included in the Primary
Discovery Request message. Discovery Request message.
o Discovery Type, see Section 4.5.20 o Discovery Type, see Section 4.5.20
o WTP Board Data, see Section 4.5.36 o WTP Board Data, see Section 4.5.38
o WTP Descriptor, see Section 4.5.37 o WTP Descriptor, see Section 4.5.39
o WTP Frame Tunnel Mode, see Section 4.5.39 o WTP Frame Tunnel Mode, see Section 4.5.41
o WTP MAC Type, see Section 4.5.41 o WTP MAC Type, see Section 4.5.43
o WTP Radio Information Element(s)that the AC supports; These are o WTP Radio Information message element(s)that the WTP supports;
defined by the individual link layer CAPWAP Binding Protocols. These are defined by the individual link layer CAPWAP Binding
Protocols (see Section 2.1 for more information).
5.4. Primary Discovery Response 5.4. Primary Discovery Response
The Primary Discovery Response message enables an AC to advertise its The Primary Discovery Response message enables an AC to advertise its
availability and services to requesting WTPs that are configured to availability and services to requesting WTPs that are configured to
have the AC as its primary AC. have the AC as its primary AC.
The Primary Discovery Response message is sent by an AC after The Primary Discovery Response message is sent by an AC after
receiving a Primary Discovery Request message. receiving a Primary Discovery Request message.
When a WTP receives a Primary Discovery Response message, it may When a WTP receives a Primary Discovery Response message, it may
establish a CAPWAP protocol connection to its primary AC, based on establish a CAPWAP protocol connection to its primary AC, based on
the configuration of the WTP Fallback Status message element on the the configuration of the WTP Fallback Status message element on the
WTP. WTP.
The Primary Discovery Response message is sent by the AC when in the
Idle State. The WTP does not transmit this message.
The following message elements MUST be included in the Primary The following message elements MUST be included in the Primary
Discovery Response message. Discovery Response message.
o AC Descriptor, see Section 4.5.1 o AC Descriptor, see Section 4.5.1
o AC Name, see Section 4.5.4 o AC Name, see Section 4.5.4
o CAPWAP Control IPv4 Address, see Section 4.5.10 o CAPWAP Control IPv4 Address, see Section 4.5.10
o CAPWAP Control IPv6 Address, see Section 4.5.11 o CAPWAP Control IPv6 Address, see Section 4.5.11
o WTP Radio Information Element(s)that the AC supports; These are
defined by the individual link layer CAPWAP Binding Protocols. o WTP Radio Information message element(s)that the AC supports;
These are defined by the individual link layer CAPWAP Binding
Protocols (see Section 2.1 for more information).
6. CAPWAP Join Operations 6. CAPWAP Join Operations
The Join Request message is used by a WTP to request service from an The Join Request message is used by a WTP to request service from an
AC after a DTLS connection is established to that AC. The Join AC after a DTLS connection is established to that AC. The Join
Response message is used by the the AC to indicate that it will or Response message is used by the the AC to indicate that it will or
will not provide service. will not provide service.
6.1. Join Request 6.1. Join Request
The Join Request message is used by a WTP to inform an AC that it The Join Request message is used by a WTP to request service through
wishes to provide services through the AC. A Join Request message is the AC. A Join Request message is sent by a WTP after (optionally)
sent by a WTP after (optionally) receiving one or more Discovery receiving one or more Discovery Response messages, and completion of
Responses, and completion of DTLS session establishment. When an AC DTLS session establishment. When an AC receives a Join Request
receives a Join Request message it responds with a Join Response message it responds with a Join Response message.
message.
Upon completion of the DTLS handshake, which the WTP is notified via Upon completion of the DTLS handshake, and receiving the
the DTLSEstablished notification, sends the Join Request message to DTLSEstablished notification, the WTP sends the Join Request message
the AC. When the AC is notified of the DTLS session establishment, to the AC. When the AC is notified of the DTLS session
it does not clear the WaitDTLS timer until it has received the Join establishment, it does not clear the WaitDTLS timer until it has
Request message, at which time it generates a Join Response message received the Join Request message, at which time it sends a Join
and sends it to the WTP, indicating success or failure. Response message to the WTP, indicating success or failure.
One or more WTP Radio Information message elements (see Section 2.1)
are included in the Join Request to request service for the CAPWAP
bindings by the AC. Including a binding that is unsupported by the
AC will result in a failed Join Response.
If the AC rejects the Join Request, it sends a Join Response message If the AC rejects the Join Request, it sends a Join Response message
with a failure indication and initiates an abort of the DTLS session with a failure indication and initiates an abort of the DTLS session
via the DTLSAbort command. via the DTLSAbort command.
If an invalid (i.e. malformed) Join Request message is received, the If an invalid (i.e. malformed) Join Request message is received, the
message MUST be silently discarded by the AC. No response is sent to message MUST be silently discarded by the AC. No response is sent to
the WTP. The AC SHOULD log this event. the WTP. The AC SHOULD log this event.
The Join Request is sent by the WTP when in the Join State. The AC
does not transmit this message.
The following message elements MUST be included in the Join Request The following message elements MUST be included in the Join Request
message. message.
o Location Data, see Section 4.5.27 o Location Data, see Section 4.5.28
o WTP Board Data, see Section 4.5.36 o WTP Board Data, see Section 4.5.38
o WTP Descriptor, see Section 4.5.37 o WTP Descriptor, see Section 4.5.39
o WTP IPv4 IP Address, see Section 4.5.42
o WTP IPv4 IP Address, see Section 4.5.40 o WTP Name, see Section 4.5.44
o WTP Name, see Section 4.5.42 o Session ID, see Section 4.5.35
o Session ID, see Section 4.5.33 o WTP Frame Tunnel Mode, see Section 4.5.41
o WTP MAC Type, see Section 4.5.43
o WTP Radio Information message element(s)that the WTP supports;
These are defined by the individual link layer CAPWAP Binding
Protocols (see Section 2.1 for more information).
The following message element MAY be included in the Join Request The following message element MAY be included in the Join Request
message. message.
o WTP Reboot Statistics, see Section 4.5.45 o Maximum Message Length, see Section 4.5.29
o WTP Reboot Statistics, see Section 4.5.47
6.2. Join Response 6.2. Join Response
The Join Response message is sent by the AC to indicate to a WTP that The Join Response message is sent by the AC to indicate to a WTP that
it is capable and willing to provide service to it. it is capable and willing to provide service to the WTP.
The WTP, receiving a Join Response message, checks for success or The WTP, receiving a Join Response message, checks for success or
failure. If the message indicates success, the WTP clears the failure. If the message indicates success, the WTP clears the
WaitDTLS timer for the session and proceeds to the Configure state. WaitDTLS timer for the session and proceeds to the Configure state.
If the WaitDTLS Timer expires prior to reception of the Join Response If the WaitDTLS Timer expires prior to reception of the Join Response
message, the WTP MUST terminate the handshake, deallocate associated message, the WTP MUST terminate the handshake, deallocate session
session state and initiate the DTLSAbort command. state and initiate the DTLSAbort command.
If an invalid (malformed) Join Response message is received, the WTP If an invalid (malformed) Join Response message is received, the WTP
SHOULD log an informative message detailing the error. This error SHOULD log an informative message detailing the error. This error
MUST be treated in the same manner as AC non-responsiveness. In this MUST be treated in the same manner as AC non-responsiveness. The
way, the WaitDTLS timer will eventually expire, in which case the WTP WaitDTLS timer will eventually expire, and the WTP may (if it is so
may (if it is so configured) attempt to join with an alternative AC. configured) attempts to join a new AC.
If one of the WTP Radio Information message elements (see
Section 2.1) in the Join Request message requested support for a
CAPWAP binding which the AC does not support, the AC sets the Result
Code message element to "Binding Not Supported".
The AC includes the Image Identifier message element to indicate the
software version it expects the WTP to run. This information is used
to determine whether the WTP MUST either change its currently running
firmware image, or download a new version (see Section 9.1.1).
The Join Response message is sent by the AC when in the Join State.
The WTP does not transmit this message.
The following message elements MAY be included in the Join Response The following message elements MAY be included in the Join Response
message. message.
o AC IPv4 List, see Section 4.5.2 o AC IPv4 List, see Section 4.5.2
o AC IPv6 List, see Section 4.5.3 o AC IPv6 List, see Section 4.5.3
o Result Code, see Section 4.5.31 o Image Identifier, see Section 4.5.25
o