blob: 04e5a77c0ec9d0d39b6bb590466e99443c2f08af [file] [log] [blame]
<?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="NetworkCommissioningStatus" 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="WiFiBand" 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="WiFiSecurity" 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"/>
</bitmap>
<struct name="WiFiInterfaceScanResult">
<cluster code="0x0031"/>
<item name="Security" type="WiFiSecurity"/>
<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="WiFiBand"/>
<item name="RSSI" type="INT8S"/>
</struct>
<struct name="ThreadInterfaceScanResult">
<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="NetworkInfo">
<cluster code="0x0031"/>
<item name="NetworkID" type="OCTET_STRING" length="32"/>
<item name="Connected" type="BOOLEAN"/>
</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>
<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="NetworkInfo" 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="NetworkCommissioningStatus" 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>
<command source="client" code="0x00" name="ScanNetworks" optional="false" 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="false" 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="NetworkCommissioningStatus"/>
<arg name="DebugText" type="CHAR_STRING" optional="true"/>
<arg name="WiFiScanResults" type="WiFiInterfaceScanResult" array="true" optional="true"/>
<arg name="ThreadScanResults" type="ThreadInterfaceScanResult" 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"/>
<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="false" 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="NetworkCommissioningStatus"/>
<arg name="DebugText" type="CHAR_STRING" length="512" optional="true" />
<arg name="NetworkIndex" type="INT8U" optional="true" />
</command>
<command source="client" code="0x06" name="ConnectNetwork" optional="false" 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="false" cli="chip network_commissioning connectnetworkresponse">
<description>Command that indicates whether we have succcessfully connected to a network.</description>
<arg name="NetworkingStatus" type="NetworkCommissioningStatus"/>
<arg name="DebugText" type="CHAR_STRING" optional="true"/>
<arg name="ErrorValue" type="INT32S" isNullable="true"/>
</command>
<command source="client" code="0x08" name="ReorderNetwork" optional="false" 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>
</cluster>
<bitmap name="Feature" type="BITMAP32">
<cluster code="0x0031"/>
<field name="Wi-Fi network interface" mask="0x1"/>
<field name="Thread network interface" mask="0x2"/>
<field name="Ethernet network interface" mask="0x4"/>
</bitmap>
</configurator>