7559 lines
		
	
	
		
			311 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			7559 lines
		
	
	
		
			311 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 | 
						|
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 | 
						|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 | 
						|
<head profile="http://dublincore.org/documents/2008/08/04/dc-html/">
 | 
						|
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 | 
						|
    <meta name="robots" content="index,follow" />
 | 
						|
    <meta name="creator" content="rfcmarkup version 1.111" />
 | 
						|
    <link rel="schema.DC" href="http://purl.org/dc/elements/1.1/" />
 | 
						|
<meta name="DC.Relation.Replaces" content="rfc5414" />
 | 
						|
<meta name="DC.Identifier" content="urn:ietf:rfc:5415" />
 | 
						|
<meta name="DC.Date.Issued" content="March, 2009" />
 | 
						|
<meta name="DC.Creator" content="Stanley, Dorothy" />
 | 
						|
<meta name="DC.Creator" content="Calhoun, Pat" />
 | 
						|
<meta name="DC.Creator" content="Montemurro, Michael" />
 | 
						|
<meta name="DC.Description.Abstract" content="This specification defines the Control And Provisioning of Wireless
 | 
						|
Access Points (CAPWAP) Protocol, meeting the objectives defined by the
 | 
						|
CAPWAP Working Group in RFC 4564. The CAPWAP protocol is designed to
 | 
						|
be flexible, allowing it to be used for a variety of wireless
 | 
						|
technologies. This document describes the base CAPWAP protocol, while
 | 
						|
separate binding extensions will enable its use with additional
 | 
						|
wireless technologies. [STANDARDS-TRACK]" />
 | 
						|
