| <?xml version="1.0"?> |
| <!-- |
| Copyright (c) 2021 Project CHIP Authors |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| <configurator> |
| <domain name="CHIP" spec="chip-0.7" dependsOn="zcl-1.0-07-5123-03" certifiable="true"/> |
| <enum name="NetworkCommissioningStatusEnum" type="enum8"> |
| <cluster code="0x0031"/> |
| <item name="Success" value="0x0"/> |
| <item name="OutOfRange" value="0x1"/> |
| <item name="BoundsExceeded" value="0x2"/> |
| <item name="NetworkIDNotFound" value="0x3"/> |
| <item name="DuplicateNetworkID" value="0x4"/> |
| <item name="NetworkNotFound" value="0x5"/> |
| <item name="RegulatoryError" value="0x6"/> |
| <item name="AuthFailure" value="0x7"/> |
| <item name="UnsupportedSecurity" value="0x8"/> |
| <item name="OtherConnectionFailure" value="0x9"/> |
| <item name="IPV6Failed" value="0xa"/> |
| <item name="IPBindFailed" value="0xb"/> |
| <item name="UnknownError" value="0xc"/> |
| </enum> |
| <enum name="WiFiBandEnum" type="enum8"> |
| <cluster code="0x0031"/> |
| <item name="2G4" value="0x0"/> |
| <item name="3G65" value="0x1"/> |
| <item name="5G" value="0x2"/> |
| <item name="6G" value="0x3"/> |
| <item name="60G" value="0x4"/> |
| <item name="1G" value="0x5"/> |
| </enum> |
| <bitmap name="WiFiSecurityBitmap" type="bitmap8"> |
| <cluster code="0x0031"/> |
| <field name="Unencrypted" mask="0x1"/> |
| <field name="WEP" mask="0x2"/> |
| <field name="WPA-PERSONAL" mask="0x4"/> |
| <field name="WPA2-PERSONAL" mask="0x8"/> |
| <field name="WPA3-PERSONAL" mask="0x10"/> |
| <field name="WPA3-Matter-PDC" mask="0x20"/> |
| </bitmap> |
| |
| <bitmap name="ThreadCapabilitiesBitmap" type="bitmap16" apiMaturity="provisional"> |
| <cluster code="0x0031"/> |
| <field name="IsBorderRouterCapable" mask="0x1"/> |
| <field name="IsRouterCapable" mask="0x2"/> |
| <field name="IsSleepyEndDeviceCapable" mask="0x4"/> |
| <field name="IsFullThreadDevice" mask="0x8"/> |
| <field name="IsSynchronizedSleepyEndDeviceCapable" mask="0x10"/> |
| </bitmap> |
| |
| <struct name="WiFiInterfaceScanResultStruct"> |
| <cluster code="0x0031"/> |
| <item name="Security" type="WiFiSecurityBitmap"/> |
| <item name="SSID" type="octet_string" length="32"/> |
| <item name="BSSID" type="octet_string" length="6"/> |
| <item name="Channel" type="int16u"/> |
| <item name="WiFiBand" type="WiFiBandEnum"/> |
| <item name="RSSI" type="int8s"/> |
| </struct> |
| <struct name="ThreadInterfaceScanResultStruct"> |
| <cluster code="0x0031"/> |
| <item name="PanId" type="int16u"/> |
| <item name="ExtendedPanId" type="int64u"/> |
| <item name="NetworkName" type="char_string" length="16"/> |
| <item name="Channel" type="int16u"/> |
| <item name="Version" type="int8u"/> |
| <item name="ExtendedAddress" type="octet_string" length="8"/> <!-- Note: hwadr is not supported yet, use its base type (octet_string) here --> |
| <item name="RSSI" type="int8s"/> |
| <item name="LQI" type="int8u"/> |
| </struct> |
| <struct name="NetworkInfoStruct"> |
| <cluster code="0x0031"/> |
| <item name="NetworkID" type="octet_string" length="32"/> |
| <item name="Connected" type="boolean"/> |
| <item name="NetworkIdentifier" type="octet_string" length="20" optional="true" isNullable="true"/> |
| <item name="ClientIdentifier" type="octet_string" length="20" optional="true" isNullable="true"/> |
| </struct> |
| |
| <cluster> |
| <name>Network Commissioning</name> |
| <domain>CHIP</domain> |
| <description>Functionality to configure, enable, disable network credentials and access on a Matter device.</description> |
| <code>0x0031</code> |
| <define>NETWORK_COMMISSIONING_CLUSTER</define> |
| <client tick="false" init="false">true</client> |
| <server tick="false" init="false">true</server> |
| |
| <features> |
| <feature bit="0" code="WI" name="WiFiNetworkInterface" summary="Wi-Fi related features"> |
| <optionalConform choice="a"/> |
| </feature> |
| <feature bit="1" code="TH" name="ThreadNetworkInterface" summary="Thread related features"> |
| <optionalConform choice="a"/> |
| </feature> |
| <feature bit="2" code="ET" name="EthernetNetworkInterface" summary="Ethernet related features"> |
| <optionalConform choice="a"/> |
| </feature> |
| <feature bit="3" code="PC" name="PerDeviceCredentials" summary="Device related features"> |
| <optionalConform choice="a"/> |
| </feature> |
| </features> |
| |
| <attribute side="server" code="0x0000" define="MAX_NETWORKS" type="int8u" writable="false" optional="false"> |
| <description>MaxNetworks</description> |
| <access op="read" privilege="administer"/> |
| </attribute> |
| <attribute side="server" code="0x0001" define="NETWORKS" type="array" entryType="NetworkInfoStruct" writable="false" optional="false"> |
| <description>Networks</description> |
| <access op="read" privilege="administer"/> |
| </attribute> |
| <attribute side="server" code="0x0002" define="SCAN_MAX_TIME_SECONDS" type="int8u" writable="false" optional="true">ScanMaxTimeSeconds</attribute> |
| <attribute side="server" code="0x0003" define="CONNECT_MAX_TIME_SECONDS" type="int8u" writable="false" optional="true">ConnectMaxTimeSeconds</attribute> |
| <attribute side="server" code="0x0004" define="INTERFACE_ENABLED" type="boolean" writable="true" optional="false"> |
| <description>InterfaceEnabled</description> |
| <access op="read" privilege="view"/> |
| <access op="write" privilege="administer"/> |
| </attribute> |
| <attribute side="server" code="0x0005" define="LAST_NETWORKING_STATUS" type="NetworkCommissioningStatusEnum" writable="false" optional="false" isNullable="true"> |
| <description>LastNetworkingStatus</description> |
| <access op="read" privilege="administer"/> |
| </attribute> |
| <attribute side="server" code="0x0006" define="LAST_NETWORK_ID" type="octet_string" length="32" writable="false" optional="false" isNullable="true"> |
| <description>LastNetworkID</description> |
| <access op="read" privilege="administer"/> |
| </attribute> |
| <attribute side="server" code="0x0007" define="LAST_CONNECT_ERROR_VALUE" type="int32s" writable="false" optional="false" isNullable="true"> |
| <description>LastConnectErrorValue</description> |
| <access op="read" privilege="administer"/> |
| </attribute> |
| <attribute side="server" code="0x0008" define="SUPPORTED_WIFI_BANDS" type="array" entryType="WiFiBandEnum" writable="false" optional="true" apiMaturity="provisional"> |
| <description>SupportedWiFiBands</description> |
| </attribute> |
| <attribute side="server" code="0x0009" define="SUPPORTED_THREAD_FEATURES" type="ThreadCapabilitiesBitmap" writable="false" optional="true" apiMaturity="provisional"> |
| <description>SupportedThreadFeatures</description> |
| </attribute> |
| <attribute side="server" code="0x000A" define="THREAD_VERSION" type="int16u" writable="false" optional="true" apiMaturity="provisional"> |
| <description>ThreadVersion</description> |
| </attribute> |
| |
| <command source="client" code="0x00" name="ScanNetworks" optional="true" response="ScanNetworksResponse" cli="chip network_commissioning scannetworks"> |
| <description>Detemine the set of networks the device sees as available.</description> |
| <arg name="SSID" type="octet_string" length="32" isNullable="true" optional="true"/> |
| <arg name="Breadcrumb" type="int64u" optional="true"/> |
| <access op="invoke" privilege="administer"/> |
| </command> |
| <command source="server" code="0x01" name="ScanNetworksResponse" optional="true" cli="chip network_commissioning scannetworksresponse"> |
| <description>Relay the set of networks the device sees as available back to the client.</description> |
| <arg name="NetworkingStatus" type="NetworkCommissioningStatusEnum"/> |
| <arg name="DebugText" type="char_string" optional="true"/> |
| <arg name="WiFiScanResults" type="WiFiInterfaceScanResultStruct" array="true" optional="true"/> |
| <arg name="ThreadScanResults" type="ThreadInterfaceScanResultStruct" array="true" optional="true"/> |
| </command> |
| <command source="client" code="0x02" name="AddOrUpdateWiFiNetwork" optional="true" response="NetworkConfigResponse" cli="chip network_commissioning addorupdatewifinetwork"> |
| <description>Add or update the credentials for a given Wi-Fi network.</description> |
| <arg name="SSID" type="octet_string" length="32"/> |
| <arg name="Credentials" type="octet_string" length="64"/> |
| <arg name="Breadcrumb" type="int64u" optional="true"/> |
| <arg name="NetworkIdentity" type="octet_string" length="140" optional="true"/> |
| <arg name="ClientIdentifier" type="octet_string" length="20" optional="true"/> |
| <arg name="PossessionNonce" type="octet_string" length="32" optional="true"/> |
| <access op="invoke" privilege="administer"/> |
| </command> |
| <command source="client" code="0x03" name="AddOrUpdateThreadNetwork" optional="true" response="NetworkConfigResponse" cli="chip network_commissioning addorupdatethreadnetwork"> |
| <description>Add or update the credentials for a given Thread network.</description> |
| <arg name="OperationalDataset" type="octet_string" length="254"/> |
| <arg name="Breadcrumb" type="int64u" optional="true"/> |
| <access op="invoke" privilege="administer"/> |
| </command> |
| <command source="client" code="0x04" name="RemoveNetwork" optional="true" response="NetworkConfigResponse" cli="chip network_commissioning removenetwork"> |
| <description>Remove the definition of a given network (including its credentials).</description> |
| <arg name="NetworkID" type="octet_string" length="32"/> |
| <arg name="Breadcrumb" type="int64u" optional="true"/> |
| <access op="invoke" privilege="administer"/> |
| </command> |
| <command source="server" code="0x05" name="NetworkConfigResponse" optional="true" cli="chip network_commissioning addwifiresponse"> |
| <description>Response command for various commands that add/remove/modify network credentials.</description> |
| <arg name="NetworkingStatus" type="NetworkCommissioningStatusEnum"/> |
| <arg name="DebugText" type="char_string" length="512" optional="true" /> |
| <arg name="NetworkIndex" type="int8u" optional="true" /> |
| <arg name="ClientIdentity" type="octet_string" length="140" optional="true"/> |
| <arg name="PossessionSignature" type="octet_string" length="64" optional="true"/> |
| </command> |
| <command source="client" code="0x06" name="ConnectNetwork" optional="true" response="ConnectNetworkResponse" cli="chip network_commissioning connectnetwork"> |
| <description>Connect to the specified network, using previously-defined credentials.</description> |
| <arg name="NetworkID" type="octet_string" length="32"/> |
| <arg name="Breadcrumb" type="int64u" optional="true"/> |
| <access op="invoke" privilege="administer"/> |
| </command> |
| <command source="server" code="0x07" name="ConnectNetworkResponse" optional="true" cli="chip network_commissioning connectnetworkresponse"> |
| <description>Command that indicates whether we have succcessfully connected to a network.</description> |
| <arg name="NetworkingStatus" type="NetworkCommissioningStatusEnum"/> |
| <arg name="DebugText" type="char_string" optional="true"/> |
| <arg name="ErrorValue" type="int32s" isNullable="true"/> |
| </command> |
| <command source="client" code="0x08" name="ReorderNetwork" optional="true" response="NetworkConfigResponse" cli="chip network_commissioning connectnetwork"> |
| <description>Modify the order in which networks will be presented in the Networks attribute.</description> |
| <arg name="NetworkID" type="octet_string" length="32"/> |
| <arg name="NetworkIndex" type="int8u"/> |
| <arg name="Breadcrumb" type="int64u" optional="true"/> |
| <access op="invoke" privilege="administer"/> |
| </command> |
| <command source="client" code="0x09" name="QueryIdentity" optional="true" response="QueryIdentityResponse" cli="chip network_commissioning queryidentity"> |
| <description>Retrieve details about and optionally proof of possession of a network client identity.</description> |
| <arg name="KeyIdentifier" type="octet_string" length="20"/> |
| <arg name="PossessionNonce" type="octet_string" length="32" optional="true"/> |
| <access op="invoke" privilege="administer"/> |
| </command> |
| <command source="server" code="0x0a" name="QueryIdentityResponse" optional="true"> |
| <description>Command that contains details about a network client identity and optionally a proof of possession.</description> |
| <arg name="Identity" type="octet_string" length="140"/> |
| <arg name="PossessionSignature" type="octet_string" length="64" optional="true"/> |
| </command> |
| </cluster> |
| </configurator> |