// Copyright (c) 2009 DMTF.  All rights reserved.
   [Version ( "2.22.0" ), 
    UMLPackagePath ( "CIM::Network::Wireless" ), 
    Description ( 
       "A wireless communication endpoint which, when its associated "
       "interface device is associated with an IEEE 802.11 wireless "
       "LAN, may send and receive data frames." )]
class CIM_WiFiEndpoint : CIM_LANEndpoint {

      [Override ( "LANID" ), 
       Description ( 
          "LANID shall contain the Service Set Identifier (SSID) of "
          "the wireless LAN with which the Endpoint is associated, "
          "or shall be NULL if the Endpoint is not currently "
          "associated or this information is not known." ), 
       MappingStrings { "IEEE 802.11-2007 | 7.3.2.1" }]
   string LANID;

      [Override ( "ProtocolIFType" ), 
       Description ( 
          "ProtocolIFType\'s enumeration is limited to Wi-Fi and "
          "reserved values for this subclass of ProtocolEndpoint." ), 
       ValueMap { "1", "71", "225..4095", "4301..32767", "32768.." }, 
       Values { "Other", "IEEE 802.11", "IANA Reserved", 
          "DMTF Reserved", "Vendor Reserved" }]
   uint16 ProtocolIFType = 71;

      [Description ( 
          "EncryptionMethod shall specify the encryption method in "
          "use to protect the confidentiality of data sent and "
          "received by the WiFiEndpoint.\n"
          "\t* Unknown (0): shall indicate that the encryption "
          "method is unknown to the server.\n"
          "\t* Other (1): shall indicate that the encryption method "
          "is known to the server but not defined in the list "
          "below. If EncryptionMethod contains 1, "
          "OtherEncryptionMethod shall not be NULL and shall not be empty.\n"
          "\t* WEP (2): shall indicate that the encryption method "
          "is Wired Equivalency Privacy (WEP). The value of "
          "EncryptionMethod shall be 2 only if the value of "
          "AuthenticationMethod is 2 (\"Open System\") or 3 "
          "(\"Shared Key\").\n"
          "\t* TKIP (3): shall indicate that the encryption method "
          "is Temporal Key Integrity Protocol (TKIP). The value of "
          "EncryptionMethod shall be 3 only if the value of "
          "AuthenticationMethod is 4 (\"WPA PSK\"), 5 (\"WPA IEEE "
          "802.1x\"), 6 (\"WPA2 PSK\"), or 7 (\"WPA2 IEEE 802.1x\").\n"
          "\t* CCMP (4): shall indicate that the encryption method "
          "is Counter Mode with Cipher Block Chaining Message "
          "Authentication Code Protocol (CCMP). The value of "
          "EncryptionMethod shall be 4 only if the value of "
          "AuthenticationMethod is 4 (\"WPA PSK\"), 5 (\"WPA IEEE "
          "802.1x\"), 6 (\"WPA2 PSK\"), or 7 (\"WPA2 IEEE 802.1x\").\n"
          "\t* None (5): shall indicate that no encryption method "
          "is in use. The value of EncryptionMethod shall be 5 only "
          "if the value of AuthenticationMethod is 2 (\"Open "
          "System\") or 3 (\"Shared Key\")." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6.." }, 
       Values { "Unknown", "Other", "WEP", "TKIP", "CCMP", "None", 
          "DMTF Reserved" }, 
       MappingStrings { "IEEE 802.11-2007 | 8" }, 
       ModelCorrespondence { 
          "CIM_WiFiEndpoint.AuthenticationMethod", 
          "CIM_WiFiEndpoint.OtherEncryptionMethod" }]
   uint16 EncryptionMethod;

      [Description ( 
          "OtherEncryptionMethod shall specify the 802.11 "
          "encryption method if and only if EncryptionMethod "
          "contains \"Other\". The format of this string shall be "
          "vendor-specific." ), 
       ModelCorrespondence { "CIM_WiFiEndpoint.EncryptionMethod" }]
   string OtherEncryptionMethod;

      [Description ( 
          "AuthenticationMethod shall specify the method used to "
          "authenticate the WiFiEndpoint and the network to one another.\n"
          "\t* Unknown (0): shall indicate that the authentication "
          "method is unknown to the server.\t* Other (1): shall "
          "indicate that the authentication method is known to the "
          "server but not specified in the list below. If "
          "AuthenticationMethod contains 1, "
          "OtherAuthenticationMethod shall not be NULL and shall "
          "not be empty.\n"
          "\t* Open System (2): shall indicate that the "
          "authentication method is Open System. "
          "AuthenticationMethod shall contain 2 only if "
          "EncryptionMethod contains 2 (\"WEP\").\n"
          "\t* Shared Key (3): shall indicate that the "
          "authentication method is Shared Key. "
          "AuthenticationMethod shall contain 3 only if "
          "EncryptionMethod contains 2 (\"WEP\").\n"
          "\t* WPA PSK (4): shall indicate that the authentication "
          "method is WPA (Wi-Fi Protected Access) PSK (Pre-Shared "
          "Key). AuthenticationMethod shall contain 4 only if "
          "EncryptionMethod contains 3 (\"TKIP\") or 4 (\"CCMP\").\n"
          "\t* WPA IEEE 802.1x (5): shall indicate that the "
          "authentication method is WPA (Wi-Fi Protected Access) "
          "IEEE 802.1x. AuthenticationMethod shall contain 5 only "
          "if EncryptionMethod contains 3 (\"TKIP\") or 4 (\"CCMP\").\n"
          "\t* WPA2 PSK (6): shall indicate that the authentication "
          "method is WPA2 (Wi-Fi Protected Access Version 2) PSK "
          "(Pre-Shared Key). AuthenticationMethod shall contain 6 "
          "only if EncryptionMethod contains 3 (\"TKIP\") or 4 (\"CCMP\").\n"
          "\t* WPA2 IEEE 802.1x (7): shall indicate that the "
          "authentication method is WPA2 (Wi-Fi Protected Access "
          "Version 2) IEEE 802.1x. AuthenticationMethod shall "
          "contain 6 only if EncryptionMethod contains 3 (\"TKIP\") "
          "or 4 (\"CCMP\").\n"
          "\t* CCKM IEEE 802.1x (8): CCKM (Cisco Centralized Key "
          "Management with LEAP or EAP-FAST)" ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9.." }, 
       Values { "Unknown", "Other", "Open System", "Shared Key", 
          "WPA PSK", "WPA IEEE 802.1x", "WPA2 PSK", 
          "WPA2 IEEE 802.1x", "CCKM IEEE 802.1x", "DMTF Reserved" }, 
       MappingStrings { "IEEE 802.11-2007 | 8" }, 
       ModelCorrespondence { "CIM_WiFiEndpoint.EncryptionMethod", 
          "CIM_WiFiEndpoint.IEEE8021xAuthenticationProtocol", 
          "CIM_WiFiEndpoint.OtherAuthenticationMethod" }]
   uint16 AuthenticationMethod;

      [Description ( 
          "OtherAuthenticationMethod shall specify the 802.11 "
          "authentication method if and only if "
          "AuthenticationMethod contains \"Other\". The format of "
          "this string shall be vendor-specific." ), 
       ModelCorrespondence { "CIM_WiFiEndpoint.AuthenticationMethod" }]
   string OtherAuthenticationMethod;

      [Description ( 
          "IEEE8021xAuthenticationProtocol shall contain the EAP "
          "(Extensible Authentication Protocol) type if and only if "
          "AuthenticationMethod contains \"WPA IEEE 802.1x\" or "
          "\"WPA2 IEEE 802.1x\" or \"CCKM IEEE 802.1x\"\n"
          ".\t* EAP-TLS (0): shall indicate the Transport Layer "
          "Security EAP type specified in RFC 2716.\n"
          "\t* EAP-TTLS/MSCHAPv2 (1): shall indicate the Tunneled "
          "TLS Authentication Protocol EAP type (specified in "
          "draft-ietf-pppext-eap-ttls) with Microsoft PPP CHAP "
          "Extensions, Version 2 (MSCHAPv2) as the inner "
          "authentication method.\n"
          "\t* PEAPv0/EAP-MSCHAPv2 (2): shall indicate the "
          "Protected Extensible Authentication Protocol (PEAP) "
          "Version 0 EAP type (specified in "
          "draft-kamath-pppext-peapv0), with Microsoft PPP CHAP "
          "Extensions, Version 2 (MSCHAPv2) as the inner "
          "authentication method.\n"
          "\t* PEAPv1/EAP-GTC (3): shall indicate the Protected "
          "Extensible Authentication Protocol (PEAP) Version 1 EAP "
          "type (specified in draft-josefsson-pppext-eap-tls-eap), "
          "with Generic Token Card (GTC) as the inner "
          "authentication method.\n"
          "\t* EAP-FAST/MSCHAPv2 (4): shall indicate the Flexible "
          "Authentication Extensible Authentication Protocol EAP "
          "type specified in IETF RFC 4851, with Microsoft PPP CHAP "
          "Extensions, Version 2 (MSCHAPv2) as the inner "
          "authentication method.\n"
          "\t* EAP-FAST/GTC (5): shall indicate the Flexible "
          "Authentication Extensible Authentication Protocol EAP "
          "type specified in IETF RFC 4851, with Generic Token Card "
          "(GTC) as the inner authentication method.\n"
          "\t* EAP-MD5 (6): shall indicate the EAP MD5 "
          "authentication method, specified in RFC 3748.\n"
          "\t* EAP-PSK (7): shall indicate the EAP-PSK (Pre-shared "
          "Key) Protocol specified in RFC 4764.\n"
          "\t* EAP-SIM (8): shall indicate the Extensible "
          "Authentication Protocol Method for Global System for "
          "Mobile Communications (GSM) Subscriber Identity Modules "
          "(EAP-SIM), specified in RFC 4186.\n"
          "\t* EAP-AKA (9): shall indicate the Extensible "
          "Authentication Protocol Method for 3rd Generation "
          "Authentication and Key Agreement (EAP-AKA) "
          "authentication method, specified in RFC 4187.\n"
          "\t* EAP-FAST/TLS (10): shall indicate the Flexible "
          "Authentication Extensible Authentication Protocol EAP "
          "type specified in IETF RFC 4851, with TLS as the inner "
          "authentication method." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
          "10", "11.." }, 
       Values { "EAP-TLS", "EAP-TTLS/MSCHAPv2", 
          "PEAPv0/EAP-MSCHAPv2", "PEAPv1/EAP-GTC", 
          "EAP-FAST/MSCHAPv2", "EAP-FAST/GTC", "EAP-MD5", "EAP-PSK", 
          "EAP-SIM", "EAP-AKA", "EAP-FAST/TLS", "DMTF Reserved" }, 
       MappingStrings { "RFC4017.IETF", "RFC2716.IETF", 
          "draft-ietf-pppext-eap-ttls.IETF", 
          "draft-kamath-pppext-peapv0.IETF", 
          "draft-josefsson-pppext-eap-tls-eap", "RFC4851.IETF", 
          "RFC3748.IETF", "RFC4764.IETF", "RFC4186.IETF", 
          "RFC4187.IETF" }, 
       ModelCorrespondence { "CIM_WiFiEndpoint.AuthenticationMethod" }]
   uint16 IEEE8021xAuthenticationProtocol;

      [Description ( 
          "AccessPointAddress shall contain the MAC address of the "
          "access point with which the WiFiEndpoint is currently "
          "associated. If the WiFiEndpoint is not currently "
          "associated, then AccessPointAddress shall be NULL.The "
          "MAC address shall be formatted as twelve hexadecimal "
          "digits (for example, \"010203040506\"), with each pair "
          "representing one of the six octets of the MAC address in "
          "\"canonical\" bit order. (Therefore, the Group address "
          "bit is found in the low order bit of the first character "
          "of the string.)" )]
   string AccessPointAddress;

      [Description ( 
          "BSSType shall indicate the Basic Service Set (BSS) Type "
          "of the network that corresponds to the instance. A Basic "
          "Service Set is a set of stations controlled by a single "
          "coordination function.\n"
          "\t* Independent: the WiFiEndpoint is associated directly "
          "to another client station.\n"
          "\t* Infrastructure: the WiFiEndpoint is associated to a "
          "network via an access point." ), 
       ValueMap { "0", "2", "3", "4.." }, 
       Values { "Unknown", "Independent", "Infrastructure", 
          "DMTF Reserved" }, 
       MappingStrings { "IEEE 802.11-2007 | 3.16" }]
   uint16 BSSType;

      [Description ( 
          "Associated shall indicate whether or not the "
          "WiFiEndpoint is currently associated to an access point "
          "or client station." )]
   boolean Associated;


};