<meta name="DC.Title" content="Control And Provisioning of Wireless Access Points (CAPWAP) Protocol Specification" />
 | 
						|
 | 
						|
    <link rel="icon" href="/images/id.png" type="image/png" />
 | 
						|
    <link rel="shortcut icon" href="/images/id.png" type="image/png" />
 | 
						|
    <title>draft-ietf-capwap-protocol-specification-07 - Control And Provisioning of Wireless Access Points (CAPWAP) Protocol Specification</title>
 | 
						|
    
 | 
						|
    
 | 
						|
    <style type="text/css">
 | 
						|
	body {
 | 
						|
	    margin: 0px 8px;
 | 
						|
            font-size: 1em;
 | 
						|
	}
 | 
						|
        h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
 | 
						|
	    font-weight: bold;
 | 
						|
            line-height: 0pt;
 | 
						|
            display: inline;
 | 
						|
            white-space: pre;
 | 
						|
            font-family: monospace;
 | 
						|
            font-size: 1em;
 | 
						|
	    font-weight: bold;
 | 
						|
        }
 | 
						|
        pre {
 | 
						|
            font-size: 1em;
 | 
						|
            margin-top: 0px;
 | 
						|
            margin-bottom: 0px;
 | 
						|
        }
 | 
						|
	.pre {
 | 
						|
	    white-space: pre;
 | 
						|
	    font-family: monospace;
 | 
						|
	}
 | 
						|
	.header{
 | 
						|
	    font-weight: bold;
 | 
						|
	}
 | 
						|
        .newpage {
 | 
						|
            page-break-before: always;
 | 
						|
        }
 | 
						|
        .invisible {
 | 
						|
            text-decoration: none;
 | 
						|
            color: white;
 | 
						|
        }
 | 
						|
        a.selflink {
 | 
						|
          color: black;
 | 
						|
          text-decoration: none;
 | 
						|
        }
 | 
						|
        @media print {
 | 
						|
            body {
 | 
						|
                font-family: monospace;
 | 
						|
                font-size: 10.5pt;
 | 
						|
            }
 | 
						|
            h1, h2, h3, h4, h5, h6 {
 | 
						|
                font-size: 1em;
 | 
						|
            }
 | 
						|
        
 | 
						|
            a:link, a:visited {
 | 
						|
                color: inherit;
 | 
						|
                text-decoration: none;
 | 
						|
            }
 | 
						|
            .noprint {
 | 
						|
                display: none;
 | 
						|
            }
 | 
						|
        }
 | 
						|
	@media screen {
 | 
						|
	    .grey, .grey a:link, .grey a:visited {
 | 
						|
		color: #777;
 | 
						|
	    }
 | 
						|
            .docinfo {
 | 
						|
                background-color: #EEE;
 | 
						|
            }
 | 
						|
            .top {
 | 
						|
                border-top: 7px solid #EEE;
 | 
						|
            }
 | 
						|
            .bgwhite  { background-color: white; }
 | 
						|
            .bgred    { background-color: #F44; }
 | 
						|
            .bggrey   { background-color: #666; }
 | 
						|
            .bgbrown  { background-color: #840; }            
 | 
						|
            .bgorange { background-color: #FA0; }
 | 
						|
            .bgyellow { background-color: #EE0; }
 | 
						|
            .bgmagenta{ background-color: #F4F; }
 | 
						|
            .bgblue   { background-color: #66F; }
 | 
						|
            .bgcyan   { background-color: #4DD; }
 | 
						|
            .bggreen  { background-color: #4F4; }
 | 
						|
 | 
						|
            .legend   { font-size: 90%; }
 | 
						|
            .cplate   { font-size: 70%; border: solid grey 1px; }
 | 
						|
	}
 | 
						|
    </style>
 | 
						|
    <!--[if IE]>
 | 
						|
    <style>
 | 
						|
    body {
 | 
						|
       font-size: 13px;
 | 
						|
       margin: 10px 10px;
 | 
						|
    }
 | 
						|
    </style>
 | 
						|
    <![endif]-->
 | 
						|
 | 
						|
    <script type="text/javascript"><!--
 | 
						|
    function addHeaderTags() {
 | 
						|
	var spans = document.getElementsByTagName("span");
 | 
						|
	for (var i=0; i < spans.length; i++) {
 | 
						|
	    var elem = spans[i];
 | 
						|
	    if (elem) {
 | 
						|
		var level = elem.getAttribute("class");
 | 
						|
                if (level == "h1" || level == "h2" || level == "h3" || level == "h4" || level == "h5" || level == "h6") {
 | 
						|
                    elem.innerHTML = "<"+level+">"+elem.innerHTML+"</"+level+">";		
 | 
						|
                }
 | 
						|
	    }
 | 
						|
	}
 | 
						|
    }
 | 
						|
    var legend_html = "Colour legend:<br />      <table>         <tr><td>Unknown:</td>                   <td><span class='cplate bgwhite'>    </span></td></tr>         <tr><td>Draft:</td>                     <td><span class='cplate bgred'>    </span></td></tr>         <tr><td>Informational:</td>             <td><span class='cplate bgorange'>    </span></td></tr>         <tr><td>Experimental:</td>              <td><span class='cplate bgyellow'>    </span></td></tr>         <tr><td>Best Common Practice:</td>      <td><span class='cplate bgmagenta'>    </span></td></tr>         <tr><td>Proposed Standard:</td>         <td><span class='cplate bgblue'>    </span></td></tr>         <tr><td>Draft Standard (old designation):</td> <td><span class='cplate bgcyan'>    </span></td></tr>         <tr><td>Internet Standard:</td>         <td><span class='cplate bggreen'>    </span></td></tr>         <tr><td>Historic:</td>                  <td><span class='cplate bggrey'>    </span></td></tr>         <tr><td>Obsolete:</td>                  <td><span class='cplate bgbrown'>    </span></td></tr>     </table>";
 | 
						|
    function showElem(id) {
 | 
						|
        var elem = document.getElementById(id);
 | 
						|
        elem.innerHTML = eval(id+"_html");
 | 
						|
        elem.style.visibility='visible';
 | 
						|
    }
 | 
						|
    function hideElem(id) {
 | 
						|
        var elem = document.getElementById(id);
 | 
						|
        elem.style.visibility='hidden';        
 | 
						|
        elem.innerHTML = "";
 | 
						|
    }
 | 
						|
    // -->
 | 
						|
    </script>
 | 
						|
</head>
 | 
						|
<body onload="addHeaderTags()">
 | 
						|
   <div style="height: 13px;">
 | 
						|
      <div onmouseover="this.style.cursor='pointer';"
 | 
						|
         onclick="showElem('legend');"
 | 
						|
         onmouseout="hideElem('legend')"
 | 
						|
	 style="height: 6px; position: absolute;"
 | 
						|
         class="pre noprint docinfo bgred"
 | 
						|
         title="Click for colour legend." >                                                                        </div>
 | 
						|
      <div id="legend"
 | 
						|
           class="docinfo noprint pre legend"
 | 
						|
           style="position:absolute; top: 4px; left: 4ex; visibility:hidden; background-color: white; padding: 4px 9px 5px 7px; border: solid #345 1px; "
 | 
						|
           onmouseover="showElem('legend');"
 | 
						|
           onmouseout="hideElem('legend');">
 | 
						|
      </div>
 | 
						|
   </div>
 | 
						|
<span class="pre noprint docinfo top">[<a href="../html/" title="Document search and retrieval page">Docs</a>] [<a href="https://tools.ietf.org/id/draft-ietf-capwap-protocol-specification-07.txt" title="Plaintext version of this document">txt</a>|<a href="/pdf/draft-ietf-capwap-protocol-specification-07.txt" title="PDF version of this document">pdf</a>] [<a href='https://datatracker.ietf.org/doc/draft-ietf-capwap-protocol-specification' title='IESG Datatracker information for this document'>Tracker</a>] [<a href="../wg/capwap" title="The working group handling this document">WG</a>] [<a href="mailto:draft-ietf-capwap-protocol-specification@tools.ietf.org?subject=draft-ietf-capwap-protocol-specification%20" title="Send email to the document authors">Email</a>] [<a href="/rfcdiff?difftype=--hwdiff&url2=draft-ietf-capwap-protocol-specification-07.txt" title="Inline diff (wdiff)">Diff1</a>] [<a href="/rfcdiff?url2=draft-ietf-capwap-protocol-specification-07.txt" title="Side-by-side diff">Diff2</a>] [<a href="/idnits?url=https://tools.ietf.org/id/draft-ietf-capwap-protocol-specification-07.txt" title="Run an idnits check of this document">Nits</a>] [<a href="https://datatracker.ietf.org/ipr/search/?option=document_search&document_search=draft-ietf-capwap-protocol-specification" title="IPR disclosures related to this document">IPR</a>]    </span><br />
 | 
						|
<span class="pre noprint docinfo">                                                                        </span><br />
 | 
						|
<span class="pre noprint docinfo">Versions: <a href="./draft-ietf-capwap-protocol-specification-00">00</a> <a href="./draft-ietf-capwap-protocol-specification-01">01</a> <a href="./draft-ietf-capwap-protocol-specification-02">02</a> <a href="./draft-ietf-capwap-protocol-specification-03">03</a> <a href="./draft-ietf-capwap-protocol-specification-04">04</a> <a href="./draft-ietf-capwap-protocol-specification-05">05</a> <a href="./draft-ietf-capwap-protocol-specification-06">06</a> <a href="./draft-ietf-capwap-protocol-specification-07">07</a> <a href="./draft-ietf-capwap-protocol-specification-08">08</a> <a href="./draft-ietf-capwap-protocol-specification-09">09</a> <a href="./draft-ietf-capwap-protocol-specification-10">10</a> <a href="./draft-ietf-capwap-protocol-specification-11">11</a>                           
 | 
						|
          <a href="./draft-ietf-capwap-protocol-specification-12">12</a> <a href="./draft-ietf-capwap-protocol-specification-13">13</a> <a href="./draft-ietf-capwap-protocol-specification-14">14</a> <a href="./draft-ietf-capwap-protocol-specification-15">15</a> <a href="./rfc5415">RFC 5415</a>                                          </span><br />
 | 
						|
<span class="pre noprint docinfo">                                                                        </span><br />
 | 
						|
<pre>
 | 
						|
Network Working Group                                 P. Calhoun, Editor
 | 
						|
Internet-Draft                                       Cisco Systems, Inc.
 | 
						|
Expires: December 13, 2007                         M. Montemurro, Editor
 | 
						|
                                                      Research In Motion
 | 
						|
                                                      D. Stanley, Editor
 | 
						|
                                                          Aruba Networks
 | 
						|
                                                           June 11, 2007
 | 
						|
 | 
						|
 | 
						|
                     <span class="h1">CAPWAP Protocol Specification</span>
 | 
						|
              <span class="h1">draft-ietf-capwap-protocol-specification-07</span>
 | 
						|
 | 
						|
Status of this Memo
 | 
						|
 | 
						|
   By submitting this Internet-Draft, each author represents that any
 | 
						|
   applicable patent or other IPR claims of which he or she is aware
 | 
						|
   have been or will be disclosed, and any of which he or she becomes
 | 
						|
   aware will be disclosed, in accordance with <a href="./bcp79#section-6">Section 6 of BCP 79</a>.
 | 
						|
 | 
						|
   Internet-Drafts are working documents of the Internet Engineering
 | 
						|
   Task Force (IETF), its areas, and its working groups.  Note that
 | 
						|
   other groups may also distribute working documents as Internet-
 | 
						|
   Drafts.
 | 
						|
 | 
						|
   Internet-Drafts are draft documents valid for a maximum of six months
 | 
						|
   and may be updated, replaced, or obsoleted by other documents at any
 | 
						|
   time.  It is inappropriate to use Internet-Drafts as reference
 | 
						|
   material or to cite them other than as "work in progress."
 | 
						|
 | 
						|
   The list of current Internet-Drafts can be accessed at
 | 
						|
   <a href="http://www.ietf.org/ietf/1id-abstracts.txt">http://www.ietf.org/ietf/1id-abstracts.txt</a>.
 | 
						|
 | 
						|
   The list of Internet-Draft Shadow Directories can be accessed at
 | 
						|
   <a href="http://www.ietf.org/shadow.html">http://www.ietf.org/shadow.html</a>.
 | 
						|
 | 
						|
   This Internet-Draft will expire on December 13, 2007.
 | 
						|
 | 
						|
Copyright Notice
 | 
						|
 | 
						|
   Copyright (C) The IETF Trust (2007).
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007              [Page 1]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-2" id="page-2" href="#page-2" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
Abstract
 | 
						|
 | 
						|
   This specification defines the Control And Provisioning of Wireless
 | 
						|
   Access Points (CAPWAP) Protocol.  The CAPWAP protocol meets the IETF
 | 
						|
   CAPWAP working group protocol requirements.  The CAPWAP protocol is
 | 
						|
   designed to be flexible, allowing it to be used for a variety of
 | 
						|
   wireless technologies.  This document describes the base CAPWAP
 | 
						|
   protocol.  The CAPWAP protocol binding which defines extensions for
 | 
						|
   use with the IEEE 802.11 wireless LAN protocol is available in [<a href="#ref-12" title=""CAPWAP Protocol Binding for IEEE 802.11"">12</a>].
 | 
						|
   Extensions are expected to be defined to enable use of the CAPWAP
 | 
						|
   protocol with additional wireless technologies.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007              [Page 2]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-3" id="page-3" href="#page-3" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h2"><a class="selflink" name="section-1" href="#section-1">1</a>.  Introduction</span>
 | 
						|
 | 
						|
   This document describes the CAPWAP Protocol, a standard,
 | 
						|
   interoperable protocol which enables an Access Controller (AC) to
 | 
						|
   manage a collection of Wireless Termination Points (WTPs).  The
 | 
						|
   CAPWAP protocol is defined to be independent of layer 2 technology.
 | 
						|
 | 
						|
   The emergence of centralized IEEE 802.11 Wireless Local Area Network
 | 
						|
   (WLAN) architectures, in which simple IEEE 802.11 WTPs are managed by
 | 
						|
   an Access Controller (AC) suggested that a standards based,
 | 
						|
   interoperable protocol could radically simplify the deployment and
 | 
						|
   management of wireless networks.  WTPs require a set of dynamic
 | 
						|
   management and control functions related to their primary task of
 | 
						|
   connecting the wireless and wired mediums.  Traditional protocols for
 | 
						|
   managing WTPs are either manual static configuration via HTTP,
 | 
						|
   proprietary Layer 2 specific or non-existent (if the WTPs are self-
 | 
						|
   contained).  An IEEE 802.11 binding is defined in [<a href="#ref-12" title=""CAPWAP Protocol Binding for IEEE 802.11"">12</a>] to support use
 | 
						|
   of the CAPWAP protocol with IEEE 802.11 WLAN networks.
 | 
						|
 | 
						|
   CAPWAP assumes a network configuration consisting of multiple WTPs
 | 
						|
   communicating via the Internet Protocol (IP) to an AC.  WTPs are
 | 
						|
   viewed as remote RF interfaces controlled by the AC.  The CAPWAP
 | 
						|
   protocol supports two modes of operation: Split and Local MAC.  In
 | 
						|
   Split MAC mode all L2 wireless data and management frames are
 | 
						|
   encapsulated via the CAPWAP protocol and exchanged between the AC and
 | 
						|
   the WTP.  As shown in Figure 1, the wireless frames received from a
 | 
						|
   mobile device, which is referred to in this specification as a
 | 
						|
   Station (STA), are directly encapsulated by the WTP and forwarded to
 | 
						|
   the AC.
 | 
						|
 | 
						|
              +-+         wireless frames        +-+
 | 
						|
              | |--------------------------------| |
 | 
						|
              | |              +-+               | |
 | 
						|
              | |--------------| |---------------| |
 | 
						|
              | |wireless PHY/ | |     CAPWAP    | |
 | 
						|
              | | MAC sublayer | |               | |
 | 
						|
              +-+              +-+               +-+
 | 
						|
              STA              WTP                AC
 | 
						|
 | 
						|
        Figure 1: Representative CAPWAP Architecture for Split MAC
 | 
						|
 | 
						|
   The Local MAC mode of operation allows for the data frames to be
 | 
						|
   either locally bridged, or tunneled as 802.3 frames.  The latter
 | 
						|
   implies that the WTP performs the 802 bridging function.  In either
 | 
						|
   case the L2 wireless management frames are processed locally by the
 | 
						|
   WTP, and then forwarded to the AC.  Figure 2 shows the Local MAC
 | 
						|
   mode, in which a station transmits a wireless frame which is
 | 
						|
   encapsulated in an 802.3 frame and forwarded to the AC.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007              [Page 3]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-4" id="page-4" href="#page-4" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
              +-+wireless frames +-+ 802.3 frames +-+
 | 
						|
              | |----------------| |--------------| |
 | 
						|
              | |                | |              | |
 | 
						|
              | |----------------| |--------------| |
 | 
						|
              | |wireless PHY/   | |     CAPWAP   | |
 | 
						|
              | | MAC sublayer   | |              | |
 | 
						|
              +-+                +-+              +-+
 | 
						|
              STA                WTP               AC
 | 
						|
 | 
						|
        Figure 2: Representative CAPWAP Architecture for Local MAC
 | 
						|
 | 
						|
   Provisioning WTPs with security credentials, and managing which WTPs
 | 
						|
   are authorized to provide service are traditionally handled by
 | 
						|
   proprietary solutions.  Allowing these functions to be performed from
 | 
						|
   a centralized AC in an interoperable fashion increases manageability
 | 
						|
   and allows network operators to more tightly control their wireless
 | 
						|
   network infrastructure.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-1.1" href="#section-1.1">1.1</a>.  Goals</span>
 | 
						|
 | 
						|
   The goals for the CAPWAP protocol are listed below:
 | 
						|
 | 
						|
   1. To centralize the authentication and policy enforcement functions
 | 
						|
      for a wireless network.  The AC may also provide centralized
 | 
						|
      bridging, forwarding, and encryption of user traffic.
 | 
						|
      Centralization of these functions will enable reduced cost and
 | 
						|
      higher efficiency by applying the capabilities of network
 | 
						|
      processing silicon to the wireless network, as in wired LANs.
 | 
						|
 | 
						|
   2. To enable shifting of the higher level protocol processing from
 | 
						|
      the WTP.  This leaves the time critical applications of wireless
 | 
						|
      control and access in the WTP, making efficient use of the
 | 
						|
      computing power available in WTPs which are the subject to severe
 | 
						|
      cost pressure.
 | 
						|
 | 
						|
   3. To provide a generic encapsulation and transport mechanism,
 | 
						|
      enabling the CAPWAP protocol to be applied to many access point
 | 
						|
      types in the future, via a specific wireless binding.
 | 
						|
 | 
						|
   The CAPWAP protocol concerns itself solely with the interface between
 | 
						|
   the WTP and the AC.  Inter-AC and station-to AC-communication are
 | 
						|
   strictly outside the scope of this document.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-1.2" href="#section-1.2">1.2</a>.  Conventions used in this document</span>
 | 
						|
 | 
						|
   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
 | 
						|
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
 | 
						|
   document are to be interpreted as described in <a href="./rfc2119">RFC 2119</a> [<a href="#ref-1" title=""Key words for use in RFCs to Indicate Requirement Levels"">1</a>].
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007              [Page 4]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-5" id="page-5" href="#page-5" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-1.3" href="#section-1.3">1.3</a>.  Contributing Authors</span>
 | 
						|
 | 
						|
   This section lists and acknowledges the authors of significant text
 | 
						|
   and concepts included in this specification.
 | 
						|
 | 
						|
   The CAPWAP Working Group selected the Lightweight Access Point
 | 
						|
   Protocol (LWAPP) [add reference, when available] to be used as the
 | 
						|
   basis of the CAPWAP protocol specification.  The following people are
 | 
						|
   authors of the LWAPP document:
 | 
						|
 | 
						|
      Bob O'Hara, Cisco Systems, Inc.
 | 
						|
      170 West Tasman Drive, San Jose, CA  95134
 | 
						|
      Phone: +1 408-853-5513, Email: bob.ohara@cisco.com
 | 
						|
 | 
						|
      Pat Calhoun, Cisco Systems, Inc.
 | 
						|
      170 West Tasman Drive, San Jose, CA  95134
 | 
						|
      Phone: +1 408-853-5269, Email: pcalhoun@cisco.com
 | 
						|
 | 
						|
      Rohit Suri, Cisco Systems, Inc.
 | 
						|
      170 West Tasman Drive, San Jose, CA  95134
 | 
						|
      Phone: +1 408-853-5548, Email: rsuri@cisco.com
 | 
						|
 | 
						|
      Nancy Cam Winget, Cisco Systems, Inc.
 | 
						|
      170 West Tasman Drive, San Jose, CA  95134
 | 
						|
      Phone: +1 408-853-0532, Email: ncamwing@cisco.com
 | 
						|
 | 
						|
      Scott Kelly, Aruba Networks
 | 
						|
      1322 Crossman Ave, Sunnyvale, CA 94089
 | 
						|
      Phone: +1  408-754-8408, Email: skelly@arubanetworks.com
 | 
						|
 | 
						|
      Michael Glenn Williams, Nokia, Inc.
 | 
						|
      313 Fairchild Drive, Mountain View, CA  94043
 | 
						|
      Phone: +1 650-714-7758, Email: Michael.G.Williams@Nokia.com
 | 
						|
 | 
						|
      Sue Hares, Nexthop Technologies, Inc.
 | 
						|
      825 Victors Way, Suite 100, Ann Arbor, MI  48108
 | 
						|
      Phone: +1 734 222 1610, Email: shares@nexthop.com
 | 
						|
 | 
						|
   DTLS is used as the security solution for the CAPWAP protocol.  The
 | 
						|
   following people are authors of significant DTLS-related text
 | 
						|
   included in this document:
 | 
						|
 | 
						|
      Scott Kelly, Aruba Networks
 | 
						|
      1322 Crossman Ave, Sunnyvale, CA 94089
 | 
						|
      Phone: +1  408-754-8408, Email: skelly@arubanetworks.com
 | 
						|
 | 
						|
      Eric Rescorla, Network Resonance
 | 
						|
      2483 El Camino Real, #212,Palo Alto CA, 94303
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007              [Page 5]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-6" id="page-6" href="#page-6" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
      Email: ekr@networkresonance.com
 | 
						|
 | 
						|
   The concept of using DTLS to secure the CAPWAP protocol was part of
 | 
						|
   the Secure Light Access Point Protocol (SLAPP) proposal [add
 | 
						|
   reference when available].  The following people are authors of the
 | 
						|
   SLAPP proposal:
 | 
						|
 | 
						|
      Partha Narasimhan, Aruba Networks
 | 
						|
      1322 Crossman Ave, Sunnyvale, CA  94089
 | 
						|
      Phone: +1 408-480-4716, Email: partha@arubanetworks.com
 | 
						|
 | 
						|
      Dan Harkins, Tropos Networks
 | 
						|
      555 Del Rey Avenue, Sunnyvale, CA, 95085
 | 
						|
      Phone: +1 408 470 7372, Email: dharkins@tropos.com
 | 
						|
 | 
						|
      Subbu Ponnuswamy, Aruba Networks
 | 
						|
      1322 Crossman Ave, Sunnyvale, CA  94089
 | 
						|
      Phone: +1 408-754-1213, Email: subbu@arubanetworks.com
 | 
						|
 | 
						|
 | 
						|
   The following individuals contributed significant security related
 | 
						|
   text to the draft:
 | 
						|
 | 
						|
      T. Charles Clancy, Laboratory for Telecommunications Sciences,
 | 
						|
      8080 Greenmead Drive, College Park, MD 20740
 | 
						|
      Phone: +1 240-373-5069, Email: clancy@ltsnet.net
 | 
						|
 | 
						|
      Scott Kelly, Aruba Networks
 | 
						|
      1322 Crossman Ave, Sunnyvale, CA 94089
 | 
						|
      Phone: +1  408-754-8408, Email: skelly@arubanetworks.com
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-1.4" href="#section-1.4">1.4</a>.  Terminology</span>
 | 
						|
 | 
						|
   Access Controller (AC): The network entity that provides WTPs access
 | 
						|
   to the network infrastructure in the data plane, control plane,
 | 
						|
   management plane, or a combination therein.
 | 
						|
 | 
						|
   CAPWAP Control Channel: A bi-directional flow defined by the AC IP
 | 
						|
   Address, WTP IP Address, AC control port, WTP control port and the
 | 
						|
   transport-layer protocol (UDP or UDP-Lite) over which CAPWAP control
 | 
						|
   packets are sent and received.
 | 
						|
 | 
						|
   CAPWAP Data Channel: A bi-directional flow defined by the AC IP
 | 
						|
   Address, WTP IP Address, AC data port, WTP data port, and the
 | 
						|
   transport-layer protocol (UDP or UDP-Lite) over which CAPWAP data
 | 
						|
   packets are sent and received.
 | 
						|
 | 
						|
   Station (STA): A device that contains an IEEE 802.11 conformant
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007              [Page 6]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-7" id="page-7" href="#page-7" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   medium access control (MAC) and physical layer (PHY) interface to the
 | 
						|
   wireless medium (WM).
 | 
						|
 | 
						|
   Wireless Termination Point (WTP): The physical or network entity that
 | 
						|
   contains an RF antenna and wireless PHY to transmit and receive
 | 
						|
   station traffic for wireless access networks.
 | 
						|
 | 
						|
   This document uses additional terminology defined in [<a href="#ref-15" title=""Mobility Related Terminology"">15</a>].
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007              [Page 7]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-8" id="page-8" href="#page-8" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h2"><a class="selflink" name="section-2" href="#section-2">2</a>.  Protocol Overview</span>
 | 
						|
 | 
						|
   The CAPWAP protocol is a generic protocol defining AC and WTP control
 | 
						|
   and data plane communication via a CAPWAP protocol transport
 | 
						|
   mechanism.  CAPWAP control messages, and optionally CAPWAP data
 | 
						|
   messages, are secured using Datagram Transport Layer Security (DTLS)
 | 
						|
   [<a href="#ref-7" title=""The Transport Layer Security (TLS) Protocol Version 1.1"">7</a>].  DTLS is a standards-track IETF protocol based upon TLS.  The
 | 
						|
   underlying security-related protocol mechanisms of TLS have been
 | 
						|
   successfully deployed for many years.
 | 
						|
 | 
						|
   The CAPWAP protocol Transport layer carries two types of payload,
 | 
						|
   CAPWAP Data messages and CAPWAP Control messages.  CAPWAP Data
 | 
						|
   messages encapsulate forwarded wireless frames.  CAPWAP protocol
 | 
						|
   Control messages are management messages exchanged between a WTP and
 | 
						|
   an AC.  The CAPWAP Data and Control packets are sent over separate
 | 
						|
   UDP ports.  Since both data and control packets can exceed the
 | 
						|
   Maximum Transmission Unit (MTU) length, the payload of a CAPWAP data
 | 
						|
   or control message can be fragmented.  The fragmentation behavior is
 | 
						|
   defined in <a href="#section-3">Section 3</a>.
 | 
						|
 | 
						|
   The CAPWAP Protocol begins with a discovery phase.  The WTPs send a
 | 
						|
   Discovery Request message, causing any Access Controller (AC)
 | 
						|
   receiving the message to respond with a Discovery Response message.
 | 
						|
   From the Discovery Response messages received, a WTP selects an AC
 | 
						|
   with which to establish a secure DTLS session.  CAPWAP protocol
 | 
						|
   messages will be fragmented to the maximum length discovered to be
 | 
						|
   supported by the network.
 | 
						|
 | 
						|
   Once the WTP and the AC have completed DTLS session establishment, a
 | 
						|
   configuration exchange occurs in which both devices agree on version
 | 
						|
   information.  During this exchange the WTP may receive provisioning
 | 
						|
   settings.  The WTP is then enabled for operation.
 | 
						|
 | 
						|
   When the WTP and AC have completed the version and provision exchange
 | 
						|
   and the WTP is enabled, the CAPWAP protocol is used to encapsulate
 | 
						|
   the wireless data frames sent between the WTP and AC.  The CAPWAP
 | 
						|
   protocol will fragment the L2 frames if the size of the encapsulated
 | 
						|
   wireless user data (Data) or protocol control (Management) frames
 | 
						|
   causes the resulting CAPWAP protocol packet to exceed the MTU
 | 
						|
   supported between the WTP and AC.  Fragmented CAPWAP packets are
 | 
						|
   reassembled to reconstitute the original encapsulated payload.
 | 
						|
 | 
						|
   The CAPWAP protocol provides for the delivery of commands from the AC
 | 
						|
   to the WTP for the management of stations that are communicating with
 | 
						|
   the WTP.  This may include the creation of local data structures in
 | 
						|
   the WTP for the stations and the collection of statistical
 | 
						|
   information about the communication between the WTP and the stations.
 | 
						|
   The CAPWAP protocol provides a mechanism for the AC to obtain
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007              [Page 8]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-9" id="page-9" href="#page-9" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   statistical information collected by the WTP.
 | 
						|
 | 
						|
   The CAPWAP protocol provides for a keep alive feature that preserves
 | 
						|
   the communication channel between the WTP and AC.  If the AC fails to
 | 
						|
   appear alive, the WTP will try to discover a new AC.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-2.1" href="#section-2.1">2.1</a>.  Wireless Binding Definition</span>
 | 
						|
 | 
						|
   The CAPWAP protocol is independent of a specific WTP radio
 | 
						|
   technology.  Elements of the CAPWAP protocol are designed to
 | 
						|
   accommodate the specific needs of each wireless technology in a
 | 
						|
   standard way.  Implementation of the CAPWAP protocol for a particular
 | 
						|
   wireless technology MUST follow the binding requirements defined for
 | 
						|
   that technology.
 | 
						|
 | 
						|
   When defining a binding for wireless technologies, the authors MUST
 | 
						|
   include any necessary definitions for technology-specific messages
 | 
						|
   and all technology-specific message elements for those messages.  At
 | 
						|
   a minimum, a binding MUST provide:
 | 
						|
 | 
						|
   1 -   The definition for a binding-specific Statistics message
 | 
						|
      element, carried in the WTP Event Request message
 | 
						|
 | 
						|
   2 -   A message element carried in the Station Configuration Request
 | 
						|
      message to configure station information on the WTP
 | 
						|
 | 
						|
   3 -   A WTP Radio Information message element carried in the
 | 
						|
      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
 | 
						|
   name of the technology type, e.g., the binding for IEEE 802.11,
 | 
						|
   provided in [<a href="#ref-12" title=""CAPWAP Protocol Binding for IEEE 802.11"">12</a>], 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.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007              [Page 9]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-10" id="page-10" href="#page-10" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-2.2" href="#section-2.2">2.2</a>.  CAPWAP Session Establishment Overview</span>
 | 
						|
 | 
						|
   This section describes the session establishment process message
 | 
						|
   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
 | 
						|
   certificates for DTLS authentication.  The CAPWAP Protocol State
 | 
						|
   Machine is described in detail in <a href="#section-2.3">Section 2.3</a>.  Note that DTLS allows
 | 
						|
   certain messages to be aggregated into a single frame, which is
 | 
						|
   denoted via an asterix in the following figure.
 | 
						|
 | 
						|
           ============                         ============
 | 
						|
               WTP                                   AC
 | 
						|
           ============                         ============
 | 
						|
            [----------- begin optional discovery ------------]
 | 
						|
 | 
						|
                           Discover Request
 | 
						|
                 ------------------------------------>
 | 
						|
                           Discover Response
 | 
						|
                 <------------------------------------
 | 
						|
 | 
						|
            [----------- end optional discovery ------------]
 | 
						|
 | 
						|
                      (-- begin DTLS handshake --)
 | 
						|
 | 
						|
                             ClientHello
 | 
						|
                 ------------------------------------>
 | 
						|
                      HelloVerifyRequest (with cookie)
 | 
						|
                 <------------------------------------
 | 
						|
 | 
						|
 | 
						|
                        ClientHello (with cookie)
 | 
						|
                 ------------------------------------>
 | 
						|
                                ServerHello,
 | 
						|
                                Certificate,
 | 
						|
                                ServerHelloDone*
 | 
						|
                 <------------------------------------
 | 
						|
 | 
						|
                (-- WTP callout for AC authorization --)
 | 
						|
 | 
						|
                        Certificate (optional),
 | 
						|
                         ClientKeyExchange,
 | 
						|
                     CertificateVerify (optional),
 | 
						|
                         ChangeCipherSpec,
 | 
						|
                             Finished*
 | 
						|
                 ------------------------------------>
 | 
						|
 | 
						|
                (-- AC callout for WTP authorization --)
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 10]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-11" id="page-11" href="#page-11" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
                         ChangeCipherSpec,
 | 
						|
                             Finished*
 | 
						|
                 <------------------------------------
 | 
						|
 | 
						|
                (-- DTLS session is established now --)
 | 
						|
 | 
						|
                              Join Request
 | 
						|
                 ------------------------------------>
 | 
						|
                              Join Response
 | 
						|
                 <------------------------------------
 | 
						|
 | 
						|
                  (-- assume image is up to date --)
 | 
						|
 | 
						|
                      Configuration Status Request
 | 
						|
                 ------------------------------------>
 | 
						|
                      Configuration Status Response
 | 
						|
                 <------------------------------------
 | 
						|
 | 
						|
                        (-- enter RUN state --)
 | 
						|
 | 
						|
                                   :
 | 
						|
                                   :
 | 
						|
 | 
						|
                              Echo Request
 | 
						|
                 ------------------------------------>
 | 
						|
                             Echo Response
 | 
						|
                 <------------------------------------
 | 
						|
 | 
						|
                                   :
 | 
						|
                                   :
 | 
						|
 | 
						|
                              Event Request
 | 
						|
                 ------------------------------------>
 | 
						|
                             Event Response
 | 
						|
                 <------------------------------------
 | 
						|
 | 
						|
                                   :
 | 
						|
                                   :
 | 
						|
 | 
						|
   At the end of the illustrated CAPWAP message exchange, the AC and WTP
 | 
						|
   are securely exchanging CAPWAP control messages.  This is an
 | 
						|
   idealized illustration, provided to clarify protocol operation.
 | 
						|
   <a href="#section-2.3">Section 2.3</a> provides a detailed description of the corresponding
 | 
						|
   state machine.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 11]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-12" id="page-12" href="#page-12" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-2.3" href="#section-2.3">2.3</a>.  CAPWAP State Machine Definition</span>
 | 
						|
 | 
						|
   The following state diagram represents the lifecycle of a WTP-AC
 | 
						|
   session.  Use of DTLS by the CAPWAP protocol results in the
 | 
						|
   juxtaposition of two nominally separate yet tightly bound state
 | 
						|
   machines.  The DTLS and CAPWAP state machines are coupled through an
 | 
						|
   API consisting of commands (see <a href="#section-2.3.2.1">Section 2.3.2.1</a>) and notifications
 | 
						|
   (see <a href="#section-2.3.2.2">Section 2.3.2.2</a>).  Certain transitions in the DTLS state machine
 | 
						|
   are triggered by commands from the CAPWAP state machine, while
 | 
						|
   certain transitions in the CAPWAP state machine are triggered by
 | 
						|
   notifications from the DTLS state machine.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 12]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-13" id="page-13" href="#page-13" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
                                       /-------------------------\
 | 
						|
                                      w|                         |
 | 
						|
                                 5+----------+ x +------------+  |
 | 
						|
                                  |   Run    |-->|   Reset    |-\|
 | 
						|
                                  +----------+   +------------+ ||
 | 
						|
                               u      ^           ^     ^      y||
 | 
						|
                +------------+--------/           |     |       ||
 | 
						|
                | Data Check |             /-------/    |       ||
 | 
						|
                +------------+<-------\   |             |       ||
 | 
						|
                                          |             |       ||
 | 
						|
                       /------------------+--------\    |       ||
 | 
						|
                      r|             t|  s|    4   v   o|       ||
 | 
						|
               +--------+     +-----------+     +--------------+||
 | 
						|
               |  Join  |---->| Configure |     |  Image Data  |||
 | 
						|
               +--------+  q  +-----------+     +--------------+||
 | 
						|
                ^  p|                  V|                    x| ||
 | 
						|
                |   |                   \-------------------\ | ||
 | 
						|
                |   \--------------------------------------\| | ||
 | 
						|
                \------------------------\                 || | ||
 | 
						|
         /--------------<----------------+--------------\  || | ||
 | 
						|
         | /------------<-------------\  |              |  || | ||
 | 
						|
         | |                         m|  |n            z|  vv v   vv
 | 
						|
         | |   +----------------+   +--------------+   +-----------+
 | 
						|
         | |   |   DTLS Setup   |   | DTLS Connect |   |  DTLS TD  |
 | 
						|
         | |   +----------------+   +--------------+   +-----------+
 | 
						|
         | |    g|  ^     ^   |h         ^               ^
 | 
						|
         v v     |  |     |   |          |               |
 | 
						|
         | |     |  |     |   \-------\  |   /-----------/
 | 
						|
         | |     |  |     |           |  |   |
 | 
						|
         | |     v  |e   f|      2    v  |j  |k
 | 
						|
         | \->+------+   +------+   +-----------+
 | 
						|
         |    | Idle |-->| Disc |   | Authorize |
 | 
						|
         \--->+------+ a +------+   +-----------+
 | 
						|
              b|    ^           |c
 | 
						|
               |    |      /----/
 | 
						|
               v   d|      |
 | 
						|
              +---------+  |
 | 
						|
              | Sulking |<-/
 | 
						|
            3 +---------+
 | 
						|
 | 
						|
                 Figure 3: CAPWAP Integrated State Machine
 | 
						|
 | 
						|
   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
 | 
						|
   implemented in one or the other of the AC or WTP), this is explicitly
 | 
						|
   called out in the transition descriptions below.  For every state
 | 
						|
   defined, only certain messages are permitted to be sent and received.
 | 
						|
   The CAPWAP control messages definitions specify the state(s) in which
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 13]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-14" id="page-14" href="#page-14" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   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.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-2.3.1" href="#section-2.3.1">2.3.1</a>.  CAPWAP Protocol State Transitions</span>
 | 
						|
 | 
						|
   This section describes the various state transitions, and the events
 | 
						|
   that cause them.  This section does not discuss interactions between
 | 
						|
   DTLS- and CAPWAP-specific states.  Those interactions, and DTLS-
 | 
						|
   specific states and transitions, are discussed in <a href="#section-2.3.2">Section 2.3.2</a>.
 | 
						|
 | 
						|
   Idle to Discovery (a):  This transition occurs once device
 | 
						|
      initialization is complete.
 | 
						|
 | 
						|
      WTP:  The WTP enters the Discovery state prior to transmitting the
 | 
						|
         first Discovery Request message (see <a href="#section-5.1">Section 5.1</a>).  Upon
 | 
						|
         entering this state, the WTP sets the DiscoveryInterval timer
 | 
						|
         (see <a href="#section-4.7">Section 4.7</a>).  The WTP resets the DiscoveryCount counter
 | 
						|
         to zero (0) (see <a href="#section-4.8">Section 4.8</a>).  The WTP also clears all
 | 
						|
         information from ACs it may have received during a previous
 | 
						|
         Discovery phase.
 | 
						|
 | 
						|
      AC:  The AC does not maintain state information for the WTP upon
 | 
						|
         reception of the Discovery Request message, but it SHOULD
 | 
						|
         respond with a Discovery Response message (see <a href="#section-5.2">Section 5.2</a>).
 | 
						|
         This transition is a no-op for the AC.
 | 
						|
 | 
						|
   Idle to Sulking (b):  This transition occurs to force the WTP and AC
 | 
						|
      to enter a quiet period to avoid repeatedly attempting to
 | 
						|
      establish a connection.
 | 
						|
 | 
						|
      WTP:  The WTP enters this state when the FailedDTLSSessionCount or
 | 
						|
         the FailedDTLSAuthFailCount counter reaches
 | 
						|
         MaxFailedDTLSSessionRetry variable (see <a href="#section-4.8">Section 4.8</a>).  Upon
 | 
						|
         entering this state, the WTP MUST start the SilentInterval
 | 
						|
         timer.  While in the Sulking state, all received CAPWAP and
 | 
						|
         DTLS protocol messages received MUST be ignored.
 | 
						|
 | 
						|
      AC:  The AC enters this state with the specific WTP when the
 | 
						|
         FailedDTLSSessionCount or the FailedDTLSAuthFailCount counter
 | 
						|
         reaches MaxFailedDTLSSessionRetry variable (see <a href="#section-4.8">Section 4.8</a>).
 | 
						|
         Upon entering this state, the AC MUST start the SilentInterval
 | 
						|
         timer.  While in the Sulking state, all received CAPWAP and
 | 
						|
         DTLS protocol messages received from the WTP MUST be ignored.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 14]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-15" id="page-15" href="#page-15" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   Discovery to Discovery (2):  In the Discovery state, the WTP
 | 
						|
      determines which AC to connect to.
 | 
						|
 | 
						|
      WTP:  This transition occurs when the DiscoveryInterval timer
 | 
						|
         expires.  If the WTP is configured with a list of ACs, it
 | 
						|
         transmits a Discovery Request message to every AC from which it
 | 
						|
         has not received a Discovery Response message.  For every
 | 
						|
         transition to this event, the WTP increments the DiscoveryCount
 | 
						|
         counter.  See <a href="#section-5.1">Section 5.1</a> for more information on how the WTP
 | 
						|
         knows the ACs to which it should transmit the Discovery Request
 | 
						|
         messages.  The WTP restarts the DiscoveryInterval timer
 | 
						|
         whenever it transmits Discovery Request messages.
 | 
						|
 | 
						|
      AC:  This is a no-op.
 | 
						|
 | 
						|
   Discovery to Sulking (c):  This transition occurs on a WTP when
 | 
						|
      Discovery or connectivity to the AC fails.
 | 
						|
 | 
						|
      WTP:  The WTP enters this state when the DiscoveryInterval timer
 | 
						|
         expires or the DiscoveryCount variable is equal to the
 | 
						|
         MaxDiscoveries variable (see <a href="#section-4.8">Section 4.8</a>).  Upon entering this
 | 
						|
         state, the WTP MUST start the SilentInterval timer.  While in
 | 
						|
         the Sulking state, all received CAPWAP protocol messages
 | 
						|
         received MUST be ignored.
 | 
						|
 | 
						|
      AC:  This is a no-op.
 | 
						|
 | 
						|
   Sulking to Idle (d):  This transition occurs on a WTP when it must
 | 
						|
      restart the discovery phase.
 | 
						|
 | 
						|
      WTP:  The WTP enters this state when the SilentInterval timer (see
 | 
						|
         <a href="#section-4.7">Section 4.7</a>) expires.  The FailedDTLSSessionCount,
 | 
						|
         DiscoveryCount and FailedDTLSAuthFailCount counters are reset
 | 
						|
         to zero.
 | 
						|
 | 
						|
      AC:  The AC enters this state when the SilentInterval timer (see
 | 
						|
         <a href="#section-4.7">Section 4.7</a>) expires.  The FailedDTLSSessionCount,
 | 
						|
         DiscoveryCount and FailedDTLSAuthFailCount counters are reset
 | 
						|
         to zero.
 | 
						|
 | 
						|
   Sulking to Sulking (3):  The Sulking state provides the silent
 | 
						|
      period, minimizing the possibility for Denial of Service (DoS)
 | 
						|
      attacks.
 | 
						|
 | 
						|
      WTP:  All packets received from the AC while in the sulking state
 | 
						|
         are ignored.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 15]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-16" id="page-16" href="#page-16" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
      AC:  All packets receive from the WTP while in the sulking state
 | 
						|
         are ignored.
 | 
						|
 | 
						|
   Idle to DTLS Setup (e):  This transition occurs to establish a secure
 | 
						|
      DTLS session with the peer.
 | 
						|
 | 
						|
      WTP:  The WTP initiates this transition by invoking the DTLSStart
 | 
						|
         command, which starts the DTLS session establishment with the
 | 
						|
         chosen AC.  When the discovery phase is bypassed, it is assumed
 | 
						|
         the WTP has a locally configured AC.
 | 
						|
 | 
						|
      AC:  The AC initiates this transition by invoking the DTLSListen
 | 
						|
         command, which informs the DTLS stack that it is willing to
 | 
						|
         listen for an incoming session.  The AC MAY provide optional
 | 
						|
         qualifiers in the DTLSListen command to only accept session
 | 
						|
         requests from specific WTPs.
 | 
						|
 | 
						|
   Discovery to DTLS Setup (f):  This transition occurs to establish a
 | 
						|
      secure DTLS session with the peer.
 | 
						|
 | 
						|
      WTP:  The WTP initiates this transition by invoking the DTLSStart
 | 
						|
         command (see <a href="#section-2.3.2.1">Section 2.3.2.1</a>), which starts the DTLS session
 | 
						|
         establishment with the chosen AC.  The decision of which AC to
 | 
						|
         connect to is the result of the discovery phase, which is
 | 
						|
         described in <a href="#section-3.3">Section 3.3</a>.
 | 
						|
 | 
						|
      AC:  The AC initiates this transition by invoking the DTLSListen
 | 
						|
         command (see <a href="#section-2.3.2.1">Section 2.3.2.1</a>), which informs the DTLS stack
 | 
						|
         that it is willing to listen for an incoming session.  The AC
 | 
						|
         MAY have maintained state information when it received the
 | 
						|
         Discovery Request message to provide optional qualifiers in the
 | 
						|
         DTLSListen command to only accept session requests from a
 | 
						|
         specific WTP.  Note that maintaining state information based on
 | 
						|
         an unsecured Discovery Request message MAY lead to a Denial of
 | 
						|
         Service attack.  Therefore the AC SHOULD ensure that the state
 | 
						|
         information is freed after a period, which is implementation
 | 
						|
         specific.
 | 
						|
 | 
						|
   DTLS Setup to Idle (g):  This transition occurs when the DTLS Session
 | 
						|
      failed to be established.
 | 
						|
 | 
						|
      WTP:  The WTP initiates this state transition when it receives a
 | 
						|
         DTLSEstablishFail notification from DTLS (see <a href="#section-2.3.2.2">Section 2.3.2.2</a>).
 | 
						|
         This error notification aborts the secure DTLS session
 | 
						|
         establishment.  When this notification is received, the
 | 
						|
         FailedDTLSSessionCount counter is incremented.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 16]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-17" id="page-17" href="#page-17" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
      AC:  The WTP initiates this state transition when it receives a
 | 
						|
         DTLSEstablishFail notification from DTLS (see <a href="#section-2.3.2.2">Section 2.3.2.2</a>).
 | 
						|
         This error notification aborts the secure DTLS session
 | 
						|
         establishment.  When this notification is received, the
 | 
						|
         FailedDTLSSessionCount counter is incremented.
 | 
						|
 | 
						|
   DTLS Setup to Authorize (h):  This transition occurs when an incoming
 | 
						|
      DTLS session is being established, and the DTLS stack needs
 | 
						|
      authorization to proceed with the session establishment.
 | 
						|
 | 
						|
      WTP:  This state transition occurs when the WTP receives the
 | 
						|
         DTLSPeerAuthorize notification (see <a href="#section-2.3.2.2">Section 2.3.2.2</a>).  Upon
 | 
						|
         entering this state, the WTP performs an authorization check
 | 
						|
         against the AC credentials.  See <a href="#section-2.4.4">Section 2.4.4</a> for more
 | 
						|
         information on AC authorization.
 | 
						|
 | 
						|
      AC:  This state transition occurs when the AC receives the
 | 
						|
         DTLSPeerAuthorize notification (see <a href="#section-2.3.2.2">Section 2.3.2.2</a>).  Upon
 | 
						|
         entering this state, the AC performs an authorization check
 | 
						|
         against the WTP credentials.  See <a href="#section-2.4.4">Section 2.4.4</a> for more
 | 
						|
         information on WTP authorization.
 | 
						|
 | 
						|
   Authorize to DTLS Connect (j):  This transition occurs to notify the
 | 
						|
      DTLS stack that the session should be established.
 | 
						|
 | 
						|
      WTP:  This state transition occurs when the WTP has either opted
 | 
						|
         to forgo the authorization check of the AC's credentials, or
 | 
						|
         the credentials were successfully authorized.  This is done by
 | 
						|
         invoking the DTLSAccept DTLS command (see <a href="#section-2.3.2.1">Section 2.3.2.1</a>).
 | 
						|
 | 
						|
      AC:  This state transition occurs when the AC has either opted to
 | 
						|
         forgo the authorization check of the WTP's credentials, or the
 | 
						|
         credentials were successfully authorized.  This is done by
 | 
						|
         invoking the DTLSAccept DTLS command (see <a href="#section-2.3.2.1">Section 2.3.2.1</a>).
 | 
						|
 | 
						|
   Authorize to DTLS Teardown (k):  This transition occurs to notify the
 | 
						|
      DTLS stack that the session should be aborted.
 | 
						|
 | 
						|
      WTP:  This state transition occurs when the WTP was unable to
 | 
						|
         authorize the AC, using the AC credentials.  The WTP then
 | 
						|
         aborts the DTLS session by invoking the DTLSAbortSession
 | 
						|
         command (see <a href="#section-2.3.2.1">Section 2.3.2.1</a>).
 | 
						|
 | 
						|
      AC:  This state transition occurs when the AC was unable to
 | 
						|
         authorize the WTP, using the WTP credentials.  The AC then
 | 
						|
         aborts the DTLS session by invoking the DTLSAbortSession
 | 
						|
         command (see <a href="#section-2.3.2.1">Section 2.3.2.1</a>).
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 17]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-18" id="page-18" href="#page-18" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   DTLS Connect to Idle (m):  This transition occurs when the DTLS
 | 
						|
      Session failed to be established.
 | 
						|
 | 
						|
      WTP:  This state transition occurs when the WTP receives either a
 | 
						|
         DTLSAborted or DTLSAuthenticateFail notification (see
 | 
						|
         <a href="#section-2.3.2.2">Section 2.3.2.2</a>), indicating that the DTLS session was not
 | 
						|
         successfully established.  When this transition occurs due to
 | 
						|
         the DTLSAuthenticateFail notification, the
 | 
						|
         FailedDTLSAuthFailCount is incremented, otherwise the
 | 
						|
         FailedDTLSSessionCount counter is incremented.
 | 
						|
 | 
						|
      AC:  This state transition occurs when the AC receives either a
 | 
						|
         DTLSAborted or DTLSAuthenticateFail notification (see
 | 
						|
         <a href="#section-2.3.2.2">Section 2.3.2.2</a>), indicating that the DTLS session was not
 | 
						|
         successfully established.  When this transition occurs due to
 | 
						|
         the DTLSAuthenticateFail notification, the
 | 
						|
         FailedDTLSAuthFailCount is incremented, otherwise the
 | 
						|
         FailedDTLSSessionCount counter is incremented.
 | 
						|
 | 
						|
   DTLS Connect to Join (n):  This transition occurs when the DTLS
 | 
						|
      Session is successfully established.
 | 
						|
 | 
						|
      WTP:  This state transition occurs when the WTP receives the
 | 
						|
         DTLSEstablished notification (see <a href="#section-2.3.2.2">Section 2.3.2.2</a>), indicating
 | 
						|
         that the DTLS session was successfully established.  When this
 | 
						|
         notification is received, the FailedDTLSSessionCount counter is
 | 
						|
         set to zero.
 | 
						|
 | 
						|
      AC:  This state transition occurs when the AC receives the
 | 
						|
         DTLSEstablished notification (see <a href="#section-2.3.2.2">Section 2.3.2.2</a>), indicating
 | 
						|
         that the DTLS session was successfully established.  When this
 | 
						|
         notification is received, the FailedDTLSSessionCount counter is
 | 
						|
         set to zero, and the WaitJoin timer is started (see
 | 
						|
         <a href="#section-4.7">Section 4.7</a>).
 | 
						|
 | 
						|
   Join to DTLS Teardown (p):  This transition occurs when the join
 | 
						|
      process failed.
 | 
						|
 | 
						|
      WTP:  This state transition occurs when the WTP receives a Join
 | 
						|
         Response message with a Result Code message element containing
 | 
						|
         an error, if the Image Identifier provided by the AC in the
 | 
						|
         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
 | 
						|
         <a href="#section-2.3.2.1">Section 2.3.2.1</a>).  This transition also occurs if the WTP
 | 
						|
         receives one of the following DTLS notifications: DTLSAborted,
 | 
						|
         DTLSReassemblyFailure or DTLSPeerDisconnect.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 18]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-19" id="page-19" href="#page-19" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
      AC:  This state transition occurs either if the WaitJoin timer
 | 
						|
         expires or if the AC transmits a Join Response message with a
 | 
						|
         Result Code message element containing an error.  This causes
 | 
						|
         the AC to initiate the DTLSShutdown command (see
 | 
						|
         <a href="#section-2.3.2.1">Section 2.3.2.1</a>).  This transition also occurs if the AC
 | 
						|
         receives one of the following DTLS notifications: DTLSAborted,
 | 
						|
         DTLSReassemblyFailure or DTLSPeerDisconnect.
 | 
						|
 | 
						|
   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 <a href="#section-9.1">Section 9.1</a> for a full description of
 | 
						|
         the firmware download process).  The WTP initializes the
 | 
						|
         EchoInterval timer (see <a href="#section-4.7">Section 4.7</a>), and transmits the Image
 | 
						|
         Data Request message (see <a href="#section-9.1.1">Section 9.1.1</a>) requesting the start
 | 
						|
         of the firmware 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 <a href="#section-9.1.2">Section 9.1.2</a>) to the WTP,
 | 
						|
         which includes a portion of the firmware.  The AC MUST start
 | 
						|
         the NeighborDeadInterval timer (see <a href="#section-4.7">Section 4.7</a>).
 | 
						|
 | 
						|
   Join to Configure (q):  This state transition is used by the WTP and
 | 
						|
      the AC to exchange configuration information.
 | 
						|
 | 
						|
      WTP:  The WTP enters the Configure state when it receives a
 | 
						|
         successful Join Response, and determines that the included
 | 
						|
         Image Identifier message element is the same as its currently
 | 
						|
         running image.  The WTP transmits the Configuration Status
 | 
						|
         message (see <a href="#section-8.2">Section 8.2</a>) to the AC with message elements
 | 
						|
         describing its current configuration.  The WTP also starts the
 | 
						|
         ResponseTimeout timer (see <a href="#section-4.7">Section 4.7</a>).
 | 
						|
 | 
						|
      AC:  This state transition occurs immediately after the AC
 | 
						|
         transmits the Join Response message to the WTP.  If the AC
 | 
						|
         receives the Configuration Status message from the WTP, the AC
 | 
						|
         MUST transmit a Configuration Status Response message (see
 | 
						|
         <a href="#section-8.3">Section 8.3</a>) to the WTP, and MAY include specific message
 | 
						|
         elements to override the WTP's configuration.  The WTP also
 | 
						|
         starts the ChangeStatePendingTimer timer (see <a href="#section-4.7">Section 4.7</a>).
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 19]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-20" id="page-20" href="#page-20" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   Configure to Reset (s):  This state transition is used to reset the
 | 
						|
      connection either due to an error during the configuration phase,
 | 
						|
      or when the WTP determines it needs to reset in order for the new
 | 
						|
      configuration to take effect.
 | 
						|
 | 
						|
      WTP:  The WTP enters the Reset state when it receives a
 | 
						|
         Configuration Status Response indicating an error or when it
 | 
						|
         determines that a reset of the WTP is required, due to the
 | 
						|
         characteristics of a new configuration.
 | 
						|
 | 
						|
      AC:  The AC transitions to the Reset state when it receives a
 | 
						|
         Change State Event message from the WTP that contains an error
 | 
						|
         for which AC policy does not permit the WTP to provide service.
 | 
						|
         This state transition also occurs when the AC
 | 
						|
         ChangeStatePendingTimer timer expires.
 | 
						|
 | 
						|
   Configure to DTLS Teardown (V):  This transition occurs when the
 | 
						|
      configuration 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
 | 
						|
         <a href="#section-2.3.2.2">Section 2.3.2.2</a>).  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
 | 
						|
         <a href="#section-2.3.2.2">Section 2.3.2.2</a>).  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 the
 | 
						|
      WTP and the AC during the firmware download phase.
 | 
						|
 | 
						|
      WTP:  The WTP enters the Image Data state when it receives an
 | 
						|
         Image Data Response message indicating that the AC has more
 | 
						|
         data to send.
 | 
						|
 | 
						|
      AC:  This state transition occurs when the AC receives the Image
 | 
						|
         Data Request message from the WTP while already in the Image
 | 
						|
         Data state, and it detects that the firmware download has not
 | 
						|
         completed.
 | 
						|
 | 
						|
   Image Data to Reset (o):  This state transition is used to reset the
 | 
						|
      DTLS connection prior to restarting the WTP after an image
 | 
						|
      download.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 20]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-21" id="page-21" href="#page-21" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
      WTP:  When an image download completes, the WTP enters the Reset
 | 
						|
         state.  The WTP MAY also transition to this state upon
 | 
						|
         receiving an Image Data Response message from the AC (see
 | 
						|
         <a href="#section-9.1.2">Section 9.1.2</a>) indicating a failure.
 | 
						|
 | 
						|
      AC:  The AC enters the Reset state when the image download is
 | 
						|
         complete, or if an error occurs during the image download
 | 
						|
         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
 | 
						|
         <a href="#section-2.3.2.2">Section 2.3.2.2</a>).  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
 | 
						|
         <a href="#section-2.3.2.2">Section 2.3.2.2</a>).  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
 | 
						|
      WTP and AC confirm the configuration.
 | 
						|
 | 
						|
      WTP:  The WTP enters this state when it receives a successful
 | 
						|
         Configuration Status Response message from the AC.  The WTP
 | 
						|
         initializes the EchoInterval timer (see <a href="#section-4.7">Section 4.7</a>), and
 | 
						|
         transmits the Change State Event Request message (see
 | 
						|
         <a href="#section-8.6">Section 8.6</a>).
 | 
						|
 | 
						|
      AC:  This state transition occurs when the AC receives the Change
 | 
						|
         State Event Request message (see <a href="#section-8.6">Section 8.6</a>) from the WTP.
 | 
						|
         The AC responds with a Change State Event Response message (see
 | 
						|
         <a href="#section-8.7">Section 8.7</a>).  The AC MUST start the NeighborDeadInterval timer
 | 
						|
         (see <a href="#section-4.7">Section 4.7</a>).
 | 
						|
 | 
						|
   Data Check to Run (u):  This state transition occurs when the linkage
 | 
						|
      between the control and data channels has occured, causing the WTP
 | 
						|
      and AC to enter their normal state of operation.
 | 
						|
 | 
						|
      WTP:  The WTP enters this state when it receives a successful
 | 
						|
         Change State Event Response message from the AC.  The WTP
 | 
						|
         initiates the data channel, which MAY require the establishment
 | 
						|
         of a DTLS session, starts the DataChannelKeepAlive timer (see
 | 
						|
         <a href="#section-4.7">Section 4.7</a>) and transmits a Data Channel Keep Alive packet
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 21]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-22" id="page-22" href="#page-22" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
         (see <a href="#section-4.4.1">Section 4.4.1</a>).  The WTP then starts the
 | 
						|
         DataChannelDeadInterval timer (see <a href="#section-4.7">Section 4.7</a>).
 | 
						|
 | 
						|
      AC:  This state transition occurs when the AC receives the Data
 | 
						|
         Channel Keep Alive packet (see <a href="#section-4.4.1">Section 4.4.1</a>), with a Session
 | 
						|
         ID message element matching that included by the WTP in the
 | 
						|
         Join Request message.  Note that if AC policy is to require the
 | 
						|
         data channel to be encrypted, this process would also require
 | 
						|
         the establishment of a data channel DTLS session.  Upon
 | 
						|
         receiving the Data Channel Keep Alive packet, the AC transmits
 | 
						|
         its own Data Channel Keep Alive packet.
 | 
						|
 | 
						|
   Run to DTLS Teardown (u):  This state transition occurs when an error
 | 
						|
      has occured in the DTLS stack, causing the DTLS session to be
 | 
						|
      torndown.
 | 
						|
 | 
						|
      WTP:  The WTP enters this state when it receives one of the
 | 
						|
         following DTLS notifications: DTLSAborted,
 | 
						|
         DTLSReassemblyFailure or DTLSPeerDisconnect (see
 | 
						|
         <a href="#section-2.3.2.2">Section 2.3.2.2</a>).  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 <a href="#section-4.7">Section 4.7</a>).
 | 
						|
 | 
						|
      AC:  The AC enters this state when it receives one of the
 | 
						|
         following DTLS notifications: DTLSAborted,
 | 
						|
         DTLSReassemblyFailure or DTLSPeerDisconnect (see
 | 
						|
         <a href="#section-2.3.2.2">Section 2.3.2.2</a>).  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 <a href="#section-4.7">Section 4.7</a>).
 | 
						|
 | 
						|
   Run to Run (5):  This is the normal state of operation.
 | 
						|
 | 
						|
      WTP:  This is the WTP's normal state of operation.  There are many
 | 
						|
         events that result this state transition:
 | 
						|
 | 
						|
         Configuration Update:  The WTP receives a Configuration Update
 | 
						|
            Request message(see <a href="#section-8.4">Section 8.4</a>).  The WTP MUST respond with
 | 
						|
            a Configuration Update Response message (see <a href="#section-8.5">Section 8.5</a>).
 | 
						|
 | 
						|
         Change State Event:  The WTP receives a Change State Event
 | 
						|
            Response message, or determines that it must initiate a
 | 
						|
            Change State Event Request message, as a result of a failure
 | 
						|
            or change in the state of a radio.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 22]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-23" id="page-23" href="#page-23" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
         Echo Request:  The WTP sends an Echo Request message
 | 
						|
            (<a href="#section-7.1">Section 7.1</a>) or receives the corresponding Echo Response
 | 
						|
            message, (see <a href="#section-7.2">Section 7.2</a>) from the AC.
 | 
						|
 | 
						|
         Clear Config Request:  The WTP receives a Clear Configuration
 | 
						|
            Request message (see <a href="#section-8.8">Section 8.8</a>).  The WTP MUST reset its
 | 
						|
            configuration back to manufacturer defaults.
 | 
						|
 | 
						|
         WTP Event:  The WTP sends a WTP Event Request message,
 | 
						|
            delivering information to the AC (see <a href="#section-9.4">Section 9.4</a>).  The WTP
 | 
						|
            receives a WTP Event Response message from the AC (see
 | 
						|
            <a href="#section-9.5">Section 9.5</a>).
 | 
						|
 | 
						|
         Data Transfer:  The WTP sends a Data Transfer Request message
 | 
						|
            to the AC (see <a href="#section-9.6">Section 9.6</a>).  The WTP receives a Data
 | 
						|
            Transfer Response message from the AC (see <a href="#section-9.7">Section 9.7</a>).
 | 
						|
 | 
						|
         Station Configuration Request:  The WTP receives a Station
 | 
						|
            Configuration Request message (see <a href="#section-10.1">Section 10.1</a>), to which
 | 
						|
            it MUST respond with a Station Configuration Response
 | 
						|
            message (see <a href="#section-10.2">Section 10.2</a>).
 | 
						|
 | 
						|
      AC:  This is the AC's normal state of operation:
 | 
						|
 | 
						|
         Configuration Update:  The AC sends a Configuration Update
 | 
						|
            Request message (see <a href="#section-8.4">Section 8.4</a>) to the WTP to update its
 | 
						|
            configuration.  The AC receives a Configuration Update
 | 
						|
            Response message (see <a href="#section-8.5">Section 8.5</a>) from the WTP.
 | 
						|
 | 
						|
         Change State Event:  The AC receives a Change State Event
 | 
						|
            Request message (see <a href="#section-8.6">Section 8.6</a>), to which it MUST respond
 | 
						|
            with the Change State Event Response message (see
 | 
						|
            <a href="#section-8.7">Section 8.7</a>).
 | 
						|
 | 
						|
         Echo Request:  The AC receives an Echo Request message (see
 | 
						|
            <a href="#section-7.1">Section 7.1</a>), to which it MUST respond with an Echo Response
 | 
						|
            message(see <a href="#section-7.2">Section 7.2</a>).
 | 
						|
 | 
						|
         Clear Config Response:  The AC receives a Clear Configuration
 | 
						|
            Response message from the WTP (see <a href="#section-8.9">Section 8.9</a>).
 | 
						|
 | 
						|
         WTP Event:  The AC receives a WTP Event Request message from
 | 
						|
            the WTP (see <a href="#section-9.4">Section 9.4</a>) and MUST generate a corresponding
 | 
						|
            WTP Event Response message (see <a href="#section-9.5">Section 9.5</a>).
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 23]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-24" id="page-24" href="#page-24" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
         Data Transfer:  The AC receives a Data Transfer Request message
 | 
						|
            from the WTP (see <a href="#section-9.6">Section 9.6</a>) and MUST generate a
 | 
						|
            corresponding Data Transfer Response message (see
 | 
						|
            <a href="#section-9.7">Section 9.7</a>).
 | 
						|
 | 
						|
         Station Configuration Request:  The AC sends a Station
 | 
						|
            Configuration Request message (see <a href="#section-10.1">Section 10.1</a>) or receives
 | 
						|
            the corresponding Station Configuration Response message
 | 
						|
            (see <a href="#section-10.2">Section 10.2</a>) from the WTP.
 | 
						|
 | 
						|
   Run to Reset (x):  This state transition is used when either the AC
 | 
						|
      or WTP tear down the connection.  This may occur as part of normal
 | 
						|
      operation, or due to error conditions.
 | 
						|
 | 
						|
      WTP:  The WTP enters the Reset state when it receives a Reset
 | 
						|
         Request message from the AC.
 | 
						|
 | 
						|
      AC:  The AC enters the Reset state when it transmits a Reset
 | 
						|
         Request message to the WTP.
 | 
						|
 | 
						|
   Reset to DTLS Teardown (y):  This transition occurs when the CAPWAP
 | 
						|
      reset is complete, to terminate the DTLS session.
 | 
						|
 | 
						|
      WTP:  This state transition occurs when the WTP receives a Reset
 | 
						|
         Response message.  This causes the WTP to initiate the
 | 
						|
         DTLSShutdown command (see <a href="#section-2.3.2.1">Section 2.3.2.1</a>).
 | 
						|
 | 
						|
      AC:  This state transition occurs when the AC transmits a Reset
 | 
						|
         Response message.  The AC does not invoke the DTLSShutdown
 | 
						|
         command (see <a href="#section-2.3.2.1">Section 2.3.2.1</a>).
 | 
						|
 | 
						|
   DTLS Teardown to Idle (z):  This transition occurs when the DTLS
 | 
						|
      session has been shutdown.
 | 
						|
 | 
						|
      WTP:  This state transition occurs when the WTP has successfully
 | 
						|
         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 has successfully
 | 
						|
         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.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 24]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-25" id="page-25" href="#page-25" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-2.3.2" href="#section-2.3.2">2.3.2</a>.  CAPWAP/DTLS Interface</span>
 | 
						|
 | 
						|
   This section describes the DTLS Commands used by CAPWAP, and the
 | 
						|
   notifications received from DTLS to the CAPWAP protocol stack.
 | 
						|
 | 
						|
<span class="h5"><a class="selflink" name="section-2.3.2.1" href="#section-2.3.2.1">2.3.2.1</a>.  CAPWAP to DTLS Commands</span>
 | 
						|
 | 
						|
   Six commands are defined for the CAPWAP to DTLS API.  These
 | 
						|
   "commands" are conceptual, and may be implemented as one or more
 | 
						|
   function calls.  This API definition is provided to clarify
 | 
						|
   interactions between the DTLS and CAPWAP components of the integrated
 | 
						|
   CAPWAP state machine.
 | 
						|
 | 
						|
   Below is a list of the minimal command API:
 | 
						|
 | 
						|
   o  DTLSStart is sent to the DTLS component to cause a DTLS session to
 | 
						|
      be established.  Upon invoking the DTLSStart command, the WaitDTLS
 | 
						|
      timer is started.  The WTP initiates this DTLS command, as the AC
 | 
						|
      does not initiate DTLS sessions.
 | 
						|
 | 
						|
   o  DTLSListen is sent to the DTLS component to allow the DTLS
 | 
						|
      component to listen for incoming DTLS session requests.
 | 
						|
 | 
						|
   o  DTLSAccept is sent to the DTLS component to allow the DTLS session
 | 
						|
      establishment to continue successfully.
 | 
						|
 | 
						|
   o  DTLSAbortSession is sent to the DTLS component to cause the
 | 
						|
      session that is in the process of being established to be aborted.
 | 
						|
      This command is also sent when the WaitDTLS timer expires.  When
 | 
						|
      this command is executed, the FailedDTLSSessionCount counter is
 | 
						|
      incremented.
 | 
						|
 | 
						|
   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.
 | 
						|
 | 
						|
<span class="h5"><a class="selflink" name="section-2.3.2.2" href="#section-2.3.2.2">2.3.2.2</a>.  DTLS to CAPWAP Notifications</span>
 | 
						|
 | 
						|
   DTLS notifications are defined for the DTLS to CAPWAP API.  These
 | 
						|
   "notifications" are conceptual, and may be implemented in numerous
 | 
						|
   ways (e.g. as function return values).  This API definition is
 | 
						|
   provided to clarify interactions between the DTLS and CAPWAP
 | 
						|
   components of the integrated CAPWAP state machine.  It is important
 | 
						|
   to note that the notifications listed below MAY cause the CAPWAP
 | 
						|
   state machine to jump from one state to another using a state
 | 
						|
   transition not listed in <a href="#section-2.3.1">Section 2.3.1</a>.  When a notification listed
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 25]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-26" id="page-26" href="#page-26" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   below occurs, the target CAPWAP state shown in Figure 3 becomes the
 | 
						|
   current state.
 | 
						|
 | 
						|
   Below is a list of the API notifications:
 | 
						|
 | 
						|
   o  DTLSPeerAuthorize is sent to the CAPWAP component during DTLS
 | 
						|
      session establishment once the peer's identity has been received.
 | 
						|
      This notification MAY be used by the CAPWAP component to authorize
 | 
						|
      the session, based on the peer's identity.  The authorization
 | 
						|
      process will lead to the CAPWAP component initiating either the
 | 
						|
      DTLSAccept or DTLSAbortSession commands.
 | 
						|
 | 
						|
   o  DTLSEstablished is sent to the CAPWAP component to indicate that
 | 
						|
      that a secure channel now exists, using the parameters provided
 | 
						|
      during the DTLS initialization process.  When this notification is
 | 
						|
      received, the FailedDTLSSessionCount counter is reset to zero.
 | 
						|
      When this notification is received, the WaitDTLS timer is stopped.
 | 
						|
 | 
						|
   o  DTLSEstablishFail is sent when the DTLS session establishment has
 | 
						|
      failed, either due to a local error, or due to the peer rejecting
 | 
						|
      the session establishment.  When this notification is received,
 | 
						|
      the FailedDTLSSessionCount counter is incremented.
 | 
						|
 | 
						|
   o  DTLSAuthenticateFail is sent when DTLS session establishment
 | 
						|
      failed due to an authentication error.  When this notification is
 | 
						|
      received, the FailedDTLSAuthFailCount counter is incremented.
 | 
						|
 | 
						|
   o  DTLSAborted is sent to the CAPWAP component to indicate that
 | 
						|
      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  DTLSReassemblyFailure MAY be sent to the CAPWAP component to
 | 
						|
      indicate DTLS fragment reassembly failure.
 | 
						|
 | 
						|
   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
 | 
						|
      <a href="#section-12.4">Section 12.4</a>).
 | 
						|
 | 
						|
   o  DTLSPeerDisconnect is sent to the CAPWAP component to indicate the
 | 
						|
      DTLS session has been torn down.  Note that this notification is
 | 
						|
      only received if the DTLS session has been established.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 26]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-27" id="page-27" href="#page-27" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-2.4" href="#section-2.4">2.4</a>.  Use of DTLS in the CAPWAP Protocol</span>
 | 
						|
 | 
						|
   DTLS is used as a tightly-integrated, secure wrapper for the CAPWAP
 | 
						|
   protocol.  In this document DTLS and CAPWAP are discussed as
 | 
						|
   nominally distinct entitites; however they are very closely coupled,
 | 
						|
   and may even be implemented inseparably.  Since there are DTLS
 | 
						|
   library implementations currently available, and since security
 | 
						|
   protocols (e.g.  IPsec, TLS) are often implemented in widely
 | 
						|
   available acceleration hardware, it is both convenient and forward-
 | 
						|
   looking to maintain a modular distinction in this document.
 | 
						|
 | 
						|
   This section describes a detailed walk-through of the interactions
 | 
						|
   between the DTLS module and the CAPWAP module, via 'commands' (CAPWAP
 | 
						|
   to DTLS) and 'notifications' (DTLS to CAPWAP) as they would be
 | 
						|
   encountered during the normal course of operation.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-2.4.1" href="#section-2.4.1">2.4.1</a>.  DTLS Handshake Processing</span>
 | 
						|
 | 
						|
   Details of the DTLS handshake process are specified in [<a href="#ref-8" title=""Datagram Transport Layer Security"">8</a>].  This
 | 
						|
   section describes the interactions between the DTLS session
 | 
						|
   establishment process and the CAPWAP protocol.  Note that the
 | 
						|
   conceptual DTLS state is shown below to help understand the point at
 | 
						|
   which the DTLS states transition.  In the normal case, the DTLS
 | 
						|
   handshake will proceed as follows (NOTE: this example uses
 | 
						|
   certificates, but preshared keys are also supported):
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 27]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-28" id="page-28" href="#page-28" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
           ============                         ============
 | 
						|
               WTP                                   AC
 | 
						|
           ============                         ============
 | 
						|
           ClientHello           ------>
 | 
						|
                                 <------       HelloVerifyRequest
 | 
						|
                                                   (with cookie)
 | 
						|
 | 
						|
           ClientHello           ------>
 | 
						|
           (with cookie)
 | 
						|
                                 <------       ServerHello
 | 
						|
                                 <------       Certificate
 | 
						|
                                 <------       ServerHelloDone
 | 
						|
 | 
						|
           (WTP callout for AC authorization
 | 
						|
                    occurs in CAPWAP Auth state)
 | 
						|
 | 
						|
           Certificate*
 | 
						|
           ClientKeyExchange
 | 
						|
           CertificateVerify*
 | 
						|
           [<a href="#ref-ChangeCipherSpec">ChangeCipherSpec</a>]
 | 
						|
           Finished              ------>
 | 
						|
 | 
						|
                                (AC callout for WTP authorization
 | 
						|
                                 occurs in CAPWAP Auth state)
 | 
						|
 | 
						|
                                               [<a name="ref-ChangeCipherSpec" id="ref-ChangeCipherSpec">ChangeCipherSpec</a>]
 | 
						|
                                 <------       Finished
 | 
						|
 | 
						|
 | 
						|
   DTLS, as specified, provides its own retransmit timers with an
 | 
						|
   exponential back-off.  However, DTLS will never terminate the
 | 
						|
   handshake due to non-responsiveness; instead, DTLS will continue to
 | 
						|
   increase its back-off timer period.  Hence, timing out incomplete
 | 
						|
   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.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-2.4.2" href="#section-2.4.2">2.4.2</a>.  DTLS Session Establishment</span>
 | 
						|
 | 
						|
   The WTP, either through the Discovery process, or through pre-
 | 
						|
   configuration, determines the AC to connect to.  The WTP uses the
 | 
						|
   DTLSStart command to request that a secure connection be established
 | 
						|
   to the selected AC.  Prior to initiation of the DTLS handshake, the
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 28]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-29" id="page-29" href="#page-29" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   WTP sets the WaitDTLS timer.  Upon receiving the DTLSPeerAuthorize
 | 
						|
   DTLS notification, the AC sets the WaitDTLS timer.  If the
 | 
						|
   DTLSEstablished notification is not received prior to timer
 | 
						|
   expiration, the DTLS session is aborted by issuing the
 | 
						|
   DTLSAbortSession DTLS command.  This notification causes the CAPWAP
 | 
						|
   module to transition to the Idle state.  Upon receiving a
 | 
						|
   DTLSEstablished notification, the WaitDTLS timer is deactivated.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-2.4.3" href="#section-2.4.3">2.4.3</a>.  DTLS Error Handling</span>
 | 
						|
 | 
						|
   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.
 | 
						|
   If the WaitDTLS timer expires, CAPWAP will issue the DTLSAbortSession
 | 
						|
   command, causing DTLS to terminate the handshake and remove any
 | 
						|
   allocated session context.  Note that DTLS MAY send a single TLS
 | 
						|
   Alert message to the AC to indicate session termination.
 | 
						|
 | 
						|
   If the WTP does not respond to any DTLS messages sent by the AC, the
 | 
						|
   CAPWAP protocol allows for three possiblities, listed below.  Note
 | 
						|
   that DTLS MAY send a single TLS Alert message to the AC to indicate
 | 
						|
   session termination.
 | 
						|
 | 
						|
   o  The message was lost in transit; in this case, the WTP will re-
 | 
						|
      transmit its last outstanding message, since it did not receive a
 | 
						|
      reply.
 | 
						|
 | 
						|
   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
 | 
						|
      terminated.
 | 
						|
 | 
						|
   o  Communication with the WTP has completely failed; in this case,
 | 
						|
      the AC's WaitDTLS timer will expire, and the session will be
 | 
						|
      terminated.
 | 
						|
 | 
						|
   The DTLS specification provides for retransmission of unacknowledged
 | 
						|
   requests.  If retransmissions remain unacknowledged, the WaitDTLS
 | 
						|
   timer will eventually expire, at which time the CAPWAP component will
 | 
						|
   terminate the session.
 | 
						|
 | 
						|
   If a cookie fails to validate, this could represent a WTP error, or
 | 
						|
   it could represent a DoS attack.  Hence, AC resource utilization
 | 
						|
   SHOULD be minimized.  The AC MAY log a message indicating the
 | 
						|
   failure, but SHOULD NOT attempt to reply to the WTP.
 | 
						|
 | 
						|
   Since DTLS handshake messages are potentially larger than the maximum
 | 
						|
   record size, DTLS supports fragmenting of handshake messages across
 | 
						|
   multiple records.  There are several potential causes of re-assembly
 | 
						|
   errors, including overlapping and/or lost fragments.  The DTLS
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 29]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-30" id="page-30" href="#page-30" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   component MUST send a DTLSReassemblyFailure notification to the
 | 
						|
   CAPWAP component.  Whether precise information is given along with
 | 
						|
   notification is an implementation issue, and hence is beyond the
 | 
						|
   scope of this document.  Upon receipt of such an error, the CAPWAP
 | 
						|
   component SHOULD log an appropriate error message.  Whether
 | 
						|
   processing continues or the DTLS session is terminated is
 | 
						|
   implementation dependent.
 | 
						|
 | 
						|
   DTLS decapsulation errors consist of three types: decryption errors,
 | 
						|
   authentication errors, and malformed DTLS record headers.  Since DTLS
 | 
						|
   authenticates the data prior to encapsulation, if decryption fails,
 | 
						|
   it is difficult to detect this without first attempting to
 | 
						|
   authenticate the packet.  If authentication fails, a decryption error
 | 
						|
   is also likely, but not guaranteed.  Rather than attempt to derive
 | 
						|
   (and require the implementation of) algorithms for detecting
 | 
						|
   decryption failures, decryption failures are reported as
 | 
						|
   authentication failures.  The DTLS component MUST provide a
 | 
						|
   DTLSDecapFailure notification to the CAPWAP component when such
 | 
						|
   errors occur.  If a malformed DTLS record header is detected, the
 | 
						|
   packets SHOULD be silently discarded, and the receiver MAY log an
 | 
						|
   error message.
 | 
						|
 | 
						|
   There is currently only one encapsulation error defined: MTU
 | 
						|
   exceeded.  As part of DTLS session establishment, the CAPWAP
 | 
						|
   component informs the DTLS component of the MTU size.  This may be
 | 
						|
   dynamically modified at any time when the CAPWAP component sends the
 | 
						|
   DTLSMtuUpdate command to the DTLS component (see <a href="#section-2.3.2.1">Section 2.3.2.1</a>).
 | 
						|
   The DTLS component returns this notification to the CAPWAP component
 | 
						|
   whenever a transmission request will result in a packet which exceeds
 | 
						|
   the MTU.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-2.4.4" href="#section-2.4.4">2.4.4</a>.  DTLS EndPoint Authentication and Authorization</span>
 | 
						|
 | 
						|
   DTLS supports endpoint authentication with certificates or preshared
 | 
						|
   keys.  The TLS algorithm suites for each endpoint authentication
 | 
						|
   method are described below.
 | 
						|
 | 
						|
<span class="h5"><a class="selflink" name="section-2.4.4.1" href="#section-2.4.4.1">2.4.4.1</a>.  Authenticating with Certificates</span>
 | 
						|
 | 
						|
   Note that only block ciphers are currently recommended for use with
 | 
						|
   DTLS.  To understand the reasoning behind this, see [<a href="#ref-17" title=""The Design and Implementation of Datagram TLS"">17</a>].  At
 | 
						|
   present, the following algorithms MUST be supported when using
 | 
						|
   certificates for CAPWAP authentication:
 | 
						|
 | 
						|
   o  TLS_RSA_WITH_AES_128_CBC_SHA
 | 
						|
 | 
						|
   The following algorithms SHOULD be supported when using certificates:
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 30]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-31" id="page-31" href="#page-31" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   o  TLS_DH_RSA_WITH_AES_128_CBC_SHA
 | 
						|
 | 
						|
   The following algorithms MAY be supported when using certificates:
 | 
						|
 | 
						|
   o  TLS_RSA_WITH_AES_256_CBC_SHA
 | 
						|
 | 
						|
   o  TLS_DH_RSA_WITH_AES_256_CBC_SHA
 | 
						|
 | 
						|
<span class="h5"><a class="selflink" name="section-2.4.4.2" href="#section-2.4.4.2">2.4.4.2</a>.  Authenticating with Preshared Keys</span>
 | 
						|
 | 
						|
   Pre-shared keys present significant challenges from a security
 | 
						|
   perspective, and for that reason, their use is strongly discouraged.
 | 
						|
   Several methods for authenticating with preshared keys are defined
 | 
						|
   [<a href="#ref-6" title=""Pre-Shared Key Ciphersuites for Transport Layer Security (TLS)"">6</a>], and we focus on the following two:
 | 
						|
 | 
						|
   o  PSK key exchange algorithm - simplest method, ciphersuites use
 | 
						|
      only symmetric key algorithms
 | 
						|
 | 
						|
   o  DHE_PSK key exchange algorithm - use a PSK to authenticate a
 | 
						|
      Diffie-Hellman exchange.  These ciphersuites give some additional
 | 
						|
      protection against dictionary attacks and also provide Perfect
 | 
						|
      Forward Secrecy (PFS).
 | 
						|
 | 
						|
   The first approach (plain PSK) is susceptible to passive dictionary
 | 
						|
   attacks; hence, while this alorithm MUST be supported, special care
 | 
						|
   should be taken when choosing that method.  In particular, user-
 | 
						|
   readable passphrases SHOULD NOT be used, and use of short PSKs SHOULD
 | 
						|
   be strongly discouraged.
 | 
						|
 | 
						|
   The following cryptographic algorithms MUST be supported when using
 | 
						|
   preshared keys:
 | 
						|
 | 
						|
   o  TLS_PSK_WITH_AES_128_CBC_SHA
 | 
						|
 | 
						|
   o  TLS_DHE_PSK_WITH_AES_128_CBC_SHA
 | 
						|
 | 
						|
   The following algorithms MAY be supported when using preshared keys:
 | 
						|
 | 
						|
   o  TLS_PSK_WITH_AES_256_CBC_SHA
 | 
						|
 | 
						|
   o  TLS_DHE_PSK_WITH_AES_256_CBC_SHA
 | 
						|
 | 
						|
<span class="h5"><a class="selflink" name="section-2.4.4.3" href="#section-2.4.4.3">2.4.4.3</a>.  Certificate Usage</span>
 | 
						|
 | 
						|
   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
 | 
						|
   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
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 31]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-32" id="page-32" href="#page-32" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   distinguishable from the certificate used by the WTP.  To accomplish
 | 
						|
   this differentiation, the x.509 certificates MUST include the
 | 
						|
   Extended Key Usage (EKU) certificate extension [<a href="#ref-4" title=""Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile"">4</a>].
 | 
						|
 | 
						|
   The EKU field indicates one or more purposes for which a certificate
 | 
						|
   may be used.  It is an essential part in authorization.  Its syntax
 | 
						|
   is as follows:
 | 
						|
 | 
						|
         ExtKeyUsageSyntax  ::=  SEQUENCE SIZE (1..MAX) OF KeyPurposeId
 | 
						|
 | 
						|
         KeyPurposeId  ::=  OBJECT IDENTIFIER
 | 
						|
 | 
						|
 | 
						|
   Here we define two KeyPurposeId values, one for the WTP and one for
 | 
						|
   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
 | 
						|
   formatted as id-kp fields.
 | 
						|
 | 
						|
             id-kp  OBJECT IDENTIFIER  ::=
 | 
						|
                 { iso(1) identified-organization(3) dod(6) internet(1)
 | 
						|
                   security(5) mechanisms(5) pkix(7) 3 }
 | 
						|
 | 
						|
              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 a WTP, the id-kp-capwapWTP EKU MUST be present in the
 | 
						|
   certificate.
 | 
						|
 | 
						|
   Part of the CAPWAP certificate validation process includes ensuring
 | 
						|
   that the proper EKU is included and allowing the CAPWAP session to be
 | 
						|
   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.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 32]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-33" id="page-33" href="#page-33" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h5"><a class="selflink" name="section-2.4.4.4" href="#section-2.4.4.4">2.4.4.4</a>.  PSK Usage</span>
 | 
						|
 | 
						|
   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.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 33]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-34" id="page-34" href="#page-34" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h2"><a class="selflink" name="section-3" href="#section-3">3</a>.  CAPWAP Transport</span>
 | 
						|
 | 
						|
   Communication between a WTP and an AC is established using the
 | 
						|
   standard UDP client/server model.  The CAPWAP protocol supports both
 | 
						|
   UDP and UDP-Lite [<a href="#ref-11" title=""The Lightweight User Datagram Protocol (UDP-Lite)"">11</a>] transport protocols.  The UDP protocol is used
 | 
						|
   with IPv4.  When CAPWAP is used over IPv6, the UDP-Lite protocol is
 | 
						|
   used.  This section describes how the CAPWAP protocol is carried over
 | 
						|
   IP and UDP/UDP-Lite transport protocols.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-3.1" href="#section-3.1">3.1</a>.  UDP Transport</span>
 | 
						|
 | 
						|
   One of the CAPWAP protocol requirements is to allow a WTP to reside
 | 
						|
   behind a firewall and/or Network Address Translation (NAT) device.
 | 
						|
   Since a CAPWAP session is initiated by the WTP (client) to the well-
 | 
						|
   known UDP port of the AC (server), the use of UDP is a logical
 | 
						|
   choice.  The UDP checksum field in CAPWAP packets MUST be set to
 | 
						|
   zero.
 | 
						|
 | 
						|
   CAPWAP protocol control packets sent from the WTP to the AC use the
 | 
						|
   CAPWAP control channel, as defined in <a href="#section-1.4">Section 1.4</a>.  The CAPWAP
 | 
						|
   control port at the AC is the well known UDP port [to be IANA
 | 
						|
   assigned].  The CAPWAP control port at the WTP can be any port
 | 
						|
   selected by the WTP.
 | 
						|
 | 
						|
   CAPWAP protocol data packets sent from the WTP to the AC use the
 | 
						|
   CAPWAP data channel, as defined in <a href="#section-1.4">Section 1.4</a>.  The CAPWAP data port
 | 
						|
   at the AC is the well known UDP port [to be IANA assigned].  The
 | 
						|
   CAPWAP data port at the WTP can be any port selected by the WTP.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-3.2" href="#section-3.2">3.2</a>.  UDP-Lite Transport</span>
 | 
						|
 | 
						|
   When CAPWAP is run over IPv6, UDP-Lite is used as the transport
 | 
						|
   protocol, reducing the checksum processing required for each packet
 | 
						|
   (compared to UDP and IPv6).  When UDP-Lite is used, the checksum
 | 
						|
   field MUST have a coverage of 8 [<a href="#ref-11" title=""The Lightweight User Datagram Protocol (UDP-Lite)"">11</a>].
 | 
						|
 | 
						|
   UDP-Lite uses the same port assignments as UDP.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-3.3" href="#section-3.3">3.3</a>.  AC Discovery</span>
 | 
						|
 | 
						|
   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
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 34]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-35" id="page-35" href="#page-35" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   (broadcast domain).  When this occurs, the WTP must be capable of
 | 
						|
   discovering the AC, without requiring that multicast services are
 | 
						|
   enabled in the network.
 | 
						|
 | 
						|
   When the WTP attempts to establish communication with an AC, it sends
 | 
						|
   the Discovery Request message and receives the Discovery Response
 | 
						|
   message from the AC(s).  The WTP MUST send the Discovery Request
 | 
						|
   message to either the limited broadcast IP address (255.255.255.255),
 | 
						|
   a well known multicast address or to the unicast IP address of the
 | 
						|
   AC.  For IPv6 networks, since broadcast does not exist, the use of
 | 
						|
   "All ACs multicast address" is used instead.  Upon receipt of the
 | 
						|
   Discovery Request message, the AC sends a Discovery Response 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
 | 
						|
   implementation dependent.
 | 
						|
 | 
						|
   When a WTP transmits a Discovery Request message to a unicast
 | 
						|
   address, the WTP must first obtain the IP address of the AC.  Any
 | 
						|
   static configuration of an AC's IP address on the WTP non-volatile
 | 
						|
   storage is implementation dependent.  However, additional dynamic
 | 
						|
   schemes are possible, for example:
 | 
						|
 | 
						|
   DHCP:  See [<a href="#ref-13" title=""CAPWAP Access Controller DHCP Option"">13</a>] for more information on the use of DHCP to discover
 | 
						|
      AC IP addresses.
 | 
						|
 | 
						|
   DNS:  The DNS name "CAPWAP-AC-Address" MAY be resolvable to one or
 | 
						|
      more AC addresses.
 | 
						|
 | 
						|
   An AC MAY also communicate alternative ACs to the WTP within the
 | 
						|
   Discovery Response message through the AC IPv4 List (see
 | 
						|
   <a href="#section-4.6.2">Section 4.6.2</a>) and AC IPv6 List (see <a href="#section-4.6.2">Section 4.6.2</a>).  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 <a href="#section-4.6.5">Section 4.6.5</a>), 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
 | 
						|
   <a href="#section-4.6.4">Section 4.6.4</a>) 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 <a href="#section-2.1">Section 2.1</a>), which the AC includes in Discovery
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 35]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-36" id="page-36" href="#page-36" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   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.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-3.4" href="#section-3.4">3.4</a>.  Fragmentation/Reassembly</span>
 | 
						|
 | 
						|
   While fragmentation and reassembly services are provided by IP, the
 | 
						|
   CAPWAP protocol also provides such services.  Environments where the
 | 
						|
   CAPWAP protocol is used involve firewall, NAT and "middle box"
 | 
						|
   devices, which tend to drop IP fragments to minimize possible DoS
 | 
						|
   attacks.  By providing fragmentation and reassembly at the
 | 
						|
   application layer, any fragmentation required due to the tunneling
 | 
						|
   component of the CAPWAP protocol becomes transparent to these
 | 
						|
   intermediate devices.  Consequently, the CAPWAP protocol can be used
 | 
						|
   in any network configuration.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 36]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-37" id="page-37" href="#page-37" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h2"><a class="selflink" name="section-4" href="#section-4">4</a>.  CAPWAP Packet Formats</span>
 | 
						|
 | 
						|
   This section contains the CAPWAP protocol packet formats.  A CAPWAP
 | 
						|
   protocol packet consists of one or more CAPWAP Transport Layer packet
 | 
						|
   headers followed by a CAPWAP message.  The CAPWAP message can be
 | 
						|
   either of type Control or Data, where Control packets carry
 | 
						|
   signaling, and Data packets carry user payloads.  The CAPWAP frame
 | 
						|
   formats for CAPWAP Data packets, and for DTLS encapsulated CAPWAP
 | 
						|
   Data and Control packets are defined below.
 | 
						|
 | 
						|
   The CAPWAP Control protocol includes two messages that are never
 | 
						|
   protected by DTLS: the Discovery Request message and the Discovery
 | 
						|
   Response message.  These messages need to be in the clear to allow
 | 
						|
   the CAPWAP protocol to properly identify and process them.  The
 | 
						|
   format of these packets are as follows:
 | 
						|
 | 
						|
       CAPWAP Control Packet (Discovery Request/Response):
 | 
						|
       +-------------------------------------------+
 | 
						|
       | IP  | UDP | CAPWAP | Control | Message    |
 | 
						|
       | Hdr | Hdr | Header | Header  | Element(s) |
 | 
						|
       +-------------------------------------------+
 | 
						|
 | 
						|
   All other CAPWAP control protocol messages MUST be protected via the
 | 
						|
   DTLS protocol, which ensures that the packets are both authenticated
 | 
						|
   and encrypted.  These packets include the CAPWAP DTLS Header, which
 | 
						|
   is described in <a href="#section-4.2">Section 4.2</a>.  The format of these packets is as
 | 
						|
   follows:
 | 
						|
 | 
						|
    CAPWAP Control Packet (DTLS Security Required):
 | 
						|
    +------------------------------------------------------------------+
 | 
						|
    | IP  | UDP | CAPWAP   | DTLS | CAPWAP | Control| Message   | DTLS |
 | 
						|
    | Hdr | Hdr | DTLS Hdr | Hdr  | Header | Header | Element(s)| Trlr |
 | 
						|
    +------------------------------------------------------------------+
 | 
						|
                           \---------- authenticated -----------/
 | 
						|
                                  \------------- encrypted ------------/
 | 
						|
 | 
						|
   The CAPWAP protocol allows optional protection of data packets, using
 | 
						|
   DTLS.  Use of data packet protection is determined by AC policy.
 | 
						|
   When DTLS is utilized, the optional CAPWAP DTLS Header is present,
 | 
						|
   which is described in <a href="#section-4.2">Section 4.2</a>.  The format of CAPWAP data packets
 | 
						|
   is shown below:
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 37]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-38" id="page-38" href="#page-38" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
       CAPWAP Plain Text Data Packet :
 | 
						|
       +-------------------------------+
 | 
						|
       | IP  | UDP | CAPWAP | Wireless |
 | 
						|
       | Hdr | Hdr | Header | Payload  |
 | 
						|
       +-------------------------------+
 | 
						|
 | 
						|
       DTLS Secured CAPWAP Data Packet:
 | 
						|
       +--------------------------------------------------------+
 | 
						|
       | IP  | UDP |  CAPWAP  | DTLS | CAPWAP | Wireless | DTLS |
 | 
						|
       | Hdr | Hdr | DTLS Hdr | Hdr  |  Hdr   | Payload  | Trlr |
 | 
						|
       +--------------------------------------------------------+
 | 
						|
                              \------ authenticated -----/
 | 
						|
                                     \------- encrypted --------/
 | 
						|
 | 
						|
   UDP Header:  All CAPWAP packets are encapsulated within either UDP,
 | 
						|
      or UDP-Lite when used over IPv6.  <a href="#section-3">Section 3</a> defines the specific
 | 
						|
      UDP or UDP-Lite usage.
 | 
						|
 | 
						|
   CAPWAP DTLS Header:  All DTLS encrypted CAPWAP protocol packets are
 | 
						|
      prefixed with the CAPWAP DTLS header (see <a href="#section-4.2">Section 4.2</a>).
 | 
						|
 | 
						|
   DTLS Header:  The DTLS header provides authentication and encryption
 | 
						|
      services to the CAPWAP payload it encapsulates.  This protocol is
 | 
						|
      defined in <a href="./rfc4347">RFC 4347</a> [<a href="#ref-8" title=""Datagram Transport Layer Security"">8</a>].
 | 
						|
 | 
						|
   CAPWAP Header:  All CAPWAP protocol packets use a common header that
 | 
						|
      immediately follows the CAPWAP preamble or DTLS header.  The
 | 
						|
      CAPWAP Header is defined in <a href="#section-4.3">Section 4.3</a>.
 | 
						|
 | 
						|
   Wireless Payload:  A CAPWAP protocol packet that contains a wireless
 | 
						|
      payload is a CAPWAP data packet.  The CAPWAP protocol does not
 | 
						|
      specify the format of the wireless payload, which is defined by
 | 
						|
      the appropriate wireless standard.  Additional information is in
 | 
						|
      <a href="#section-4.4">Section 4.4</a>.
 | 
						|
 | 
						|
   Control Header:  The CAPWAP protocol includes a signalling component,
 | 
						|
      known as the CAPWAP control protocol.  All CAPWAP control packets
 | 
						|
      include a Control Header, which is defined in <a href="#section-4.5.1">Section 4.5.1</a>.
 | 
						|
      CAPWAP data packets do not contain a Control Header field.
 | 
						|
 | 
						|
   Message Elements:  A CAPWAP Control packet includes one or more
 | 
						|
      message elements, which are found immediately following the
 | 
						|
      Control Header.  These message elements are in a Type/Length/value
 | 
						|
      style header, defined in <a href="#section-4.6">Section 4.6</a>.
 | 
						|
 | 
						|
   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
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 38]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-39" id="page-39" href="#page-39" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   including the Maximum Message Length message element, see
 | 
						|
   <a href="#section-4.6.29">Section 4.6.29</a> in the Join Request message or the Join Response
 | 
						|
   message.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-4.1" href="#section-4.1">4.1</a>.  CAPWAP Preamble</span>
 | 
						|
 | 
						|
   The CAPWAP preamble is common to all CAPWAP transport headers and is
 | 
						|
   used to identify the header type that immediately follows.  The
 | 
						|
   reason for this header is to avoid needing to perform byte
 | 
						|
   comparisons in order to guess whether the frame is DTLS encrypted or
 | 
						|
   not.  It also provides an extensibility framework that can be used to
 | 
						|
   support additional transport types.  The format of the preamble is as
 | 
						|
   follows:
 | 
						|
 | 
						|
         0
 | 
						|
         0 1 2 3 4 5 6 7
 | 
						|
        +-+-+-+-+-+-+-+-+
 | 
						|
        |Version| Type  |
 | 
						|
        +-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
   Version:  A 4 bit field which contains the version of CAPWAP used in
 | 
						|
      this packet.  The value for this specification is zero (0).
 | 
						|
 | 
						|
   Payload Type:  A 4 bit field which specifies the payload type that
 | 
						|
      follows the UDP header.  The following values are supported:
 | 
						|
 | 
						|
      0 -  CAPWAP Header.  The CAPWAP Header (see <a href="#section-4.3">Section 4.3</a>)
 | 
						|
         immediately follows the UDP header.  If the packet is received
 | 
						|
         on the CAPWAP data channel, the CAPWAP stack MUST treat the
 | 
						|
         packet as a clear text CAPWAP data packet.  If received on the
 | 
						|
         CAPWAP control channel, the CAPWAP stack MUST treat the packet
 | 
						|
         as a clear text CAPWAP control packet.  If the control packet
 | 
						|
         is not a Discovery Request or Discovery Response packet, the
 | 
						|
         packet MUST be dropped.
 | 
						|
 | 
						|
      1 -  CAPWAP DTLS Header.  The CAPWAP DTLS Header, and DTLS packet,
 | 
						|
         immediately follows the UDP header (see <a href="#section-4.2">Section 4.2</a>).
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-4.2" href="#section-4.2">4.2</a>.  CAPWAP DTLS Header</span>
 | 
						|
 | 
						|
   The CAPWAP DTLS Header is used to identify the packet as a DTLS
 | 
						|
   encrypted packet.  The first eight bits includes the common CAPWAP
 | 
						|
   Preamble.  The remaining 24 bits are padding to ensure 4 byte
 | 
						|
   alignment, and MAY be used in a future version of the protocol.  The
 | 
						|
   DTLS packet [<a href="#ref-8" title=""Datagram Transport Layer Security"">8</a>] always immediately follows this header.  The format
 | 
						|
   of the CAPWAP DTLS Header is as follows:
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 39]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-40" id="page-40" href="#page-40" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
        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
 | 
						|
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
       |CAPWAP Preamble|                    Reserved                   |
 | 
						|
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
   CAPWAP Preamble:  The CAPWAP Preamble is defined in <a href="#section-4.1">Section 4.1</a>.  The
 | 
						|
      CAPWAP Preamble's Payload Type field MUST be set to one (1).
 | 
						|
 | 
						|
   Reserved:  The 24-bit field is reserved for future use.  All
 | 
						|
      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.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-4.3" href="#section-4.3">4.3</a>.  CAPWAP Header</span>
 | 
						|
 | 
						|
   All CAPWAP protocol messages are encapsulated using a common header
 | 
						|
   format, regardless of the CAPWAP Control or CAPWAP Data transport
 | 
						|
   used to carry the messages.  However, certain flags are not
 | 
						|
   applicable for a given transport.  Refer to the specific transport
 | 
						|
   section in order to determine which flags are valid.
 | 
						|
 | 
						|
   Note that the optional fields defined in this section MUST be present
 | 
						|
   in the precise order shown below.
 | 
						|
 | 
						|
        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
 | 
						|
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
       |CAPWAP Preamble|  HLEN   |   RID   | WBID   |T|F|L|W|M|K|Flags |
 | 
						|
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
       |          Fragment ID          |     Frag Offset         |Rsvd |
 | 
						|
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
       |                 (optional) Radio MAC Address                  |
 | 
						|
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
       |            (optional) Wireless Specific Information           |
 | 
						|
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
       |                        Payload ....                           |
 | 
						|
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
   CAPWAP Preamble:  The CAPWAP Preamble is defined in <a href="#section-4.1">Section 4.1</a>.  The
 | 
						|
      CAPWAP Preamble's Payload Type field MUST be set to zero (0).  If
 | 
						|
      the CAPWAP DTLS Header is present, the version number in both
 | 
						|
      CAPWAP Preambles MUST match.  The reason for this duplicate field
 | 
						|
      is to avoid any possible tampering of the version field in the
 | 
						|
      preamble which is not encrypted or authenticated.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 40]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-41" id="page-41" href="#page-41" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   HLEN:  A 5 bit field containing the length of the CAPWAP transport
 | 
						|
      header in 4 byte words (Similar to IP header length).  This length
 | 
						|
      includes the optional headers.
 | 
						|
 | 
						|
   RID:  A 5 bit field which contains the Radio ID number for this
 | 
						|
      packet.  Given that MAC Addresses are not necessarily unique
 | 
						|
      across physical radios in a WTP, the Radio Identifier (RID) field
 | 
						|
      is used to indiciate which physical radio the message is
 | 
						|
      associated with.
 | 
						|
 | 
						|
   WBID:  A 5 bit field which is the wireless binding identifier.  The
 | 
						|
      identifier will indicate the type of wireless packet type
 | 
						|
      associated with the radio.  The following values are defined:
 | 
						|
 | 
						|
      1 -  IEEE 802.11
 | 
						|
 | 
						|
      2 -  IEEE 802.16
 | 
						|
 | 
						|
      3 -  EPCGlobal
 | 
						|
 | 
						|
   T: The Type 'T' bit indicates the format of the frame being
 | 
						|
      transported in the payload.  When this bit is set to one (1), the
 | 
						|
      payload has the native frame format indicated by the WBID field.
 | 
						|
      When this bit is zero (0) the payload is an IEEE 802.3 frame.
 | 
						|
 | 
						|
   F: The Fragment 'F' bit indicates whether this packet is a fragment.
 | 
						|
      When this bit is one (1), the packet is a fragment and MUST be
 | 
						|
      combined with the other corresponding fragments to reassemble the
 | 
						|
      complete information exchanged between the WTP and AC.
 | 
						|
 | 
						|
   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
 | 
						|
      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
 | 
						|
      fragment.
 | 
						|
 | 
						|
   W: The Wireless 'W' bit is used to specify whether the optional
 | 
						|
      Wireless Specific Information field is present in the header.  A
 | 
						|
      value of one (1) is used to represent the fact that the optional
 | 
						|
      header is present.
 | 
						|
 | 
						|
   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
 | 
						|
      the receiving radio.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 41]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-42" id="page-42" href="#page-42" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   K: The 'Keep-alive' K bit indicates the packet is a Data Channel Keep
 | 
						|
      Alive packet.  This packet is used to map the data channel to the
 | 
						|
      control channel for the specified Session ID and to maintain
 | 
						|
      freshness of the data channel.  The K bit MUST NOT be set for data
 | 
						|
      packets containing user data.
 | 
						|
 | 
						|
   Flags:  A set of reserved bits for future flags in the CAPWAP header.
 | 
						|
      All 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.
 | 
						|
 | 
						|
   Fragment ID:  A 16 bit field whose value is assigned to each group of
 | 
						|
      fragments making up a complete set.  The fragment ID space is
 | 
						|
      managed individually for every WTP/AC pair.  The value of Fragment
 | 
						|
      ID is incremented with each new set of fragments.  The Fragment ID
 | 
						|
      wraps to zero after the maximum value has been used to identify a
 | 
						|
      set of fragments.
 | 
						|
 | 
						|
   Fragment Offset:  A 13 bit field that indicates where in the payload
 | 
						|
      this fragment belongs during re-assembly.  This field is valid
 | 
						|
      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.
 | 
						|
      Note the CAPWAP protocol does not allow for overlapping fragments.
 | 
						|
 | 
						|
   Reserved:  The 3-bit field is reserved for future use.  All
 | 
						|
      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.
 | 
						|
 | 
						|
   Radio MAC Address:  This optional field contains the MAC address of
 | 
						|
      the radio receiving the packet.  This is useful in packets sent
 | 
						|
      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
 | 
						|
      'M' bit is set.  The HLEN field assumes 4 byte alignment, and this
 | 
						|
      field MUST be padded with zeroes (0x00) if it is not 4 byte
 | 
						|
      aligned.
 | 
						|
 | 
						|
      The field contains the basic format:
 | 
						|
 | 
						|
        0                   1                   2                   3
 | 
						|
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 | 
						|
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
       |     Length    |                  MAC Address
 | 
						|
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 42]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-43" id="page-43" href="#page-43" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
      Length:  The length of the MAC Address field [<a href="#ref-18" title=""Guidelines for use of a 48-bit Extended Unique Identifier"">18</a>] [<a href="#ref-19" title=""GUIDELINES FOR 64-BIT GLOBAL IDENTIFIER (EUI-64) REGISTRATION AUTHORITY"">19</a>].
 | 
						|
 | 
						|
      MAC Address:  The MAC Address of the receiving radio.
 | 
						|
 | 
						|
   Wireless Specific Information:  This optional field contains
 | 
						|
      technology specific information that may be used to carry per
 | 
						|
      packet wireless information.  This field is only present if the
 | 
						|
      'W' bit is set.  The HLEN field assumes 4 byte alignment, and this
 | 
						|
      field MUST be padded with zeroes (0x00) if it is not 4 byte
 | 
						|
      aligned.
 | 
						|
 | 
						|
      The Wireless Specific Information field uses the following format:
 | 
						|
 | 
						|
        0                   1                   2                   3
 | 
						|
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 | 
						|
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
       |  Wireless ID  |    Length     |             Data
 | 
						|
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
      Wireless ID:  The wireless binding identifier.  The following
 | 
						|
         values are defined:
 | 
						|
 | 
						|
         1 -  IEEE 802.11
 | 
						|
 | 
						|
         2 -  IEEE 802.16
 | 
						|
 | 
						|
         3 -  EPCGlobal
 | 
						|
 | 
						|
      Length:  The length of the data field
 | 
						|
 | 
						|
      Data:  Wireless specific information, defined by the wireless
 | 
						|
         specific binding.
 | 
						|
 | 
						|
   Payload:  This field contains the header for a CAPWAP Data Message or
 | 
						|
      CAPWAP Control Message, followed by the data contained in the
 | 
						|
      message.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-4.4" href="#section-4.4">4.4</a>.  CAPWAP Data Messages</span>
 | 
						|
 | 
						|
   There are two different types of CAPWAP data packets, CAPWAP Data
 | 
						|
   Channel Keep Alive packets and Data Payload packets.  The first is
 | 
						|
   used by the WTP to synchronize the control and data channels, and to
 | 
						|
   maintain freshness of the data channel.  The second is used to
 | 
						|
   transmit user payloads between the AC and WTP.  This section
 | 
						|
   describes both types of CAPWAP data packet formats.
 | 
						|
 | 
						|
   Both CAPWAP data messages are transmitted on the CAPWAP data channel.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 43]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-44" id="page-44" href="#page-44" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.4.1" href="#section-4.4.1">4.4.1</a>.  CAPWAP Data Keepalive</span>
 | 
						|
 | 
						|
   The CAPWAP Data Channel Keep Alive packet is used to bind the CAPWAP
 | 
						|
   control channel with the data channel, and to maintain freshness of
 | 
						|
   the data channel, ensuring that the channel is still functioning.
 | 
						|
   The CAPWAP Data Channel Keep Alive packet is transmitted by the WTP
 | 
						|
   when the DataChannelKeepAlive timer expires.  When the CAPWAP Data
 | 
						|
   Channel Keep Alive packet is transmitted, the WTP sets the
 | 
						|
   DataChannelDeadInterval timer.
 | 
						|
 | 
						|
   In the CAPWAP Data Channel Keep Alive packet, all of the fields in
 | 
						|
   the CAPWAP header, except the HLEN field and the K bit, are set to
 | 
						|
   zero upon transmission.  Upon receiving a CAPWAP Data Channel Keep
 | 
						|
   Alive packet, the AC transmits a CAPWAP Data Channel Keep Alive
 | 
						|
   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 Channel Keep Alive packet, the WTP
 | 
						|
   cancels the DataChannelDeadInterval timer and resets the
 | 
						|
   DataChannelKeepAlive timer.  The CAPWAP Data Channel Keep Alive
 | 
						|
   packet is retransmitted by the WTP in the same manner as the CAPWAP
 | 
						|
   control messages.  If the DataChannelDeadInterval timer expires, the
 | 
						|
   WTP tears down the control DTLS session, and the data DTLS session if
 | 
						|
   one existed.
 | 
						|
 | 
						|
   The CAPWAP Data Channel Keep Alive packet contains the following
 | 
						|
   payload immediately following the CAPWAP Header (see <a href="#section-4.3">Section 4.3</a>)
 | 
						|
 | 
						|
      0                   1                   2                   3
 | 
						|
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |    Message Element Length     |  Message Element [0..N] ...
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
   Message Element Length:   The Length field indicates the number of
 | 
						|
      bytes following the CAPWAP Header.
 | 
						|
 | 
						|
   Message Element[0..N]:   The message element(s) carry the information
 | 
						|
      pertinent to each of the CAPWAP Data Keepalive message.  The
 | 
						|
      following message elements MUST be present in this CAPWAP message:
 | 
						|
 | 
						|
         Session ID, see <a href="#section-4.6.35">Section 4.6.35</a>
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.4.2" href="#section-4.4.2">4.4.2</a>.  Data Payload</span>
 | 
						|
 | 
						|
   A CAPWAP protocol Data Payload packet encapsulates a forwarded
 | 
						|
   wireless frame.  The CAPWAP protocol defines two different modes of
 | 
						|
   encapsulation; IEEE 802.3 and native wireless.  IEEE 802.3
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 44]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-45" id="page-45" href="#page-45" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   encapsulation requires that the bridging function be performed in the
 | 
						|
   WTP.  An IEEE 802.3 encapsulated user payload frame has the following
 | 
						|
   format:
 | 
						|
 | 
						|
       +------------------------------------------------------+
 | 
						|
       | IP Header | UDP Header | CAPWAP Header | 802.3 Frame |
 | 
						|
       +------------------------------------------------------+
 | 
						|
 | 
						|
   The CAPWAP protocol also defines the native wireless encapsulation
 | 
						|
   mode.  The format of the encapsulated CAPWAP data frame is subject to
 | 
						|
   the rules defined by the specific wireless technology binding.  Each
 | 
						|
   wireless technology binding MUST contain a section entitled "Payload
 | 
						|
   Encapsulation", which defines the format of the wireless payload that
 | 
						|
   is encapsulated within CAPWAP Data packets.
 | 
						|
 | 
						|
   If the encapsulated frame would exceed the transport layer's MTU, the
 | 
						|
   sender is responsible for fragmentation of the frame, as specified in
 | 
						|
   <a href="#section-3.4">Section 3.4</a>.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.4.3" href="#section-4.4.3">4.4.3</a>.  Establishment of a DTLS Data Channel</span>
 | 
						|
 | 
						|
   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 [<a href="#ref-7" title=""The Transport Layer Security (TLS) Protocol Version 1.1"">7</a>].
 | 
						|
 | 
						|
   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.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-4.5" href="#section-4.5">4.5</a>.  CAPWAP Control Messages</span>
 | 
						|
 | 
						|
   The CAPWAP Control protocol provides a control channel between the
 | 
						|
   WTP and the AC.  Control messages are divided into the following
 | 
						|
   message types:
 | 
						|
 | 
						|
   Discovery:  CAPWAP Discovery messages are used to identify potential
 | 
						|
      ACs, their load and capabilities.
 | 
						|
 | 
						|
   Join:  CAPWAP Join messages are used by a WTP to request service from
 | 
						|
      an AC, and for the AC to respond to the WTP.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 45]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-46" id="page-46" href="#page-46" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   Control Channel Management:  CAPWAP control channel management
 | 
						|
      messages are used to maintain the control channel.
 | 
						|
 | 
						|
   WTP Configuration Management:  The WTP Configuration messages are
 | 
						|
      used by the AC to deliver a specific configuration to the WTP.
 | 
						|
      Messages which retrieve statistics from a WTP are also included in
 | 
						|
      WTP Configuration Management.
 | 
						|
 | 
						|
   Station Session Management:  Station Session Management messages are
 | 
						|
      used by the AC to deliver specific station policies to the WTP.
 | 
						|
 | 
						|
   Device Management Operations:  Device management operations are used
 | 
						|
      to request and deliver a firmware image to the WTP.
 | 
						|
 | 
						|
   Binding Specific CAPWAP Management Messages:  Messages in this
 | 
						|
      category are used by the AC and the WTP to exchange protocol-
 | 
						|
      specific CAPWAP management messages.  These messages may or may
 | 
						|
      not be used to change the link state of a station.
 | 
						|
 | 
						|
   Discovery, Join, Control Channel Management, WTP Configuration
 | 
						|
   Management and Station Session Management CAPWAP control messages
 | 
						|
   MUST be implemented.  Device Management Operations messages MAY be
 | 
						|
   implemented.
 | 
						|
 | 
						|
   CAPWAP control messages sent from the WTP to the AC indicate that the
 | 
						|
   WTP is operational, providing an implicit keep-alive mechanism for
 | 
						|
   the WTP.  The Control Channel Management Echo Request and Echo
 | 
						|
   Response messages provide an explicit keep-alive mechanism when other
 | 
						|
   CAPWAP control messages are not exchanged.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.5.1" href="#section-4.5.1">4.5.1</a>.  Control Message Format</span>
 | 
						|
 | 
						|
   All CAPWAP control messages are sent encapsulated within the CAPWAP
 | 
						|
   header (see <a href="#section-4.3">Section 4.3</a>).  Immediately following the CAPWAP header,
 | 
						|
   is the control header, which has the following format:
 | 
						|
 | 
						|
      0                   1                   2                   3
 | 
						|
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                       Message Type                            |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |    Seq Num    |        Msg Element Length     |     Flags     |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     | Msg Element [0..N] ...
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 46]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-47" id="page-47" href="#page-47" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h5"><a class="selflink" name="section-4.5.1.1" href="#section-4.5.1.1">4.5.1.1</a>.  Message Type</span>
 | 
						|
 | 
						|
   The Message Type field identifies the function of the CAPWAP control
 | 
						|
   message.  The Message Type field is comprised of an IANA Enterprise
 | 
						|
   Number and an enterprise specific message type number.  The first
 | 
						|
   three octets contain the enterprise number in network byte order,
 | 
						|
   with zero used for CAPWAP protocol defined message types and the IEEE
 | 
						|
   802.11 IANA assigned enterprise number 13277 is used for IEEE 802.11
 | 
						|
   technology specific message types.  The last octet is the enterprise
 | 
						|
   specific message type number, which has a range from 0 to 255.
 | 
						|
 | 
						|
   The message type field is defined as:
 | 
						|
 | 
						|
         Message Type =
 | 
						|
                 IANA Enterprise Number * 256 +
 | 
						|
                     Enterprise Specific Message Type Number
 | 
						|
 | 
						|
   The CAPWAP protocol reliability mechanism requires that messages be
 | 
						|
   defined in pairs, consisting of both a Request and a Response
 | 
						|
   message.  The Response message MUST acknowledge the Request message.
 | 
						|
   The assignment of CAPWAP control Message Type Values always occurs in
 | 
						|
   pairs.  All Request messages have odd numbered Message Type Values,
 | 
						|
   and all Response messages have even numbered Message Type Values.
 | 
						|
   The Request value MUST be assigned first.  As an example, assigning a
 | 
						|
   Message Type Value of 3 for a Request message and 4 for a Response
 | 
						|
   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:
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 47]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-48" id="page-48" href="#page-48" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
           CAPWAP Control Message           Message Type
 | 
						|
                                              Value
 | 
						|
           Discovery Request                    1
 | 
						|
           Discovery Response                   2
 | 
						|
           Join Request                         3
 | 
						|
           Join Response                        4
 | 
						|
           Configuration Status                 5
 | 
						|
           Configuration Status Response        6
 | 
						|
           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
 | 
						|
 | 
						|
<span class="h5"><a class="selflink" name="section-4.5.1.2" href="#section-4.5.1.2">4.5.1.2</a>.  Sequence Number</span>
 | 
						|
 | 
						|
   The Sequence Number Field is an identifier value used to match
 | 
						|
   Request and Response packets.  When a CAPWAP packet with a Request
 | 
						|
   Message Type Value is received, the value of the Sequence Number
 | 
						|
   field is copied into the corresponding Response message.
 | 
						|
 | 
						|
   When a CAPWAP control message is sent, the sender's internal sequence
 | 
						|
   number counter is monotonically incremented, ensuring that no two
 | 
						|
   pending Request messages have the same Sequence Number.  The Sequence
 | 
						|
   Number field wraps back to zero.
 | 
						|
 | 
						|
<span class="h5"><a class="selflink" name="section-4.5.1.3" href="#section-4.5.1.3">4.5.1.3</a>.  Message Element Length</span>
 | 
						|
 | 
						|
   The Length field indicates the number of bytes following the Sequence
 | 
						|
   Number field.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 48]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-49" id="page-49" href="#page-49" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h5"><a class="selflink" name="section-4.5.1.4" href="#section-4.5.1.4">4.5.1.4</a>.  Flags</span>
 | 
						|
 | 
						|
   The Flags field MUST be set to zero.
 | 
						|
 | 
						|
<span class="h5"><a class="selflink" name="section-4.5.1.5" href="#section-4.5.1.5">4.5.1.5</a>.  Message Element[0..N]</span>
 | 
						|
 | 
						|
   The message element(s) carry the information pertinent to each of the
 | 
						|
   control message types.  Every control message in this specification
 | 
						|
   specifies which message elements are permitted.
 | 
						|
 | 
						|
   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).
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.5.2" href="#section-4.5.2">4.5.2</a>.  Control Message Quality of Service</span>
 | 
						|
 | 
						|
   It is recommended that CAPWAP control messages be sent by both the AC
 | 
						|
   and the WTP with an appropriate Quality of Service precedence value,
 | 
						|
   ensuring that congestion in the network minimizes occurrences of
 | 
						|
   CAPWAP control channel disconnects.  Therefore, a Quality of Service
 | 
						|
   enabled CAPWAP device SHOULD use the following values:
 | 
						|
 | 
						|
   802.1P:   The precedence value of 7 SHOULD be used.
 | 
						|
 | 
						|
   DSCP:   The DSCP tag value of 46 SHOULD be used.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.5.3" href="#section-4.5.3">4.5.3</a>.  Retransmissions</span>
 | 
						|
 | 
						|
   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 <a href="#section-4.5.1">Section 4.5.1</a>).
 | 
						|
 | 
						|
   Response messages are not explicitly acknowledged, therefore if a
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 49]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-50" id="page-50" href="#page-50" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   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
 | 
						|
   <a href="#section-4.7">Section 4.7</a>) timer and MaxRetransmit (see <a href="#section-4.8">Section 4.8</a>) variable are
 | 
						|
   used to determine if the original Request message needs to be
 | 
						|
   retransmitted.  The RetransmitInterval timer is used the first time
 | 
						|
   the Request is retransmitted.  The timer is then doubled every
 | 
						|
   subsequent time the same Request message is retransmitted, up to
 | 
						|
   MaxRetransmit but no more than half the EchoInterval timer (see
 | 
						|
   <a href="#section-4.7.5">Section 4.7.5</a>).  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.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-4.6" href="#section-4.6">4.6</a>.  CAPWAP Protocol Message Elements</span>
 | 
						|
 | 
						|
   This section defines the CAPWAP Protocol message elements which are
 | 
						|
   included in CAPWAP protocol control messages.
 | 
						|
 | 
						|
   Message elements are used to carry information needed in control
 | 
						|
   messages.  Every message element is identified by the Type Value
 | 
						|
   field, defined below.  The total length of the message elements is
 | 
						|
   indicated in the message element Length field.
 | 
						|
 | 
						|
   All of the message element definitions in this document use a diagram
 | 
						|
   similar to the one below in order to depict its format.  Note that to
 | 
						|
   simplify this specification, these diagrams do not include the header
 | 
						|
   fields (Type and Length).  The header field values are defined in the
 | 
						|
   message element descriptions.
 | 
						|
 | 
						|
   Unless otherwise specified, a control message that lists a set of
 | 
						|
   supported (or expected) message elements MUST not expect the message
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 50]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-51" id="page-51" href="#page-51" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   elements to be in any specific order.  The sender MAY include the
 | 
						|
   message elements in any order.  Unless otherwise noted, one message
 | 
						|
   element of each type is present in a given control message.
 | 
						|
 | 
						|
   Additional message elements may be defined in separate IETF
 | 
						|
   documents.
 | 
						|
 | 
						|
   The format of a message element uses the TLV format shown here:
 | 
						|
 | 
						|
      0                   1                   2                   3
 | 
						|
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |              Type             |             Length            |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |   Value ...   |
 | 
						|
     +-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
   The 16 bit Type field identifies the information carried in the Value
 | 
						|
   field and Length (16 bits) indicates the number of bytes in the Value
 | 
						|
   field.  Type field values are allocated as follows:
 | 
						|
 | 
						|
              Usage                              Type Values
 | 
						|
 | 
						|
   CAPWAP Protocol Message Elements                1-1023
 | 
						|
   IEEE 802.11 Message Elements                    1024-2047
 | 
						|
   IEEE 802.16 Message Elements                    2048 - 3071
 | 
						|
   EPCGlobal Message Elements                      3072 - 4095
 | 
						|
   Reserved for Future Use                         4096 - 65024
 | 
						|
 | 
						|
   The table below lists the CAPWAP protocol Message Elements and their
 | 
						|
   Type values.
 | 
						|
 | 
						|
   CAPWAP Message Element                            Type Value
 | 
						|
 | 
						|
   AC Descriptor                                         1
 | 
						|
   AC IPv4 List                                          2
 | 
						|
   AC IPv6 List                                          3
 | 
						|
   AC Name                                               4
 | 
						|
   AC Name with Index                                    5
 | 
						|
   AC Timestamp                                          6
 | 
						|
   Add MAC ACL Entry                                     7
 | 
						|
   Add Station                                           8
 | 
						|
   Add Static MAC ACL Entry                              9
 | 
						|
   CAPWAP Control IPV4 Address                          10
 | 
						|
   CAPWAP Control IPV6 Address                          11
 | 
						|
   CAPWAP Timers                                        12
 | 
						|
   Data Transfer Data                                   13
 | 
						|
   Data Transfer Mode                                   14
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 51]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-52" id="page-52" href="#page-52" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   Decryption Error Report                              15
 | 
						|
   Decryption Error Report Period                       16
 | 
						|
   Delete MAC ACL Entry                                 17
 | 
						|
   Delete Station                                       18
 | 
						|
   Delete Static MAC ACL Entry                          19
 | 
						|
   Discovery Type                                       20
 | 
						|
   Duplicate IPv4 Address                               21
 | 
						|
   Duplicate IPv6 Address                               22
 | 
						|
   Idle Timeout                                         23
 | 
						|
   Image Data                                           24
 | 
						|
   Image Identifier                                     25
 | 
						|
   Image Info                                           26
 | 
						|
   Initiate Download                                    27
 | 
						|
   Location Data                                        28
 | 
						|
   Maximum Message Length                               29
 | 
						|
   MTU Discovery Padding                                30
 | 
						|
   Radio Administrative State                           31
 | 
						|
   Radio Operational State                              32
 | 
						|
   Result Code                                          33
 | 
						|
   Returned Message Element                             34
 | 
						|
   Session ID                                           35
 | 
						|
   Statistics Timer                                     36
 | 
						|
   Vendor Specific Payload                              37
 | 
						|
   WTP Board Data                                       38
 | 
						|
   WTP Descriptor                                       39
 | 
						|
   WTP Fallback                                         40
 | 
						|
   WTP Frame Tunnel Mode                                41
 | 
						|
   WTP IPv4 IP Address                                  42
 | 
						|
   WTP IPv6 IP Address                                  43
 | 
						|
   WTP MAC Type                                         44
 | 
						|
   WTP Name                                             45
 | 
						|
   WTP Operational Statistics                           46
 | 
						|
   WTP Radio Statistics                                 47
 | 
						|
   WTP Reboot Statistics                                48
 | 
						|
   WTP Static IP Address Information                    49
 | 
						|
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.1" href="#section-4.6.1">4.6.1</a>.  AC Descriptor</span>
 | 
						|
 | 
						|
   The AC Descriptor message element is used by the AC to communicate
 | 
						|
   its current state.  The value contains the following fields.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 52]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-53" id="page-53" href="#page-53" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
      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
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |            Stations           |             Limit             |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |          Active WTPs          |            Max WTPs           |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |    Security   |  R-MAC Field  |   Reserved1   |  DTLS Policy  |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                       Vendor Identifier                       |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |         Type=4                 |             Length           |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                          Value...
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                       Vendor Identifier                       |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |         Type=5                 |             Length           |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                          Value...
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
 | 
						|
   Type:   1 for AC Descriptor
 | 
						|
 | 
						|
   Length:   >= 12
 | 
						|
 | 
						|
   Stations:   The number of stations currently served by the AC
 | 
						|
 | 
						|
   Limit:   The maximum number of stations supported by the AC
 | 
						|
 | 
						|
   Active WTPs:   The number of WTPs currently attached to the AC
 | 
						|
 | 
						|
   Max WTPs:   The maximum number of WTPs supported by the AC
 | 
						|
 | 
						|
   Security:   A 8 bit bit mask specifying the authentication credential
 | 
						|
      type supported by the AC.  The following values are supported (see
 | 
						|
      <a href="#section-2.4.4">Section 2.4.4</a>):
 | 
						|
 | 
						|
      1 -  X.509 Certificate Based
 | 
						|
 | 
						|
      2 -  Pre-Shared Secret
 | 
						|
 | 
						|
   R-MAC Field:   The AC supports the optional Radio MAC Address field
 | 
						|
      in the CAPWAP transport Header (see <a href="#section-4.3">Section 4.3</a>).
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 53]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-54" id="page-54" href="#page-54" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   Reserved:  A set of reserved bits for future use.  All
 | 
						|
      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
 | 
						|
      the CAPWAP data channel.  The AC MAY communicate more than one
 | 
						|
      supported option, represented by the bit field below.  The WTP
 | 
						|
      MUST abide by one of the options communicated by AC.  The
 | 
						|
      following bit field values are supported:
 | 
						|
 | 
						|
      1 -  Clear Text Data Channel Supported
 | 
						|
 | 
						|
      2 -  DTLS Enabled Data Channel Supported
 | 
						|
 | 
						|
   Vendor Identifier:   A 32-bit value containing the IANA assigned "SMI
 | 
						|
      Network Management Private Enterprise Codes"
 | 
						|
 | 
						|
   Type:   Vendor specific encoding of AC information.  The following
 | 
						|
      values are supported.  The Hardware and Software Version values
 | 
						|
      MUST be included.
 | 
						|
 | 
						|
      4 - Hardware Version:   The AC's hardware version number.
 | 
						|
 | 
						|
      5 - Software Version:   The AC's Software (firmware) version
 | 
						|
         number.
 | 
						|
 | 
						|
   Length:   Length of vendor specific encoding of AC information.
 | 
						|
 | 
						|
   Value:   Vendor specific encoding of AC information.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.2" href="#section-4.6.2">4.6.2</a>.  AC IPv4 List</span>
 | 
						|
 | 
						|
   The AC IPv4 List message element is used to configure a WTP with the
 | 
						|
   latest list of ACs available for the WTP to join.
 | 
						|
 | 
						|
 | 
						|
        0                   1                   2                   3
 | 
						|
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 | 
						|
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
       |                       AC IP Address[]                         |
 | 
						|
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 54]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-55" id="page-55" href="#page-55" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   Type:   2 for AC IPv4 List
 | 
						|
 | 
						|
   Length:   >= 4
 | 
						|
 | 
						|
      The AC IP Address: An array of 32-bit integers containing AC IPv4
 | 
						|
      Addresses.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.3" href="#section-4.6.3">4.6.3</a>.  AC IPv6 List</span>
 | 
						|
 | 
						|
   The AC IPv6 List message element is used to configure a WTP with the
 | 
						|
   latest list of ACs available for the WTP to join.
 | 
						|
 | 
						|
 | 
						|
        0                   1                   2                   3
 | 
						|
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 | 
						|
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
       |                       AC IP Address[]                         |
 | 
						|
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
       |                       AC IP Address[]                         |
 | 
						|
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
       |                       AC IP Address[]                         |
 | 
						|
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
       |                       AC IP Address[]                         |
 | 
						|
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
 | 
						|
   Type:   3 for AC IPV6 List
 | 
						|
 | 
						|
   Length:   >= 16
 | 
						|
 | 
						|
      The AC IP Address: An array of 128-bit integers containing AC IPv6
 | 
						|
      Addresses.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.4" href="#section-4.6.4">4.6.4</a>.  AC Name</span>
 | 
						|
 | 
						|
   The AC Name message element contains an UTF-8 representation of the
 | 
						|
   AC identity.  The value is a variable length byte string.  The string
 | 
						|
   is NOT zero terminated.
 | 
						|
 | 
						|
      0
 | 
						|
      0 1 2 3 4 5 6 7
 | 
						|
     +-+-+-+-+-+-+-+-+
 | 
						|
     | Name ...
 | 
						|
     +-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 55]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-56" id="page-56" href="#page-56" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   Type:   4 for AC Name
 | 
						|
 | 
						|
   Length:   > 0
 | 
						|
 | 
						|
   Name:   A variable length UTF-8 encoded string containing the AC's
 | 
						|
      name
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.5" href="#section-4.6.5">4.6.5</a>.  AC Name with Index</span>
 | 
						|
 | 
						|
   The AC Name with Index message element is sent by the AC to the WTP
 | 
						|
   to configure preferred ACs.  The number of instances of this message
 | 
						|
   element is equal to the number of ACs configured on the WTP.
 | 
						|
 | 
						|
      0                   1
 | 
						|
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |     Index     |   AC Name...
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
   Type:   5 for AC Name with Index
 | 
						|
 | 
						|
   Length:   > 2
 | 
						|
 | 
						|
   Index:   The index of the preferred server (1=primary, 2=secondary).
 | 
						|
 | 
						|
   AC Name:   A variable length UTF-8 encoded string containing the AC
 | 
						|
      name.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.6" href="#section-4.6.6">4.6.6</a>.  AC Timestamp</span>
 | 
						|
 | 
						|
   The AC Timestamp message element is sent by the AC to synchronize the
 | 
						|
   WTP clock.
 | 
						|
 | 
						|
      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
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                           Timestamp                           |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
   Type:   6 for AC Timestamp
 | 
						|
 | 
						|
   Length:   4
 | 
						|
 | 
						|
   Timestamp:   The AC's current time, allowing all of the WTPs to be
 | 
						|
      time synchronized in the format defined by Network Time Protocol
 | 
						|
      (NTP) in <a href="./rfc1305">RFC 1305</a> [<a href="#ref-3" title=""Network Time Protocol (Version 3) Specification, Implementation"">3</a>].
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 56]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-57" id="page-57" href="#page-57" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.7" href="#section-4.6.7">4.6.7</a>.  Add MAC ACL Entry</span>
 | 
						|
 | 
						|
   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
 | 
						|
   no longer provides service to the MAC addresses provided in the
 | 
						|
   message.  The MAC Addresses provided in this message element are not
 | 
						|
   expected to be saved in non-volatile memory on the WTP.
 | 
						|
 | 
						|
      0                   1                   2                   3
 | 
						|
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     | Num of Entries|     Length      |         MAC Address ...
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
   Type:   7 for Add MAC ACL Entry
 | 
						|
 | 
						|
   Length:   >= 8
 | 
						|
 | 
						|
   Num of Entries:   The number of instances of the Type/MAC Addresses
 | 
						|
      fields in the array.
 | 
						|
 | 
						|
   Length:  The length of the MAC Address field.
 | 
						|
 | 
						|
   MAC Address:   MAC Addresses to add to the ACL.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.8" href="#section-4.6.8">4.6.8</a>.  Add Station</span>
 | 
						|
 | 
						|
   The Add Station message element is used by the AC to inform a WTP
 | 
						|
   that it should forward traffic for a station.  The Add Station
 | 
						|
   message element is accompanied by technology specific binding
 | 
						|
   information element(s) which may include security parameters.
 | 
						|
   Consequently, the security parameters MUST be applied by the WTP for
 | 
						|
   the station.
 | 
						|
 | 
						|
   After station policy has been delivered to the WTP through the Add
 | 
						|
   Station message element, an AC MAY change any policies by sending a
 | 
						|
   modified Add Station message element.  When a WTP receives an Add
 | 
						|
   Station message element for an existing station, it MUST override any
 | 
						|
   existing state for the station.
 | 
						|
 | 
						|
      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
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |    Radio ID   |     Length      |         MAC Address ...
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |  VLAN Name...
 | 
						|
     +-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 57]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-58" id="page-58" href="#page-58" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   Type:   8 for Add Station
 | 
						|
 | 
						|
   Length:   >= 8
 | 
						|
 | 
						|
   Radio ID:   An 8-bit value representing the radio
 | 
						|
 | 
						|
   Length:  The length of the MAC Address field.
 | 
						|
 | 
						|
   MAC Address:   The station's MAC Address
 | 
						|
 | 
						|
   VLAN Name:   An optional variable length UTF-8 encoded string
 | 
						|
      containing the VLAN Name on which the WTP is to locally bridge
 | 
						|
      user data.  Note this field is only valid with WTPs configured in
 | 
						|
      Local MAC mode.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.9" href="#section-4.6.9">4.6.9</a>.  Add Static MAC ACL Entry</span>
 | 
						|
 | 
						|
   The Add Static MAC ACL Entry message element is used by an AC to add
 | 
						|
   a permanent ACL entry on a WTP, ensuring that the WTP no longer
 | 
						|
   provides any service to the MAC addresses provided in the message.
 | 
						|
   The MAC Addresses provided in this message element are expected to be
 | 
						|
   saved in non-volative memory on the WTP.
 | 
						|
 | 
						|
      0                   1                   2                   3
 | 
						|
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     | Num of Entries|     Length      |         MAC Address ...
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
   Type:   9 for Add Static MAC ACL Entry
 | 
						|
 | 
						|
   Length:   >= 8
 | 
						|
 | 
						|
   Num of Entries:   The number of instances of the Type/MAC Addresses
 | 
						|
      fields in the array.
 | 
						|
 | 
						|
   Length:  The length of the MAC Address field.
 | 
						|
 | 
						|
   MAC Address:   MAC Addresses to add to the permanent ACL.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.10" href="#section-4.6.10">4.6.10</a>.  CAPWAP Control IPv4 Address</span>
 | 
						|
 | 
						|
   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 interfaces available on the AC, and the current number of WTPs
 | 
						|
   connected.  When multiple CAPWAP Control IPV4 Address message
 | 
						|
   elements are returned, the WTP SHOULD perform load balancing across
 | 
						|
   the multiple interfaces.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 58]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-59" id="page-59" href="#page-59" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
      0                   1                   2                   3
 | 
						|
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                           IP Address                          |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |           WTP Count           |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
   Type:   10 for CAPWAP Control IPv4 Address
 | 
						|
 | 
						|
   Length:   6
 | 
						|
 | 
						|
   IP Address:   The IP Address of an interface.
 | 
						|
 | 
						|
   WTP Count:   The number of WTPs currently connected to the interface.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.11" href="#section-4.6.11">4.6.11</a>.  CAPWAP Control IPv6 Address</span>
 | 
						|
 | 
						|
   The CAPWAP Control IPv6 Address message element is sent by the AC to
 | 
						|
   the WTP during the discovery process and is used by the AC to provide
 | 
						|
   the interfaces available on the AC, and the current number of WTPs
 | 
						|
   connected.  This message element is useful for the WTP to perform
 | 
						|
   load balancing across multiple interfaces.
 | 
						|
 | 
						|
      0                   1                   2                   3
 | 
						|
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                           IP Address                          |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                           IP Address                          |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                           IP Address                          |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                           IP Address                          |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |           WTP Count           |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
   Type:   11 for CAPWAP Control IPv6 Address
 | 
						|
 | 
						|
   Length:   18
 | 
						|
 | 
						|
   IP Address:   The IP Address of an interface.
 | 
						|
 | 
						|
   WTP Count:   The number of WTPs currently connected to the interface.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 59]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-60" id="page-60" href="#page-60" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.12" href="#section-4.6.12">4.6.12</a>.  CAPWAP Timers</span>
 | 
						|
 | 
						|
   The CAPWAP Timers message element is used by an AC to configure
 | 
						|
   CAPWAP timers on a WTP.
 | 
						|
 | 
						|
      0                   1
 | 
						|
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |   Discovery   | Echo Request  |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
   Type:   12 for CAPWAP Timers
 | 
						|
 | 
						|
   Length:   2
 | 
						|
 | 
						|
   Discovery:   The number of seconds between CAPWAP Discovery messages,
 | 
						|
      when the WTP is in the discovery phase.
 | 
						|
 | 
						|
   Echo Request:   The number of seconds between WTP Echo Request CAPWAP
 | 
						|
      messages.  The default value for this message element is specified
 | 
						|
      in <a href="#section-4.7.5">Section 4.7.5</a>.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.13" href="#section-4.6.13">4.6.13</a>.  Data Transfer Data</span>
 | 
						|
 | 
						|
   The Data Transfer Data message element is used by the WTP to provide
 | 
						|
   information to the AC for debugging purposes.
 | 
						|
 | 
						|
      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
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |   Data Type   |  Data Length  |    Data ....
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
   Type:   13 for Data Transfer Data
 | 
						|
 | 
						|
   Length:   >= 3
 | 
						|
 | 
						|
   Data Type:   An 8-bit value the type of information being sent.  The
 | 
						|
      following values are supported:
 | 
						|
 | 
						|
      1 -  WTP Crash Data
 | 
						|
 | 
						|
      2 -  WTP Memory Dump
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 60]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-61" id="page-61" href="#page-61" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   Data Length:   Length of data field.
 | 
						|
 | 
						|
   Data:   Debug information.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.14" href="#section-4.6.14">4.6.14</a>.  Data Transfer Mode</span>
 | 
						|
 | 
						|
   The Data Transfer Mode message element is used by the WTP to indicate
 | 
						|
   the type of data transfer information it is sending to the AC for
 | 
						|
   debugging purposes.
 | 
						|
 | 
						|
      0
 | 
						|
      0 1 2 3 4 5 6 7
 | 
						|
     +-+-+-+-+-+-+-+-+
 | 
						|
     |   Data  Type   |
 | 
						|
     +-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
   Type:   14 for Data Transfer Mode
 | 
						|
 | 
						|
   Length:   1
 | 
						|
 | 
						|
   Data Type:   An 8-bit value the type of information being requested.
 | 
						|
      The following values are supported:
 | 
						|
 | 
						|
      1 -  WTP Crash Data
 | 
						|
 | 
						|
      2 -  WTP Memory Dump
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.15" href="#section-4.6.15">4.6.15</a>.  Decryption Error Report</span>
 | 
						|
 | 
						|
   The Decryption Error Report message element value is used by the WTP
 | 
						|
   to inform the AC of decryption errors that have occurred since the
 | 
						|
   last report.  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 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 |     Length      |MAC Address...
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
   Type:   15 for Decryption Error Report
 | 
						|
 | 
						|
   Length:   >= 9
 | 
						|
 | 
						|
   Radio ID:   The Radio Identifier refers to an interface index on the
 | 
						|
      WTP.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 61]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-62" id="page-62" href="#page-62" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   Num of Entries:   The number of instances of the Type/MAC Addresses
 | 
						|
      fields in the array.
 | 
						|
 | 
						|
   Length:  The length of the MAC Address field.
 | 
						|
 | 
						|
   MAC Address:   MAC addresses of the station that has caused
 | 
						|
      decryption errors.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.16" href="#section-4.6.16">4.6.16</a>.  Decryption Error Report Period</span>
 | 
						|
 | 
						|
   The Decryption Error Report Period message element value is used by
 | 
						|
   the AC to inform the WTP how frequently it should send decryption
 | 
						|
   error report messages.  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 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |   Radio ID    |        Report Interval        |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
   Type:   16 for Decryption Error Report Period
 | 
						|
 | 
						|
   Length:   3
 | 
						|
 | 
						|
   Radio ID:   The Radio Identifier refers to an interface index on the
 | 
						|
      WTP.
 | 
						|
 | 
						|
   Report Interval:   A 16-bit unsigned integer indicating the time, in
 | 
						|
      seconds.  The default value for this message element can be found
 | 
						|
      in <a href="#section-4.8.8">Section 4.8.8</a>.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.17" href="#section-4.6.17">4.6.17</a>.  Delete MAC ACL Entry</span>
 | 
						|
 | 
						|
   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 addresses provided in the message.
 | 
						|
 | 
						|
      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
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     | Num of Entries|     Length      |         MAC Address ...
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 62]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-63" id="page-63" href="#page-63" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   Type:   17 for Delete MAC ACL Entry
 | 
						|
 | 
						|
   Length:   >= 8
 | 
						|
 | 
						|
   Num of Entries:   The number of instances of the Type/MAC Addresses
 | 
						|
      fields in the array.
 | 
						|
 | 
						|
   Length:  The length of the MAC Address field.
 | 
						|
 | 
						|
   MAC Address:   An array of MAC Addresses to delete from the ACL.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.18" href="#section-4.6.18">4.6.18</a>.  Delete Station</span>
 | 
						|
 | 
						|
   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.
 | 
						|
   The WTP MUST terminate service to the station immediately upon
 | 
						|
   receiving this message element.
 | 
						|
 | 
						|
   The transmission of a Delete Station message element could occur for
 | 
						|
   various reasons, including for administrative reasons, or if the
 | 
						|
   station has roamed to another WTP.
 | 
						|
 | 
						|
   The Delete Station message element MAY be sent by the WTP, in the WTP
 | 
						|
   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
 | 
						|
   Idle Timeout (see <a href="#section-4.4.43">section 4.4.43</a>), due to internal resource shortages
 | 
						|
   or for some other reason.
 | 
						|
 | 
						|
      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
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |    Radio ID   |     Length      |       MAC Address...
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
   Type:   18 for Delete Station
 | 
						|
 | 
						|
   Length:   >= 8
 | 
						|
 | 
						|
   Radio ID:   An 8-bit value representing the radio
 | 
						|
 | 
						|
   Length:  The length of the MAC Address field.
 | 
						|
 | 
						|
   MAC Address:   The station's MAC Address
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 63]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-64" id="page-64" href="#page-64" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.19" href="#section-4.6.19">4.6.19</a>.  Delete Static MAC ACL Entry</span>
 | 
						|
 | 
						|
   The Delete Static MAC ACL Entry message element is used by an AC to
 | 
						|
   delete a previously added static MAC ACL entry on a WTP, ensuring
 | 
						|
   that the WTP provides service to the MAC addresses provided in the
 | 
						|
   message.
 | 
						|
 | 
						|
      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
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     | Num of Entries|     Length      |         MAC Address ...
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
   Type:   19 for Delete Static MAC ACL Entry
 | 
						|
 | 
						|
   Length:   >= 8
 | 
						|
 | 
						|
   Num of Entries:   The number of instances of the Type/MAC Addresses
 | 
						|
      fields in the array.
 | 
						|
 | 
						|
   Length:  The length of the MAC Address field.
 | 
						|
 | 
						|
   MAC Address:   An array of MAC Addresses to delete from the static
 | 
						|
      MAC ACL entry.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.20" href="#section-4.6.20">4.6.20</a>.  Discovery Type</span>
 | 
						|
 | 
						|
   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
 | 
						|
   sending the Discovery Request message.
 | 
						|
 | 
						|
      0
 | 
						|
      0 1 2 3 4 5 6 7
 | 
						|
     +-+-+-+-+-+-+-+-+
 | 
						|
     | Discovery Type|
 | 
						|
     +-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
   Type:   20 for Discovery Type
 | 
						|
 | 
						|
   Length:   1
 | 
						|
 | 
						|
   Discovery Type:   An 8-bit value indicating how the WTP discovered
 | 
						|
      the AC.  The following values are supported:
 | 
						|
 | 
						|
      0 -  Unknown
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 64]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-65" id="page-65" href="#page-65" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
      1 -  Static Configuration
 | 
						|
 | 
						|
      2 -  DHCP
 | 
						|
 | 
						|
      3 -  DNS
 | 
						|
 | 
						|
      4 -  AC Referral (used when the AC was configured either through
 | 
						|
         the AC IPv4 List or AC IPv6 List message element)
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.21" href="#section-4.6.21">4.6.21</a>.  Duplicate IPv4 Address</span>
 | 
						|
 | 
						|
   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
 | 
						|
   address that the WTP is currently using.
 | 
						|
 | 
						|
   The WTP MUST transmit this message element with the status set to 1
 | 
						|
   after it has detected a duplicate IP address.  When the WTP detects
 | 
						|
   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 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                           |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |     Status    |     Length      |         MAC Address ...
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
   Type:   21 for Duplicate IPv4 Address
 | 
						|
 | 
						|
   Length:   >= 12
 | 
						|
 | 
						|
   IP Address:   The IP Address currently used by the WTP.
 | 
						|
 | 
						|
   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.
 | 
						|
 | 
						|
   Length:  The length of the MAC Address field.
 | 
						|
 | 
						|
   MAC Address:   The MAC Address of the offending device.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.22" href="#section-4.6.22">4.6.22</a>.  Duplicate IPv6 Address</span>
 | 
						|
 | 
						|
   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
 | 
						|
   that the WTP is currently using.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 65]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-66" id="page-66" href="#page-66" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   The WTP MUST transmit this message element with the status set to 1
 | 
						|
   after it has detected a duplicate IP address.  When the WTP detects
 | 
						|
   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 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                           |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |     Status    |     Length      |         MAC Address ...
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
   Type:   23 for Duplicate IPv6 Address
 | 
						|
 | 
						|
   Length:   >= 24
 | 
						|
 | 
						|
   IP Address:   The IP Address currently used by the WTP.
 | 
						|
 | 
						|
   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.
 | 
						|
 | 
						|
   Length:  The length of the MAC Address field.
 | 
						|
 | 
						|
   MAC Address:   The MAC Address of the offending device.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.23" href="#section-4.6.23">4.6.23</a>.  Idle Timeout</span>
 | 
						|
 | 
						|
   The Idle Timeout message element is sent by the AC to the WTP to
 | 
						|
   provide the idle timeout value that the WTP SHOULD enforce for its
 | 
						|
   active stations.  The value applies to all radios on the WTP.
 | 
						|
 | 
						|
      0                   1                   2                   3
 | 
						|
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                            Timeout                            |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 66]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-67" id="page-67" href="#page-67" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   Type:   23 for Idle Timeout
 | 
						|
 | 
						|
   Length:   4
 | 
						|
 | 
						|
   Timeout:   The current idle timeout to be enforced by the WTP.  The
 | 
						|
      default value for this message element is specified in
 | 
						|
      <a href="#section-4.8.5">Section 4.8.5</a>.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.24" href="#section-4.6.24">4.6.24</a>.  Image Data</span>
 | 
						|
 | 
						|
   The Image Data message element is present in the Image Data Request
 | 
						|
   message sent by the AC and contains the following fields.
 | 
						|
 | 
						|
      0                   1                   2                   3
 | 
						|
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |     Opcode    |                  Value ...
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
   Type:   24 for Image Data
 | 
						|
 | 
						|
   Length:   >= 1
 | 
						|
 | 
						|
   Opcode:   An 8-bit value representing the transfer opcode.  The
 | 
						|
      following values are supported:
 | 
						|
 | 
						|
      1 -  Image data is included
 | 
						|
 | 
						|
      2 -  Last Image Data Block is included (EOF)
 | 
						|
 | 
						|
      5 -  An error occurred.  Transfer is aborted
 | 
						|
 | 
						|
   Value:   The Image Data field contains up to 1024 characters.  If the
 | 
						|
      block being sent is the last one, the Opcode is set to 2.  The AC
 | 
						|
      MAY opt to abort the data transfer by setting the Opcode to 5.
 | 
						|
      When the Opcode is 5, the Value field has a zero length.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.25" href="#section-4.6.25">4.6.25</a>.  Image Identifier</span>
 | 
						|
 | 
						|
   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.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 67]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-68" id="page-68" href="#page-68" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
      0                   1                   2                   3
 | 
						|
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                       Vendor Identifier                       |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                          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.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.26" href="#section-4.6.26">4.6.26</a>.  Image Information</span>
 | 
						|
 | 
						|
   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 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
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |           File Size           |              Hash             |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                              Hash                             |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                              Hash                             |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                              Hash                             |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |              Hash             |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
   Type:   26 for Image Information
 | 
						|
 | 
						|
   Length:   18
 | 
						|
 | 
						|
   File Size:   A 16-bit value containing the size of the file that will
 | 
						|
      be transfered by the AC to the WTP.
 | 
						|
 | 
						|
   Hash:   A 16 octet hash of the image.  The hash is computed using
 | 
						|
      MD5, using the following pseudo-code:
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 68]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-69" id="page-69" href="#page-69" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
           #include <md5.h>
 | 
						|
           CapwapCreateHash(char *hash, char *image, int image_len)
 | 
						|
           {
 | 
						|
                   MD_CTX context;
 | 
						|
 | 
						|
                   MDInit (&context);
 | 
						|
                   MDUpdate (&context, buffer, len);
 | 
						|
                   MDFinal (hash, &context);
 | 
						|
           }
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.27" href="#section-4.6.27">4.6.27</a>.  Initiate Download</span>
 | 
						|
 | 
						|
   The Initiate Download message element is used by the AC to inform the
 | 
						|
   WTP that the WTP SHOULD initiate a firmware upgrade.  The WTP
 | 
						|
   subsequently transmits an Image Data Request message which includes
 | 
						|
   the Image Download message element.  This message element does not
 | 
						|
   contain any data.
 | 
						|
 | 
						|
   Type:   27 for Initiate Download
 | 
						|
 | 
						|
   Length:   0
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.28" href="#section-4.6.28">4.6.28</a>.  Location Data</span>
 | 
						|
 | 
						|
   The Location Data message element is a variable length byte UTF-8
 | 
						|
   encoded string containing user defined location information (e.g.
 | 
						|
   "Next to Fridge").  This information is configurable by the network
 | 
						|
   administrator, and allows the WTP location to be determined.  The
 | 
						|
   string is not zero terminated.
 | 
						|
 | 
						|
      0
 | 
						|
      0 1 2 3 4 5 6 7
 | 
						|
     +-+-+-+-+-+-+-+-+-
 | 
						|
     | Location ...
 | 
						|
     +-+-+-+-+-+-+-+-+-
 | 
						|
 | 
						|
   Type:   28 for Location Data
 | 
						|
 | 
						|
   Length:   > 0
 | 
						|
 | 
						|
   Location:   A non-zero terminated UTF-8 encoded string containing the
 | 
						|
      WTP location.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.29" href="#section-4.6.29">4.6.29</a>.  Maximum Message Length</span>
 | 
						|
 | 
						|
   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
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 69]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-70" id="page-70" href="#page-70" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   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.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.30" href="#section-4.6.30">4.6.30</a>.  MTU Discovery Padding</span>
 | 
						|
 | 
						|
   The MTU Discovery Padding message element is used as padding to
 | 
						|
   perform MTU discovery, and MUST contain octets of value 0xFF, of any
 | 
						|
   length
 | 
						|
 | 
						|
    0
 | 
						|
      0 1 2 3 4 5 6 7
 | 
						|
     +-+-+-+-+-+-+-+-+
 | 
						|
     |  Padding...
 | 
						|
     +-+-+-+-+-+-+-+-
 | 
						|
 | 
						|
 | 
						|
   Type:   30 for MTU Discovery Padding
 | 
						|
 | 
						|
   Length:   variable
 | 
						|
 | 
						|
   Pad:   A variable length pad.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.31" href="#section-4.6.31">4.6.31</a>.  Radio Administrative State</span>
 | 
						|
 | 
						|
   The Radio Administrative State message element is used to communicate
 | 
						|
   the state of a particular radio.  The Radio Administrative State
 | 
						|
   message element is sent by the AC to change the state of the WTP.
 | 
						|
   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.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 70]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-71" id="page-71" href="#page-71" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
         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
 | 
						|
 | 
						|
   Radio ID:   An 8-bit value representing the radio to configure.  The
 | 
						|
      Radio ID field MAY also include the value of 0xff, which is used
 | 
						|
      to identify the WTP.  If an AC wishes to change the administrative
 | 
						|
      state of a WTP, it includes 0xff in the Radio ID field.
 | 
						|
 | 
						|
   Admin State:   An 8-bit value representing the administrative state
 | 
						|
      of the radio.  The default value for the Admin State field is
 | 
						|
      listed in <a href="#section-4.8.1">Section 4.8.1</a>.  The following values are supported:
 | 
						|
 | 
						|
      1 -  Enabled
 | 
						|
 | 
						|
      2 -  Disabled
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.32" href="#section-4.6.32">4.6.32</a>.  Radio Operational State</span>
 | 
						|
 | 
						|
   The Radio Operational State message element is sent by the WTP to the
 | 
						|
   AC to communicate a radio's operational state.  This message element
 | 
						|
   is included in the Configuration Update Response message by the WTP
 | 
						|
   if it was requested to change the state of its radio, via the Radio
 | 
						|
   Administrative State message element, but was unable to comply to the
 | 
						|
   request.  This message element is included in the Change State Event
 | 
						|
   message when a WTP radio state was changed unexpectedly.  This could
 | 
						|
   occur due to a hardware failure.  Note that the operational state
 | 
						|
   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 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     |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
   Type:   32 for Radio Operational State
 | 
						|
 | 
						|
   Length:   3
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 71]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-72" id="page-72" href="#page-72" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   Radio ID:   The Radio Identifier refers to an interface index on the
 | 
						|
      WTP.  A value of 0xFF is invalid, as it is not possible to change
 | 
						|
      the WTP's operational state.
 | 
						|
 | 
						|
   State:   An 8-bit boolean value representing the state of the radio.
 | 
						|
      A value of one disables the radio, while a value of two enables
 | 
						|
      it.
 | 
						|
 | 
						|
   Cause:   When a radio is inoperable, the cause field contains the
 | 
						|
      reason the radio is out of service.  The following values are
 | 
						|
      supported:
 | 
						|
 | 
						|
      0 -  Normal
 | 
						|
 | 
						|
      1 -  Radio Failure
 | 
						|
 | 
						|
      2 -  Software Failure
 | 
						|
 | 
						|
      3 -  Administratively Set
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.33" href="#section-4.6.33">4.6.33</a>.  Result Code</span>
 | 
						|
 | 
						|
   The Result Code message element value is a 32-bit integer value,
 | 
						|
   indicating the result of the Request message corresponding to the
 | 
						|
   Sequence Number included in the Response message.
 | 
						|
 | 
						|
      0                   1                   2                   3
 | 
						|
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                         Result Code                           |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
   Type:   33 for Result Code
 | 
						|
 | 
						|
   Length:   4
 | 
						|
 | 
						|
   Result Code:   The following values are defined:
 | 
						|
 | 
						|
      0  Success
 | 
						|
 | 
						|
      1  Failure (AC List message element MUST be present)
 | 
						|
 | 
						|
      2  Success (NAT detected)
 | 
						|
 | 
						|
      3  Join Failure (unspecified)
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 72]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-73" id="page-73" href="#page-73" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
      4  Join Failure (Resource Depletion)
 | 
						|
 | 
						|
      5  Join Failure (Unknown Source)
 | 
						|
 | 
						|
      6  Join Failure (Incorrect Data)
 | 
						|
 | 
						|
      7  Join Failure (Session ID already in use)
 | 
						|
 | 
						|
      8  Join Failure (WTP Hardware not supported)
 | 
						|
 | 
						|
      9  Join Failure (Binding Not Supported)
 | 
						|
 | 
						|
      10 Reset Failure (Unable to Reset)
 | 
						|
 | 
						|
      11 Reset Failure (Firmware Write Error)
 | 
						|
 | 
						|
      12 Configuration Failure (Unable to Apply Requested Configuration
 | 
						|
         - Service Provided Anyhow)
 | 
						|
 | 
						|
      13 Configuration Failure (Unable to Apply Requested Configuration
 | 
						|
         - Service Not Provided)
 | 
						|
 | 
						|
      14 Image Data Error (Invalid Checksum)
 | 
						|
 | 
						|
      15 Image Data Error (Invalid Data Length)
 | 
						|
 | 
						|
      16 Image Data Error (Other Error)
 | 
						|
 | 
						|
      17 Image Data Error (Image Already Present)
 | 
						|
 | 
						|
      18 Message Unexpected (Invalid in current state)
 | 
						|
 | 
						|
      19 Message Unexpected (Unrecognized Request)
 | 
						|
 | 
						|
      20 Failure - Missing Mandatory Message Element
 | 
						|
 | 
						|
      21 Failure - Unrecognized Message Element
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.34" href="#section-4.6.34">4.6.34</a>.  Returned Message Element</span>
 | 
						|
 | 
						|
   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.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 73]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-74" id="page-74" href="#page-74" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
      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
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |    Reason     |       Message Element...
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
   Type:   34 for Returned Message Element
 | 
						|
 | 
						|
   Length:   >= 1
 | 
						|
 | 
						|
   Reason:   The reason why the configuration in the offending message
 | 
						|
      element could not be applied by the WTP.
 | 
						|
 | 
						|
      1 -  Unknown Message Element
 | 
						|
 | 
						|
      2 -  Unsupported Message Element
 | 
						|
 | 
						|
      3 -  Unknown Message Element Value
 | 
						|
 | 
						|
      4 -  Unsupported Message Element Value
 | 
						|
 | 
						|
   Message Element:   The Message Element field encapsulates the message
 | 
						|
      element sent by the AC in the Configuration Status Response
 | 
						|
      message that caused the error.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.35" href="#section-4.6.35">4.6.35</a>.  Session ID</span>
 | 
						|
 | 
						|
   The Session ID message element value contains a randomly generated
 | 
						|
   unsigned 32-bit integer.
 | 
						|
 | 
						|
      0                   1                   2                   3
 | 
						|
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                           Session ID                          |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
 | 
						|
   Type:   35 for Session ID
 | 
						|
 | 
						|
   Length:   16
 | 
						|
 | 
						|
   Session ID:   A 32-bit unsigned integer used as a random session
 | 
						|
      identifier
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 74]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-75" id="page-75" href="#page-75" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.36" href="#section-4.6.36">4.6.36</a>.  Statistics Timer</span>
 | 
						|
 | 
						|
   The Statistics Timer message element value is used by the AC to
 | 
						|
   inform the WTP of the frequency with which it expects to receive
 | 
						|
   updated statistics.
 | 
						|
 | 
						|
      0                   1
 | 
						|
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |        Statistics Timer       |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
   Type:   36 for Statistics Timer
 | 
						|
 | 
						|
   Length:   2
 | 
						|
 | 
						|
   Statistics Timer:   A 16-bit unsigned integer indicating the time, in
 | 
						|
      seconds.  The default value for this timer is specified in
 | 
						|
      <a href="#section-4.7.12">Section 4.7.12</a>.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.37" href="#section-4.6.37">4.6.37</a>.  Vendor Specific Payload</span>
 | 
						|
 | 
						|
   The Vendor Specific Payload message element is used to communicate
 | 
						|
   vendor specific information between the WTP and the AC.  The message
 | 
						|
   element uses the following format:
 | 
						|
 | 
						|
      0                   1                   2                   3
 | 
						|
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                       Vendor Identifier                       |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |          Element ID           |   Value...    |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
   Type:   37 for Vendor Specific
 | 
						|
 | 
						|
   Length:   >= 7
 | 
						|
 | 
						|
   Vendor Identifier:   A 32-bit value containing the IANA assigned "SMI
 | 
						|
      Network Management Private Enterprise Codes" [<a href="#ref-14" title=""Assigned Numbers: RFC 1700 is Replaced by an On- line Database"">14</a>]
 | 
						|
 | 
						|
   Element ID:   A 16-bit Element Identifier which is managed by the
 | 
						|
      vendor.
 | 
						|
 | 
						|
   Value:   The value associated with the vendor specific element.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 75]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-76" id="page-76" href="#page-76" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.38" href="#section-4.6.38">4.6.38</a>.  WTP Board Data</span>
 | 
						|
 | 
						|
   The WTP Board Data message element is sent by the WTP to the AC and
 | 
						|
   contains information about the hardware present.
 | 
						|
 | 
						|
      0                   1                   2                   3
 | 
						|
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                       Vendor Identifier                       |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |         Type=0                 |             Length           |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                          Value...
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |         Type=1                 |             Length           |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                          Value...
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |  Optional additional vendor specific WTP board data TLVs.....
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
 | 
						|
   Type:   38 for WTP Board Data
 | 
						|
 | 
						|
   Length:   >=14
 | 
						|
 | 
						|
   Vendor Identifier:   A 32-bit value containing the IANA assigned "SMI
 | 
						|
      Network Management Private Enterprise Codes"
 | 
						|
 | 
						|
   Type:   The following values are supported:
 | 
						|
 | 
						|
      0 - WTP Model Number:   The WTP Model Number MUST be included in
 | 
						|
         the WTP Board Data message element.
 | 
						|
 | 
						|
      1 - WTP Serial Number:   The WTP Serial Number MUST be included in
 | 
						|
         the WTP Board Data message element.
 | 
						|
 | 
						|
      2 - Board ID:   A hardware identifier, which MAY be included in
 | 
						|
         the WTP Board Data mesage element.
 | 
						|
 | 
						|
      3 - Board Revision   A revision number of the board, which MAY be
 | 
						|
         included in the WTP Board Data message element.
 | 
						|
 | 
						|
      4 - Base MAC Addres   The WTP's Base MAC Address, which MAY be
 | 
						|
         assigned to the primary Ethernet interface.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 76]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-77" id="page-77" href="#page-77" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.39" href="#section-4.6.39">4.6.39</a>.  WTP Descriptor</span>
 | 
						|
 | 
						|
   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 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    |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                       Vendor Identifier                       |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |         Type=0                 |             Length           |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                          Value...
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                       Vendor Identifier                       |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |         Type=1                 |             Length           |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                          Value...
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                       Vendor Identifier                       |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |         Type=2                 |             Length           |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                          Value...
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                       Vendor Identifier                       |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |         Type=3                 |             Length           |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                          Value...
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
 | 
						|
   Type:   39 for WTP Descriptor
 | 
						|
 | 
						|
   Length:   >= 31
 | 
						|
 | 
						|
   Max Radios:   An 8-bit value representing the number of radios (where
 | 
						|
      each radio is identified via the Radio ID field) supported by the
 | 
						|
      WTP.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 77]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-78" id="page-78" href="#page-78" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   Radios in use:   An 8-bit value representing the number of radios in
 | 
						|
      use in the WTP.
 | 
						|
 | 
						|
   Encryption Capabilities:   This 16-bit field is used by the WTP to
 | 
						|
      communicate its capabilities to the AC.  A WTP that does not have
 | 
						|
      any encryption capabilities sets this field to zero (0).  Refer to
 | 
						|
      the specific wireless binding for further specification of the
 | 
						|
      Encryption Capabilities field.
 | 
						|
 | 
						|
   Vendor Identifier:   A 32-bit value containing the IANA assigned "SMI
 | 
						|
      Network Management Private Enterprise Codes".
 | 
						|
 | 
						|
   Type:   The following values are supported.  The Hardware Version,
 | 
						|
      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 hardware version number.
 | 
						|
 | 
						|
      1 - Active Software Version:   The WTP running software 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.
 | 
						|
 | 
						|
   Value:   Vendor specific data of WTP information encoded in the UTF-8
 | 
						|
      format.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.40" href="#section-4.6.40">4.6.40</a>.  WTP Fallback</span>
 | 
						|
 | 
						|
   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
 | 
						|
   detects its preferred AC, and is not currently connected to it.
 | 
						|
 | 
						|
      0
 | 
						|
      0 1 2 3 4 5 6 7
 | 
						|
     +-+-+-+-+-+-+-+-+
 | 
						|
     |     Mode      |
 | 
						|
     +-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
   Type:   40 for WTP Fallback
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 78]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-79" id="page-79" href="#page-79" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   Length:   1
 | 
						|
 | 
						|
   Mode:   The 8-bit value indicates the status of automatic CAPWAP
 | 
						|
      fallback on the WTP.  When enabled, if the WTP detects that its
 | 
						|
      primary AC is available, and that the WTP is not connected to the
 | 
						|
      primary AC, the WTP SHOULD automatically disconnect from its
 | 
						|
      current AC and reconnect to its primary AC.  If disabled, the WTP
 | 
						|
      will only reconnect to its primary AC through manual intervention
 | 
						|
      (e.g., through the Reset Request message).  The default value for
 | 
						|
      this field is specified in <a href="#section-4.8.10">Section 4.8.10</a>.  The following values
 | 
						|
      are supported:
 | 
						|
 | 
						|
      1 -  Enabled
 | 
						|
 | 
						|
      2 -  Disabled
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.41" href="#section-4.6.41">4.6.41</a>.  WTP Frame Tunnel Mode</span>
 | 
						|
 | 
						|
   The WTP Frame Tunnel Mode message element allows the WTP to
 | 
						|
   communicate the tunneling modes of operation which it supports to the
 | 
						|
   AC.  A WTP that advertises support for all types allows the AC to
 | 
						|
   select which type will be used, based on its local policy.
 | 
						|
 | 
						|
      0
 | 
						|
      0 1 2 3 4 5 6 7
 | 
						|
     +-+-+-+-+-+-+-+-+
 | 
						|
     | Tunnel Mode   |
 | 
						|
     +-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
   Type:   41 for WTP Frame Tunnel Mode
 | 
						|
 | 
						|
   Length:   1
 | 
						|
 | 
						|
   Frame Tunnel Mode:   The Frame Tunnel mode specifies the tunneling
 | 
						|
      modes for station data that are supported by the WTP.  The
 | 
						|
      following values are supported:
 | 
						|
 | 
						|
      1 - Local Bridging:   When Local Bridging is used, the WTP does
 | 
						|
         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
 | 
						|
         set to Split-MAC.
 | 
						|
 | 
						|
      2 - 802.3 Frame Tunnel Mode:   The 802.3 Frame Tunnel Mode
 | 
						|
         requires the WTP and AC to encapsulate all user payload as
 | 
						|
         native IEEE 802.3 frames (see <a href="#section-4.4">Section 4.4</a>).  All user traffic
 | 
						|
         is tunneled to the AC.  This value MUST NOT be used when the
 | 
						|
         WTP MAC Type is set to Split-MAC.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 79]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-80" id="page-80" href="#page-80" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
      4 - Native Frame Tunnel Mode:   Native Frame Tunnel mode requires
 | 
						|
         the WTP and AC to encapsulate all user payloads as native
 | 
						|
         wireless frames, as defined by the wireless binding (see for
 | 
						|
         example <a href="#section-4.4">Section 4.4</a>).
 | 
						|
 | 
						|
      7 - All:   The WTP is capable of supporting all frame tunnel
 | 
						|
         modes.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.42" href="#section-4.6.42">4.6.42</a>.  WTP IPv4 IP Address</span>
 | 
						|
 | 
						|
   The WTP IPv4 address is used to perform NAT detection.
 | 
						|
 | 
						|
      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
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                      WTP IPv4 IP Address                      |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
 | 
						|
   Type:   42 for WTP IPv4 IP Address
 | 
						|
 | 
						|
   Length:   4
 | 
						|
 | 
						|
   WTP IPv4 IP Address:   The IPv4 address from which the WTP is sending
 | 
						|
      packets.  This field is used for NAT detection.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.43" href="#section-4.6.43">4.6.43</a>.  WTP IPv6 IP Address</span>
 | 
						|
 | 
						|
   The WTP IPv6 address is used to perform NAT detection (e.g., IPv4 to
 | 
						|
   IPv6 NAT to help with technology transition).
 | 
						|
 | 
						|
      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
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                      WTP IPv6 IP Address                      |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                      WTP IPv6 IP Address                      |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                      WTP IPv6 IP Address                      |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                      WTP IPv6 IP Address                      |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 80]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-81" id="page-81" href="#page-81" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   Type:   43 for WTP IPv6 IP Address
 | 
						|
 | 
						|
   Length:   32
 | 
						|
 | 
						|
   WTP IPv6 IP Address:   The IPv6 address from which the WTP is sending
 | 
						|
      packets.  This field is used for NAT detection.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.44" href="#section-4.6.44">4.6.44</a>.  WTP MAC Type</span>
 | 
						|
 | 
						|
   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
 | 
						|
   modes allows the AC to select the mode to use, based on local policy.
 | 
						|
 | 
						|
      0
 | 
						|
      0 1 2 3 4 5 6 7
 | 
						|
     +-+-+-+-+-+-+-+-+
 | 
						|
     |   MAC Type    |
 | 
						|
     +-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
   Type:   44 for WTP MAC Type
 | 
						|
 | 
						|
   Length:   1
 | 
						|
 | 
						|
   MAC Type:   The MAC mode of operation supported by the WTP.  The
 | 
						|
      following values are supported
 | 
						|
 | 
						|
      0 - Local-MAC:   Local-MAC is the default mode that MUST be
 | 
						|
         supported by all WTPs.
 | 
						|
 | 
						|
      1 - Split-MAC:   Split-MAC support is optional, and allows the AC
 | 
						|
         to receive and process native wireless frames.
 | 
						|
 | 
						|
      2 - Both:   WTP is capable of supporting both Local-MAC and Split-
 | 
						|
         MAC.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.45" href="#section-4.6.45">4.6.45</a>.  WTP Name</span>
 | 
						|
 | 
						|
   The WTP Name message element is a variable length byte UTF-8 encoded
 | 
						|
   string.  The string is not zero terminated.
 | 
						|
 | 
						|
      0
 | 
						|
      0 1 2 3 4 5 6 7
 | 
						|
     +-+-+-+-+-+-+-+-+-
 | 
						|
     | WTP Name ...
 | 
						|
     +-+-+-+-+-+-+-+-+-
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 81]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-82" id="page-82" href="#page-82" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   Type:   45 for WTP Name
 | 
						|
 | 
						|
   Length:   variable
 | 
						|
 | 
						|
   WTP Name:   A non-zero terminated UTF-8 encoded string containing the
 | 
						|
      WTP name.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.46" href="#section-4.6.46">4.6.46</a>.  WTP Operational Statistics</span>
 | 
						|
 | 
						|
   The WTP Operational Statistics message element is sent by the WTP to
 | 
						|
   the AC to provide statistics related to the operation of the WTP.
 | 
						|
 | 
						|
      0                   1                   2                   3
 | 
						|
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |   Radio ID   | Tx Queue Level | Wireless Link Frames per Sec  |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
 | 
						|
   Type:   46 for WTP Operational Statistics
 | 
						|
 | 
						|
   Length:   4
 | 
						|
 | 
						|
   Radio ID:   The radio ID of the radio to which the statistics apply.
 | 
						|
 | 
						|
   Wireless Transmit Queue Level:   The percentage of Wireless Transmit
 | 
						|
      queue utilization, calculated as the sum of utilized transmit
 | 
						|
      queue lengths divided by the sum of maximum transmit queue
 | 
						|
      lengths, multiplied by 100.  The Wireless Transmit Queue Level is
 | 
						|
      representative of congestion conditions over wireless interfaces
 | 
						|
      between the WTP and stations.
 | 
						|
 | 
						|
   Wireless Link Frames per Sec:   The number of frames transmitted or
 | 
						|
      received per second by the WTP over the air interface.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.47" href="#section-4.6.47">4.6.47</a>.  WTP Radio Statistics</span>
 | 
						|
 | 
						|
   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
 | 
						|
   radio has been reset.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 82]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-83" id="page-83" href="#page-83" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
      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
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |   Radio ID    | Last Fail Type|       Reset Count             |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |     SW Failure Count          |        HW Failure Count       |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |    Other  Failure Count       |   Unknown Failure Count       |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |   Config Update Count         |    Channel Change Count       |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |   Band Change Count           |    Current Noise Floor        |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
   Type:   47 for WTP Radio Statistics
 | 
						|
 | 
						|
   Length:   20
 | 
						|
 | 
						|
   Radio ID:   The radio ID of the radio to which the statistics apply.
 | 
						|
 | 
						|
   Last Failure Type:   The last WTP failure.  The following values are
 | 
						|
      supported:
 | 
						|
 | 
						|
      0 -  Statistic Not Supported
 | 
						|
 | 
						|
      1 -  Software Failure
 | 
						|
 | 
						|
      2 -  Hardware Failure
 | 
						|
 | 
						|
      3 -  Other Failure
 | 
						|
 | 
						|
      255 -  Unknown (e.g., WTP doesn't keep track of info)
 | 
						|
 | 
						|
   Reset Count:   The number of times that that the radio has been
 | 
						|
      reset.
 | 
						|
 | 
						|
   SW Failure Count:   The number of times that the radio has failed due
 | 
						|
      to software related reasons.
 | 
						|
 | 
						|
   HW Failure Count:   The number of times that the radio has failed due
 | 
						|
      to hardware related reasons.
 | 
						|
 | 
						|
   Other Failure Count:   The number of times that the radio has failed
 | 
						|
      due to known reasons, other than software or hardware failure.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 83]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-84" id="page-84" href="#page-84" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   Unknown Failure Count:   The number of times that the radio has
 | 
						|
      failed for unknown reasons.
 | 
						|
 | 
						|
   Config Update Count:   The number of times that the radio
 | 
						|
      configuration has been updated.
 | 
						|
 | 
						|
   Channel Change Count:   The number of times that the radio channel
 | 
						|
      has been changed.
 | 
						|
 | 
						|
   Band Change Count:   The number of times that the radio has changed
 | 
						|
      frequency bands.
 | 
						|
 | 
						|
   Current Noise Floor:   A signed integer which indicates the noise
 | 
						|
      floor of the radio receiver in units of dBm.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.48" href="#section-4.6.48">4.6.48</a>.  WTP Reboot Statistics</span>
 | 
						|
 | 
						|
   The WTP Reboot Statistics message element is sent by the WTP to the
 | 
						|
   AC to communicate reasons why WTP reboots have occurred.
 | 
						|
 | 
						|
      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
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |         Reboot Count          |    AC Initiated Count         |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |      Link Failure Count       |    SW Failure Count           |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |      HW Failure Count         |    Other Failure Count        |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |      Unknown Failure Count    |Last Failure Type|
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
 | 
						|
   Type:   48 for WTP Reboot Statistics
 | 
						|
 | 
						|
   Length:   15
 | 
						|
 | 
						|
   Reboot Count:   The number of reboots that have occurred due to a WTP
 | 
						|
      crash.  A value of 65535 implies that this information is not
 | 
						|
      available on the WTP.
 | 
						|
 | 
						|
   AC Initiated Count:   The number of reboots that have occurred at the
 | 
						|
      request of a CAPWAP protocol message, such as a change in
 | 
						|
      configuration that required a reboot or an explicit CAPWAP
 | 
						|
      protocol reset request.  A value of 65535 implies that this
 | 
						|
      information is not available on the WTP.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 84]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-85" id="page-85" href="#page-85" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   Link Failure Count:   The number of times that a CAPWAP protocol
 | 
						|
      connection with an AC has failed due to link failure.
 | 
						|
 | 
						|
   SW Failure Count:   The number of times that a CAPWAP protocol
 | 
						|
      connection with an AC has failed due to software related reasons.
 | 
						|
 | 
						|
   HW Failure Count:   The number of times that a CAPWAP protocol
 | 
						|
      connection with an AC has failed due to hardware related reasons.
 | 
						|
 | 
						|
   Other Failure Count:   The number of times that a CAPWAP protocol
 | 
						|
      connection with an AC has failed due to known reasons, other than
 | 
						|
      AC initiated, link, SW or HW failure.
 | 
						|
 | 
						|
   Unknown Failure Count:   The number of times that a CAPWAP protocol
 | 
						|
      connection with an AC has failed for unknown reasons.
 | 
						|
 | 
						|
   Last Failure Type:   The failure type of the most recent WTP failure.
 | 
						|
      The following values are supported:
 | 
						|
 | 
						|
      0 -  Not Supported
 | 
						|
 | 
						|
      1 -  AC Initiated (see <a href="#section-9.2">Section 9.2</a>)
 | 
						|
 | 
						|
      2 -  Link Failure
 | 
						|
 | 
						|
      3 -  Software Failure
 | 
						|
 | 
						|
      4 -  Hardware Failure
 | 
						|
 | 
						|
      5 -  Other Failure
 | 
						|
 | 
						|
      255 -  Unknown (e.g., WTP doesn't keep track of info)
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.6.49" href="#section-4.6.49">4.6.49</a>.  WTP Static IP Address Information</span>
 | 
						|
 | 
						|
   The WTP Static IP Address Information message element is used by an
 | 
						|
   AC to configure or clear a previously configured static IP address on
 | 
						|
   a WTP.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 85]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-86" id="page-86" href="#page-86" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
      0                   1                   2                   3
 | 
						|
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                          IP Address                           |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                            Netmask                            |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |                            Gateway                            |
 | 
						|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | 
						|
     |    Static     |
 | 
						|
     +-+-+-+-+-+-+-+-+
 | 
						|
 | 
						|
   Type:   49 for WTP Static IP Address Information
 | 
						|
 | 
						|
   Length:   13
 | 
						|
 | 
						|
   IP Address:   The IP Address to assign to the WTP.  This field is
 | 
						|
      only valid if the static field is set to one.
 | 
						|
 | 
						|
   Netmask:   The IP Netmask.  This field is only valid if the static
 | 
						|
      field is set to one.
 | 
						|
 | 
						|
   Gateway:   The IP address of the gateway.  This field is only valid
 | 
						|
      if the static field is set to one.
 | 
						|
 | 
						|
   Netmask:   The IP Netmask.  This field is only valid if the static
 | 
						|
      field is set to one.
 | 
						|
 | 
						|
   Static:   An 8-bit boolean stating whether the WTP should use a
 | 
						|
      static IP address or not.  A value of zero disables the static IP
 | 
						|
      address, while a value of one enables it.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-4.7" href="#section-4.7">4.7</a>.  CAPWAP Protocol Timers</span>
 | 
						|
 | 
						|
   This section contains the CAPWAP timers.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.7.1" href="#section-4.7.1">4.7.1</a>.  ChangeStatePendingTimer</span>
 | 
						|
 | 
						|
   The maximum time, in seconds, the AC will wait for the Change State
 | 
						|
   Event Request from the WTP after having transmitted a successful
 | 
						|
   Configuration Status Response message.  The default value is 25
 | 
						|
   seconds.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.7.2" href="#section-4.7.2">4.7.2</a>.  DataChannelDeadInterval</span>
 | 
						|
 | 
						|
   The minimum time, in seconds, a WTP MUST wait without having received
 | 
						|
   a Data Channel Keep Alive packet before the destination for the Data
 | 
						|
   Channel Keep Alive packets may be considered dead.  The value of this
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 86]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-87" id="page-87" href="#page-87" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   timer MUST be no less than 2*DataChannelKeepAlive seconds and no
 | 
						|
   greater that 240 seconds.
 | 
						|
 | 
						|
   Default: 5
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.7.3" href="#section-4.7.3">4.7.3</a>.  DiscoveryInterval</span>
 | 
						|
 | 
						|
   The minimum time, in seconds, that a WTP MUST wait after receiving a
 | 
						|
   Discovery Response message, before initiating a DTLS handshake.
 | 
						|
 | 
						|
   Default: 5
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.7.4" href="#section-4.7.4">4.7.4</a>.  DTLSSessionDelete</span>
 | 
						|
 | 
						|
   The minimum time, in seconds, a WTP MUST wait for DTLS session
 | 
						|
   deletion.
 | 
						|
 | 
						|
   Default: 5
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.7.5" href="#section-4.7.5">4.7.5</a>.  EchoInterval</span>
 | 
						|
 | 
						|
   The minimum time, in seconds, between sending Echo Request messages
 | 
						|
   to the AC with which the WTP has joined.
 | 
						|
 | 
						|
   Default: 30
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.7.6" href="#section-4.7.6">4.7.6</a>.  MaxDiscoveryInterval</span>
 | 
						|
 | 
						|
   The maximum time allowed between sending Discovery Request messages,
 | 
						|
   in seconds.  This value MUST be no less than 2 seconds and no greater
 | 
						|
   than 180 seconds.
 | 
						|
 | 
						|
   Default: 20 seconds.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.7.7" href="#section-4.7.7">4.7.7</a>.  MaxFailedDTLSSessionRetry</span>
 | 
						|
 | 
						|
   The maximum number of failed DTLS session establishment attempts
 | 
						|
   before the CAPWAP device enters a silent period.
 | 
						|
 | 
						|
   Default: 3.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.7.8" href="#section-4.7.8">4.7.8</a>.  NeighborDeadInterval</span>
 | 
						|
 | 
						|
   The minimum time, in seconds, a WTP MUST wait without having received
 | 
						|
   an Echo Response message to its Echo Request message, before the
 | 
						|
   destination for the Echo Request may be considered dead.  This value
 | 
						|
   MUST be no less than 2*EchoInterval seconds and no greater than 240
 | 
						|
   seconds.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 87]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-88" id="page-88" href="#page-88" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   Default: 60
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.7.9" href="#section-4.7.9">4.7.9</a>.  ResponseTimeout</span>
 | 
						|
 | 
						|
   The minimum time, in seconds, in which the WTP or AC MUST respond to
 | 
						|
   a CAPWAP Request message.
 | 
						|
 | 
						|
   Default: 1
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.7.10" href="#section-4.7.10">4.7.10</a>.  RetransmitInterval</span>
 | 
						|
 | 
						|
   The minimum time, in seconds, in which a non-acknowledged CAPWAP
 | 
						|
   packet will be retransmitted.
 | 
						|
 | 
						|
   Default: 3
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.7.11" href="#section-4.7.11">4.7.11</a>.  SilentInterval</span>
 | 
						|
 | 
						|
   For a WTP, this is the minimum time, in seconds, a WTP MUST wait
 | 
						|
   before it MAY again send Discovery Request messages or attempt to a
 | 
						|
   establish DTLS session.  For an AC, this is the minimum time, in
 | 
						|
   seconds, during which the AC SHOULD ignore all CAPWAP and DTLS
 | 
						|
   packets received from the WTP that is in the Sulking state.
 | 
						|
 | 
						|
   Default: 30
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.7.12" href="#section-4.7.12">4.7.12</a>.  StatisticsTimer</span>
 | 
						|
 | 
						|
   The default Statistics Interval is 120 seconds.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.7.13" href="#section-4.7.13">4.7.13</a>.  WaitDTLS</span>
 | 
						|
 | 
						|
   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
 | 
						|
   30 seconds.
 | 
						|
 | 
						|
   Default: 60
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.7.14" href="#section-4.7.14">4.7.14</a>.  WaitJoin</span>
 | 
						|
 | 
						|
   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
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 88]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-89" id="page-89" href="#page-89" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-4.8" href="#section-4.8">4.8</a>.  CAPWAP Protocol Variables</span>
 | 
						|
 | 
						|
   A WTP or AC that implements the CAPWAP Discovery phase MUST allow for
 | 
						|
   the following variables to be configured by system management;
 | 
						|
   default values are specified, making explicit configuration
 | 
						|
   unnecessary in many cases.  If the default values are explicitly
 | 
						|
   overriden by the AC, the WTP MUST save the values sent by the AC.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.8.1" href="#section-4.8.1">4.8.1</a>.  AdminState</span>
 | 
						|
 | 
						|
   The default Administrative State value is enabled (1).
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.8.2" href="#section-4.8.2">4.8.2</a>.  DiscoveryCount</span>
 | 
						|
 | 
						|
   The number of Discovery Request messages transmitted by a WTP to a
 | 
						|
   single AC.  This is a monotonically increasing counter.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.8.3" href="#section-4.8.3">4.8.3</a>.  FailedDTLSAuthFailCount</span>
 | 
						|
 | 
						|
   The number of failed DTLS session establishment attempts due to
 | 
						|
   authentication failures.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.8.4" href="#section-4.8.4">4.8.4</a>.  FailedDTLSSessionCount</span>
 | 
						|
 | 
						|
   The number of failed DTLS session establishment attempts.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.8.5" href="#section-4.8.5">4.8.5</a>.  IdleTimeout</span>
 | 
						|
 | 
						|
   The default Idle Timeout is 300 seconds.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.8.6" href="#section-4.8.6">4.8.6</a>.  MaxDiscoveries</span>
 | 
						|
 | 
						|
   The maximum number of Discovery Request messages that will be sent
 | 
						|
   after a WTP boots.
 | 
						|
 | 
						|
   Default: 10
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.8.7" href="#section-4.8.7">4.8.7</a>.  MaxRetransmit</span>
 | 
						|
 | 
						|
   The maximum number of retransmissions for a given CAPWAP packet
 | 
						|
   before the link layer considers the peer dead.
 | 
						|
 | 
						|
   Default: 5
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.8.8" href="#section-4.8.8">4.8.8</a>.  ReportInterval</span>
 | 
						|
 | 
						|
   The default Report Interval is 120 seconds.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 89]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-90" id="page-90" href="#page-90" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.8.9" href="#section-4.8.9">4.8.9</a>.  RetransmitCount</span>
 | 
						|
 | 
						|
   The number of retransmissions for a given CAPWAP packet.  This is a
 | 
						|
   monotonically increasing counter.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.8.10" href="#section-4.8.10">4.8.10</a>.  WTPFallBack</span>
 | 
						|
 | 
						|
   The default WTP Fallback value is enabled (1).
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-4.9" href="#section-4.9">4.9</a>.  WTP Saved Variables</span>
 | 
						|
 | 
						|
   In addition to the values defined in <a href="#section-4.8">Section 4.8</a>, the following
 | 
						|
   values SHOULD be saved on the WTP in non-volatile memory.  CAPWAP
 | 
						|
   wireless bindings MAY define additional values that SHOULD be stored
 | 
						|
   on the WTP.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.9.1" href="#section-4.9.1">4.9.1</a>.  AdminRebootCount</span>
 | 
						|
 | 
						|
   The number of times the WTP has rebooted administratively, defined in
 | 
						|
   <a href="#section-4.6.48">Section 4.6.48</a>.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.9.2" href="#section-4.9.2">4.9.2</a>.  FrameEncapType</span>
 | 
						|
 | 
						|
   For WTPs that support multiple Frame Encapsulation Types, it is
 | 
						|
   useful to save the value configured by the AC.  The Frame
 | 
						|
   Encapsulation Type is defined in <a href="#section-4.6.41">Section 4.6.41</a>.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.9.3" href="#section-4.9.3">4.9.3</a>.  LastRebootReason</span>
 | 
						|
 | 
						|
   The reason why the WTP last rebooted, defined in <a href="#section-4.6.48">Section 4.6.48</a>.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.9.4" href="#section-4.9.4">4.9.4</a>.  MacType</span>
 | 
						|
 | 
						|
   For WTPs that support multiple MAC Types, it is useful to save the
 | 
						|
   value configured by the AC.  The MACType is defined in
 | 
						|
   <a href="#section-4.6.44">Section 4.6.44</a>.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.9.5" href="#section-4.9.5">4.9.5</a>.  PreferredACs</span>
 | 
						|
 | 
						|
   The preferred ACs, with the index, defined in <a href="#section-4.6.5">Section 4.6.5</a>.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.9.6" href="#section-4.9.6">4.9.6</a>.  RebootCount</span>
 | 
						|
 | 
						|
   The number of times the WTP has rebooted, defined in <a href="#section-4.6.48">Section 4.6.48</a>.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 90]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-91" id="page-91" href="#page-91" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.9.7" href="#section-4.9.7">4.9.7</a>.  Static ACL Table</span>
 | 
						|
 | 
						|
   The static ACL table saved on the WTP, as configured by the Add
 | 
						|
   Static MAC ACL Entry message element, see <a href="#section-4.6.9">Section 4.6.9</a>.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.9.8" href="#section-4.9.8">4.9.8</a>.  Static IP Address</span>
 | 
						|
 | 
						|
   The static IP Address assigned to the WTP, as configured by the WTP
 | 
						|
   Static IP Address Information message element (see <a href="#section-4.6.49">Section 4.6.49</a>).
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.9.9" href="#section-4.9.9">4.9.9</a>.  WTPLinkFailureCount</span>
 | 
						|
 | 
						|
   The number of times the link to the AC has failed, see
 | 
						|
   <a href="#section-4.6.48">Section 4.6.48</a>.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.9.10" href="#section-4.9.10">4.9.10</a>.  WTPLocation</span>
 | 
						|
 | 
						|
   The WTP Location, defined in <a href="#section-4.6.28">Section 4.6.28</a>.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-4.9.11" href="#section-4.9.11">4.9.11</a>.  WTPName</span>
 | 
						|
 | 
						|
   The WTP Name, defined in <a href="#section-4.6.45">Section 4.6.45</a>.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 91]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-92" id="page-92" href="#page-92" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h2"><a class="selflink" name="section-5" href="#section-5">5</a>.  CAPWAP Discovery Operations</span>
 | 
						|
 | 
						|
   The Discovery messages are used by a WTP to determine which ACs are
 | 
						|
   available to provide service, and the capabilities and load of the
 | 
						|
   ACs.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-5.1" href="#section-5.1">5.1</a>.  Discovery Request Message</span>
 | 
						|
 | 
						|
   The Discovery Request message is used by the WTP to automatically
 | 
						|
   discover potential ACs available in the network.  The Discovery
 | 
						|
   Request message provides ACs with the primary capabilities of the
 | 
						|
   WTP.  A WTP must exchange this information to ensure subsequent
 | 
						|
   exchanges with the ACs are consistent with the WTP's functional
 | 
						|
   characteristics.
 | 
						|
 | 
						|
   Discovery Request messages MUST be sent by a WTP in the Discover
 | 
						|
   state after waiting for a random delay less than
 | 
						|
   MaxDiscoveryInterval, after a WTP first comes up or is
 | 
						|
   (re)initialized.  A WTP MUST send no more than the maximum of
 | 
						|
   MaxDiscoveries Discovery Request messages, waiting for a random delay
 | 
						|
   less than MaxDiscoveryInterval between each successive message.
 | 
						|
 | 
						|
   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
 | 
						|
   same time.
 | 
						|
 | 
						|
   Discovery Request messages MUST be sent by a WTP when no Echo
 | 
						|
   Response messages are received for NeighborDeadInterval and the WTP
 | 
						|
   returns to the Idle state.  Discovery Request messages are sent after
 | 
						|
   NeighborDeadInterval.  They MUST be sent after waiting for a random
 | 
						|
   delay less than MaxDiscoveryInterval.  A WTP MAY send up to a maximum
 | 
						|
   of MaxDiscoveries Discovery Request messages, waiting for a random
 | 
						|
   delay less than MaxDiscoveryInterval between each successive message.
 | 
						|
 | 
						|
   If a Discovery Response message is not received after sending the
 | 
						|
   maximum number of Discovery Request messages, the WTP enters the
 | 
						|
   Sulking state and MUST wait for an interval equal to SilentInterval
 | 
						|
   before sending further Discovery Request messages.
 | 
						|
 | 
						|
   Upon receiving a Discovery Request message, the AC will respond with
 | 
						|
   a Discovery Response message sent to the address in the source
 | 
						|
   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,
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 92]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-93" id="page-93" href="#page-93" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   MUST NOT be cleared until another DTLS session has been successfully
 | 
						|
   established, communicated via the DTLSSessionEstablished DTLS
 | 
						|
   notification (see <a href="#section-2.3.2.2">Section 2.3.2.2</a>).
 | 
						|
 | 
						|
   The binding specific WTP Radio Information message element (see
 | 
						|
   <a href="#section-2.1">Section 2.1</a>) 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
 | 
						|
   Request message:
 | 
						|
 | 
						|
   o  Discovery Type, see <a href="#section-4.6.20">Section 4.6.20</a>
 | 
						|
 | 
						|
   o  WTP Board Data, see <a href="#section-4.6.38">Section 4.6.38</a>
 | 
						|
 | 
						|
   o  WTP Descriptor, see <a href="#section-4.6.39">Section 4.6.39</a>
 | 
						|
 | 
						|
   o  WTP Frame Tunnel Mode, see <a href="#section-4.6.41">Section 4.6.41</a>
 | 
						|
 | 
						|
   o  WTP MAC Type, see <a href="#section-4.6.44">Section 4.6.44</a>
 | 
						|
 | 
						|
   o  WTP Radio Information message element(s)that the WTP supports;
 | 
						|
      These are defined by the individual link layer CAPWAP Binding
 | 
						|
      Protocols (see <a href="#section-2.1">Section 2.1</a>).
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-5.2" href="#section-5.2">5.2</a>.  Discovery Response Message</span>
 | 
						|
 | 
						|
   The Discovery Response message provides a mechanism for an AC to
 | 
						|
   advertise its services to requesting WTPs.
 | 
						|
 | 
						|
   When a WTP receives a Discovery Response message, it MUST wait for an
 | 
						|
   interval not less than DiscoveryInterval for receipt of additional
 | 
						|
   Discovery Response messages.  After the DiscoveryInterval elapses,
 | 
						|
   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
 | 
						|
   AC.
 | 
						|
 | 
						|
   One or more binding specific WTP Radio Information message elements
 | 
						|
   (see <a href="#section-2.1">Section 2.1</a>) 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
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 93]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-94" id="page-94" href="#page-94" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   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
 | 
						|
   Response Message:
 | 
						|
 | 
						|
   o  AC Descriptor, see <a href="#section-4.6.1">Section 4.6.1</a>
 | 
						|
 | 
						|
   o  AC Name, see <a href="#section-4.6.4">Section 4.6.4</a>
 | 
						|
 | 
						|
   o  WTP Radio Information message element(s)that the AC supports;
 | 
						|
      These are defined by the individual link layer CAPWAP Binding
 | 
						|
      Protocols (see <a href="#section-2.1">Section 2.1</a> for more information).
 | 
						|
 | 
						|
   o  One of the following message elements MUST be included in the
 | 
						|
      Discovery Response Message:
 | 
						|
 | 
						|
      *  CAPWAP Control IPv4 Address, see <a href="#section-4.6.10">Section 4.6.10</a>
 | 
						|
 | 
						|
      *  CAPWAP Control IPv6 Address, see <a href="#section-4.6.11">Section 4.6.11</a>
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-5.3" href="#section-5.3">5.3</a>.  Primary Discovery Request Message</span>
 | 
						|
 | 
						|
   The Primary Discovery Request message is sent by the WTP to determine
 | 
						|
   whether its preferred (or primary) AC is available.
 | 
						|
 | 
						|
   A Primary Discovery Request message is sent by a WTP when it has a
 | 
						|
   primary AC configured, and is connected to another AC.  This
 | 
						|
   generally occurs as a result of a failover, and is used by the WTP as
 | 
						|
   a means to discover when its primary AC becomes available.  Since the
 | 
						|
   WTP only has a single instance of the CAPWAP state machine, the
 | 
						|
   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
 | 
						|
   more often than the sending of the Echo Request message.
 | 
						|
 | 
						|
   Upon receipt of a Primary Discovery Request message, the AC responds
 | 
						|
   with a Primary Discovery Response message sent to the address in the
 | 
						|
   source address of the received Primary Discovery Request message.
 | 
						|
 | 
						|
   The following message elements MUST be included in the Primary
 | 
						|
   Discovery Request message.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 94]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-95" id="page-95" href="#page-95" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   o  Discovery Type, see <a href="#section-4.6.20">Section 4.6.20</a>
 | 
						|
 | 
						|
   o  WTP Board Data, see <a href="#section-4.6.38">Section 4.6.38</a>
 | 
						|
 | 
						|
   o  WTP Descriptor, see <a href="#section-4.6.39">Section 4.6.39</a>
 | 
						|
 | 
						|
   o  WTP Frame Tunnel Mode, see <a href="#section-4.6.41">Section 4.6.41</a>
 | 
						|
 | 
						|
   o  WTP MAC Type, see <a href="#section-4.6.44">Section 4.6.44</a>
 | 
						|
 | 
						|
   o  WTP Radio Information message element(s)that the WTP supports;
 | 
						|
      These are defined by the individual link layer CAPWAP Binding
 | 
						|
      Protocols (see <a href="#section-2.1">Section 2.1</a> for more information).
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-5.4" href="#section-5.4">5.4</a>.  Primary Discovery Response</span>
 | 
						|
 | 
						|
   The Primary Discovery Response message enables an AC to advertise its
 | 
						|
   availability and services to requesting WTPs that are configured to
 | 
						|
   have the AC as its primary AC.
 | 
						|
 | 
						|
   The Primary Discovery Response message is sent by an AC after
 | 
						|
   receiving a Primary Discovery Request message.
 | 
						|
 | 
						|
   When a WTP receives a Primary Discovery Response message, it may
 | 
						|
   establish a CAPWAP protocol connection to its primary AC, based on
 | 
						|
   the configuration of the WTP Fallback Status message element on the
 | 
						|
   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
 | 
						|
   Discovery Response message.
 | 
						|
 | 
						|
   o  AC Descriptor, see <a href="#section-4.6.1">Section 4.6.1</a>
 | 
						|
 | 
						|
   o  AC Name, see <a href="#section-4.6.4">Section 4.6.4</a>
 | 
						|
 | 
						|
   o  WTP Radio Information message element(s)that the AC supports;
 | 
						|
      These are defined by the individual link layer CAPWAP Binding
 | 
						|
      Protocols (see <a href="#section-2.1">Section 2.1</a> for more information).
 | 
						|
 | 
						|
   One of the following message elements MUST be included in the
 | 
						|
   Discovery Response Message:
 | 
						|
 | 
						|
   o  CAPWAP Control IPv4 Address, see <a href="#section-4.6.10">Section 4.6.10</a>
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 95]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-96" id="page-96" href="#page-96" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   o  CAPWAP Control IPv6 Address, see <a href="#section-4.6.11">Section 4.6.11</a>
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 96]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-97" id="page-97" href="#page-97" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h2"><a class="selflink" name="section-6" href="#section-6">6</a>.  CAPWAP Join Operations</span>
 | 
						|
 | 
						|
   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
 | 
						|
   Response message is used by the the AC to indicate that it will or
 | 
						|
   will not provide service.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-6.1" href="#section-6.1">6.1</a>.  Join Request</span>
 | 
						|
 | 
						|
   The Join Request message is used by a WTP to request service through
 | 
						|
   the AC.  A Join Request message is sent by a WTP after (optionally)
 | 
						|
   receiving one or more Discovery Response messages, and completion of
 | 
						|
   DTLS session establishment.  When an AC receives a Join Request
 | 
						|
   message it responds with a Join Response message.
 | 
						|
 | 
						|
   Upon completion of the DTLS handshake, and receiving the
 | 
						|
   DTLSEstablished notification, the WTP sends the Join Request message
 | 
						|
   to the AC.  When the AC is notified of the DTLS session
 | 
						|
   establishment, it does not clear the WaitDTLS timer until it has
 | 
						|
   received the Join Request message, at which time it sends a Join
 | 
						|
   Response message to the WTP, indicating success or failure.
 | 
						|
 | 
						|
   One or more WTP Radio Information message elements (see <a href="#section-2.1">Section 2.1</a>)
 | 
						|
   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
 | 
						|
   with a failure indication and initiates an abort of the DTLS session
 | 
						|
   via the DTLSAbort command.
 | 
						|
 | 
						|
   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
 | 
						|
   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
 | 
						|
   message.
 | 
						|
 | 
						|
   o  Location Data, see <a href="#section-4.6.28">Section 4.6.28</a>
 | 
						|
 | 
						|
   o  WTP Board Data, see <a href="#section-4.6.38">Section 4.6.38</a>
 | 
						|
 | 
						|
   o  WTP Descriptor, see <a href="#section-4.6.39">Section 4.6.39</a>
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 97]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-98" id="page-98" href="#page-98" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   o  WTP Name, see <a href="#section-4.6.45">Section 4.6.45</a>
 | 
						|
 | 
						|
   o  Session ID, see <a href="#section-4.6.35">Section 4.6.35</a>
 | 
						|
 | 
						|
   o  WTP Frame Tunnel Mode, see <a href="#section-4.6.41">Section 4.6.41</a>
 | 
						|
 | 
						|
   o  WTP MAC Type, see <a href="#section-4.6.44">Section 4.6.44</a>
 | 
						|
 | 
						|
   o  WTP Radio Information message element(s)that the WTP supports;
 | 
						|
      These are defined by the individual link layer CAPWAP Binding
 | 
						|
      Protocols (see <a href="#section-2.1">Section 2.1</a> for more information).
 | 
						|
 | 
						|
   At least one of the following message element MUST be included in the
 | 
						|
   Join Request message.
 | 
						|
 | 
						|
   o  WTP IPv4 IP Address, see <a href="#section-4.6.42">Section 4.6.42</a>
 | 
						|
 | 
						|
   o  WTP IPv6 IP Address, see <a href="#section-4.6.43">Section 4.6.43</a>
 | 
						|
 | 
						|
   The following message element MAY be included in the Join Request
 | 
						|
   message.
 | 
						|
 | 
						|
   o  Maximum Message Length, see <a href="#section-4.6.29">Section 4.6.29</a>
 | 
						|
 | 
						|
   o  WTP Reboot Statistics, see <a href="#section-4.6.48">Section 4.6.48</a>
 | 
						|
 | 
						|
   o  WTP IPv4 IP Address, see <a href="#section-4.6.42">Section 4.6.42</a>
 | 
						|
 | 
						|
   o  WTP IPv6 IP Address, see <a href="#section-4.6.43">Section 4.6.43</a>
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-6.2" href="#section-6.2">6.2</a>.  Join Response</span>
 | 
						|
 | 
						|
   The Join Response message is sent by the AC to indicate to a WTP that
 | 
						|
   it is capable and willing to provide service to the WTP.
 | 
						|
 | 
						|
   The WTP, receiving a Join Response message, checks for success or
 | 
						|
   failure.  If the message indicates success, the WTP clears the
 | 
						|
   WaitDTLS timer for the session and proceeds to the Configure state.
 | 
						|
 | 
						|
   If the WaitDTLS Timer expires prior to reception of the Join Response
 | 
						|
   message, the WTP MUST terminate the handshake, deallocate session
 | 
						|
   state and initiate the DTLSAbort command.
 | 
						|
 | 
						|
   If an invalid (malformed) Join Response message is received, the WTP
 | 
						|
   SHOULD log an informative message detailing the error.  This error
 | 
						|
   MUST be treated in the same manner as AC non-responsiveness.  The
 | 
						|
   WaitDTLS timer will eventually expire, and the WTP MAY (if it is so
 | 
						|
   configured) attempts to join a new AC.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 98]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-99" id="page-99" href="#page-99" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   If one of the WTP Radio Information message elements (see
 | 
						|
   <a href="#section-2.1">Section 2.1</a>) 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 <a href="#section-9.1.1">Section 9.1.1</a>).
 | 
						|
 | 
						|
   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
 | 
						|
   message.
 | 
						|
 | 
						|
   o  AC IPv4 List, see <a href="#section-4.6.2">Section 4.6.2</a>
 | 
						|
 | 
						|
   o  AC IPv6 List, see <a href="#section-4.6.3">Section 4.6.3</a>
 | 
						|
 | 
						|
   o  Image Identifier, see <a href="#section-4.6.25">Section 4.6.25</a>
 | 
						|
 | 
						|
   o  Maximum Message Length, see <a href="#section-4.6.29">Section 4.6.29</a>
 | 
						|
 | 
						|
   The following message elements MUST be included in the Join Response
 | 
						|
   message.
 | 
						|
 | 
						|
   o  Result Code, see <a href="#section-4.6.33">Section 4.6.33</a>
 | 
						|
 | 
						|
   o  AC Descriptor, see <a href="#section-4.6.1">Section 4.6.1</a>
 | 
						|
 | 
						|
   o  AC Name, see <a href="#section-4.6.4">Section 4.6.4</a>
 | 
						|
 | 
						|
   o  WTP Radio Information message element(s)that the AC supports;
 | 
						|
      These are defined by the individual link layer CAPWAP Binding
 | 
						|
      Protocols (see <a href="#section-2.1">Section 2.1</a>).
 | 
						|
 | 
						|
   One of the following message elements MUST be included in the
 | 
						|
   Discovery Response Message:
 | 
						|
 | 
						|
   o  CAPWAP Control IPv4 Address, see <a href="#section-4.6.10">Section 4.6.10</a>
 | 
						|
 | 
						|
   o  CAPWAP Control IPv6 Address, see <a href="#section-4.6.11">Section 4.6.11</a>
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007             [Page 99]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-100" id="page-100" href="#page-100" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h2"><a class="selflink" name="section-7" href="#section-7">7</a>.  Control Channel Management</span>
 | 
						|
 | 
						|
   The Control Channel Management messages are used by the WTP and AC to
 | 
						|
   maintain a control communication channel.  CAPWAP control messages,
 | 
						|
   such as the WTP Event Request message sent from the WTP to the AC
 | 
						|
   indicate to the AC that the WTP is operational.  When such control
 | 
						|
   messages are not being sent, the Echo Request and Echo Response
 | 
						|
   messages are used to maintain the control communication channel.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-7.1" href="#section-7.1">7.1</a>.  Echo Request</span>
 | 
						|
 | 
						|
   The Echo Request message is a keep-alive mechanism for CAPWAP control
 | 
						|
   messages.
 | 
						|
 | 
						|
   Echo Request messages are sent periodically by a WTP in the Run state
 | 
						|
   (see <a href="#section-2.3">Section 2.3</a>) to determine the state of the control connection
 | 
						|
   between the WTP and the AC.  The Echo Request message is sent by the
 | 
						|
   WTP when the EchoInterval timer expires.  The WTP MUST start its
 | 
						|
   NeighborDeadInterval timer when the EchoInterval timer expires.
 | 
						|
 | 
						|
   The Echo Request message is sent by the WTP when in the Run State.
 | 
						|
   The AC does not transmit this message.
 | 
						|
 | 
						|
   The Echo Request message carries no message elements.
 | 
						|
 | 
						|
   When an AC receives an Echo Request message it responds with an Echo
 | 
						|
   Response message.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-7.2" href="#section-7.2">7.2</a>.  Echo Response</span>
 | 
						|
 | 
						|
   The Echo Response message acknowledges the Echo Request message.
 | 
						|
 | 
						|
   An Echo Response message is sent by an AC after receiving an
 | 
						|
   EchoRequest message.  After transmitting the Echo Response message,
 | 
						|
   the AC SHOULD reset its EchoInterval timer.  If another Echo Request
 | 
						|
   message or other control message is not received by the AC when the
 | 
						|
   timer expires, the AC SHOULD consider the WTP to be no longer
 | 
						|
   reachable.
 | 
						|
 | 
						|
   The Echo Response message is sent by the AC when in the Run State.
 | 
						|
   The WTP does not transmit this message.
 | 
						|
 | 
						|
   The Echo Response message carries no message elements.
 | 
						|
 | 
						|
   When a WTP receives an Echo Response message it stops the
 | 
						|
   NeighborDeadInterval timer, and initializes the EchoInterval to the
 | 
						|
   configured value.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007            [Page 100]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-101" id="page-101" href="#page-101" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   If the NeighborDeadInterval timer expires prior to receiving an Echo
 | 
						|
   Response message, or other control message, the WTP enters the Idle
 | 
						|
   state.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007            [Page 101]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-102" id="page-102" href="#page-102" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h2"><a class="selflink" name="section-8" href="#section-8">8</a>.  WTP Configuration Management</span>
 | 
						|
 | 
						|
   WTP Configuration messages are used to exchange configuration
 | 
						|
   information between the AC and the WTP.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-8.1" href="#section-8.1">8.1</a>.  Configuration Consistency</span>
 | 
						|
 | 
						|
   The CAPWAP protocol provides flexibility in how WTP configuration is
 | 
						|
   managed.  A WTP has two options:
 | 
						|
 | 
						|
   1. The WTP retains no configuration and accepts the configuration
 | 
						|
      provided by the AC.
 | 
						|
 | 
						|
   2. The WTP retains the configuration of parameters provided by the AC
 | 
						|
      that are non-default values.
 | 
						|
 | 
						|
   If the WTP opts to save configuration locally, the CAPWAP protocol
 | 
						|
   state machine defines the Configure state, which allows for
 | 
						|
   configuration exchange.  In the Configure state, the WTP sends its
 | 
						|
   current configuration overrides to the AC via the Configuration
 | 
						|
   Status message.  A configuration override is a non-default parameter.
 | 
						|
   As an example, in the CAPWAP protocol, the default antenna
 | 
						|
   configuration is internal omni antenna.  A WTP that either has no
 | 
						|
   internal antennas, or has been explicitly configured by the AC to use
 | 
						|
   external antennas, sends its antenna configuration during the
 | 
						|
   configure phase, allowing the AC to become aware of the WTP's current
 | 
						|
   configuration.
 | 
						|
 | 
						|
   Once the WTP has provided its configuration to the AC, the AC sends
 | 
						|
   its configuration to the WTP.  This allows the WTP to receive
 | 
						|
   configuration and policies from the AC.
 | 
						|
 | 
						|
   The AC maintains a copy of each active WTP configuration.  There is
 | 
						|
   no need for versioning or other means to identify configuration
 | 
						|
   changes.  If a WTP becomes inactive, the AC MAY delete the inactive
 | 
						|
   WTP configuration.  If a WTP fails, and connects to a new AC, the WTP
 | 
						|
   provides its overridden configuration parameters, allowing the new AC
 | 
						|
   to be aware of the WTP configuration.
 | 
						|
 | 
						|
   This model allows for resiliency in case of an AC failure, ensuring
 | 
						|
   another AC can provide service to the WTP.  A new AC would be
 | 
						|
   automatically updated with WTP configuration changes, eliminating the
 | 
						|
   need for inter-AC communication and the need for all ACs to be aware
 | 
						|
   of the configuration of all WTPs in the network.
 | 
						|
 | 
						|
   Once the CAPWAP protocol enters the Run state, the WTPs begin to
 | 
						|
   provide service.  It is common for administrators to require that
 | 
						|
   configuration changes be made while the network is operational.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007            [Page 102]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-103" id="page-103" href="#page-103" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   Therefore, the Configuration Update Request is sent by the AC to the
 | 
						|
   WTP to make these changes at run-time.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-8.1.1" href="#section-8.1.1">8.1.1</a>.  Configuration Flexibility</span>
 | 
						|
 | 
						|
   The CAPWAP protocol provides the flexibility to configure and manage
 | 
						|
   WTPs of varying design and functional characteristics.  When a WTP
 | 
						|
   first discovers an AC, it provides primary functional information
 | 
						|
   relating to its type of MAC and to the nature of frames to be
 | 
						|
   exchanged.  The AC configures the WTP appropriately.  The AC also
 | 
						|
   establishes corresponding internal state for the WTP.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-8.2" href="#section-8.2">8.2</a>.  Configuration Status</span>
 | 
						|
 | 
						|
   The Configuration Status message is sent by a WTP to deliver its
 | 
						|
   current configuration to the AC.
 | 
						|
 | 
						|
   The Configuration Status message carries binding specific message
 | 
						|
   elements.  Refer to the appropriate binding for the definition of
 | 
						|
   this structure.
 | 
						|
 | 
						|
   When an AC receives a Configuration Status message it acts upon the
 | 
						|
   content of the message and responds to the WTP with a Configuration
 | 
						|
   Status Response message.
 | 
						|
 | 
						|
   The Configuration Status message includes multiple Radio
 | 
						|
   Administrative State message elements, one for the WTP, and one for
 | 
						|
   each radio in the WTP.
 | 
						|
 | 
						|
   The Configuration Status message is sent by the WTP when in the
 | 
						|
   Configure State.  The AC does not transmit this message.
 | 
						|
 | 
						|
   The following message elements MUST be included in the Configuration
 | 
						|
   Status message.
 | 
						|
 | 
						|
   o  AC Name, see <a href="#section-4.6.4">Section 4.6.4</a>
 | 
						|
 | 
						|
   o  AC Name with Index, see <a href="#section-4.6.5">Section 4.6.5</a>
 | 
						|
 | 
						|
   o  Radio Administrative State, see <a href="#section-4.6.31">Section 4.6.31</a>
 | 
						|
 | 
						|
   o  Statistics Timer, see <a href="#section-4.6.36">Section 4.6.36</a>
 | 
						|
 | 
						|
   o  WTP Reboot Statistics, see <a href="#section-4.6.48">Section 4.6.48</a>
 | 
						|
 | 
						|
   The following message elements MAY be included in the Configuration
 | 
						|
   Status message.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007            [Page 103]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-104" id="page-104" href="#page-104" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   o  WTP Static IP Address Information, see <a href="#section-4.6.49">Section 4.6.49</a>
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-8.3" href="#section-8.3">8.3</a>.  Configuration Status Response</span>
 | 
						|
 | 
						|
   The Configuration Status Response message is sent by an AC and
 | 
						|
   provides a mechanism for the AC to override a WTP's requested
 | 
						|
   configuration.
 | 
						|
 | 
						|
   A Configuration Status Response message is sent by an AC after
 | 
						|
   receiving a Configuration Request message.
 | 
						|
 | 
						|
   The Configuration Status Response message carries binding specific
 | 
						|
   message elements.  Refer to the appropriate binding for the
 | 
						|
   definition of this structure.
 | 
						|
 | 
						|
   When a WTP receives a Configuration Status Response message it acts
 | 
						|
   upon the content of the message, as appropriate.  If the
 | 
						|
   Configuration Status Response message includes a Radio Operational
 | 
						|
   State message element that causes a change in the operational state
 | 
						|
   of one of the radios, the WTP transmits a Change State Event to the
 | 
						|
   AC, as an acknowledgement of the change in state.
 | 
						|
 | 
						|
   The Configuration Status Response message is sent by the AC when in
 | 
						|
   the Configure State.  The WTP does not transmit this message.
 | 
						|
 | 
						|
   The following message elements MUST be included in the Configuration
 | 
						|
   Status Response message.
 | 
						|
 | 
						|
   o  AC IPv4 List, see <a href="#section-4.6.2">Section 4.6.2</a>
 | 
						|
 | 
						|
   o  AC IPv6 List, see <a href="#section-4.6.3">Section 4.6.3</a>
 | 
						|
 | 
						|
   o  CAPWAP Timers, see <a href="#section-4.6.12">Section 4.6.12</a>
 | 
						|
 | 
						|
   o  Decryption Error Report Period, see <a href="#section-4.6.16">Section 4.6.16</a>
 | 
						|
 | 
						|
   o  Idle Timeout, see <a href="#section-4.6.23">Section 4.6.23</a>
 | 
						|
 | 
						|
   o  WTP Fallback, see <a href="#section-4.6.40">Section 4.6.40</a>
 | 
						|
 | 
						|
   The following message element MAY be included in the Configuration
 | 
						|
   Status Response message.
 | 
						|
 | 
						|
   o  WTP Static IP Address Information, see <a href="#section-4.6.49">Section 4.6.49</a>
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007            [Page 104]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-105" id="page-105" href="#page-105" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-8.4" href="#section-8.4">8.4</a>.  Configuration Update Request</span>
 | 
						|
 | 
						|
   Configuration Update Request messages are sent by the AC to provision
 | 
						|
   the WTP while in the Run state.  This is used to modify the
 | 
						|
   configuration of the WTP while it is operational.
 | 
						|
 | 
						|
   When a WTP receives a Configuration Update Request message, it
 | 
						|
   responds with a Configuration Update Response message, with a Result
 | 
						|
   Code message element indicating the result of the configuration
 | 
						|
   request.
 | 
						|
 | 
						|
   The AC includes the Image Identifier and Initiate Download message
 | 
						|
   elements to force the WTP to update its firmware while in the Run
 | 
						|
   state.  The WTP MAY proceed to download the requested firmware if it
 | 
						|
   determines the version specified in the Image Identifier message
 | 
						|
   element is not in its non-volatile storage (see <a href="#section-9.1.1">Section 9.1.1</a>).
 | 
						|
 | 
						|
   The Configuration Update Request is sent by the AC when in the Run
 | 
						|
   State.  The WTP does not transmit this message.
 | 
						|
 | 
						|
   One or more of the following message elements MAY be included in the
 | 
						|
   Configuration Update message.
 | 
						|
 | 
						|
   o  AC Name with Index, see <a href="#section-4.6.5">Section 4.6.5</a>
 | 
						|
 | 
						|
   o  AC Timestamp, see <a href="#section-4.6.6">Section 4.6.6</a>
 | 
						|
 | 
						|
   o  Add MAC ACL Entry, see <a href="#section-4.6.7">Section 4.6.7</a>
 | 
						|
 | 
						|
   o  Add Static MAC ACL Entry, see <a href="#section-4.6.9">Section 4.6.9</a>
 | 
						|
 | 
						|
   o  CAPWAP Timers, see <a href="#section-4.6.12">Section 4.6.12</a>
 | 
						|
 | 
						|
   o  Decryption Error Report Period, see <a href="#section-4.6.16">Section 4.6.16</a>
 | 
						|
 | 
						|
   o  Delete MAC ACL Entry, see <a href="#section-4.6.17">Section 4.6.17</a>
 | 
						|
 | 
						|
   o  Delete Static MAC ACL Entry, see <a href="#section-4.6.19">Section 4.6.19</a>
 | 
						|
 | 
						|
   o  Idle Timeout, see <a href="#section-4.6.23">Section 4.6.23</a>
 | 
						|
 | 
						|
   o  Location Data, see <a href="#section-4.6.28">Section 4.6.28</a>
 | 
						|
 | 
						|
   o  Radio Administrative State, see <a href="#section-4.6.31">Section 4.6.31</a>
 | 
						|
 | 
						|
   o  Statistics Timer, see <a href="#section-4.6.36">Section 4.6.36</a>
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007            [Page 105]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-106" id="page-106" href="#page-106" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   o  WTP Fallback, see <a href="#section-4.6.40">Section 4.6.40</a>
 | 
						|
 | 
						|
   o  WTP Name, see <a href="#section-4.6.45">Section 4.6.45</a>
 | 
						|
 | 
						|
   o  WTP Static IP Address Information, see <a href="#section-4.6.49">Section 4.6.49</a>
 | 
						|
 | 
						|
   o  Image Identifier, see <a href="#section-4.6.25">Section 4.6.25</a>
 | 
						|
 | 
						|
   o  Initiate Download, see <a href="#section-4.6.27">Section 4.6.27</a>
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-8.5" href="#section-8.5">8.5</a>.  Configuration Update Response</span>
 | 
						|
 | 
						|
   The Configuration Update Response message is the acknowledgement
 | 
						|
   message for the Configuration Update Request message.
 | 
						|
 | 
						|
   The Configuration Update Response message is sent by a WTP after
 | 
						|
   receiving a Configuration Update Request message.
 | 
						|
 | 
						|
   When an AC receives a Configuration Update Response message the
 | 
						|
   result code indicates if the WTP successfully accepted the
 | 
						|
   configuration.
 | 
						|
 | 
						|
   The Configuration Update Response message is sent by the WTP when in
 | 
						|
   the Run State.  The AC does not transmit this message.
 | 
						|
 | 
						|
   The following message element MUST be present in the Configuration
 | 
						|
   Update message.
 | 
						|
 | 
						|
   Result Code, see <a href="#section-4.6.33">Section 4.6.33</a>
 | 
						|
 | 
						|
   The following message elements MAY be present in the Configuration
 | 
						|
   Update Response message.
 | 
						|
 | 
						|
   o  Radio Operational State, see <a href="#section-4.6.32">Section 4.6.32</a>
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-8.6" href="#section-8.6">8.6</a>.  Change State Event Request</span>
 | 
						|
 | 
						|
   The Change State Event Request message is used by the WTP for two
 | 
						|
   main purposes:
 | 
						|
 | 
						|
   o  When sent by the WTP following the reception of a Configuration
 | 
						|
      Status Response message from the AC, the WTP uses the Change State
 | 
						|
      Event Request message to provide an update on the WTP radio's
 | 
						|
      operational state and to confirm that the configuration provided
 | 
						|
      by the AC was successfully applied.
 | 
						|
 | 
						|
   o  When sent during the Run state, the WTP uses the Change State
 | 
						|
      Event Request message to notify the AC of an unexpected change in
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007            [Page 106]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-107" id="page-107" href="#page-107" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
      the WTP's radio operational state.
 | 
						|
 | 
						|
   When an AC receives a Change State Event Request message it responds
 | 
						|
   with a Change State Event Response message and modifies its data
 | 
						|
   structures for the WTP as needed.  The AC MAY decide not to provide
 | 
						|
   service to the WTP if it receives an error, based on local policy,
 | 
						|
   and to transition to the Reset state.
 | 
						|
 | 
						|
   The Change State Event Request message is sent by a WTP to
 | 
						|
   acknowledge or report an error condition to the AC for a requested
 | 
						|
   configuration in the Configuration Status Response message.  The
 | 
						|
   Change State Event Request message includes the Result Code message
 | 
						|
   element, which indicates whether the configuration was successfully
 | 
						|
   applied.  If the WTP is unable to apply a specfic configuration
 | 
						|
   request, it indicates the failure by including one or more Returned
 | 
						|
   Message Element message elements (see <a href="#section-4.6.34">Section 4.6.34</a>).
 | 
						|
 | 
						|
   The Change State Event Request message is sent by the WTP in the
 | 
						|
   Configure or Run State.  The AC does not transmit this message.
 | 
						|
 | 
						|
   The WTP MAY save its configuration to persistent storage prior to
 | 
						|
   transmitting the response.  However, this is implementation specific
 | 
						|
   and is not required.
 | 
						|
 | 
						|
   The following message elements MUST be present in the Change State
 | 
						|
   Event Request message.
 | 
						|
 | 
						|
   o  Radio Operational State, see <a href="#section-4.6.32">Section 4.6.32</a>
 | 
						|
 | 
						|
   o  Result Code, see <a href="#section-4.6.33">Section 4.6.33</a>
 | 
						|
 | 
						|
   One or more of the following message elements MAY be present in the
 | 
						|
   Change State Event Request message.
 | 
						|
 | 
						|
   o  Returned Message Element(s), see <a href="#section-4.6.34">Section 4.6.34</a>
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-8.7" href="#section-8.7">8.7</a>.  Change State Event Response</span>
 | 
						|
 | 
						|
   The Change State Event Response message acknowledges the Change State
 | 
						|
   Event Request message.
 | 
						|
 | 
						|
   A Change State Event Response message is sent by an AC in response to
 | 
						|
   a Change State Event Request message.
 | 
						|
 | 
						|
   The Change State Event Response message is sent by the AC when in the
 | 
						|
   Configure or Run state.  The WTP does not transmit this message.
 | 
						|
 | 
						|
   The Change State Event Response message carries no message elements.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007            [Page 107]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-108" id="page-108" href="#page-108" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   The WTP does not take any action upon receipt of the Change State
 | 
						|
   Event Response message.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-8.8" href="#section-8.8">8.8</a>.  Clear Configuration Request</span>
 | 
						|
 | 
						|
   The Clear Configuration Request message is used to reset the WTP
 | 
						|
   configuration.
 | 
						|
 | 
						|
   The Clear Configuration Request message is sent by an AC to request
 | 
						|
   that a WTP reset its configuration to the manufacturing default
 | 
						|
   configuration.  The Clear Config Request message is sent while in the
 | 
						|
   Run state.
 | 
						|
 | 
						|
   The Clear Configuration Request is sent by the AC when in the Run
 | 
						|
   State.  The WTP does not transmit this message.
 | 
						|
 | 
						|
   The Clear Configuration Request message carries no message elements.
 | 
						|
 | 
						|
   When a WTP receives a Clear Configuration Request message it resets
 | 
						|
   its configuration to the manufacturing default configuration.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-8.9" href="#section-8.9">8.9</a>.  Clear Configuration Response</span>
 | 
						|
 | 
						|
   The Clear Configuration Response message is sent by the WTP after
 | 
						|
   receiving a Clear Configuration Request message and resetting its
 | 
						|
   configuration parameters to the manufacturing default values.
 | 
						|
 | 
						|
   The Clear Configuration Response is sent by the WTP when in the Run
 | 
						|
   State.  The AC does not transmit this message.
 | 
						|
 | 
						|
   The Clear Configuration Request message MUST include the following
 | 
						|
   message element.
 | 
						|
 | 
						|
   o  Result Code, see <a href="#section-4.6.33">Section 4.6.33</a>
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007            [Page 108]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-109" id="page-109" href="#page-109" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h2"><a class="selflink" name="section-9" href="#section-9">9</a>.  Device Management Operations</span>
 | 
						|
 | 
						|
   This section defines CAPWAP operations responsible for debugging,
 | 
						|
   gathering statistics, logging, and firmware management.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-9.1" href="#section-9.1">9.1</a>.  Firmware Management</span>
 | 
						|
 | 
						|
   This section describes the firmware download procedures used by the
 | 
						|
   CAPWAP protocol.  Firmware download can occur during the Image Data
 | 
						|
   or Run state.
 | 
						|
 | 
						|
   Figure 4 provides an example of a WTP that performs a firmware
 | 
						|
   upgrade while in the Image Data state.  In this example, the WTP does
 | 
						|
   not already have the requested firmware (Image Identifier = x), and
 | 
						|
   downloads the image from the AC.
 | 
						|
 | 
						|
             WTP                                               AC
 | 
						|
 | 
						|
                                Join Request
 | 
						|
         -------------------------------------------------------->
 | 
						|
 | 
						|
                     Join Response (Image Identifier = x)
 | 
						|
         <------------------------------------------------------
 | 
						|
 | 
						|
              Image Data Request (Image Identifier = x)
 | 
						|
         -------------------------------------------------------->
 | 
						|
 | 
						|
           Image Data Response (Result Code = Success,
 | 
						|
                                Image Information = {size,hash},
 | 
						|
                                Initiate Download)
 | 
						|
         <------------------------------------------------------
 | 
						|
 | 
						|
                Image Data Request (Image Data = Data)
 | 
						|
         <------------------------------------------------------
 | 
						|
 | 
						|
                Image Data Response (Result Code = Success)
 | 
						|
         -------------------------------------------------------->
 | 
						|
 | 
						|
                                  .....
 | 
						|
 | 
						|
                Image Data Request (Image Data = EOF)
 | 
						|
         <------------------------------------------------------
 | 
						|
 | 
						|
                Image Data Response (Result Code = Success)
 | 
						|
         -------------------------------------------------------->
 | 
						|
 | 
						|
                     (WTP enters the Reset State)
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007            [Page 109]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-110" id="page-110" href="#page-110" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
                  Figure 4: WTP Firmware Download Case 1
 | 
						|
 | 
						|
   Figure 5 provides an example in which the WTP has the image specified
 | 
						|
   by the AC in its non-volative storage.  The WTP opts to NOT download
 | 
						|
   the firmware and immediately reset.
 | 
						|
 | 
						|
             WTP                                               AC
 | 
						|
 | 
						|
                                Join Request
 | 
						|
         -------------------------------------------------------->
 | 
						|
 | 
						|
                     Join Response (Image Identifier = x)
 | 
						|
         <------------------------------------------------------
 | 
						|
 | 
						|
                     (WTP enters the Reset State)
 | 
						|
 | 
						|
                  Figure 5: WTP Firmware Download Case 2
 | 
						|
 | 
						|
   Figure 6 provides an example of a WTP that performs a firmware
 | 
						|
   upgrade while in the Run state.  This mode of firmware upgrade allows
 | 
						|
   the WTP to download its image while continuing to provide service.
 | 
						|
   The WTP will not automatically reset until it is notified by the AC,
 | 
						|
   with a Reset Request message.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007            [Page 110]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-111" id="page-111" href="#page-111" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
             WTP                                               AC
 | 
						|
 | 
						|
                Configuration Update Request (Image Identifier = x)
 | 
						|
         <------------------------------------------------------
 | 
						|
 | 
						|
            Configuration Update Response (Result Code = Success)
 | 
						|
         -------------------------------------------------------->
 | 
						|
 | 
						|
 | 
						|
              Image Data Request (Image Identifier = x)
 | 
						|
         -------------------------------------------------------->
 | 
						|
 | 
						|
              Image Data Response (Result Code = Success,
 | 
						|
                                   Image Information = {size,hash},
 | 
						|
                                   Initiate Download)
 | 
						|
         <------------------------------------------------------
 | 
						|
 | 
						|
                Image Data Request (Image Data = Data)
 | 
						|
         <------------------------------------------------------
 | 
						|
 | 
						|
                Image Data Response (Result Code = Success)
 | 
						|
         -------------------------------------------------------->
 | 
						|
 | 
						|
                                  .....
 | 
						|
 | 
						|
                Image Data Request (Image Data = EOF)
 | 
						|
         <------------------------------------------------------
 | 
						|
 | 
						|
                Image Data Response (Result Code = Success)
 | 
						|
         -------------------------------------------------------->
 | 
						|
 | 
						|
                                  .....
 | 
						|
 | 
						|
                (administratively requested reboot request)
 | 
						|
                   Reset Request (Image Identifier = x)
 | 
						|
         <------------------------------------------------------
 | 
						|
 | 
						|
                  Reset Response (Result Code = Success)
 | 
						|
         -------------------------------------------------------->
 | 
						|
 | 
						|
                  Figure 6: WTP Firmware Download Case 3
 | 
						|
 | 
						|
   Figure 7 provides another example of the firmware download while in
 | 
						|
   the Run state.  In this example, the WTP already has the image
 | 
						|
   specified by the AC in its non-volative storage.  The WTP opts to NOT
 | 
						|
   download the firmware.  The WTP resets upon receipt of a Reset
 | 
						|
   Request message from the AC.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007            [Page 111]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-112" id="page-112" href="#page-112" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
          WTP                                               AC
 | 
						|
 | 
						|
          Configuration Update Request (Image Identifier = x,
 | 
						|
                                        Image Information = {size,hash},
 | 
						|
                                        Initiate Download)
 | 
						|
      <------------------------------------------------------
 | 
						|
 | 
						|
   Configuration Update Response (Result Code = Already Have Image)
 | 
						|
      -------------------------------------------------------->
 | 
						|
 | 
						|
                               .....
 | 
						|
 | 
						|
             (administratively requested reboot request)
 | 
						|
                Reset Request (Image Identifier = x)
 | 
						|
      <------------------------------------------------------
 | 
						|
 | 
						|
               Reset Response (Result Code = Success)
 | 
						|
      -------------------------------------------------------->
 | 
						|
 | 
						|
                  Figure 7: WTP Firmware Download Case 4
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-9.1.1" href="#section-9.1.1">9.1.1</a>.  Image Data Request</span>
 | 
						|
 | 
						|
   The Image Data Request message is used to update firmware on the WTP.
 | 
						|
   This message and its companion Response message are used by the AC to
 | 
						|
   ensure that the image being run on each WTP is appropriate.
 | 
						|
 | 
						|
   Image Data Request messages are exchanged between the WTP and the AC
 | 
						|
   to download a new firmware image to the WTP.  When a WTP or AC
 | 
						|
   receives an Image Data Request message it responds with an Image Data
 | 
						|
   Response message.  The message elements contained within the Image
 | 
						|
   Data Request message are required to determine the intent of the
 | 
						|
   request.
 | 
						|
 | 
						|
   The decision that new firmware is to be downloaded to the WTP can
 | 
						|
   occur in one of two ways:
 | 
						|
 | 
						|
      When the WTP joins the AC, the Join Response message includes the
 | 
						|
      Image Identifier message element, which informs the WTP of the
 | 
						|
      firmware it is expected to run. if the WTP does not currently have
 | 
						|
      the requested firmware version, it transmits an Image Data Request
 | 
						|
      message, with the appropriate Image Identifier message element.
 | 
						|
      If the WTP already has the requested firmware, it simply resets.
 | 
						|
 | 
						|
      Once the WTP is in the Run state, it is possible for the AC to
 | 
						|
      cause the WTP to initiate a firmware download by sending a
 | 
						|
      Configuration Update Request message with the Initiate Download
 | 
						|
      and and Image Identifier message elements.  The WTP then transmits
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007            [Page 112]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-113" id="page-113" href="#page-113" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
      the Image Data Request message, which includes the Image
 | 
						|
      Identifier message element to start the download process.  Note
 | 
						|
      that when the firmware is downloaded in this way, the WTP does not
 | 
						|
      automatically reset after the download is complete.  The WTP will
 | 
						|
      only reset when it receives a Reset Request message from the AC.
 | 
						|
      If the WTP already had the requested firmware version in its non-
 | 
						|
      volatile storage, the WTP does not transmit the Image Data Request
 | 
						|
      message and responds with a Configuration Update Response message
 | 
						|
      with the Result Code set to Image Already Present.
 | 
						|
 | 
						|
   Regardless of how the download was initiated, once the AC receives an
 | 
						|
   Image Data Request message with the Image Identifier message element,
 | 
						|
   it begins the transfer process by transmitting an Image Data Request
 | 
						|
   message that includes the Image Data message element.  This continues
 | 
						|
   until the firmware image has been transfered.
 | 
						|
 | 
						|
   The Image Data Request message is sent by the WTP or the AC when in
 | 
						|
   the Image Data or Run State.
 | 
						|
 | 
						|
   The following message elements MAY be included in the Image Data
 | 
						|
   Request message.
 | 
						|
 | 
						|
   o  Image Data, see <a href="#section-4.6.24">Section 4.6.24</a>
 | 
						|
 | 
						|
   o  Image Identifier, see <a href="#section-4.6.25">Section 4.6.25</a>
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-9.1.2" href="#section-9.1.2">9.1.2</a>.  Image Data Response</span>
 | 
						|
 | 
						|
   The Image Data Response message acknowledges the Image Data Request
 | 
						|
   message.
 | 
						|
 | 
						|
   An Image Data Response message is sent in response to a received
 | 
						|
   Image Data Request message.  Its purpose is to acknowledge the
 | 
						|
   receipt of the Image Data Request message.  The Result Code is
 | 
						|
   included to indicate whether a previously sent Image Data Request
 | 
						|
   message was invalid.
 | 
						|
 | 
						|
   The Image Data Response message is sent by the WTP or the AC when in
 | 
						|
   the Image Data or Run State.
 | 
						|
 | 
						|
   The following message element MUST be included in the Image Data
 | 
						|
   Response message.
 | 
						|
 | 
						|
   o  Result Code, see <a href="#section-4.6.33">Section 4.6.33</a>
 | 
						|
 | 
						|
   The following message elements MAY be included in the Image Data
 | 
						|
   Response message.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007            [Page 113]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-114" id="page-114" href="#page-114" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   o  Image Information, see <a href="#section-4.6.26">Section 4.6.26</a>
 | 
						|
 | 
						|
   o  Initiate Download, see <a href="#section-4.6.27">Section 4.6.27</a>
 | 
						|
 | 
						|
   Upon receiving an Image Data Response message indicating an error,
 | 
						|
   the WTP MAY retransmit a previous Image Data Reqest message, or
 | 
						|
   abandon the firmware download to the WTP by transitioning to the
 | 
						|
   Reset state.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-9.2" href="#section-9.2">9.2</a>.  Reset Request</span>
 | 
						|
 | 
						|
   The Reset Request message is used to cause a WTP to reboot.
 | 
						|
 | 
						|
   A Reset Request message is sent by an AC to cause a WTP to
 | 
						|
   reinitialize its operation.
 | 
						|
 | 
						|
   The Reset Request is sent by the AC when in the Run State.  The WTP
 | 
						|
   does not transmit this message.
 | 
						|
 | 
						|
   The following message elements MUST be included in the Reset Request
 | 
						|
   message.
 | 
						|
 | 
						|
   o  Image Identifier, see <a href="#section-4.6.25">Section 4.6.25</a>
 | 
						|
 | 
						|
   When a WTP receives a Reset Request message, it responds with a Reset
 | 
						|
   Response message indicating success and then reinitialize itself.  If
 | 
						|
   the WTP is unable to write to its non-volatile storage, to ensure
 | 
						|
   that it runs the requested software version indicated in the Image
 | 
						|
   Identifier message element, it MAY send the appropriate Result Code
 | 
						|
   message element, but MUST reboot.  If the WTP is unable to reset,
 | 
						|
   including a hardware reset, it sends a Reset Response message to the
 | 
						|
   AC with a Result Code message element indicating failure.  The AC no
 | 
						|
   longer provides service to the WTP.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-9.3" href="#section-9.3">9.3</a>.  Reset Response</span>
 | 
						|
 | 
						|
   The Reset Response message acknowledges the Reset Request message.
 | 
						|
 | 
						|
   A Reset Response message is sent by the WTP after receiving a Reset
 | 
						|
   Request message.
 | 
						|
 | 
						|
   The Reset Response is sent by the WTP when in the Run State.  The AC
 | 
						|
   does not transmit this message.
 | 
						|
 | 
						|
   The following message element MAY be included in the Image Data
 | 
						|
   Request message.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007            [Page 114]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-115" id="page-115" href="#page-115" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   o  Result Code, see <a href="#section-4.6.33">Section 4.6.33</a>
 | 
						|
 | 
						|
   When an AC receives a successful Reset Response message, it is
 | 
						|
   notified that the WTP will reinitialize its operation.  An AC that
 | 
						|
   receives a Reset Response message indicating failure may opt to no
 | 
						|
   longer provide service to the WTP.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-9.4" href="#section-9.4">9.4</a>.  WTP Event Request</span>
 | 
						|
 | 
						|
   The WTP Event Request message is used by a WTP to send information to
 | 
						|
   its AC.  The WTP Event Request message MAY be sent periodically, or
 | 
						|
   sent in response to an asynchronous event on the WTP.  For example, a
 | 
						|
   WTP MAY collect statistics and use the WTP Event Request message to
 | 
						|
   transmit the statistics to the AC.
 | 
						|
 | 
						|
   When an AC receives a WTP Event Request message it will respond with
 | 
						|
   a WTP Event Response message.
 | 
						|
 | 
						|
   The presence of the Delete Station message element is used by the WTP
 | 
						|
   to inform the AC that it is no longer providing service to the
 | 
						|
   station.  This could be the result of an Idle Timeout (see
 | 
						|
   <a href="#section-4.6.23">Section 4.6.23</a>), due to to resource shortages, or some other reason.
 | 
						|
 | 
						|
   The WTP Event Request message is sent by the WTP when in the Run
 | 
						|
   State.  The AC does not transmit this message.
 | 
						|
 | 
						|
   The WTP Event Request message MUST contain one of the message
 | 
						|
   elements listed below, or a message element that is defined for a
 | 
						|
   specific wireless technology.  More than one of each messsage element
 | 
						|
   listed MAY be included in the WTP Event Request message.
 | 
						|
 | 
						|
   o  Decryption Error Report, see <a href="#section-4.6.15">Section 4.6.15</a>
 | 
						|
 | 
						|
   o  Duplicate IPv4 Address, see <a href="#section-4.6.21">Section 4.6.21</a>
 | 
						|
 | 
						|
   o  Duplicate IPv6 Address, see <a href="#section-4.6.22">Section 4.6.22</a>
 | 
						|
 | 
						|
   o  WTP Operational Statistics, see <a href="#section-4.6.46">Section 4.6.46</a>
 | 
						|
 | 
						|
   o  WTP Radio Statistics, see <a href="#section-4.6.47">Section 4.6.47</a>
 | 
						|
 | 
						|
   o  WTP Reboot Statistics, see <a href="#section-4.6.48">Section 4.6.48</a>
 | 
						|
 | 
						|
   o  Delete Station, see <a href="#section-4.6.18">Section 4.6.18</a>
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007            [Page 115]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-116" id="page-116" href="#page-116" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-9.5" href="#section-9.5">9.5</a>.  WTP Event Response</span>
 | 
						|
 | 
						|
   The WTP Event Response message acknowledges receipt of the WTP Event
 | 
						|
   Request message.
 | 
						|
 | 
						|
   A WTP Event Response message is sent by an AC after receiving a WTP
 | 
						|
   Event Request message.
 | 
						|
 | 
						|
   The WTP Event Response message is sent by the AC when in the Run
 | 
						|
   State.  The WTP does not transmit this message.
 | 
						|
 | 
						|
   The WTP Event Response message carries no message elements.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-9.6" href="#section-9.6">9.6</a>.  Data Transfer Request</span>
 | 
						|
 | 
						|
   The Data Transfer Request message is used to deliver debug
 | 
						|
   information from the WTP to the AC.
 | 
						|
 | 
						|
   Data Transfer Request messages are sent by the WTP to the AC when the
 | 
						|
   WTP determines that it has important information to send to the AC.
 | 
						|
   For instance, if the WTP detects that its previous reboot was caused
 | 
						|
   by a system crash, it can send the crash file to the AC.  The remote
 | 
						|
   debugger function in the WTP also uses the Data Transfer Request
 | 
						|
   message to send console output to the AC for debugging purposes.
 | 
						|
 | 
						|
   When the AC receives a Data Transfer Request message it responds to
 | 
						|
   the WTP with a Data Transfer Response message.  The AC MAY log the
 | 
						|
   information received.
 | 
						|
 | 
						|
   The Data Transfer Request message is sent by the WTP when in the Run
 | 
						|
   State.  The AC does not transmit this message.
 | 
						|
 | 
						|
   The Data Transfer Request message MUST contain one of the message
 | 
						|
   elements listed below.
 | 
						|
 | 
						|
   o  Data Transfer Data, see <a href="#section-4.6.13">Section 4.6.13</a>
 | 
						|
 | 
						|
   o  Data Transfer Mode, see <a href="#section-4.6.14">Section 4.6.14</a>
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-9.7" href="#section-9.7">9.7</a>.  Data Transfer Response</span>
 | 
						|
 | 
						|
   The Data Transfer Response message acknowledges the Data Transfer
 | 
						|
   Request message.
 | 
						|
 | 
						|
   A Data Transfer Response message is sent in response to a received
 | 
						|
   Data Transfer Request message.  Its purpose is to acknowledge receipt
 | 
						|
   of the Data Transfer Request message.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007            [Page 116]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-117" id="page-117" href="#page-117" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   The Data Transfer Response message is sent by the AC when in the Run
 | 
						|
   State.  The WTP does not transmit this message.
 | 
						|
 | 
						|
   The Data Transfer Response message carries no message elements.
 | 
						|
 | 
						|
   Upon receipt of a Data Transfer Response message, the WTP transmits
 | 
						|
   more information, if more information is available.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007            [Page 117]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-118" id="page-118" href="#page-118" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h2"><a class="selflink" name="section-10" href="#section-10">10</a>.  Station Session Management</span>
 | 
						|
 | 
						|
   Messages in this section are used by the AC to create, modify or
 | 
						|
   delete station session state on the WTPs.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-10.1" href="#section-10.1">10.1</a>.  Station Configuration Request</span>
 | 
						|
 | 
						|
   The Station Configuration Request message is used to create, modify
 | 
						|
   or delete station session state on a WTP.  The message is sent by the
 | 
						|
   AC to the WTP, and MAY contain one or more message elements.  The
 | 
						|
   message elements for this CAPWAP control message include information
 | 
						|
   that is generally highly technology specific.  Refer to the
 | 
						|
   appropriate binding document for definitions of the messages elements
 | 
						|
   that are included in this control message.
 | 
						|
 | 
						|
   The Station Configuration Request message is sent by the AC when in
 | 
						|
   the Run State.  The WTP does not transmit this message.
 | 
						|
 | 
						|
   The following CAPWAP Control message elements MAY be included in the
 | 
						|
   Station Configuration Request message.  More than one of each message
 | 
						|
   element listed MAY be included in the Station Configuration Request
 | 
						|
   message.
 | 
						|
 | 
						|
   o  Add Station, see <a href="#section-4.6.8">Section 4.6.8</a>
 | 
						|
 | 
						|
   o  Delete Station, see <a href="#section-4.6.18">Section 4.6.18</a>
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-10.2" href="#section-10.2">10.2</a>.  Station Configuration Response</span>
 | 
						|
 | 
						|
   The Station Configuration Response message is used to acknowledge a
 | 
						|
   previously received Station Configuration Request message.
 | 
						|
 | 
						|
   The Station Configuration Response message is sent by the WTP when in
 | 
						|
   the Run State.  The AC does not transmit this message.
 | 
						|
 | 
						|
   The following message element MUST be present in the Station
 | 
						|
   Configuration Response message.
 | 
						|
 | 
						|
   o  Result Code, see <a href="#section-4.6.33">Section 4.6.33</a>
 | 
						|
 | 
						|
   The Result Code message element indicates that the requested
 | 
						|
   configuration was successfully applied, or that an error related to
 | 
						|
   processing of the Station Configuration Request message occurred on
 | 
						|
   the WTP.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007            [Page 118]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-119" id="page-119" href="#page-119" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h2"><a class="selflink" name="section-11" href="#section-11">11</a>.  NAT Considerations</span>
 | 
						|
 | 
						|
   There are three specific situations in which a NAT deployment may be
 | 
						|
   used in conjunction with a CAPWAP-enabled deployment.  The first
 | 
						|
   consists of a configuration in which a single WTP is behind a NAT
 | 
						|
   system.  Since all communication is initiated by the WTP, and all
 | 
						|
   communication is performed over IP using two UDP ports, the protocol
 | 
						|
   easily traverses NAT systems in this configuration.
 | 
						|
 | 
						|
   In the second case, two or more WTPs are deployed behind the same NAT
 | 
						|
   system.  Here, the AC would receive multiple connection requests from
 | 
						|
   the same IP address, and cannot differentiate the originating WTP of
 | 
						|
   the connection requests.  The CAPWAP Data Check state, which
 | 
						|
   establishes the data plane connection and communicates the Data
 | 
						|
   Keepalive, includes the Session Identifier message element, which is
 | 
						|
   used to bind the control and data plane.  Use of the Session
 | 
						|
   Identifier message element enables the AC to match the control and
 | 
						|
   data plane flows from multiple WTPs behind the same NAT system
 | 
						|
   (multiple WTPs sharing the same IP address).
 | 
						|
 | 
						|
   In the third configuration, the AC is deployed behind a NAT.  Two
 | 
						|
   issues exist in this situation.  First, an AC communicates its
 | 
						|
   interfaces and corresponding WTP load using the CAPWAP Control
 | 
						|
   IP(v4/v6) Address message element.  This message element is currently
 | 
						|
   mandatory, and if NAT compliance becomes an issue, it is possible to
 | 
						|
   either:
 | 
						|
 | 
						|
   1. Make the CAPWAP Control IP (v4/v6) Address optional, allowing the
 | 
						|
      WTP to use the known IP Address.  Note that this approach
 | 
						|
      eliminates the ability to perform load balancing of WTP across
 | 
						|
      ACs, and therefore is not the recommended approach.
 | 
						|
 | 
						|
   2. Allow an AC to configure a NAT'ed address for every AC that would
 | 
						|
      otherwise be communicated in the CAPWAP Control IP (v4/v6) Address
 | 
						|
      message element.
 | 
						|
 | 
						|
   3. Require that if a WTP determines that the AC List message element
 | 
						|
      contains a set of IP Addresses that are different from the AC IP
 | 
						|
      Address the WTP is currently using, then assume that NAT is
 | 
						|
      present, and require that the WTP communicate with the AC IP
 | 
						|
      Address (and ignore the CAPWAP Control IP (v4/v6) Address message
 | 
						|
      element(s)).
 | 
						|
 | 
						|
   The CAPWAP protocol allows for all of the AC identities supporting a
 | 
						|
   group of WTPs to be communicated through the AC List message element.
 | 
						|
   This feature MUST be disabled when the AC is behind a NAT and the IP
 | 
						|
   Address that is embedded is invalid.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007            [Page 119]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-120" id="page-120" href="#page-120" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   The CAPWAP protocol allows an AC to configure a static IP address on
 | 
						|
   a WTP using the WTP Static IP Address Information message element.
 | 
						|
   This message element SHOULD NOT be used in NAT'ed environments,
 | 
						|
   unless the administrator is familiar with the internal IP addressing
 | 
						|
   scheme within the WTP's private network, and does not rely on the
 | 
						|
   public address seen by the AC.
 | 
						|
 | 
						|
   When a WTP detects the duplicate address condition, it generates a
 | 
						|
   message to the AC, which includes the Duplicate IP Address message
 | 
						|
   element.  The IP Address embedded within this message element is
 | 
						|
   different from the public IP address seen by the AC.
 | 
						|
 | 
						|
   When CAPWAP is run over IPv6, NAT support can only be provided if the
 | 
						|
   IPv6 NAT system is capable of performing address translation over the
 | 
						|
   UDP-Lite 3828 protocol [<a href="#ref-11" title=""The Lightweight User Datagram Protocol (UDP-Lite)"">11</a>].  A protocol interoperability issues will
 | 
						|
   exist if the NAT system is being utilized for IPv4/IPv6 address
 | 
						|
   translation.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007            [Page 120]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-121" id="page-121" href="#page-121" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h2"><a class="selflink" name="section-12" href="#section-12">12</a>.  Security Considerations</span>
 | 
						|
 | 
						|
   This section describes security considerations for the CAPWAP
 | 
						|
   protocol.  It also provides security recommendations for protocols
 | 
						|
   used in conjunction with CAPWAP.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-12.1" href="#section-12.1">12.1</a>.  CAPWAP Security</span>
 | 
						|
 | 
						|
   As it is currently specified, the CAPWAP protocol sits between the
 | 
						|
   security mechanisms specified by the wireless link layer protocol
 | 
						|
   (e.g.IEEE 802.11i) and AAA.  One goal of CAPWAP is to bootstrap trust
 | 
						|
   between the STA and WTP using a series of preestablished trust
 | 
						|
   relationships:
 | 
						|
 | 
						|
 | 
						|
         STA            WTP           AC            AAA
 | 
						|
         ==============================================
 | 
						|
 | 
						|
                            DTLS Cred     AAA Cred
 | 
						|
                         <------------><------------->
 | 
						|
 | 
						|
                         EAP Credential
 | 
						|
          <------------------------------------------>
 | 
						|
 | 
						|
           wireless link layer
 | 
						|
           (e.g.802.11 PTK)
 | 
						|
          <--------------> or
 | 
						|
          <--------------------------->
 | 
						|
              (derived)
 | 
						|
 | 
						|
   Within CAPWAP, DTLS is used to secure the link between the WTP and
 | 
						|
   AC.  In addition to securing control messages, it's also a link in
 | 
						|
   this chain of trust for establishing link layer keys.  Consequently,
 | 
						|
   much rests on the security of DTLS.
 | 
						|
 | 
						|
   In some CAPWAP deployment scenarios, there are two channels between
 | 
						|
   the WTP and AC: the control channel, carrying CAPWAP control
 | 
						|
   messages, and the data channel, over which client data packets are
 | 
						|
   tunneled between the AC and WTP.  Typically, the control channel is
 | 
						|
   secured by DTLS, while the data channel is not.
 | 
						|
 | 
						|
   The use of parallel protected and unprotected channels deserves
 | 
						|
   special consideration, but does not create a threat.  There are two
 | 
						|
   potential concerns: attempting to convert protected data into un-
 | 
						|
   protected data and attempting to convert un-protected data into
 | 
						|
   protected data.  These concerns are addressed below.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007            [Page 121]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-122" id="page-122" href="#page-122" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-12.1.1" href="#section-12.1.1">12.1.1</a>.  Converting Protected Data into Unprotected Data</span>
 | 
						|
 | 
						|
   Since CAPWAP does not support authentication-only ciphers (i.e. all
 | 
						|
   supported ciphersuites include encryption and authentication), it is
 | 
						|
   not possible to convert protected data into unprotected data.  Since
 | 
						|
   encrypted data is (ideally) indistinguishable from random data, the
 | 
						|
   probability of an encrypted packet passing for a well-formed packet
 | 
						|
   is effectively zero.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-12.1.2" href="#section-12.1.2">12.1.2</a>.  Converting Unprotected Data into Protected Data (Insertion)</span>
 | 
						|
 | 
						|
   The use of message authentication makes it impossible for the
 | 
						|
   attacker to forge protected records.  This makes conversion of
 | 
						|
   unprotected records to protected records impossible.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-12.1.3" href="#section-12.1.3">12.1.3</a>.  Deletion of Protected Records</span>
 | 
						|
 | 
						|
   An attacker could remove protected records from the stream, though
 | 
						|
   not undetectably so, due the built-in reliability of the underlying
 | 
						|
   CAPWAP protocol.  In the worst case, the attacker would remove the
 | 
						|
   same record repeatedly, resulting in a CAPWAP session timeout and
 | 
						|
   restart.  This is effectively a DoS attack, and could be accomplished
 | 
						|
   by a man in the middle regardless of the CAPWAP protocol security
 | 
						|
   mechanisms chosen.
 | 
						|
 | 
						|
<span class="h4"><a class="selflink" name="section-12.1.4" href="#section-12.1.4">12.1.4</a>.   Insertion of Unprotected Records</span>
 | 
						|
 | 
						|
   An attacker could inject packets into the unprotected channel, but
 | 
						|
   this may become evident if sequence number desynchronization occurs
 | 
						|
   as a result.  Only if the attacker is a MiM can packets be inserted
 | 
						|
   undetectably.  This is a consequence of that channel's lack of
 | 
						|
   protection, and not a new threat resulting from the CAPWAP security
 | 
						|
   mechanism.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-12.2" href="#section-12.2">12.2</a>.  Session ID Security</span>
 | 
						|
 | 
						|
   Since DTLS does not export a unique session identifier, there can be
 | 
						|
   no explicit protocol binding between the DTLS layer and CAPWAP layer.
 | 
						|
   As a result, implementations MUST provide a mechanism for performing
 | 
						|
   this binding.  For example, an AC MUST NOT associate decrypted DTLS
 | 
						|
   control packets with a particular WTP session based solely on the
 | 
						|
   Session ID in the packet header.  Instead, identification should be
 | 
						|
   done based on which DTLS session decrypted the packet.  Otherwise one
 | 
						|
   authenticated WTP could spoof another authenticated WTP by altering
 | 
						|
   the Session ID in the encrypted CAPWAP header.
 | 
						|
 | 
						|
   It should be noted that when the CAPWAP data channel is unencrypted,
 | 
						|
   the WTP Session ID is exposed and possibly known to adversaries and
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007            [Page 122]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-123" id="page-123" href="#page-123" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   other WTPs.  This would allow the forgery of the source of data-
 | 
						|
   channel traffic.  This, however, should not be a surprise for
 | 
						|
   unencrypted data channels.  When the data channel is encrypted, the
 | 
						|
   Session ID is not exposed, and therefore can safely be used to
 | 
						|
   associate a data and control channel.  The 64-bit length of the
 | 
						|
   Session ID mitigates online guessing attacks where an adversarial,
 | 
						|
   authenticated WTP tries to correlate his own data channel with
 | 
						|
   another WTP's control channel.  Note that for encrypted data
 | 
						|
   channels, the Session ID should only be used for correlation for the
 | 
						|
   first packet immediately after the initial DTLS handshake.  Future
 | 
						|
   correlation should instead be done via identification of a packet's
 | 
						|
   DTLS session.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-12.3" href="#section-12.3">12.3</a>.  Discovery Attacks</span>
 | 
						|
 | 
						|
   Since the Discovery Request messages are sent in the clear, it is
 | 
						|
   important that AC implementations NOT assume that receiving such a
 | 
						|
   request from a WTP implies that it has rebooted, and consequently
 | 
						|
   tear down any active DTLS sessions.  Discovery Request messages can
 | 
						|
   easily be spoofed by malicious devices, so it is important that the
 | 
						|
   AC maintain two separate sets of states for the WTP until the
 | 
						|
   DTLSSessionEstablished notification is received, indicating that the
 | 
						|
   WTP was authenticated.  Once a new DTLS session is successfully
 | 
						|
   established, any state referring to the old session can be cleared.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-12.4" href="#section-12.4">12.4</a>.  Interference with a DTLS Session</span>
 | 
						|
 | 
						|
   If a WTP or AC repeatedly receives packets which fail DTLS
 | 
						|
   authentication or decryption, this could indicate a DTLS
 | 
						|
   desynchronization between the AC and WTP, a link prone to
 | 
						|
   undetectable bit errors, or an attacker trying to disrupt a DTLS
 | 
						|
   session.
 | 
						|
 | 
						|
   In the state machine (<a href="#section-2.3">section 2.3</a>), transitions to the DTLS tear down
 | 
						|
   state can be triggered by frequently receiving DTLS packets with
 | 
						|
   authentication or decryption errors.  The threshold or technique for
 | 
						|
   deciding when to move to the tear down state should be chosen
 | 
						|
   carefully.  Being able to easily transition to DTLS TD allows easy
 | 
						|
   detection of malfunctioning devices, but allows for denial of service
 | 
						|
   attacks.  Making it difficult to transition to DTLS TD prevents
 | 
						|
   denial of service attacks, but makes it more difficult to detect and
 | 
						|
   reset a malfunctioning session.  Implementers should set this policy
 | 
						|
   with care.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-12.5" href="#section-12.5">12.5</a>.  Use of Preshared Keys in CAPWAP</span>
 | 
						|
 | 
						|
   While use of preshared keys may provide deployment and provisioning
 | 
						|
   advantages not found in public key based deployments, it also
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007            [Page 123]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-124" id="page-124" href="#page-124" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   introduces a number of operational and security concerns.  In
 | 
						|
   particular, because the keys must typically be entered manually, it
 | 
						|
   is common for people to base them on memorable words or phrases.
 | 
						|
   These are referred to as "low entropy passwords/passphrases".
 | 
						|
 | 
						|
   Use of low-entropy preshared keys, coupled with the fact that the
 | 
						|
   keys are often not frequently updated, tends to significantly
 | 
						|
   increase exposure.  For these reasons, the following recommendations
 | 
						|
   are made:
 | 
						|
 | 
						|
   o  When DTLS is used with a preshared-key (PSK) ciphersuite, each WTP
 | 
						|
      SHOULD have a unique PSK.  Since WTPs will likely be widely
 | 
						|
      deployed, their physical security is not guaranteed.  If PSKs are
 | 
						|
      not unique for each WTP, key reuse would allow the compromise of
 | 
						|
      one WTP to result in the compromise of others
 | 
						|
 | 
						|
   o  Generating PSKs from low entropy passwords is NOT RECOMMENDED.
 | 
						|
 | 
						|
   o  It is RECOMMENDED that implementations that allow the
 | 
						|
      administrator to manually configure the PSK also provide a
 | 
						|
      capability for generation of new random PSKs, taking <a href="./rfc4086">RFC 4086</a> [<a href="#ref-2" title=""Randomness Requirements for Security"">2</a>]
 | 
						|
      into account.
 | 
						|
 | 
						|
   o  Preshared keys SHOULD be periodically updated.  Implementations
 | 
						|
      MAY facilitate this by providing an administrative interface for
 | 
						|
      automatic key generation and periodic update, or it MAY be
 | 
						|
      accomplished manually instead.
 | 
						|
 | 
						|
   Every pairwise combination of WTP and AC on the network SHOULD have a
 | 
						|
   unqiue PSK.  This prevents the domino effect (see Guidance for AAA
 | 
						|
   Key Management [<a href="#ref-16" title=""Guidance for AAA Key Management"">16</a>]).  If PSKs are tied to specific WTPs, then
 | 
						|
   knowledge of the PSK implies a binding to a specified identity that
 | 
						|
   can be authorized.
 | 
						|
 | 
						|
   If PSKs are shared, this binding between device and identity is no
 | 
						|
   longer possible.  Compromise of one WTP can yield compromise of
 | 
						|
   another WTP, violating the CAPWAP security hierarchy.  Consequently,
 | 
						|
   sharing keys between WTPs is NOT RECOMMENDED.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-12.6" href="#section-12.6">12.6</a>.  Use of Certificates in CAPWAP</span>
 | 
						|
 | 
						|
   For public-key-based DTLS deployments, each device SHOULD have unique
 | 
						|
   credentials, with an extended key usage authorizing the device to act
 | 
						|
   as either a WTP or AC.  If devices do not have unique credentials, it
 | 
						|
   is possible that by compromising one device, any other device using
 | 
						|
   the same credential may also be considered to be compromised.
 | 
						|
 | 
						|
   Certificate validation involves checking a large variety of things.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007            [Page 124]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-125" id="page-125" href="#page-125" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
   Since the necessary things to validate are often environment-
 | 
						|
   specific, many are beyond the scope of this document.  In this
 | 
						|
   section, we provide some basic guidance on certificate validation.
 | 
						|
 | 
						|
   Each device is responsible for authenticating and authorizing devices
 | 
						|
   with which they communicate.  Authentication entails validation of
 | 
						|
   the chain of trust leading to the peer certificate, followed by the
 | 
						|
   the peer certificate itself.  At a minimum, devices SHOULD use SSH-
 | 
						|
   style certificate caching to guarantee consistency.  If devices have
 | 
						|
   access to a certificate authority, they SHOULD properly validate the
 | 
						|
   trust chain.  Implementations SHOULD also provide a secure method for
 | 
						|
   verifying that the credential in question has not been revoked.
 | 
						|
 | 
						|
   Note that if the WTP relies on the AC for network connectivity (e.g.
 | 
						|
   the AC is a layer 2 switch to which the WTP is directly connected),
 | 
						|
   the WTP may not be able to contact an OCSP server or otherwise obtain
 | 
						|
   an up to date CRL if a compromised AC doesn't explicitly permit this.
 | 
						|
   This cannot be avoided, except through effective physical security
 | 
						|
   and monitoring measures at the AC.
 | 
						|
 | 
						|
   Proper validation of certificates typically requires checking to
 | 
						|
   ensure the certificate has not yet expired.  If devices have a real-
 | 
						|
   time clock, they SHOULD verify the certificate validity dates.  If no
 | 
						|
   real-time clock is available, the device SHOULD make a best-effort
 | 
						|
   attempt to validate the certificate validity dates through other
 | 
						|
   means.  Failure to check a certificate's temporal validity can make a
 | 
						|
   device vulnerable to man-in-the-middle attacks launched using
 | 
						|
   compromised, expired certificates, and therefore devices should make
 | 
						|
   every effort to perform this validation.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-12.7" href="#section-12.7">12.7</a>.  AAA Security</span>
 | 
						|
 | 
						|
   The AAA protocol is used to distribute EAP keys to the ACs, and
 | 
						|
   consequently its security is important to the overall system
 | 
						|
   security.  When used with TLS or IPsec, security guidelines specified
 | 
						|
   in <a href="./rfc3539">RFC 3539</a> [<a href="#ref-5" title=""Authentication, Authorization and Accounting (AAA) Transport Profile"">5</a>] SHOULD be followed.
 | 
						|
 | 
						|
   In general, the link between the AC and AAA server SHOULD be secured
 | 
						|
   using a strong ciphersuite keyed with mutually authenticated session
 | 
						|
   keys.  Implementations SHOULD NOT rely solely on Basic RADIUS shared
 | 
						|
   secret authentication as it is often vulnerable to dictionary
 | 
						|
   attacks, but rather SHOULD use stronger underlying security
 | 
						|
   mechanisms.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007            [Page 125]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-126" id="page-126" href="#page-126" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h2"><a class="selflink" name="section-13" href="#section-13">13</a>.  Management Considerations</span>
 | 
						|
 | 
						|
   The CAPWAP protocol assumes that it is the only configuration
 | 
						|
   interface to the WTP to configure parameters that are specified in
 | 
						|
   the CAPWAP specifications.  While the use of a separate management
 | 
						|
   protocol MAY be used for the purposes of monitoring the WTP directly,
 | 
						|
   configuring the WTP through a separate management interface is not
 | 
						|
   recommended.  Configuring the WTP through a separate protocol, such
 | 
						|
   as via a CLI or SNMP, could lead to the AC state being out of sync
 | 
						|
   with the WTP.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007            [Page 126]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-127" id="page-127" href="#page-127" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h2"><a class="selflink" name="section-14" href="#section-14">14</a>.  IANA Considerations</span>
 | 
						|
 | 
						|
   A separate UDP port for data channel communications is (currently)
 | 
						|
   the selected demultiplexing mechanism, and a port must be assigned
 | 
						|
   for this purpose in <a href="#section-3.1">Section 3.1</a>.  The UDP port numbers are listed by
 | 
						|
   IANA at <a href="http://www.iana.org/assignments/port-numbers">http://www.iana.org/assignments/port-numbers</a>.
 | 
						|
 | 
						|
   IANA needs to assign an organization local multicast address called
 | 
						|
   the "All ACs multicast address" from the IPv6 multicast address
 | 
						|
   registry in <a href="#section-3.3">Section 3.3</a>
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-14.1" href="#section-14.1">14.1</a>.  CAPWAP Message Types</span>
 | 
						|
 | 
						|
   The Message Type field in the CAPWAP header (<a href="#section-4.5.1.1">Section 4.5.1.1</a>) is used
 | 
						|
   to identify the operation performed by the message.  There are
 | 
						|
   multiple namespaces, which is identified via the first three octets
 | 
						|
   of the field containing the IANA Enterprise Number [<a href="#ref-10" title=""Guidelines for Writing an IANA Considerations Section in RFCs"">10</a>].  When the
 | 
						|
   Enterprise Number is set to zero, the message types are reserved for
 | 
						|
   use by the base CAPWAP specification which are controlled and
 | 
						|
   maintained by IANA and requires a Standards Action.
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-14.2" href="#section-14.2">14.2</a>.  Wireless Binding Identifiers</span>
 | 
						|
 | 
						|
   The Wireless Binding Identifier (WBID) field in the CAPWAP header
 | 
						|
   (<a href="#section-4.3">Section 4.3</a>) is used to identify the wireless technology associated
 | 
						|
   with the packet.  Due to the limited address space available, a new
 | 
						|
   WBID request requires Standards Action.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007            [Page 127]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-128" id="page-128" href="#page-128" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h2"><a class="selflink" name="section-15" href="#section-15">15</a>.  Acknowledgements</span>
 | 
						|
 | 
						|
   The following individuals are acknowledged for their contributions to
 | 
						|
   this protocol specification: Puneet Agarwal, Saravanan Govindan,
 | 
						|
   Peter Nilsson, and David Perkins.
 | 
						|
 | 
						|
   Michael Vakulenko contributed text to describe how CAPWAP can be used
 | 
						|
   over layer 3 (IP/UDP) networks.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007            [Page 128]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-129" id="page-129" href="#page-129" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h2"><a class="selflink" name="section-16" href="#section-16">16</a>.  References</span>
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-16.1" href="#section-16.1">16.1</a>.  Normative References</span>
 | 
						|
 | 
						|
   [<a name="ref-1" id="ref-1">1</a>]   Bradner, S., "Key words for use in RFCs to Indicate Requirement
 | 
						|
         Levels", <a href="./bcp14">BCP 14</a>, <a href="./rfc2119">RFC 2119</a>, March 1997.
 | 
						|
 | 
						|
   [<a name="ref-2" id="ref-2">2</a>]   Eastlake, D., Schiller, J., and S. Crocker, "Randomness
 | 
						|
         Requirements for Security", <a href="./bcp106">BCP 106</a>, <a href="./rfc4086">RFC 4086</a>, June 2005.
 | 
						|
 | 
						|
   [<a name="ref-3" id="ref-3">3</a>]   Mills, D., "Network Time Protocol (Version 3) Specification,
 | 
						|
         Implementation", <a href="./rfc1305">RFC 1305</a>, March 1992.
 | 
						|
 | 
						|
   [<a name="ref-4" id="ref-4">4</a>]   Housley, R., Polk, W., Ford, W., and D. Solo, "Internet X.509
 | 
						|
         Public Key Infrastructure Certificate and Certificate
 | 
						|
         Revocation List (CRL) Profile", <a href="./rfc3280">RFC 3280</a>, April 2002.
 | 
						|
 | 
						|
   [<a name="ref-5" id="ref-5">5</a>]   Aboba, B. and J. Wood, "Authentication, Authorization and
 | 
						|
         Accounting (AAA) Transport Profile", <a href="./rfc3539">RFC 3539</a>, June 2003.
 | 
						|
 | 
						|
   [<a name="ref-6" id="ref-6">6</a>]   Eronen, P. and H. Tschofenig, "Pre-Shared Key Ciphersuites for
 | 
						|
         Transport Layer Security (TLS)", <a href="./rfc4279">RFC 4279</a>, December 2005.
 | 
						|
 | 
						|
   [<a name="ref-7" id="ref-7">7</a>]   Dierks, T. and E. Rescorla, "The Transport Layer Security (TLS)
 | 
						|
         Protocol Version 1.1", <a href="./rfc4346">RFC 4346</a>, April 2006.
 | 
						|
 | 
						|
   [<a name="ref-8" id="ref-8">8</a>]   Rescorla, E. and N. Modadugu, "Datagram Transport Layer
 | 
						|
         Security", <a href="./rfc4347">RFC 4347</a>, April 2006.
 | 
						|
 | 
						|
   [<a name="ref-9" id="ref-9">9</a>]   Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor
 | 
						|
         Extensions", <a href="./rfc2132">RFC 2132</a>, March 1997.
 | 
						|
 | 
						|
   [<a name="ref-10" id="ref-10">10</a>]  Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA
 | 
						|
         Considerations Section in RFCs", <a href="./bcp26">BCP 26</a>, <a href="./rfc2434">RFC 2434</a>,
 | 
						|
         October 1998.
 | 
						|
 | 
						|
   [<a name="ref-11" id="ref-11">11</a>]  Larzon, L-A., Degermark, M., Pink, S., Jonsson, L-E., and G.
 | 
						|
         Fairhurst, "The Lightweight User Datagram Protocol (UDP-Lite)",
 | 
						|
         <a href="./rfc3828">RFC 3828</a>, July 2004.
 | 
						|
 | 
						|
   [<a name="ref-12" id="ref-12">12</a>]  Calhoun, P., Montemurro, M., Stanley, D., "CAPWAP Protocol
 | 
						|
         Binding for IEEE 802.11", <a href="./draft-ietf-capwap-protocol-binding-ieee80211-04">draft-ietf-capwap-protocol-</a>
 | 
						|
                 <a href="./draft-ietf-capwap-protocol-binding-ieee80211-04">binding-ieee80211-04</a> (work in progress), June 2007.
 | 
						|
 | 
						|
   [<a name="ref-13" id="ref-13">13</a>]  Calhoun, P., "CAPWAP Access Controller DHCP Option",
 | 
						|
         <a href="./draft-ietf-capwap-dhc-ac-option-00">draft-ietf-capwap-dhc-ac-option-00</a> (work in progress),
 | 
						|
         June 2007.
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007            [Page 129]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-130" id="page-130" href="#page-130" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
<span class="h3"><a class="selflink" name="section-16.2" href="#section-16.2">16.2</a>.  Informational References</span>
 | 
						|
 | 
						|
   [<a name="ref-14" id="ref-14">14</a>]  Reynolds, J., "Assigned Numbers: <a href="./rfc1700">RFC 1700</a> is Replaced by an On-
 | 
						|
         line Database", <a href="./rfc3232">RFC 3232</a>, January 2002.
 | 
						|
 | 
						|
   [<a name="ref-15" id="ref-15">15</a>]  Manner, J. and M. Kojo, "Mobility Related Terminology",
 | 
						|
         <a href="./rfc3753">RFC 3753</a>, June 2004.
 | 
						|
 | 
						|
   [<a name="ref-16" id="ref-16">16</a>]  Housley, R. and B. Aboba, "Guidance for AAA Key Management",
 | 
						|
         <a href="./draft-housley-aaa-key-mgmt-09">draft-housley-aaa-key-mgmt-09</a> (work in progress),
 | 
						|
         February 2007.
 | 
						|
 | 
						|
   [<a name="ref-17" id="ref-17">17</a>]  Modadugu et al, N., "The Design and Implementation of Datagram
 | 
						|
         TLS", Feb 2004.
 | 
						|
 | 
						|
   [<a name="ref-18" id="ref-18">18</a>]  IEEE, "Guidelines for use of a 48-bit Extended Unique
 | 
						|
         Identifier", Dec 2005.
 | 
						|
 | 
						|
   [<a name="ref-19" id="ref-19">19</a>]  IEEE, "GUIDELINES FOR 64-BIT GLOBAL IDENTIFIER (EUI-64)
 | 
						|
         REGISTRATION AUTHORITY".
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007            [Page 130]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-131" id="page-131" href="#page-131" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
Editors' Addresses
 | 
						|
 | 
						|
   Pat R. Calhoun
 | 
						|
   Cisco Systems, Inc.
 | 
						|
   170 West Tasman Drive
 | 
						|
   San Jose, CA  95134
 | 
						|
 | 
						|
   Phone: +1 408-853-5269
 | 
						|
   Email: pcalhoun@cisco.com
 | 
						|
 | 
						|
 | 
						|
   Michael P. Montemurro
 | 
						|
   Research In Motion
 | 
						|
   5090 Commerce Blvd
 | 
						|
   Mississauga, ON  L4W 5M4
 | 
						|
   Canada
 | 
						|
 | 
						|
   Phone: +1 905-629-4746 x4999
 | 
						|
   Email: mmontemurro@rim.com
 | 
						|
 | 
						|
 | 
						|
   Dorothy Stanley
 | 
						|
   Aruba Networks
 | 
						|
   1322 Crossman Ave
 | 
						|
   Sunnyvale, CA  94089
 | 
						|
 | 
						|
   Phone: +1 630-363-1389
 | 
						|
   Email: dstanley@arubanetworks.com
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
<span class="grey">Calhoun, Editor, et al.  Expires December 13, 2007            [Page 131]</span>
 | 
						|
</pre><!--NewPage--><pre class='newpage'><a name="page-132" id="page-132" href="#page-132" class="invisible"> </a>
 | 
						|
<span class="grey">Internet-Draft        CAPWAP Protocol Specification            June 2007</span>
 | 
						|
 | 
						|
 | 
						|
Full Copyright Statement
 | 
						|
 | 
						|
   Copyright (C) The IETF Trust (2007).
 | 
						|
 | 
						|
   This document is subject to the rights, licenses and restrictions
 | 
						|
   contained in <a href="./bcp78">BCP 78</a>, and except as set forth therein, the authors
 | 
						|
   retain all their rights.
 | 
						|
 | 
						|
   This document and the information contained herein are provided on an
 | 
						|
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
 | 
						|
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
 | 
						|
   THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
 | 
						|
   OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
 | 
						|
   THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
 | 
						|
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
 | 
						|
 | 
						|
 | 
						|
Intellectual Property
 | 
						|
 | 
						|
   The IETF takes no position regarding the validity or scope of any
 | 
						|
   Intellectual Property Rights or other rights that might be claimed to
 | 
						|
   pertain to the implementation or use of the technology described in
 | 
						|
   this document or the extent to which any license under such rights
 | 
						|
   might or might not be available; nor does it represent that it has
 | 
						|
   made any independent effort to identify any such rights.  Information
 | 
						|
   on the procedures with respect to rights in RFC documents can be
 | 
						|
   found in <a href="./bcp78">BCP 78</a> and <a href="./bcp79">BCP 79</a>.
 | 
						|
 | 
						|
   Copies of IPR disclosures made to the IETF Secretariat and any
 | 
						|
   assurances of licenses to be made available, or the result of an
 | 
						|
   attempt made to obtain a general license or permission for the use of
 | 
						|
   such proprietary rights by implementers or users of this
 | 
						|
   specification can be obtained from the IETF on-line IPR repository at
 | 
						|
   <a href="http://www.ietf.org/ipr">http://www.ietf.org/ipr</a>.
 | 
						|
 | 
						|
   The IETF invites any interested party to bring to its attention any
 | 
						|
   copyrights, patents or patent applications, or other proprietary
 | 
						|
   rights that may cover technology that may be required to implement
 | 
						|
   this standard.  Please address the information to the IETF at
 | 
						|
   ietf-ipr@ietf.org.
 | 
						|
 | 
						|
 | 
						|
Acknowledgment
 | 
						|
 | 
						|
   Funding for the RFC Editor function is provided by the IETF
 | 
						|
   Administrative Support Activity (IASA).
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
Calhoun, Editor, et al.  Expires December 13, 2007            [Page 132]
 | 
						|
 | 
						|
</pre><br />
 | 
						|
<span class="noprint"><small><small>Html markup produced by rfcmarkup 1.111, available from
 | 
						|
<a href="https://tools.ietf.org/tools/rfcmarkup/">https://tools.ietf.org/tools/rfcmarkup/</a>
 | 
						|
</small></small></span>
 | 
						|
</body></html>
 |