1*cfb92d14SAndroid Build Coastguard Worker /* 2*cfb92d14SAndroid Build Coastguard Worker * Copyright (c) 2016, The OpenThread Authors. 3*cfb92d14SAndroid Build Coastguard Worker * All rights reserved. 4*cfb92d14SAndroid Build Coastguard Worker * 5*cfb92d14SAndroid Build Coastguard Worker * Redistribution and use in source and binary forms, with or without 6*cfb92d14SAndroid Build Coastguard Worker * modification, are permitted provided that the following conditions are met: 7*cfb92d14SAndroid Build Coastguard Worker * 1. Redistributions of source code must retain the above copyright 8*cfb92d14SAndroid Build Coastguard Worker * notice, this list of conditions and the following disclaimer. 9*cfb92d14SAndroid Build Coastguard Worker * 2. Redistributions in binary form must reproduce the above copyright 10*cfb92d14SAndroid Build Coastguard Worker * notice, this list of conditions and the following disclaimer in the 11*cfb92d14SAndroid Build Coastguard Worker * documentation and/or other materials provided with the distribution. 12*cfb92d14SAndroid Build Coastguard Worker * 3. Neither the name of the copyright holder nor the 13*cfb92d14SAndroid Build Coastguard Worker * names of its contributors may be used to endorse or promote products 14*cfb92d14SAndroid Build Coastguard Worker * derived from this software without specific prior written permission. 15*cfb92d14SAndroid Build Coastguard Worker * 16*cfb92d14SAndroid Build Coastguard Worker * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17*cfb92d14SAndroid Build Coastguard Worker * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18*cfb92d14SAndroid Build Coastguard Worker * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19*cfb92d14SAndroid Build Coastguard Worker * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY 20*cfb92d14SAndroid Build Coastguard Worker * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21*cfb92d14SAndroid Build Coastguard Worker * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22*cfb92d14SAndroid Build Coastguard Worker * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23*cfb92d14SAndroid Build Coastguard Worker * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24*cfb92d14SAndroid Build Coastguard Worker * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25*cfb92d14SAndroid Build Coastguard Worker * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26*cfb92d14SAndroid Build Coastguard Worker */ 27*cfb92d14SAndroid Build Coastguard Worker 28*cfb92d14SAndroid Build Coastguard Worker /** 29*cfb92d14SAndroid Build Coastguard Worker * @file 30*cfb92d14SAndroid Build Coastguard Worker * This file contains definitions of spinel. 31*cfb92d14SAndroid Build Coastguard Worker */ 32*cfb92d14SAndroid Build Coastguard Worker 33*cfb92d14SAndroid Build Coastguard Worker #ifndef SPINEL_HEADER_INCLUDED 34*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_HEADER_INCLUDED 1 35*cfb92d14SAndroid Build Coastguard Worker 36*cfb92d14SAndroid Build Coastguard Worker /* 37*cfb92d14SAndroid Build Coastguard Worker * Spinel is a host-controller protocol designed to enable 38*cfb92d14SAndroid Build Coastguard Worker * inter-operation over simple serial connections between general purpose 39*cfb92d14SAndroid Build Coastguard Worker * device operating systems (OS) host and network co-processors (NCP) for 40*cfb92d14SAndroid Build Coastguard Worker * the purpose of controlling and managing the NCP. 41*cfb92d14SAndroid Build Coastguard Worker * 42*cfb92d14SAndroid Build Coastguard Worker * --------------------------------------------------------------------------- 43*cfb92d14SAndroid Build Coastguard Worker * 44*cfb92d14SAndroid Build Coastguard Worker * Frame Format 45*cfb92d14SAndroid Build Coastguard Worker * 46*cfb92d14SAndroid Build Coastguard Worker * A frame is defined simply as the concatenation of 47*cfb92d14SAndroid Build Coastguard Worker * 48*cfb92d14SAndroid Build Coastguard Worker * - A header byte 49*cfb92d14SAndroid Build Coastguard Worker * - A command (up to three bytes) 50*cfb92d14SAndroid Build Coastguard Worker * - An optional command payload 51*cfb92d14SAndroid Build Coastguard Worker * 52*cfb92d14SAndroid Build Coastguard Worker * +---------+--------+-----+-------------+ 53*cfb92d14SAndroid Build Coastguard Worker * | Octets: | 1 | 1-3 | n | 54*cfb92d14SAndroid Build Coastguard Worker * +---------+--------+-----+-------------+ 55*cfb92d14SAndroid Build Coastguard Worker * | Fields: | HEADER | CMD | CMD_PAYLOAD | 56*cfb92d14SAndroid Build Coastguard Worker * +---------+--------+-----+-------------+ 57*cfb92d14SAndroid Build Coastguard Worker * 58*cfb92d14SAndroid Build Coastguard Worker * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 59*cfb92d14SAndroid Build Coastguard Worker * 60*cfb92d14SAndroid Build Coastguard Worker * Header Format 61*cfb92d14SAndroid Build Coastguard Worker * 62*cfb92d14SAndroid Build Coastguard Worker * The header byte is broken down as follows: 63*cfb92d14SAndroid Build Coastguard Worker * 64*cfb92d14SAndroid Build Coastguard Worker * 0 1 2 3 4 5 6 7 65*cfb92d14SAndroid Build Coastguard Worker * +---+---+---+---+---+---+---+---+ 66*cfb92d14SAndroid Build Coastguard Worker * | FLG | IID | TID | 67*cfb92d14SAndroid Build Coastguard Worker * +---+---+---+---+---+---+---+---+ 68*cfb92d14SAndroid Build Coastguard Worker * 69*cfb92d14SAndroid Build Coastguard Worker * 70*cfb92d14SAndroid Build Coastguard Worker * The flag field of the header byte ("FLG") is always set to the value 71*cfb92d14SAndroid Build Coastguard Worker * two (or "10" in binary). Any frame received with these bits set to 72*cfb92d14SAndroid Build Coastguard Worker * any other value else MUST NOT be considered a Spinel frame. 73*cfb92d14SAndroid Build Coastguard Worker * 74*cfb92d14SAndroid Build Coastguard Worker * This convention allows Spinel to be line compatible with BTLE HCI. 75*cfb92d14SAndroid Build Coastguard Worker * By defining the first two bit in this way we can disambiguate between 76*cfb92d14SAndroid Build Coastguard Worker * Spinel frames and HCI frames (which always start with either "0x01" 77*cfb92d14SAndroid Build Coastguard Worker * or "0x04") without any additional framing overhead. 78*cfb92d14SAndroid Build Coastguard Worker * 79*cfb92d14SAndroid Build Coastguard Worker * The Interface Identifier (IID) is a number between 0 and 3, which 80*cfb92d14SAndroid Build Coastguard Worker * is associated by the OS with a specific NCP. This allows the protocol 81*cfb92d14SAndroid Build Coastguard Worker * to support multiple networks under same connection. 82*cfb92d14SAndroid Build Coastguard Worker * 83*cfb92d14SAndroid Build Coastguard Worker * The least significant bits of the header represent the Transaction 84*cfb92d14SAndroid Build Coastguard Worker * Identifier (TID). The TID is used for correlating responses to the 85*cfb92d14SAndroid Build Coastguard Worker * commands which generated them. 86*cfb92d14SAndroid Build Coastguard Worker * 87*cfb92d14SAndroid Build Coastguard Worker * When a command is sent from the host, any reply to that command sent 88*cfb92d14SAndroid Build Coastguard Worker * by the NCP will use the same value for the IID and TID. When the host 89*cfb92d14SAndroid Build Coastguard Worker * receives a frame that matches the IID and TID of the command it sent, it 90*cfb92d14SAndroid Build Coastguard Worker * can easily recognize that frame as the actual response to that command. 91*cfb92d14SAndroid Build Coastguard Worker * 92*cfb92d14SAndroid Build Coastguard Worker * The TID value of zero (0) is used for commands to which a correlated 93*cfb92d14SAndroid Build Coastguard Worker * response is not expected or needed, such as for unsolicited update 94*cfb92d14SAndroid Build Coastguard Worker * commands sent to the host from the NCP. 95*cfb92d14SAndroid Build Coastguard Worker * 96*cfb92d14SAndroid Build Coastguard Worker * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 97*cfb92d14SAndroid Build Coastguard Worker * 98*cfb92d14SAndroid Build Coastguard Worker * The command identifier is a 21-bit unsigned integer encoded in up to 99*cfb92d14SAndroid Build Coastguard Worker * three bytes using the packed unsigned integer format described below. 100*cfb92d14SAndroid Build Coastguard Worker * Depending on the semantics of the command in question, a payload MAY 101*cfb92d14SAndroid Build Coastguard Worker * be included in the frame. The exact composition and length of the 102*cfb92d14SAndroid Build Coastguard Worker * payload is defined by the command identifier. 103*cfb92d14SAndroid Build Coastguard Worker * 104*cfb92d14SAndroid Build Coastguard Worker * --------------------------------------------------------------------------- 105*cfb92d14SAndroid Build Coastguard Worker * 106*cfb92d14SAndroid Build Coastguard Worker * Data Packing 107*cfb92d14SAndroid Build Coastguard Worker * 108*cfb92d14SAndroid Build Coastguard Worker * Data serialization for properties is performed using a light-weight 109*cfb92d14SAndroid Build Coastguard Worker * data packing format which was loosely inspired by D-Bus. The format 110*cfb92d14SAndroid Build Coastguard Worker * of a serialization is defined by a specially formatted string. 111*cfb92d14SAndroid Build Coastguard Worker * 112*cfb92d14SAndroid Build Coastguard Worker * This packing format is used for notational convenience. While this 113*cfb92d14SAndroid Build Coastguard Worker * string-based data-type format has been designed so that the strings 114*cfb92d14SAndroid Build Coastguard Worker * may be directly used by a structured data parser, such a thing is not 115*cfb92d14SAndroid Build Coastguard Worker * required to implement Spinel. 116*cfb92d14SAndroid Build Coastguard Worker * 117*cfb92d14SAndroid Build Coastguard Worker * Goals: 118*cfb92d14SAndroid Build Coastguard Worker * 119*cfb92d14SAndroid Build Coastguard Worker * - Be lightweight and favor direct representation of values. 120*cfb92d14SAndroid Build Coastguard Worker * - Use an easily readable and memorable format string. 121*cfb92d14SAndroid Build Coastguard Worker * - Support lists and structures. 122*cfb92d14SAndroid Build Coastguard Worker * - Allow properties to be appended to structures while maintaining 123*cfb92d14SAndroid Build Coastguard Worker * backward compatibility. 124*cfb92d14SAndroid Build Coastguard Worker * 125*cfb92d14SAndroid Build Coastguard Worker * Each primitive data-type has an ASCII character associated with it. 126*cfb92d14SAndroid Build Coastguard Worker * Structures can be represented as strings of these characters. For 127*cfb92d14SAndroid Build Coastguard Worker * example: 128*cfb92d14SAndroid Build Coastguard Worker * 129*cfb92d14SAndroid Build Coastguard Worker * - "C": A single unsigned byte. 130*cfb92d14SAndroid Build Coastguard Worker * - "C6U": A single unsigned byte, followed by a 128-bit IPv6 address, 131*cfb92d14SAndroid Build Coastguard Worker * followed by a zero-terminated UTF8 string. 132*cfb92d14SAndroid Build Coastguard Worker * - "A(6)": An array of concatenated IPv6 addresses 133*cfb92d14SAndroid Build Coastguard Worker * 134*cfb92d14SAndroid Build Coastguard Worker * In each case, the data is represented exactly as described. For 135*cfb92d14SAndroid Build Coastguard Worker * example, an array of 10 IPv6 address is stored as 160 bytes. 136*cfb92d14SAndroid Build Coastguard Worker * 137*cfb92d14SAndroid Build Coastguard Worker * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 138*cfb92d14SAndroid Build Coastguard Worker * 139*cfb92d14SAndroid Build Coastguard Worker * Primitive Types 140*cfb92d14SAndroid Build Coastguard Worker * 141*cfb92d14SAndroid Build Coastguard Worker * +----------+----------------------+---------------------------------+ 142*cfb92d14SAndroid Build Coastguard Worker * | Char | Name | Description | 143*cfb92d14SAndroid Build Coastguard Worker * +----------+----------------------+---------------------------------+ 144*cfb92d14SAndroid Build Coastguard Worker * | "." | DATATYPE_VOID | Empty data type. Used | 145*cfb92d14SAndroid Build Coastguard Worker * | | | internally. | 146*cfb92d14SAndroid Build Coastguard Worker * | "b" | DATATYPE_BOOL | Boolean value. Encoded in | 147*cfb92d14SAndroid Build Coastguard Worker * | | | 8-bits as either 0x00 or 0x01. | 148*cfb92d14SAndroid Build Coastguard Worker * | | | All other values are illegal. | 149*cfb92d14SAndroid Build Coastguard Worker * | "C" | DATATYPE_UINT8 | Unsigned 8-bit integer. | 150*cfb92d14SAndroid Build Coastguard Worker * | "c" | DATATYPE_INT8 | Signed 8-bit integer. | 151*cfb92d14SAndroid Build Coastguard Worker * | "S" | DATATYPE_UINT16 | Unsigned 16-bit integer. | 152*cfb92d14SAndroid Build Coastguard Worker * | "s" | DATATYPE_INT16 | Signed 16-bit integer. | 153*cfb92d14SAndroid Build Coastguard Worker * | "L" | DATATYPE_UINT32 | Unsigned 32-bit integer. | 154*cfb92d14SAndroid Build Coastguard Worker * | "l" | DATATYPE_INT32 | Signed 32-bit integer. | 155*cfb92d14SAndroid Build Coastguard Worker * | "i" | DATATYPE_UINT_PACKED | Packed Unsigned Integer. See | 156*cfb92d14SAndroid Build Coastguard Worker * | | | description below | 157*cfb92d14SAndroid Build Coastguard Worker * | "6" | DATATYPE_IPv6ADDR | IPv6 Address. (Big-endian) | 158*cfb92d14SAndroid Build Coastguard Worker * | "E" | DATATYPE_EUI64 | EUI-64 Address. (Big-endian) | 159*cfb92d14SAndroid Build Coastguard Worker * | "e" | DATATYPE_EUI48 | EUI-48 Address. (Big-endian) | 160*cfb92d14SAndroid Build Coastguard Worker * | "D" | DATATYPE_DATA | Arbitrary data. See related | 161*cfb92d14SAndroid Build Coastguard Worker * | | | section below for details. | 162*cfb92d14SAndroid Build Coastguard Worker * | "d" | DATATYPE_DATA_WLEN | Arbitrary data with prepended | 163*cfb92d14SAndroid Build Coastguard Worker * | | | length. See below for details | 164*cfb92d14SAndroid Build Coastguard Worker * | "U" | DATATYPE_UTF8 | Zero-terminated UTF8-encoded | 165*cfb92d14SAndroid Build Coastguard Worker * | | | string. | 166*cfb92d14SAndroid Build Coastguard Worker * | "t(...)" | DATATYPE_STRUCT | Structured datatype with | 167*cfb92d14SAndroid Build Coastguard Worker * | | | prepended length. | 168*cfb92d14SAndroid Build Coastguard Worker * | "A(...)" | DATATYPE_ARRAY | Array of datatypes. Compound | 169*cfb92d14SAndroid Build Coastguard Worker * | | | type. | 170*cfb92d14SAndroid Build Coastguard Worker * +----------+----------------------+---------------------------------+ 171*cfb92d14SAndroid Build Coastguard Worker * 172*cfb92d14SAndroid Build Coastguard Worker * All multi-byte values are little-endian unless explicitly stated 173*cfb92d14SAndroid Build Coastguard Worker * otherwise. 174*cfb92d14SAndroid Build Coastguard Worker * 175*cfb92d14SAndroid Build Coastguard Worker * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 176*cfb92d14SAndroid Build Coastguard Worker * 177*cfb92d14SAndroid Build Coastguard Worker * Packed Unsigned Integer 178*cfb92d14SAndroid Build Coastguard Worker * 179*cfb92d14SAndroid Build Coastguard Worker * For certain types of integers, such command or property identifiers, 180*cfb92d14SAndroid Build Coastguard Worker * usually have a value on the wire that is less than 127. However, in 181*cfb92d14SAndroid Build Coastguard Worker * order to not preclude the use of values larger than 255, we would 182*cfb92d14SAndroid Build Coastguard Worker * need to add an extra byte. Doing this would add an extra byte to the 183*cfb92d14SAndroid Build Coastguard Worker * majority of instances, which can add up in terms of bandwidth. 184*cfb92d14SAndroid Build Coastguard Worker * 185*cfb92d14SAndroid Build Coastguard Worker * The packed unsigned integer format is based on the unsigned integer 186*cfb92d14SAndroid Build Coastguard Worker * format in EXI, except that we limit the maximum value to the 187*cfb92d14SAndroid Build Coastguard Worker * largest value that can be encoded into three bytes (2,097,151). 188*cfb92d14SAndroid Build Coastguard Worker * 189*cfb92d14SAndroid Build Coastguard Worker * For all values less than 127, the packed form of the number is simply 190*cfb92d14SAndroid Build Coastguard Worker * a single byte which directly represents the number. For values 191*cfb92d14SAndroid Build Coastguard Worker * larger than 127, the following process is used to encode the value: 192*cfb92d14SAndroid Build Coastguard Worker * 193*cfb92d14SAndroid Build Coastguard Worker * 1. The unsigned integer is broken up into _n_ 7-bit chunks and 194*cfb92d14SAndroid Build Coastguard Worker * placed into _n_ octets, leaving the most significant bit of each 195*cfb92d14SAndroid Build Coastguard Worker * octet unused. 196*cfb92d14SAndroid Build Coastguard Worker * 2. Order the octets from least-significant to most-significant. 197*cfb92d14SAndroid Build Coastguard Worker * (Little-endian) 198*cfb92d14SAndroid Build Coastguard Worker * 3. Clear the most significant bit of the most significant octet. 199*cfb92d14SAndroid Build Coastguard Worker * Set the least significant bit on all other octets. 200*cfb92d14SAndroid Build Coastguard Worker * 201*cfb92d14SAndroid Build Coastguard Worker * Where `n` is the smallest number of 7-bit chunks you can use to 202*cfb92d14SAndroid Build Coastguard Worker * represent the given value. 203*cfb92d14SAndroid Build Coastguard Worker * 204*cfb92d14SAndroid Build Coastguard Worker * Take the value 1337, for example: 205*cfb92d14SAndroid Build Coastguard Worker * 206*cfb92d14SAndroid Build Coastguard Worker * 1337 => 0x0539 207*cfb92d14SAndroid Build Coastguard Worker * => [39 0A] 208*cfb92d14SAndroid Build Coastguard Worker * => [B9 0A] 209*cfb92d14SAndroid Build Coastguard Worker * 210*cfb92d14SAndroid Build Coastguard Worker * To decode the value, you collect the 7-bit chunks until you find an 211*cfb92d14SAndroid Build Coastguard Worker * octet with the most significant bit clear. 212*cfb92d14SAndroid Build Coastguard Worker * 213*cfb92d14SAndroid Build Coastguard Worker * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 214*cfb92d14SAndroid Build Coastguard Worker * 215*cfb92d14SAndroid Build Coastguard Worker * Data Blobs 216*cfb92d14SAndroid Build Coastguard Worker * 217*cfb92d14SAndroid Build Coastguard Worker * There are two types for data blobs: "d" and "D". 218*cfb92d14SAndroid Build Coastguard Worker * 219*cfb92d14SAndroid Build Coastguard Worker * - "d" has the length of the data (in bytes) prepended to the data 220*cfb92d14SAndroid Build Coastguard Worker * (with the length encoded as type "S"). The size of the length 221*cfb92d14SAndroid Build Coastguard Worker * field is not included in the length. 222*cfb92d14SAndroid Build Coastguard Worker * - "D" does not have a prepended length: the length of the data is 223*cfb92d14SAndroid Build Coastguard Worker * implied by the bytes remaining to be parsed. It is an error for 224*cfb92d14SAndroid Build Coastguard Worker * "D" to not be the last type in a type in a type signature. 225*cfb92d14SAndroid Build Coastguard Worker * 226*cfb92d14SAndroid Build Coastguard Worker * This dichotomy allows for more efficient encoding by eliminating 227*cfb92d14SAndroid Build Coastguard Worker * redundancy. If the rest of the buffer is a data blob, encoding the 228*cfb92d14SAndroid Build Coastguard Worker * length would be redundant because we already know how many bytes are 229*cfb92d14SAndroid Build Coastguard Worker * in the rest of the buffer. 230*cfb92d14SAndroid Build Coastguard Worker * 231*cfb92d14SAndroid Build Coastguard Worker * In some cases we use "d" even if it is the last field in a type 232*cfb92d14SAndroid Build Coastguard Worker * signature. We do this to allow for us to be able to append 233*cfb92d14SAndroid Build Coastguard Worker * additional fields to the type signature if necessary in the future. 234*cfb92d14SAndroid Build Coastguard Worker * This is usually the case with embedded structs, like in the scan 235*cfb92d14SAndroid Build Coastguard Worker * results. 236*cfb92d14SAndroid Build Coastguard Worker * 237*cfb92d14SAndroid Build Coastguard Worker * For example, let's say we have a buffer that is encoded with the 238*cfb92d14SAndroid Build Coastguard Worker * datatype signature of "CLLD". In this case, it is pretty easy to 239*cfb92d14SAndroid Build Coastguard Worker * tell where the start and end of the data blob is: the start is 9 240*cfb92d14SAndroid Build Coastguard Worker * bytes from the start of the buffer, and its length is the length of 241*cfb92d14SAndroid Build Coastguard Worker * the buffer minus 9. (9 is the number of bytes taken up by a byte and 242*cfb92d14SAndroid Build Coastguard Worker * two longs) 243*cfb92d14SAndroid Build Coastguard Worker * 244*cfb92d14SAndroid Build Coastguard Worker * The datatype signature "CLLDU" is illegal because we can't determine 245*cfb92d14SAndroid Build Coastguard Worker * where the last field (a zero-terminated UTF8 string) starts. But the 246*cfb92d14SAndroid Build Coastguard Worker * datatype "CLLdU" is legal, because the parser can determine the 247*cfb92d14SAndroid Build Coastguard Worker * exact length of the data blob-- allowing it to know where the start 248*cfb92d14SAndroid Build Coastguard Worker * of the next field would be. 249*cfb92d14SAndroid Build Coastguard Worker * 250*cfb92d14SAndroid Build Coastguard Worker * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 251*cfb92d14SAndroid Build Coastguard Worker * 252*cfb92d14SAndroid Build Coastguard Worker * Structured Data 253*cfb92d14SAndroid Build Coastguard Worker * 254*cfb92d14SAndroid Build Coastguard Worker * The structure data type ("t(...)") is a way of bundling together 255*cfb92d14SAndroid Build Coastguard Worker * several fields into a single structure. It can be thought of as a 256*cfb92d14SAndroid Build Coastguard Worker * "d" type except that instead of being opaque, the fields in the 257*cfb92d14SAndroid Build Coastguard Worker * content are known. This is useful for things like scan results where 258*cfb92d14SAndroid Build Coastguard Worker * you have substructures which are defined by different layers. 259*cfb92d14SAndroid Build Coastguard Worker * 260*cfb92d14SAndroid Build Coastguard Worker * For example, consider the type signature "Lt(ES)t(6C)". In this 261*cfb92d14SAndroid Build Coastguard Worker * hypothetical case, the first struct is defined by the MAC layer, and 262*cfb92d14SAndroid Build Coastguard Worker * the second struct is defined by the PHY layer. Because of the use of 263*cfb92d14SAndroid Build Coastguard Worker * structures, we know exactly what part comes from that layer. 264*cfb92d14SAndroid Build Coastguard Worker * Additionally, we can add fields to each structure without introducing 265*cfb92d14SAndroid Build Coastguard Worker * backward compatibility problems: Data encoded as "Lt(ESU)t(6C)" 266*cfb92d14SAndroid Build Coastguard Worker * (Notice the extra "U") will decode just fine as "Lt(ES)t(6C)". 267*cfb92d14SAndroid Build Coastguard Worker * Additionally, if we don't care about the MAC layer and only care 268*cfb92d14SAndroid Build Coastguard Worker * about the network layer, we could parse as "Lt()t(6C)". 269*cfb92d14SAndroid Build Coastguard Worker * 270*cfb92d14SAndroid Build Coastguard Worker * Note that data encoded as "Lt(ES)t(6C)" will also parse as "Ldd", 271*cfb92d14SAndroid Build Coastguard Worker * with the structures from both layers now being opaque data blobs. 272*cfb92d14SAndroid Build Coastguard Worker * 273*cfb92d14SAndroid Build Coastguard Worker * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 274*cfb92d14SAndroid Build Coastguard Worker * 275*cfb92d14SAndroid Build Coastguard Worker * Arrays 276*cfb92d14SAndroid Build Coastguard Worker * 277*cfb92d14SAndroid Build Coastguard Worker * An array is simply a concatenated set of _n_ data encodings. For 278*cfb92d14SAndroid Build Coastguard Worker * example, the type "A(6)" is simply a list of IPv6 addresses---one 279*cfb92d14SAndroid Build Coastguard Worker * after the other. The type "A(6E)" likewise a concatenation of IPv6- 280*cfb92d14SAndroid Build Coastguard Worker * address/EUI-64 pairs. 281*cfb92d14SAndroid Build Coastguard Worker * 282*cfb92d14SAndroid Build Coastguard Worker * If an array contains many fields, the fields will often be surrounded 283*cfb92d14SAndroid Build Coastguard Worker * by a structure ("t(...)"). This effectively prepends each item in 284*cfb92d14SAndroid Build Coastguard Worker * the array with its length. This is useful for improving parsing 285*cfb92d14SAndroid Build Coastguard Worker * performance or to allow additional fields to be added in the future 286*cfb92d14SAndroid Build Coastguard Worker * in a backward compatible way. If there is a high certainty that 287*cfb92d14SAndroid Build Coastguard Worker * additional fields will never be added, the struct may be omitted 288*cfb92d14SAndroid Build Coastguard Worker * (saving two bytes per item). 289*cfb92d14SAndroid Build Coastguard Worker * 290*cfb92d14SAndroid Build Coastguard Worker * This specification does not define a way to embed an array as a field 291*cfb92d14SAndroid Build Coastguard Worker * alongside other fields. 292*cfb92d14SAndroid Build Coastguard Worker * 293*cfb92d14SAndroid Build Coastguard Worker * --------------------------------------------------------------------------- 294*cfb92d14SAndroid Build Coastguard Worker * 295*cfb92d14SAndroid Build Coastguard Worker * Spinel definition compatibility guideline: 296*cfb92d14SAndroid Build Coastguard Worker * 297*cfb92d14SAndroid Build Coastguard Worker * The compatibility policy for NCP versus RCP and host side are handled 298*cfb92d14SAndroid Build Coastguard Worker * differently in spinel. 299*cfb92d14SAndroid Build Coastguard Worker * 300*cfb92d14SAndroid Build Coastguard Worker * New NCP firmware should work with an older host driver, i.e., NCP 301*cfb92d14SAndroid Build Coastguard Worker * implementation should remain backward compatible. 302*cfb92d14SAndroid Build Coastguard Worker * 303*cfb92d14SAndroid Build Coastguard Worker * - Existing fields in the format of an already implemented spinel 304*cfb92d14SAndroid Build Coastguard Worker * property or command cannot change. 305*cfb92d14SAndroid Build Coastguard Worker * 306*cfb92d14SAndroid Build Coastguard Worker * - New fields may be appended at the end of the format (or the end of 307*cfb92d14SAndroid Build Coastguard Worker * a struct) as long as the NCP implementation treats the new fields as 308*cfb92d14SAndroid Build Coastguard Worker * optional (i.e., a driver not aware of and therefore not using the 309*cfb92d14SAndroid Build Coastguard Worker * new fields should continue to function as before). 310*cfb92d14SAndroid Build Coastguard Worker * 311*cfb92d14SAndroid Build Coastguard Worker * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 312*cfb92d14SAndroid Build Coastguard Worker * 313*cfb92d14SAndroid Build Coastguard Worker * For RCP and host, the "RCP API Version" numbers are used to check the 314*cfb92d14SAndroid Build Coastguard Worker * compatibility between host implementation and RCP firmware. Generally, 315*cfb92d14SAndroid Build Coastguard Worker * a newer host side implementation would work with a range of previous 316*cfb92d14SAndroid Build Coastguard Worker * or older RCP firmware versions. 317*cfb92d14SAndroid Build Coastguard Worker * 318*cfb92d14SAndroid Build Coastguard Worker * - SPINEL_RCP_API_VERSION specifies the current spinel RCP API version. 319*cfb92d14SAndroid Build Coastguard Worker * This number MUST be incremented anytime there is a change in any of RCP 320*cfb92d14SAndroid Build Coastguard Worker * specific spinel definitions. 321*cfb92d14SAndroid Build Coastguard Worker * 322*cfb92d14SAndroid Build Coastguard Worker * - SPINEL_MIN_HOST_SUPPORTED_RCP_API_VERSION specifies the minimum spinel 323*cfb92d14SAndroid Build Coastguard Worker * RCP API Version which is supported by the host-side implementation. 324*cfb92d14SAndroid Build Coastguard Worker * To reduce the backward compatibility issues, this number should be kept 325*cfb92d14SAndroid Build Coastguard Worker * as constant as possible. 326*cfb92d14SAndroid Build Coastguard Worker * 327*cfb92d14SAndroid Build Coastguard Worker * - On start, host implementation queries the RCP API version and accepts 328*cfb92d14SAndroid Build Coastguard Worker * any version starting from SPINEL_MIN_HOST_SUPPORTED_RCP_API_VERSION. 329*cfb92d14SAndroid Build Coastguard Worker * 330*cfb92d14SAndroid Build Coastguard Worker * - Host implementation also queries the RCP about the minimum host RCP 331*cfb92d14SAndroid Build Coastguard Worker * API version it can work with, and then checks that its own version is 332*cfb92d14SAndroid Build Coastguard Worker * within the range. 333*cfb92d14SAndroid Build Coastguard Worker * 334*cfb92d14SAndroid Build Coastguard Worker * Host and RCP compatibility guideline: 335*cfb92d14SAndroid Build Coastguard Worker * 336*cfb92d14SAndroid Build Coastguard Worker * - New host spinel layer should work with an older RCP firmware, i.e., host 337*cfb92d14SAndroid Build Coastguard Worker * implementation should remain backward compatible. 338*cfb92d14SAndroid Build Coastguard Worker * 339*cfb92d14SAndroid Build Coastguard Worker * - Existing fields in the format of an already implemented spinel 340*cfb92d14SAndroid Build Coastguard Worker * property or command must not change. 341*cfb92d14SAndroid Build Coastguard Worker * 342*cfb92d14SAndroid Build Coastguard Worker * - New fields must be appended to the end of the existing spinel format. 343*cfb92d14SAndroid Build Coastguard Worker * * New fields for new features: 344*cfb92d14SAndroid Build Coastguard Worker * Adding a new capability flag to the otRadioCaps to indicate the new 345*cfb92d14SAndroid Build Coastguard Worker * fields. The host parses the spinel format based on the pre-fetched 346*cfb92d14SAndroid Build Coastguard Worker * otRadioCaps. The host should be able to enable/disable the feature 347*cfb92d14SAndroid Build Coastguard Worker * in runtime based on the otRadioCaps. Refer to PR4919 and PR5139. 348*cfb92d14SAndroid Build Coastguard Worker * * New fields for changing existing implementations: 349*cfb92d14SAndroid Build Coastguard Worker * This case should be avoided as much as possible. It will cause the 350*cfb92d14SAndroid Build Coastguard Worker * compatibility issue. 351*cfb92d14SAndroid Build Coastguard Worker * 352*cfb92d14SAndroid Build Coastguard Worker * - Deprecated fields must not be removed from the spinel format and they 353*cfb92d14SAndroid Build Coastguard Worker * must be set to a suitable default value. 354*cfb92d14SAndroid Build Coastguard Worker * 355*cfb92d14SAndroid Build Coastguard Worker * - Adding new spinel properties. 356*cfb92d14SAndroid Build Coastguard Worker * * If the old version RCP doesn't support the new spinel property, it 357*cfb92d14SAndroid Build Coastguard Worker * must return the spinel error SPINEL_STATUS_PROP_NOT_FOUND. 358*cfb92d14SAndroid Build Coastguard Worker * 359*cfb92d14SAndroid Build Coastguard Worker * * If the host can handle the new spinel property by processing the error 360*cfb92d14SAndroid Build Coastguard Worker * SPINEL_STATUS_PROP_NOT_FOUND, the API of the new spinel property must 361*cfb92d14SAndroid Build Coastguard Worker * return OT_ERROR_NOT_IMPLEMENTED or default value. 362*cfb92d14SAndroid Build Coastguard Worker * 363*cfb92d14SAndroid Build Coastguard Worker * * If the host can't handle the new spinel property by processing the 364*cfb92d14SAndroid Build Coastguard Worker * error SPINEL_STATUS_PROP_NOT_FOUND, a new capability flag must be 365*cfb92d14SAndroid Build Coastguard Worker * added to the otRadioCaps to indicate whether RCP supports the new 366*cfb92d14SAndroid Build Coastguard Worker * spinel property. The host must handle the new spinel property by 367*cfb92d14SAndroid Build Coastguard Worker * processing the new capability flag. 368*cfb92d14SAndroid Build Coastguard Worker * 369*cfb92d14SAndroid Build Coastguard Worker * - If none of the above methods make the new functions work, increasing the 370*cfb92d14SAndroid Build Coastguard Worker * SPINEL_MIN_HOST_SUPPORTED_RCP_API_VERSION. This case should be avoided 371*cfb92d14SAndroid Build Coastguard Worker * as much as possible. 372*cfb92d14SAndroid Build Coastguard Worker * --------------------------------------------------------------------------- 373*cfb92d14SAndroid Build Coastguard Worker */ 374*cfb92d14SAndroid Build Coastguard Worker 375*cfb92d14SAndroid Build Coastguard Worker #ifdef SPINEL_PLATFORM_HEADER 376*cfb92d14SAndroid Build Coastguard Worker #include SPINEL_PLATFORM_HEADER 377*cfb92d14SAndroid Build Coastguard Worker #else // ifdef SPINEL_PLATFORM_HEADER 378*cfb92d14SAndroid Build Coastguard Worker #include <stdarg.h> 379*cfb92d14SAndroid Build Coastguard Worker #include <stdbool.h> 380*cfb92d14SAndroid Build Coastguard Worker #include <stdint.h> 381*cfb92d14SAndroid Build Coastguard Worker #endif // else SPINEL_PLATFORM_HEADER 382*cfb92d14SAndroid Build Coastguard Worker 383*cfb92d14SAndroid Build Coastguard Worker // ---------------------------------------------------------------------------- 384*cfb92d14SAndroid Build Coastguard Worker 385*cfb92d14SAndroid Build Coastguard Worker #ifndef DOXYGEN_SHOULD_SKIP_THIS 386*cfb92d14SAndroid Build Coastguard Worker 387*cfb92d14SAndroid Build Coastguard Worker #if defined(__GNUC__) 388*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_API_EXTERN extern __attribute__((visibility("default"))) 389*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_API_NONNULL_ALL __attribute__((nonnull)) 390*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_API_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) 391*cfb92d14SAndroid Build Coastguard Worker #endif // ifdef __GNUC__ 392*cfb92d14SAndroid Build Coastguard Worker 393*cfb92d14SAndroid Build Coastguard Worker #endif // ifndef DOXYGEN_SHOULD_SKIP_THIS 394*cfb92d14SAndroid Build Coastguard Worker 395*cfb92d14SAndroid Build Coastguard Worker #ifndef SPINEL_API_EXTERN 396*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_API_EXTERN extern 397*cfb92d14SAndroid Build Coastguard Worker #endif 398*cfb92d14SAndroid Build Coastguard Worker 399*cfb92d14SAndroid Build Coastguard Worker #ifndef SPINEL_API_NONNULL_ALL 400*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_API_NONNULL_ALL 401*cfb92d14SAndroid Build Coastguard Worker #endif 402*cfb92d14SAndroid Build Coastguard Worker 403*cfb92d14SAndroid Build Coastguard Worker #ifndef SPINEL_API_WARN_UNUSED_RESULT 404*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_API_WARN_UNUSED_RESULT 405*cfb92d14SAndroid Build Coastguard Worker #endif 406*cfb92d14SAndroid Build Coastguard Worker 407*cfb92d14SAndroid Build Coastguard Worker // ---------------------------------------------------------------------------- 408*cfb92d14SAndroid Build Coastguard Worker 409*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_PROTOCOL_VERSION_THREAD_MAJOR 4 410*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_PROTOCOL_VERSION_THREAD_MINOR 3 411*cfb92d14SAndroid Build Coastguard Worker 412*cfb92d14SAndroid Build Coastguard Worker /** 413*cfb92d14SAndroid Build Coastguard Worker * @def SPINEL_RCP_API_VERSION 414*cfb92d14SAndroid Build Coastguard Worker * 415*cfb92d14SAndroid Build Coastguard Worker * The RCP API version number. 416*cfb92d14SAndroid Build Coastguard Worker * 417*cfb92d14SAndroid Build Coastguard Worker * This number MUST increase by one each time any of the spinel definitions used by RCP change (independent of whether 418*cfb92d14SAndroid Build Coastguard Worker * the change is backward-compatible or not). 419*cfb92d14SAndroid Build Coastguard Worker * 420*cfb92d14SAndroid Build Coastguard Worker * Please see section "Spinel definition compatibility guideline" for more details. 421*cfb92d14SAndroid Build Coastguard Worker * 422*cfb92d14SAndroid Build Coastguard Worker */ 423*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_RCP_API_VERSION 10 424*cfb92d14SAndroid Build Coastguard Worker 425*cfb92d14SAndroid Build Coastguard Worker /** 426*cfb92d14SAndroid Build Coastguard Worker * @def SPINEL_MIN_HOST_SUPPORTED_RCP_API_VERSION 427*cfb92d14SAndroid Build Coastguard Worker * 428*cfb92d14SAndroid Build Coastguard Worker * The minimum RCP API version supported by the host implementation. 429*cfb92d14SAndroid Build Coastguard Worker * 430*cfb92d14SAndroid Build Coastguard Worker * This number MUST increase when there is a non-compatible RCP spinel related change on host implementation. 431*cfb92d14SAndroid Build Coastguard Worker * 432*cfb92d14SAndroid Build Coastguard Worker * Please see section "Spinel definition compatibility guideline" for more details. 433*cfb92d14SAndroid Build Coastguard Worker * 434*cfb92d14SAndroid Build Coastguard Worker */ 435*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_MIN_HOST_SUPPORTED_RCP_API_VERSION 4 436*cfb92d14SAndroid Build Coastguard Worker 437*cfb92d14SAndroid Build Coastguard Worker /** 438*cfb92d14SAndroid Build Coastguard Worker * @def SPINEL_FRAME_MAX_SIZE 439*cfb92d14SAndroid Build Coastguard Worker * 440*cfb92d14SAndroid Build Coastguard Worker * The maximum size of SPINEL frame. 441*cfb92d14SAndroid Build Coastguard Worker * 442*cfb92d14SAndroid Build Coastguard Worker */ 443*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_FRAME_MAX_SIZE 1300 444*cfb92d14SAndroid Build Coastguard Worker 445*cfb92d14SAndroid Build Coastguard Worker /** 446*cfb92d14SAndroid Build Coastguard Worker * @def SPINEL_FRAME_MAX_COMMAND_HEADER_SIZE 447*cfb92d14SAndroid Build Coastguard Worker * 448*cfb92d14SAndroid Build Coastguard Worker * The maximum size of SPINEL command header. 449*cfb92d14SAndroid Build Coastguard Worker * 450*cfb92d14SAndroid Build Coastguard Worker */ 451*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_FRAME_MAX_COMMAND_HEADER_SIZE 4 452*cfb92d14SAndroid Build Coastguard Worker 453*cfb92d14SAndroid Build Coastguard Worker /** 454*cfb92d14SAndroid Build Coastguard Worker * @def SPINEL_FRAME_MAX_PAYLOAD_SIZE 455*cfb92d14SAndroid Build Coastguard Worker * 456*cfb92d14SAndroid Build Coastguard Worker * The maximum size of SPINEL command payload. 457*cfb92d14SAndroid Build Coastguard Worker * 458*cfb92d14SAndroid Build Coastguard Worker */ 459*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_FRAME_MAX_COMMAND_PAYLOAD_SIZE (SPINEL_FRAME_MAX_SIZE - SPINEL_FRAME_MAX_COMMAND_HEADER_SIZE) 460*cfb92d14SAndroid Build Coastguard Worker 461*cfb92d14SAndroid Build Coastguard Worker /** 462*cfb92d14SAndroid Build Coastguard Worker * @def SPINEL_ENCRYPTER_EXTRA_DATA_SIZE 463*cfb92d14SAndroid Build Coastguard Worker * 464*cfb92d14SAndroid Build Coastguard Worker * The size of extra data to be allocated for spinel frame buffer, 465*cfb92d14SAndroid Build Coastguard Worker * needed by Spinel Encrypter. 466*cfb92d14SAndroid Build Coastguard Worker * 467*cfb92d14SAndroid Build Coastguard Worker */ 468*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_ENCRYPTER_EXTRA_DATA_SIZE 0 469*cfb92d14SAndroid Build Coastguard Worker 470*cfb92d14SAndroid Build Coastguard Worker /** 471*cfb92d14SAndroid Build Coastguard Worker * @def SPINEL_FRAME_BUFFER_SIZE 472*cfb92d14SAndroid Build Coastguard Worker * 473*cfb92d14SAndroid Build Coastguard Worker * The size of buffer large enough to fit one whole spinel frame with extra data 474*cfb92d14SAndroid Build Coastguard Worker * needed by Spinel Encrypter. 475*cfb92d14SAndroid Build Coastguard Worker * 476*cfb92d14SAndroid Build Coastguard Worker */ 477*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_FRAME_BUFFER_SIZE (SPINEL_FRAME_MAX_SIZE + SPINEL_ENCRYPTER_EXTRA_DATA_SIZE) 478*cfb92d14SAndroid Build Coastguard Worker 479*cfb92d14SAndroid Build Coastguard Worker /// Macro for generating bit masks using bit index from the spec 480*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_BIT_MASK(bit_index, field_bit_count) ((1 << ((field_bit_count)-1)) >> (bit_index)) 481*cfb92d14SAndroid Build Coastguard Worker 482*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_BITS_PER_BYTE 8 // Number of bits in a byte 483*cfb92d14SAndroid Build Coastguard Worker 484*cfb92d14SAndroid Build Coastguard Worker // ---------------------------------------------------------------------------- 485*cfb92d14SAndroid Build Coastguard Worker 486*cfb92d14SAndroid Build Coastguard Worker #if defined(__cplusplus) 487*cfb92d14SAndroid Build Coastguard Worker extern "C" { 488*cfb92d14SAndroid Build Coastguard Worker #endif 489*cfb92d14SAndroid Build Coastguard Worker 490*cfb92d14SAndroid Build Coastguard Worker enum 491*cfb92d14SAndroid Build Coastguard Worker { 492*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_OK = 0, ///< Operation has completed successfully. 493*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_FAILURE = 1, ///< Operation has failed for some undefined reason. 494*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_UNIMPLEMENTED = 2, ///< Given operation has not been implemented. 495*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_INVALID_ARGUMENT = 3, ///< An argument to the operation is invalid. 496*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_INVALID_STATE = 4, ///< This operation is invalid for the current device state. 497*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_INVALID_COMMAND = 5, ///< This command is not recognized. 498*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_INVALID_INTERFACE = 6, ///< This interface is not supported. 499*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_INTERNAL_ERROR = 7, ///< An internal runtime error has occurred. 500*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_SECURITY_ERROR = 8, ///< A security/authentication error has occurred. 501*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_PARSE_ERROR = 9, ///< A error has occurred while parsing the command. 502*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_IN_PROGRESS = 10, ///< This operation is in progress. 503*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_NOMEM = 11, ///< Operation prevented due to memory pressure. 504*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_BUSY = 12, ///< The device is currently performing a mutually exclusive operation 505*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_PROP_NOT_FOUND = 13, ///< The given property is not recognized. 506*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_DROPPED = 14, ///< A/The packet was dropped. 507*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_EMPTY = 15, ///< The result of the operation is empty. 508*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_CMD_TOO_BIG = 16, ///< The command was too large to fit in the internal buffer. 509*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_NO_ACK = 17, ///< The packet was not acknowledged. 510*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_CCA_FAILURE = 18, ///< The packet was not sent due to a CCA failure. 511*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_ALREADY = 19, ///< The operation is already in progress. 512*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_ITEM_NOT_FOUND = 20, ///< The given item could not be found. 513*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_INVALID_COMMAND_FOR_PROP = 21, ///< The given command cannot be performed on this property. 514*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_UNKNOWN_NEIGHBOR = 22, ///< The neighbor is unknown. 515*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_NOT_CAPABLE = 23, ///< The target is not capable of handling requested operation. 516*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_RESPONSE_TIMEOUT = 24, ///< No response received from remote node 517*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_SWITCHOVER_DONE = 518*cfb92d14SAndroid Build Coastguard Worker 25, ///< Radio interface switch completed successfully (SPINEL_PROP_MULTIPAN_ACTIVE_INTERFACE) 519*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_SWITCHOVER_FAILED = 26, ///< Radio interface switch failed (SPINEL_PROP_MULTIPAN_ACTIVE_INTERFACE) 520*cfb92d14SAndroid Build Coastguard Worker 521*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_JOIN__BEGIN = 104, 522*cfb92d14SAndroid Build Coastguard Worker 523*cfb92d14SAndroid Build Coastguard Worker /// Generic failure to associate with other peers. 524*cfb92d14SAndroid Build Coastguard Worker /** 525*cfb92d14SAndroid Build Coastguard Worker * This status error should not be used by implementers if 526*cfb92d14SAndroid Build Coastguard Worker * enough information is available to determine that one of the 527*cfb92d14SAndroid Build Coastguard Worker * later join failure status codes would be more accurate. 528*cfb92d14SAndroid Build Coastguard Worker * 529*cfb92d14SAndroid Build Coastguard Worker * \sa SPINEL_PROP_NET_REQUIRE_JOIN_EXISTING 530*cfb92d14SAndroid Build Coastguard Worker * \sa SPINEL_PROP_MESHCOP_JOINER_COMMISSIONING 531*cfb92d14SAndroid Build Coastguard Worker */ 532*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_JOIN_FAILURE = SPINEL_STATUS_JOIN__BEGIN + 0, 533*cfb92d14SAndroid Build Coastguard Worker 534*cfb92d14SAndroid Build Coastguard Worker /// The node found other peers but was unable to decode their packets. 535*cfb92d14SAndroid Build Coastguard Worker /** 536*cfb92d14SAndroid Build Coastguard Worker * Typically this error code indicates that the network 537*cfb92d14SAndroid Build Coastguard Worker * key has been set incorrectly. 538*cfb92d14SAndroid Build Coastguard Worker * 539*cfb92d14SAndroid Build Coastguard Worker * \sa SPINEL_PROP_NET_REQUIRE_JOIN_EXISTING 540*cfb92d14SAndroid Build Coastguard Worker * \sa SPINEL_PROP_MESHCOP_JOINER_COMMISSIONING 541*cfb92d14SAndroid Build Coastguard Worker */ 542*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_JOIN_SECURITY = SPINEL_STATUS_JOIN__BEGIN + 1, 543*cfb92d14SAndroid Build Coastguard Worker 544*cfb92d14SAndroid Build Coastguard Worker /// The node was unable to find any other peers on the network. 545*cfb92d14SAndroid Build Coastguard Worker /** 546*cfb92d14SAndroid Build Coastguard Worker * \sa SPINEL_PROP_NET_REQUIRE_JOIN_EXISTING 547*cfb92d14SAndroid Build Coastguard Worker * \sa SPINEL_PROP_MESHCOP_JOINER_COMMISSIONING 548*cfb92d14SAndroid Build Coastguard Worker */ 549*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_JOIN_NO_PEERS = SPINEL_STATUS_JOIN__BEGIN + 2, 550*cfb92d14SAndroid Build Coastguard Worker 551*cfb92d14SAndroid Build Coastguard Worker /// The only potential peer nodes found are incompatible. 552*cfb92d14SAndroid Build Coastguard Worker /** 553*cfb92d14SAndroid Build Coastguard Worker * \sa SPINEL_PROP_NET_REQUIRE_JOIN_EXISTING 554*cfb92d14SAndroid Build Coastguard Worker */ 555*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_JOIN_INCOMPATIBLE = SPINEL_STATUS_JOIN__BEGIN + 3, 556*cfb92d14SAndroid Build Coastguard Worker 557*cfb92d14SAndroid Build Coastguard Worker /// No response in expecting time. 558*cfb92d14SAndroid Build Coastguard Worker /** 559*cfb92d14SAndroid Build Coastguard Worker * \sa SPINEL_PROP_MESHCOP_JOINER_COMMISSIONING 560*cfb92d14SAndroid Build Coastguard Worker */ 561*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_JOIN_RSP_TIMEOUT = SPINEL_STATUS_JOIN__BEGIN + 4, 562*cfb92d14SAndroid Build Coastguard Worker 563*cfb92d14SAndroid Build Coastguard Worker /// The node succeeds in commissioning and get the network credentials. 564*cfb92d14SAndroid Build Coastguard Worker /** 565*cfb92d14SAndroid Build Coastguard Worker * \sa SPINEL_PROP_MESHCOP_JOINER_COMMISSIONING 566*cfb92d14SAndroid Build Coastguard Worker */ 567*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_JOIN_SUCCESS = SPINEL_STATUS_JOIN__BEGIN + 5, 568*cfb92d14SAndroid Build Coastguard Worker 569*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_JOIN__END = 112, 570*cfb92d14SAndroid Build Coastguard Worker 571*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_RESET__BEGIN = 112, 572*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_RESET_POWER_ON = SPINEL_STATUS_RESET__BEGIN + 0, 573*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_RESET_EXTERNAL = SPINEL_STATUS_RESET__BEGIN + 1, 574*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_RESET_SOFTWARE = SPINEL_STATUS_RESET__BEGIN + 2, 575*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_RESET_FAULT = SPINEL_STATUS_RESET__BEGIN + 3, 576*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_RESET_CRASH = SPINEL_STATUS_RESET__BEGIN + 4, 577*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_RESET_ASSERT = SPINEL_STATUS_RESET__BEGIN + 5, 578*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_RESET_OTHER = SPINEL_STATUS_RESET__BEGIN + 6, 579*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_RESET_UNKNOWN = SPINEL_STATUS_RESET__BEGIN + 7, 580*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_RESET_WATCHDOG = SPINEL_STATUS_RESET__BEGIN + 8, 581*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_RESET__END = 128, 582*cfb92d14SAndroid Build Coastguard Worker 583*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_VENDOR__BEGIN = 15360, 584*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_VENDOR__END = 16384, 585*cfb92d14SAndroid Build Coastguard Worker 586*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_STACK_NATIVE__BEGIN = 16384, 587*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_STACK_NATIVE__END = 81920, 588*cfb92d14SAndroid Build Coastguard Worker 589*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_EXPERIMENTAL__BEGIN = 2000000, 590*cfb92d14SAndroid Build Coastguard Worker SPINEL_STATUS_EXPERIMENTAL__END = 2097152, 591*cfb92d14SAndroid Build Coastguard Worker }; 592*cfb92d14SAndroid Build Coastguard Worker 593*cfb92d14SAndroid Build Coastguard Worker typedef uint32_t spinel_status_t; 594*cfb92d14SAndroid Build Coastguard Worker 595*cfb92d14SAndroid Build Coastguard Worker typedef enum 596*cfb92d14SAndroid Build Coastguard Worker { 597*cfb92d14SAndroid Build Coastguard Worker SPINEL_NET_ROLE_DETACHED = 0, 598*cfb92d14SAndroid Build Coastguard Worker SPINEL_NET_ROLE_CHILD = 1, 599*cfb92d14SAndroid Build Coastguard Worker SPINEL_NET_ROLE_ROUTER = 2, 600*cfb92d14SAndroid Build Coastguard Worker SPINEL_NET_ROLE_LEADER = 3, 601*cfb92d14SAndroid Build Coastguard Worker SPINEL_NET_ROLE_DISABLED = 4, 602*cfb92d14SAndroid Build Coastguard Worker } spinel_net_role_t; 603*cfb92d14SAndroid Build Coastguard Worker 604*cfb92d14SAndroid Build Coastguard Worker typedef enum 605*cfb92d14SAndroid Build Coastguard Worker { 606*cfb92d14SAndroid Build Coastguard Worker SPINEL_IPV6_ICMP_PING_OFFLOAD_DISABLED = 0, 607*cfb92d14SAndroid Build Coastguard Worker SPINEL_IPV6_ICMP_PING_OFFLOAD_UNICAST_ONLY = 1, 608*cfb92d14SAndroid Build Coastguard Worker SPINEL_IPV6_ICMP_PING_OFFLOAD_MULTICAST_ONLY = 2, 609*cfb92d14SAndroid Build Coastguard Worker SPINEL_IPV6_ICMP_PING_OFFLOAD_ALL = 3, 610*cfb92d14SAndroid Build Coastguard Worker SPINEL_IPV6_ICMP_PING_OFFLOAD_RLOC_ALOC_ONLY = 4, 611*cfb92d14SAndroid Build Coastguard Worker } spinel_ipv6_icmp_ping_offload_mode_t; 612*cfb92d14SAndroid Build Coastguard Worker 613*cfb92d14SAndroid Build Coastguard Worker typedef enum 614*cfb92d14SAndroid Build Coastguard Worker { 615*cfb92d14SAndroid Build Coastguard Worker SPINEL_SCAN_STATE_IDLE = 0, 616*cfb92d14SAndroid Build Coastguard Worker SPINEL_SCAN_STATE_BEACON = 1, 617*cfb92d14SAndroid Build Coastguard Worker SPINEL_SCAN_STATE_ENERGY = 2, 618*cfb92d14SAndroid Build Coastguard Worker SPINEL_SCAN_STATE_DISCOVER = 3, 619*cfb92d14SAndroid Build Coastguard Worker } spinel_scan_state_t; 620*cfb92d14SAndroid Build Coastguard Worker 621*cfb92d14SAndroid Build Coastguard Worker typedef enum 622*cfb92d14SAndroid Build Coastguard Worker { 623*cfb92d14SAndroid Build Coastguard Worker SPINEL_MCU_POWER_STATE_ON = 0, 624*cfb92d14SAndroid Build Coastguard Worker SPINEL_MCU_POWER_STATE_LOW_POWER = 1, 625*cfb92d14SAndroid Build Coastguard Worker SPINEL_MCU_POWER_STATE_OFF = 2, 626*cfb92d14SAndroid Build Coastguard Worker } spinel_mcu_power_state_t; 627*cfb92d14SAndroid Build Coastguard Worker 628*cfb92d14SAndroid Build Coastguard Worker // The `spinel_power_state_t` enumeration and `POWER_STATE` 629*cfb92d14SAndroid Build Coastguard Worker // property are deprecated. Please use `MCU_POWER_STATE` 630*cfb92d14SAndroid Build Coastguard Worker // instead. 631*cfb92d14SAndroid Build Coastguard Worker typedef enum 632*cfb92d14SAndroid Build Coastguard Worker { 633*cfb92d14SAndroid Build Coastguard Worker SPINEL_POWER_STATE_OFFLINE = 0, 634*cfb92d14SAndroid Build Coastguard Worker SPINEL_POWER_STATE_DEEP_SLEEP = 1, 635*cfb92d14SAndroid Build Coastguard Worker SPINEL_POWER_STATE_STANDBY = 2, 636*cfb92d14SAndroid Build Coastguard Worker SPINEL_POWER_STATE_LOW_POWER = 3, 637*cfb92d14SAndroid Build Coastguard Worker SPINEL_POWER_STATE_ONLINE = 4, 638*cfb92d14SAndroid Build Coastguard Worker } spinel_power_state_t; 639*cfb92d14SAndroid Build Coastguard Worker 640*cfb92d14SAndroid Build Coastguard Worker typedef enum 641*cfb92d14SAndroid Build Coastguard Worker { 642*cfb92d14SAndroid Build Coastguard Worker SPINEL_HOST_POWER_STATE_OFFLINE = 0, 643*cfb92d14SAndroid Build Coastguard Worker SPINEL_HOST_POWER_STATE_DEEP_SLEEP = 1, 644*cfb92d14SAndroid Build Coastguard Worker SPINEL_HOST_POWER_STATE_RESERVED = 2, 645*cfb92d14SAndroid Build Coastguard Worker SPINEL_HOST_POWER_STATE_LOW_POWER = 3, 646*cfb92d14SAndroid Build Coastguard Worker SPINEL_HOST_POWER_STATE_ONLINE = 4, 647*cfb92d14SAndroid Build Coastguard Worker } spinel_host_power_state_t; 648*cfb92d14SAndroid Build Coastguard Worker 649*cfb92d14SAndroid Build Coastguard Worker typedef enum 650*cfb92d14SAndroid Build Coastguard Worker { 651*cfb92d14SAndroid Build Coastguard Worker SPINEL_MESHCOP_JOINER_STATE_IDLE = 0, 652*cfb92d14SAndroid Build Coastguard Worker SPINEL_MESHCOP_JOINER_STATE_DISCOVER = 1, 653*cfb92d14SAndroid Build Coastguard Worker SPINEL_MESHCOP_JOINER_STATE_CONNECTING = 2, 654*cfb92d14SAndroid Build Coastguard Worker SPINEL_MESHCOP_JOINER_STATE_CONNECTED = 3, 655*cfb92d14SAndroid Build Coastguard Worker SPINEL_MESHCOP_JOINER_STATE_ENTRUST = 4, 656*cfb92d14SAndroid Build Coastguard Worker SPINEL_MESHCOP_JOINER_STATE_JOINED = 5, 657*cfb92d14SAndroid Build Coastguard Worker } spinel_meshcop_joiner_state_t; 658*cfb92d14SAndroid Build Coastguard Worker 659*cfb92d14SAndroid Build Coastguard Worker enum 660*cfb92d14SAndroid Build Coastguard Worker { 661*cfb92d14SAndroid Build Coastguard Worker SPINEL_NET_FLAG_ON_MESH = (1 << 0), 662*cfb92d14SAndroid Build Coastguard Worker SPINEL_NET_FLAG_DEFAULT_ROUTE = (1 << 1), 663*cfb92d14SAndroid Build Coastguard Worker SPINEL_NET_FLAG_CONFIGURE = (1 << 2), 664*cfb92d14SAndroid Build Coastguard Worker SPINEL_NET_FLAG_DHCP = (1 << 3), 665*cfb92d14SAndroid Build Coastguard Worker SPINEL_NET_FLAG_SLAAC = (1 << 4), 666*cfb92d14SAndroid Build Coastguard Worker SPINEL_NET_FLAG_PREFERRED = (1 << 5), 667*cfb92d14SAndroid Build Coastguard Worker 668*cfb92d14SAndroid Build Coastguard Worker SPINEL_NET_FLAG_PREFERENCE_OFFSET = 6, 669*cfb92d14SAndroid Build Coastguard Worker SPINEL_NET_FLAG_PREFERENCE_MASK = (3 << SPINEL_NET_FLAG_PREFERENCE_OFFSET), 670*cfb92d14SAndroid Build Coastguard Worker }; 671*cfb92d14SAndroid Build Coastguard Worker 672*cfb92d14SAndroid Build Coastguard Worker enum 673*cfb92d14SAndroid Build Coastguard Worker { 674*cfb92d14SAndroid Build Coastguard Worker SPINEL_NET_FLAG_EXT_DP = (1 << 6), 675*cfb92d14SAndroid Build Coastguard Worker SPINEL_NET_FLAG_EXT_DNS = (1 << 7), 676*cfb92d14SAndroid Build Coastguard Worker }; 677*cfb92d14SAndroid Build Coastguard Worker 678*cfb92d14SAndroid Build Coastguard Worker enum 679*cfb92d14SAndroid Build Coastguard Worker { 680*cfb92d14SAndroid Build Coastguard Worker SPINEL_ROUTE_PREFERENCE_HIGH = (1 << SPINEL_NET_FLAG_PREFERENCE_OFFSET), 681*cfb92d14SAndroid Build Coastguard Worker SPINEL_ROUTE_PREFERENCE_MEDIUM = (0 << SPINEL_NET_FLAG_PREFERENCE_OFFSET), 682*cfb92d14SAndroid Build Coastguard Worker SPINEL_ROUTE_PREFERENCE_LOW = (3 << SPINEL_NET_FLAG_PREFERENCE_OFFSET), 683*cfb92d14SAndroid Build Coastguard Worker }; 684*cfb92d14SAndroid Build Coastguard Worker 685*cfb92d14SAndroid Build Coastguard Worker enum 686*cfb92d14SAndroid Build Coastguard Worker { 687*cfb92d14SAndroid Build Coastguard Worker SPINEL_ROUTE_FLAG_NAT64 = (1 << 5), 688*cfb92d14SAndroid Build Coastguard Worker }; 689*cfb92d14SAndroid Build Coastguard Worker 690*cfb92d14SAndroid Build Coastguard Worker enum 691*cfb92d14SAndroid Build Coastguard Worker { 692*cfb92d14SAndroid Build Coastguard Worker SPINEL_THREAD_MODE_FULL_NETWORK_DATA = (1 << 0), 693*cfb92d14SAndroid Build Coastguard Worker SPINEL_THREAD_MODE_FULL_THREAD_DEV = (1 << 1), 694*cfb92d14SAndroid Build Coastguard Worker SPINEL_THREAD_MODE_SECURE_DATA_REQUEST = (1 << 2), 695*cfb92d14SAndroid Build Coastguard Worker SPINEL_THREAD_MODE_RX_ON_WHEN_IDLE = (1 << 3), 696*cfb92d14SAndroid Build Coastguard Worker }; 697*cfb92d14SAndroid Build Coastguard Worker 698*cfb92d14SAndroid Build Coastguard Worker enum 699*cfb92d14SAndroid Build Coastguard Worker { 700*cfb92d14SAndroid Build Coastguard Worker SPINEL_GPIO_FLAG_DIR_INPUT = 0, 701*cfb92d14SAndroid Build Coastguard Worker SPINEL_GPIO_FLAG_DIR_OUTPUT = SPINEL_BIT_MASK(0, 8), 702*cfb92d14SAndroid Build Coastguard Worker SPINEL_GPIO_FLAG_PULL_UP = SPINEL_BIT_MASK(1, 8), 703*cfb92d14SAndroid Build Coastguard Worker SPINEL_GPIO_FLAG_PULL_DOWN = SPINEL_BIT_MASK(2, 8), 704*cfb92d14SAndroid Build Coastguard Worker SPINEL_GPIO_FLAG_OPEN_DRAIN = SPINEL_BIT_MASK(2, 8), 705*cfb92d14SAndroid Build Coastguard Worker SPINEL_GPIO_FLAG_TRIGGER_NONE = 0, 706*cfb92d14SAndroid Build Coastguard Worker SPINEL_GPIO_FLAG_TRIGGER_RISING = SPINEL_BIT_MASK(3, 8), 707*cfb92d14SAndroid Build Coastguard Worker SPINEL_GPIO_FLAG_TRIGGER_FALLING = SPINEL_BIT_MASK(4, 8), 708*cfb92d14SAndroid Build Coastguard Worker SPINEL_GPIO_FLAG_TRIGGER_ANY = SPINEL_GPIO_FLAG_TRIGGER_RISING | SPINEL_GPIO_FLAG_TRIGGER_FALLING, 709*cfb92d14SAndroid Build Coastguard Worker }; 710*cfb92d14SAndroid Build Coastguard Worker 711*cfb92d14SAndroid Build Coastguard Worker enum 712*cfb92d14SAndroid Build Coastguard Worker { 713*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROTOCOL_TYPE_BOOTLOADER = 0, 714*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROTOCOL_TYPE_ZIGBEE_IP = 2, 715*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROTOCOL_TYPE_THREAD = 3, 716*cfb92d14SAndroid Build Coastguard Worker }; 717*cfb92d14SAndroid Build Coastguard Worker 718*cfb92d14SAndroid Build Coastguard Worker enum 719*cfb92d14SAndroid Build Coastguard Worker { 720*cfb92d14SAndroid Build Coastguard Worker SPINEL_MAC_PROMISCUOUS_MODE_OFF = 0, ///< Normal MAC filtering is in place. 721*cfb92d14SAndroid Build Coastguard Worker SPINEL_MAC_PROMISCUOUS_MODE_NETWORK = 1, ///< All MAC packets matching network are passed up the stack. 722*cfb92d14SAndroid Build Coastguard Worker SPINEL_MAC_PROMISCUOUS_MODE_FULL = 2, ///< All decoded MAC packets are passed up the stack. 723*cfb92d14SAndroid Build Coastguard Worker }; 724*cfb92d14SAndroid Build Coastguard Worker 725*cfb92d14SAndroid Build Coastguard Worker enum 726*cfb92d14SAndroid Build Coastguard Worker { 727*cfb92d14SAndroid Build Coastguard Worker SPINEL_NCP_LOG_LEVEL_EMERG = 0, 728*cfb92d14SAndroid Build Coastguard Worker SPINEL_NCP_LOG_LEVEL_ALERT = 1, 729*cfb92d14SAndroid Build Coastguard Worker SPINEL_NCP_LOG_LEVEL_CRIT = 2, 730*cfb92d14SAndroid Build Coastguard Worker SPINEL_NCP_LOG_LEVEL_ERR = 3, 731*cfb92d14SAndroid Build Coastguard Worker SPINEL_NCP_LOG_LEVEL_WARN = 4, 732*cfb92d14SAndroid Build Coastguard Worker SPINEL_NCP_LOG_LEVEL_NOTICE = 5, 733*cfb92d14SAndroid Build Coastguard Worker SPINEL_NCP_LOG_LEVEL_INFO = 6, 734*cfb92d14SAndroid Build Coastguard Worker SPINEL_NCP_LOG_LEVEL_DEBUG = 7, 735*cfb92d14SAndroid Build Coastguard Worker }; 736*cfb92d14SAndroid Build Coastguard Worker 737*cfb92d14SAndroid Build Coastguard Worker enum 738*cfb92d14SAndroid Build Coastguard Worker { 739*cfb92d14SAndroid Build Coastguard Worker SPINEL_NCP_LOG_REGION_NONE = 0, 740*cfb92d14SAndroid Build Coastguard Worker SPINEL_NCP_LOG_REGION_OT_API = 1, 741*cfb92d14SAndroid Build Coastguard Worker SPINEL_NCP_LOG_REGION_OT_MLE = 2, 742*cfb92d14SAndroid Build Coastguard Worker SPINEL_NCP_LOG_REGION_OT_ARP = 3, 743*cfb92d14SAndroid Build Coastguard Worker SPINEL_NCP_LOG_REGION_OT_NET_DATA = 4, 744*cfb92d14SAndroid Build Coastguard Worker SPINEL_NCP_LOG_REGION_OT_ICMP = 5, 745*cfb92d14SAndroid Build Coastguard Worker SPINEL_NCP_LOG_REGION_OT_IP6 = 6, 746*cfb92d14SAndroid Build Coastguard Worker SPINEL_NCP_LOG_REGION_OT_TCP = 7, 747*cfb92d14SAndroid Build Coastguard Worker SPINEL_NCP_LOG_REGION_OT_MAC = 8, 748*cfb92d14SAndroid Build Coastguard Worker SPINEL_NCP_LOG_REGION_OT_MEM = 9, 749*cfb92d14SAndroid Build Coastguard Worker SPINEL_NCP_LOG_REGION_OT_NCP = 10, 750*cfb92d14SAndroid Build Coastguard Worker SPINEL_NCP_LOG_REGION_OT_MESH_COP = 11, 751*cfb92d14SAndroid Build Coastguard Worker SPINEL_NCP_LOG_REGION_OT_NET_DIAG = 12, 752*cfb92d14SAndroid Build Coastguard Worker SPINEL_NCP_LOG_REGION_OT_PLATFORM = 13, 753*cfb92d14SAndroid Build Coastguard Worker SPINEL_NCP_LOG_REGION_OT_COAP = 14, 754*cfb92d14SAndroid Build Coastguard Worker SPINEL_NCP_LOG_REGION_OT_CLI = 15, 755*cfb92d14SAndroid Build Coastguard Worker SPINEL_NCP_LOG_REGION_OT_CORE = 16, 756*cfb92d14SAndroid Build Coastguard Worker SPINEL_NCP_LOG_REGION_OT_UTIL = 17, 757*cfb92d14SAndroid Build Coastguard Worker SPINEL_NCP_LOG_REGION_OT_BBR = 18, 758*cfb92d14SAndroid Build Coastguard Worker SPINEL_NCP_LOG_REGION_OT_MLR = 19, 759*cfb92d14SAndroid Build Coastguard Worker SPINEL_NCP_LOG_REGION_OT_DUA = 20, 760*cfb92d14SAndroid Build Coastguard Worker SPINEL_NCP_LOG_REGION_OT_BR = 21, 761*cfb92d14SAndroid Build Coastguard Worker SPINEL_NCP_LOG_REGION_OT_SRP = 22, 762*cfb92d14SAndroid Build Coastguard Worker SPINEL_NCP_LOG_REGION_OT_DNS = 23, 763*cfb92d14SAndroid Build Coastguard Worker }; 764*cfb92d14SAndroid Build Coastguard Worker 765*cfb92d14SAndroid Build Coastguard Worker enum 766*cfb92d14SAndroid Build Coastguard Worker { 767*cfb92d14SAndroid Build Coastguard Worker SPINEL_MESHCOP_COMMISSIONER_STATE_DISABLED = 0, 768*cfb92d14SAndroid Build Coastguard Worker SPINEL_MESHCOP_COMMISSIONER_STATE_PETITION = 1, 769*cfb92d14SAndroid Build Coastguard Worker SPINEL_MESHCOP_COMMISSIONER_STATE_ACTIVE = 2, 770*cfb92d14SAndroid Build Coastguard Worker }; 771*cfb92d14SAndroid Build Coastguard Worker 772*cfb92d14SAndroid Build Coastguard Worker enum 773*cfb92d14SAndroid Build Coastguard Worker { 774*cfb92d14SAndroid Build Coastguard Worker SPINEL_ADDRESS_CACHE_ENTRY_STATE_CACHED = 0, // Entry is cached and in-use. 775*cfb92d14SAndroid Build Coastguard Worker SPINEL_ADDRESS_CACHE_ENTRY_STATE_SNOOPED = 1, // Entry is created by snoop optimization. 776*cfb92d14SAndroid Build Coastguard Worker SPINEL_ADDRESS_CACHE_ENTRY_STATE_QUERY = 2, // Entry represents an ongoing query for the EID. 777*cfb92d14SAndroid Build Coastguard Worker SPINEL_ADDRESS_CACHE_ENTRY_STATE_RETRY_QUERY = 3, // Entry is in retry mode (a prior query did not a response). 778*cfb92d14SAndroid Build Coastguard Worker }; 779*cfb92d14SAndroid Build Coastguard Worker 780*cfb92d14SAndroid Build Coastguard Worker enum 781*cfb92d14SAndroid Build Coastguard Worker { 782*cfb92d14SAndroid Build Coastguard Worker SPINEL_RADIO_LINK_IEEE_802_15_4 = 0, 783*cfb92d14SAndroid Build Coastguard Worker SPINEL_RADIO_LINK_TREL_UDP6 = 1, 784*cfb92d14SAndroid Build Coastguard Worker }; 785*cfb92d14SAndroid Build Coastguard Worker 786*cfb92d14SAndroid Build Coastguard Worker // Statuses that can be received as a result of: 787*cfb92d14SAndroid Build Coastguard Worker // @ref SPINEL_PROP_THREAD_LINK_METRICS_QUERY 788*cfb92d14SAndroid Build Coastguard Worker // @ref SPINEL_PROP_THREAD_LINK_METRICS_MGMT_ENH_ACK 789*cfb92d14SAndroid Build Coastguard Worker // @ref SPINEL_PROP_THREAD_LINK_METRICS_MGMT_FORWARD 790*cfb92d14SAndroid Build Coastguard Worker enum 791*cfb92d14SAndroid Build Coastguard Worker { 792*cfb92d14SAndroid Build Coastguard Worker SPINEL_LINK_METRICS_STATUS_SUCCESS = 0, 793*cfb92d14SAndroid Build Coastguard Worker SPINEL_LINK_METRICS_STATUS_CANNOT_SUPPORT_NEW_SERIES = 1, 794*cfb92d14SAndroid Build Coastguard Worker SPINEL_LINK_METRICS_STATUS_SERIESID_ALREADY_REGISTERED = 2, 795*cfb92d14SAndroid Build Coastguard Worker SPINEL_LINK_METRICS_STATUS_SERIESID_NOT_RECOGNIZED = 3, 796*cfb92d14SAndroid Build Coastguard Worker SPINEL_LINK_METRICS_STATUS_NO_MATCHING_FRAMES_RECEIVED = 4, 797*cfb92d14SAndroid Build Coastguard Worker SPINEL_LINK_METRICS_STATUS_OTHER_ERROR = 254 798*cfb92d14SAndroid Build Coastguard Worker }; 799*cfb92d14SAndroid Build Coastguard Worker 800*cfb92d14SAndroid Build Coastguard Worker // Metric ids used for: 801*cfb92d14SAndroid Build Coastguard Worker // @ref SPINEL_PROP_THREAD_LINK_METRICS_QUERY 802*cfb92d14SAndroid Build Coastguard Worker // @ref SPINEL_PROP_THREAD_LINK_METRICS_QUERY_RESULT 803*cfb92d14SAndroid Build Coastguard Worker // @ref SPINEL_PROP_THREAD_LINK_METRICS_MGMT_ENH_ACK 804*cfb92d14SAndroid Build Coastguard Worker // @ref SPINEL_PROP_THREAD_LINK_METRICS_MGMT_FORWARD 805*cfb92d14SAndroid Build Coastguard Worker // @ref SPINEL_PROP_RCP_ENH_ACK_PROBING 806*cfb92d14SAndroid Build Coastguard Worker enum 807*cfb92d14SAndroid Build Coastguard Worker { 808*cfb92d14SAndroid Build Coastguard Worker SPINEL_THREAD_LINK_METRIC_PDU_COUNT = (1 << 0), 809*cfb92d14SAndroid Build Coastguard Worker SPINEL_THREAD_LINK_METRIC_LQI = (1 << 1), 810*cfb92d14SAndroid Build Coastguard Worker SPINEL_THREAD_LINK_METRIC_LINK_MARGIN = (1 << 2), 811*cfb92d14SAndroid Build Coastguard Worker SPINEL_THREAD_LINK_METRIC_RSSI = (1 << 3), 812*cfb92d14SAndroid Build Coastguard Worker }; 813*cfb92d14SAndroid Build Coastguard Worker 814*cfb92d14SAndroid Build Coastguard Worker // Frame types used for: 815*cfb92d14SAndroid Build Coastguard Worker // @ref SPINEL_PROP_THREAD_LINK_METRICS_MGMT_FORWARD 816*cfb92d14SAndroid Build Coastguard Worker enum 817*cfb92d14SAndroid Build Coastguard Worker { 818*cfb92d14SAndroid Build Coastguard Worker SPINEL_THREAD_FRAME_TYPE_MLE_LINK_PROBE = (1 << 0), 819*cfb92d14SAndroid Build Coastguard Worker SPINEL_THREAD_FRAME_TYPE_MAC_DATA = (1 << 1), 820*cfb92d14SAndroid Build Coastguard Worker SPINEL_THREAD_FRAME_TYPE_MAC_DATA_REQUEST = (1 << 2), 821*cfb92d14SAndroid Build Coastguard Worker SPINEL_THREAD_FRAME_TYPE_MAC_ACK = (1 << 3), 822*cfb92d14SAndroid Build Coastguard Worker }; 823*cfb92d14SAndroid Build Coastguard Worker 824*cfb92d14SAndroid Build Coastguard Worker // Parameter ids used for: 825*cfb92d14SAndroid Build Coastguard Worker // @ref SPINEL_PROP_THREAD_MLR_REQUEST 826*cfb92d14SAndroid Build Coastguard Worker enum 827*cfb92d14SAndroid Build Coastguard Worker { 828*cfb92d14SAndroid Build Coastguard Worker SPINEL_THREAD_MLR_PARAMID_TIMEOUT = 0 829*cfb92d14SAndroid Build Coastguard Worker }; 830*cfb92d14SAndroid Build Coastguard Worker 831*cfb92d14SAndroid Build Coastguard Worker // Backbone Router states used for: 832*cfb92d14SAndroid Build Coastguard Worker // @ref SPINEL_PROP_THREAD_BACKBONE_ROUTER_LOCAL_STATE 833*cfb92d14SAndroid Build Coastguard Worker enum 834*cfb92d14SAndroid Build Coastguard Worker { 835*cfb92d14SAndroid Build Coastguard Worker SPINEL_THREAD_BACKBONE_ROUTER_STATE_DISABLED = 0, 836*cfb92d14SAndroid Build Coastguard Worker SPINEL_THREAD_BACKBONE_ROUTER_STATE_SECONDARY = 1, 837*cfb92d14SAndroid Build Coastguard Worker SPINEL_THREAD_BACKBONE_ROUTER_STATE_PRIMARY = 2, 838*cfb92d14SAndroid Build Coastguard Worker }; 839*cfb92d14SAndroid Build Coastguard Worker 840*cfb92d14SAndroid Build Coastguard Worker typedef enum 841*cfb92d14SAndroid Build Coastguard Worker { 842*cfb92d14SAndroid Build Coastguard Worker SPINEL_SRP_CLIENT_ITEM_STATE_TO_ADD = 0, // Item to be added/registered. 843*cfb92d14SAndroid Build Coastguard Worker SPINEL_SRP_CLIENT_ITEM_STATE_ADDING = 1, // Item is being added/registered. 844*cfb92d14SAndroid Build Coastguard Worker SPINEL_SRP_CLIENT_ITEM_STATE_TO_REFRESH = 2, // Item to be refreshed (re-register to renew lease). 845*cfb92d14SAndroid Build Coastguard Worker SPINEL_SRP_CLIENT_ITEM_STATE_REFRESHING = 3, // Item is being refreshed. 846*cfb92d14SAndroid Build Coastguard Worker SPINEL_SRP_CLIENT_ITEM_STATE_TO_REMOVE = 4, // Item to be removed. 847*cfb92d14SAndroid Build Coastguard Worker SPINEL_SRP_CLIENT_ITEM_STATE_REMOVING = 5, // Item is being removed. 848*cfb92d14SAndroid Build Coastguard Worker SPINEL_SRP_CLIENT_ITEM_STATE_REGISTERED = 6, // Item is registered with server. 849*cfb92d14SAndroid Build Coastguard Worker SPINEL_SRP_CLIENT_ITEM_STATE_REMOVED = 7, // Item is removed. 850*cfb92d14SAndroid Build Coastguard Worker } spinel_srp_client_item_state_t; 851*cfb92d14SAndroid Build Coastguard Worker 852*cfb92d14SAndroid Build Coastguard Worker typedef enum 853*cfb92d14SAndroid Build Coastguard Worker { 854*cfb92d14SAndroid Build Coastguard Worker SPINEL_SRP_CLIENT_ERROR_NONE = 0, // No error. 855*cfb92d14SAndroid Build Coastguard Worker SPINEL_SRP_CLIENT_ERROR_PARSE = 1, // Server unable to interpret due to format error. 856*cfb92d14SAndroid Build Coastguard Worker SPINEL_SRP_CLIENT_ERROR_FAILED = 2, // Server encountered an internal failure. 857*cfb92d14SAndroid Build Coastguard Worker SPINEL_SRP_CLIENT_ERROR_NOT_FOUND = 3, // Name that ought to exist, does not exists. 858*cfb92d14SAndroid Build Coastguard Worker SPINEL_SRP_CLIENT_ERROR_NOT_IMPLEMENTED = 4, // Server does not support the query type. 859*cfb92d14SAndroid Build Coastguard Worker SPINEL_SRP_CLIENT_ERROR_SECURITY = 5, // Service is not authoritative for zone. 860*cfb92d14SAndroid Build Coastguard Worker SPINEL_SRP_CLIENT_ERROR_DUPLICATED = 6, // Some name that ought not to exist, does exist. 861*cfb92d14SAndroid Build Coastguard Worker SPINEL_SRP_CLIENT_ERROR_RESPONSE_TIMEOUT = 7, // Timed out waiting for response from server (client would retry). 862*cfb92d14SAndroid Build Coastguard Worker SPINEL_SRP_CLIENT_ERROR_INVALID_ARGS = 8, // Invalid args (e.g., bad service name or TXT-DATA). 863*cfb92d14SAndroid Build Coastguard Worker SPINEL_SRP_CLIENT_ERROR_NO_BUFS = 9, // No buffer to send the SRP update message. 864*cfb92d14SAndroid Build Coastguard Worker } spinel_srp_client_error_t; 865*cfb92d14SAndroid Build Coastguard Worker 866*cfb92d14SAndroid Build Coastguard Worker typedef struct 867*cfb92d14SAndroid Build Coastguard Worker { 868*cfb92d14SAndroid Build Coastguard Worker uint8_t bytes[8]; 869*cfb92d14SAndroid Build Coastguard Worker } spinel_eui64_t; 870*cfb92d14SAndroid Build Coastguard Worker 871*cfb92d14SAndroid Build Coastguard Worker typedef struct 872*cfb92d14SAndroid Build Coastguard Worker { 873*cfb92d14SAndroid Build Coastguard Worker uint8_t bytes[8]; 874*cfb92d14SAndroid Build Coastguard Worker } spinel_net_xpanid_t; 875*cfb92d14SAndroid Build Coastguard Worker 876*cfb92d14SAndroid Build Coastguard Worker typedef struct 877*cfb92d14SAndroid Build Coastguard Worker { 878*cfb92d14SAndroid Build Coastguard Worker uint8_t bytes[16]; 879*cfb92d14SAndroid Build Coastguard Worker } spinel_net_pskc_t; 880*cfb92d14SAndroid Build Coastguard Worker 881*cfb92d14SAndroid Build Coastguard Worker typedef struct 882*cfb92d14SAndroid Build Coastguard Worker { 883*cfb92d14SAndroid Build Coastguard Worker uint8_t bytes[6]; 884*cfb92d14SAndroid Build Coastguard Worker } spinel_eui48_t; 885*cfb92d14SAndroid Build Coastguard Worker 886*cfb92d14SAndroid Build Coastguard Worker typedef struct 887*cfb92d14SAndroid Build Coastguard Worker { 888*cfb92d14SAndroid Build Coastguard Worker uint8_t bytes[16]; 889*cfb92d14SAndroid Build Coastguard Worker } spinel_ipv6addr_t; 890*cfb92d14SAndroid Build Coastguard Worker 891*cfb92d14SAndroid Build Coastguard Worker typedef int spinel_ssize_t; 892*cfb92d14SAndroid Build Coastguard Worker typedef unsigned int spinel_size_t; 893*cfb92d14SAndroid Build Coastguard Worker typedef uint8_t spinel_iid_t; 894*cfb92d14SAndroid Build Coastguard Worker typedef uint8_t spinel_tid_t; 895*cfb92d14SAndroid Build Coastguard Worker 896*cfb92d14SAndroid Build Coastguard Worker enum 897*cfb92d14SAndroid Build Coastguard Worker { 898*cfb92d14SAndroid Build Coastguard Worker SPINEL_MD_FLAG_TX = 0x0001, //!< Packet was transmitted, not received. 899*cfb92d14SAndroid Build Coastguard Worker SPINEL_MD_FLAG_BAD_FCS = 0x0004, //!< Packet was received with bad FCS 900*cfb92d14SAndroid Build Coastguard Worker SPINEL_MD_FLAG_DUPE = 0x0008, //!< Packet seems to be a duplicate 901*cfb92d14SAndroid Build Coastguard Worker SPINEL_MD_FLAG_ACKED_FP = 0x0010, //!< Packet was acknowledged with frame pending set 902*cfb92d14SAndroid Build Coastguard Worker SPINEL_MD_FLAG_ACKED_SEC = 0x0020, //!< Packet was acknowledged with secure enhance ACK 903*cfb92d14SAndroid Build Coastguard Worker SPINEL_MD_FLAG_RESERVED = 0xFFC2, //!< Flags reserved for future use. 904*cfb92d14SAndroid Build Coastguard Worker }; 905*cfb92d14SAndroid Build Coastguard Worker 906*cfb92d14SAndroid Build Coastguard Worker enum 907*cfb92d14SAndroid Build Coastguard Worker { 908*cfb92d14SAndroid Build Coastguard Worker SPINEL_RESET_PLATFORM = 1, 909*cfb92d14SAndroid Build Coastguard Worker SPINEL_RESET_STACK = 2, 910*cfb92d14SAndroid Build Coastguard Worker SPINEL_RESET_BOOTLOADER = 3, 911*cfb92d14SAndroid Build Coastguard Worker }; 912*cfb92d14SAndroid Build Coastguard Worker 913*cfb92d14SAndroid Build Coastguard Worker enum 914*cfb92d14SAndroid Build Coastguard Worker { 915*cfb92d14SAndroid Build Coastguard Worker /** 916*cfb92d14SAndroid Build Coastguard Worker * No-Operation command (Host -> NCP) 917*cfb92d14SAndroid Build Coastguard Worker * 918*cfb92d14SAndroid Build Coastguard Worker * Encoding: Empty 919*cfb92d14SAndroid Build Coastguard Worker * 920*cfb92d14SAndroid Build Coastguard Worker * Induces the NCP to send a success status back to the host. This is 921*cfb92d14SAndroid Build Coastguard Worker * primarily used for liveliness checks. The command payload for this 922*cfb92d14SAndroid Build Coastguard Worker * command SHOULD be empty. 923*cfb92d14SAndroid Build Coastguard Worker * 924*cfb92d14SAndroid Build Coastguard Worker * There is no error condition for this command. 925*cfb92d14SAndroid Build Coastguard Worker * 926*cfb92d14SAndroid Build Coastguard Worker */ 927*cfb92d14SAndroid Build Coastguard Worker SPINEL_CMD_NOOP = 0, 928*cfb92d14SAndroid Build Coastguard Worker 929*cfb92d14SAndroid Build Coastguard Worker /** 930*cfb92d14SAndroid Build Coastguard Worker * Reset NCP command (Host -> NCP) 931*cfb92d14SAndroid Build Coastguard Worker * 932*cfb92d14SAndroid Build Coastguard Worker * Encoding: Empty or `C` 933*cfb92d14SAndroid Build Coastguard Worker * 934*cfb92d14SAndroid Build Coastguard Worker * Causes the NCP to perform a software reset. Due to the nature of 935*cfb92d14SAndroid Build Coastguard Worker * this command, the TID is ignored. The host should instead wait 936*cfb92d14SAndroid Build Coastguard Worker * for a `CMD_PROP_VALUE_IS` command from the NCP indicating 937*cfb92d14SAndroid Build Coastguard Worker * `PROP_LAST_STATUS` has been set to `STATUS_RESET_SOFTWARE`. 938*cfb92d14SAndroid Build Coastguard Worker * 939*cfb92d14SAndroid Build Coastguard Worker * The optional command payload specifies the reset type, can be 940*cfb92d14SAndroid Build Coastguard Worker * `SPINEL_RESET_PLATFORM`, `SPINEL_RESET_STACK`, or 941*cfb92d14SAndroid Build Coastguard Worker * `SPINEL_RESET_BOOTLOADER`. 942*cfb92d14SAndroid Build Coastguard Worker * 943*cfb92d14SAndroid Build Coastguard Worker * Defaults to stack reset if unspecified. 944*cfb92d14SAndroid Build Coastguard Worker * 945*cfb92d14SAndroid Build Coastguard Worker * If an error occurs, the value of `PROP_LAST_STATUS` will be emitted 946*cfb92d14SAndroid Build Coastguard Worker * instead with the value set to the generated status code for the error. 947*cfb92d14SAndroid Build Coastguard Worker * 948*cfb92d14SAndroid Build Coastguard Worker */ 949*cfb92d14SAndroid Build Coastguard Worker SPINEL_CMD_RESET = 1, 950*cfb92d14SAndroid Build Coastguard Worker 951*cfb92d14SAndroid Build Coastguard Worker /** 952*cfb92d14SAndroid Build Coastguard Worker * Get property value command (Host -> NCP) 953*cfb92d14SAndroid Build Coastguard Worker * 954*cfb92d14SAndroid Build Coastguard Worker * Encoding: `i` 955*cfb92d14SAndroid Build Coastguard Worker * `i` : Property Id 956*cfb92d14SAndroid Build Coastguard Worker * 957*cfb92d14SAndroid Build Coastguard Worker * Causes the NCP to emit a `CMD_PROP_VALUE_IS` command for the 958*cfb92d14SAndroid Build Coastguard Worker * given property identifier. 959*cfb92d14SAndroid Build Coastguard Worker * 960*cfb92d14SAndroid Build Coastguard Worker * The payload for this command is the property identifier encoded 961*cfb92d14SAndroid Build Coastguard Worker * in the packed unsigned integer format `i`. 962*cfb92d14SAndroid Build Coastguard Worker * 963*cfb92d14SAndroid Build Coastguard Worker * If an error occurs, the value of `PROP_LAST_STATUS` will be emitted 964*cfb92d14SAndroid Build Coastguard Worker * instead with the value set to the generated status code for the error. 965*cfb92d14SAndroid Build Coastguard Worker * 966*cfb92d14SAndroid Build Coastguard Worker */ 967*cfb92d14SAndroid Build Coastguard Worker SPINEL_CMD_PROP_VALUE_GET = 2, 968*cfb92d14SAndroid Build Coastguard Worker 969*cfb92d14SAndroid Build Coastguard Worker /** 970*cfb92d14SAndroid Build Coastguard Worker * Set property value command (Host -> NCP) 971*cfb92d14SAndroid Build Coastguard Worker * 972*cfb92d14SAndroid Build Coastguard Worker * Encoding: `iD` 973*cfb92d14SAndroid Build Coastguard Worker * `i` : Property Id 974*cfb92d14SAndroid Build Coastguard Worker * `D` : Value (encoding depends on the property) 975*cfb92d14SAndroid Build Coastguard Worker * 976*cfb92d14SAndroid Build Coastguard Worker * Instructs the NCP to set the given property to the specific given 977*cfb92d14SAndroid Build Coastguard Worker * value, replacing any previous value. 978*cfb92d14SAndroid Build Coastguard Worker * 979*cfb92d14SAndroid Build Coastguard Worker * The payload for this command is the property identifier encoded in the 980*cfb92d14SAndroid Build Coastguard Worker * packed unsigned integer format, followed by the property value. The 981*cfb92d14SAndroid Build Coastguard Worker * exact format of the property value is defined by the property. 982*cfb92d14SAndroid Build Coastguard Worker * 983*cfb92d14SAndroid Build Coastguard Worker * On success a `CMD_PROP_VALUE_IS` command is emitted either for the 984*cfb92d14SAndroid Build Coastguard Worker * given property identifier with the set value, or for `PROP_LAST_STATUS` 985*cfb92d14SAndroid Build Coastguard Worker * with value `LAST_STATUS_OK`. 986*cfb92d14SAndroid Build Coastguard Worker * 987*cfb92d14SAndroid Build Coastguard Worker * If an error occurs, the value of `PROP_LAST_STATUS` will be emitted 988*cfb92d14SAndroid Build Coastguard Worker * with the value set to the generated status code for the error. 989*cfb92d14SAndroid Build Coastguard Worker * 990*cfb92d14SAndroid Build Coastguard Worker */ 991*cfb92d14SAndroid Build Coastguard Worker SPINEL_CMD_PROP_VALUE_SET = 3, 992*cfb92d14SAndroid Build Coastguard Worker 993*cfb92d14SAndroid Build Coastguard Worker /** 994*cfb92d14SAndroid Build Coastguard Worker * Insert value into property command (Host -> NCP) 995*cfb92d14SAndroid Build Coastguard Worker * 996*cfb92d14SAndroid Build Coastguard Worker * Encoding: `iD` 997*cfb92d14SAndroid Build Coastguard Worker * `i` : Property Id 998*cfb92d14SAndroid Build Coastguard Worker * `D` : Value (encoding depends on the property) 999*cfb92d14SAndroid Build Coastguard Worker * 1000*cfb92d14SAndroid Build Coastguard Worker * Instructs the NCP to insert the given value into a list-oriented 1001*cfb92d14SAndroid Build Coastguard Worker * property without removing other items in the list. The resulting order 1002*cfb92d14SAndroid Build Coastguard Worker * of items in the list is defined by the individual property being 1003*cfb92d14SAndroid Build Coastguard Worker * operated on. 1004*cfb92d14SAndroid Build Coastguard Worker * 1005*cfb92d14SAndroid Build Coastguard Worker * The payload for this command is the property identifier encoded in the 1006*cfb92d14SAndroid Build Coastguard Worker * packed unsigned integer format, followed by the value to be inserted. 1007*cfb92d14SAndroid Build Coastguard Worker * The exact format of the value is defined by the property. 1008*cfb92d14SAndroid Build Coastguard Worker * 1009*cfb92d14SAndroid Build Coastguard Worker * If the type signature of the property consists of a single structure 1010*cfb92d14SAndroid Build Coastguard Worker * enclosed by an array `A(t(...))`, then the contents of value MUST 1011*cfb92d14SAndroid Build Coastguard Worker * contain the contents of the structure (`...`) rather than the 1012*cfb92d14SAndroid Build Coastguard Worker * serialization of the whole item (`t(...)`). Specifically, the length 1013*cfb92d14SAndroid Build Coastguard Worker * of the structure MUST NOT be prepended to value. This helps to 1014*cfb92d14SAndroid Build Coastguard Worker * eliminate redundant data. 1015*cfb92d14SAndroid Build Coastguard Worker * 1016*cfb92d14SAndroid Build Coastguard Worker * On success, either a `CMD_PROP_VALUE_INSERTED` command is emitted for 1017*cfb92d14SAndroid Build Coastguard Worker * the given property, or a `CMD_PROP_VALUE_IS` command is emitted of 1018*cfb92d14SAndroid Build Coastguard Worker * property `PROP_LAST_STATUS` with value `LAST_STATUS_OK`. 1019*cfb92d14SAndroid Build Coastguard Worker * 1020*cfb92d14SAndroid Build Coastguard Worker * If an error occurs, the value of `PROP_LAST_STATUS` will be emitted 1021*cfb92d14SAndroid Build Coastguard Worker * with the value set to the generated status code for the error. 1022*cfb92d14SAndroid Build Coastguard Worker * 1023*cfb92d14SAndroid Build Coastguard Worker */ 1024*cfb92d14SAndroid Build Coastguard Worker SPINEL_CMD_PROP_VALUE_INSERT = 4, 1025*cfb92d14SAndroid Build Coastguard Worker 1026*cfb92d14SAndroid Build Coastguard Worker /** 1027*cfb92d14SAndroid Build Coastguard Worker * Remove value from property command (Host -> NCP) 1028*cfb92d14SAndroid Build Coastguard Worker * 1029*cfb92d14SAndroid Build Coastguard Worker * Encoding: `iD` 1030*cfb92d14SAndroid Build Coastguard Worker * `i` : Property Id 1031*cfb92d14SAndroid Build Coastguard Worker * `D` : Value (encoding depends on the property) 1032*cfb92d14SAndroid Build Coastguard Worker 1033*cfb92d14SAndroid Build Coastguard Worker * Instructs the NCP to remove the given value from a list-oriented property, 1034*cfb92d14SAndroid Build Coastguard Worker * without affecting other items in the list. The resulting order of items 1035*cfb92d14SAndroid Build Coastguard Worker * in the list is defined by the individual property being operated on. 1036*cfb92d14SAndroid Build Coastguard Worker * 1037*cfb92d14SAndroid Build Coastguard Worker * Note that this command operates by value, not by index! 1038*cfb92d14SAndroid Build Coastguard Worker * 1039*cfb92d14SAndroid Build Coastguard Worker * The payload for this command is the property identifier encoded in the 1040*cfb92d14SAndroid Build Coastguard Worker * packed unsigned integer format, followed by the value to be removed. The 1041*cfb92d14SAndroid Build Coastguard Worker * exact format of the value is defined by the property. 1042*cfb92d14SAndroid Build Coastguard Worker * 1043*cfb92d14SAndroid Build Coastguard Worker * If the type signature of the property consists of a single structure 1044*cfb92d14SAndroid Build Coastguard Worker * enclosed by an array `A(t(...))`, then the contents of value MUST contain 1045*cfb92d14SAndroid Build Coastguard Worker * the contents of the structure (`...`) rather than the serialization of the 1046*cfb92d14SAndroid Build Coastguard Worker * whole item (`t(...)`). Specifically, the length of the structure MUST NOT 1047*cfb92d14SAndroid Build Coastguard Worker * be prepended to `VALUE`. This helps to eliminate redundant data. 1048*cfb92d14SAndroid Build Coastguard Worker * 1049*cfb92d14SAndroid Build Coastguard Worker * On success, either a `CMD_PROP_VALUE_REMOVED` command is emitted for the 1050*cfb92d14SAndroid Build Coastguard Worker * given property, or a `CMD_PROP_VALUE_IS` command is emitted of property 1051*cfb92d14SAndroid Build Coastguard Worker * `PROP_LAST_STATUS` with value `LAST_STATUS_OK`. 1052*cfb92d14SAndroid Build Coastguard Worker * 1053*cfb92d14SAndroid Build Coastguard Worker * If an error occurs, the value of `PROP_LAST_STATUS` will be emitted 1054*cfb92d14SAndroid Build Coastguard Worker * with the value set to the generated status code for the error. 1055*cfb92d14SAndroid Build Coastguard Worker * 1056*cfb92d14SAndroid Build Coastguard Worker */ 1057*cfb92d14SAndroid Build Coastguard Worker SPINEL_CMD_PROP_VALUE_REMOVE = 5, 1058*cfb92d14SAndroid Build Coastguard Worker 1059*cfb92d14SAndroid Build Coastguard Worker /** 1060*cfb92d14SAndroid Build Coastguard Worker * Property value notification command (NCP -> Host) 1061*cfb92d14SAndroid Build Coastguard Worker * 1062*cfb92d14SAndroid Build Coastguard Worker * Encoding: `iD` 1063*cfb92d14SAndroid Build Coastguard Worker * `i` : Property Id 1064*cfb92d14SAndroid Build Coastguard Worker * `D` : Value (encoding depends on the property) 1065*cfb92d14SAndroid Build Coastguard Worker * 1066*cfb92d14SAndroid Build Coastguard Worker * This command can be sent by the NCP in response to a previous command 1067*cfb92d14SAndroid Build Coastguard Worker * from the host, or it can be sent by the NCP in an unsolicited fashion 1068*cfb92d14SAndroid Build Coastguard Worker * to notify the host of various state changes asynchronously. 1069*cfb92d14SAndroid Build Coastguard Worker * 1070*cfb92d14SAndroid Build Coastguard Worker * The payload for this command is the property identifier encoded in the 1071*cfb92d14SAndroid Build Coastguard Worker * packed unsigned integer format, followed by the current value of the 1072*cfb92d14SAndroid Build Coastguard Worker * given property. 1073*cfb92d14SAndroid Build Coastguard Worker * 1074*cfb92d14SAndroid Build Coastguard Worker */ 1075*cfb92d14SAndroid Build Coastguard Worker SPINEL_CMD_PROP_VALUE_IS = 6, 1076*cfb92d14SAndroid Build Coastguard Worker 1077*cfb92d14SAndroid Build Coastguard Worker /** 1078*cfb92d14SAndroid Build Coastguard Worker * Property value insertion notification command (NCP -> Host) 1079*cfb92d14SAndroid Build Coastguard Worker * 1080*cfb92d14SAndroid Build Coastguard Worker * Encoding:`iD` 1081*cfb92d14SAndroid Build Coastguard Worker * `i` : Property Id 1082*cfb92d14SAndroid Build Coastguard Worker * `D` : Value (encoding depends on the property) 1083*cfb92d14SAndroid Build Coastguard Worker * 1084*cfb92d14SAndroid Build Coastguard Worker * This command can be sent by the NCP in response to the 1085*cfb92d14SAndroid Build Coastguard Worker * `CMD_PROP_VALUE_INSERT` command, or it can be sent by the NCP in an 1086*cfb92d14SAndroid Build Coastguard Worker * unsolicited fashion to notify the host of various state changes 1087*cfb92d14SAndroid Build Coastguard Worker * asynchronously. 1088*cfb92d14SAndroid Build Coastguard Worker * 1089*cfb92d14SAndroid Build Coastguard Worker * The payload for this command is the property identifier encoded in the 1090*cfb92d14SAndroid Build Coastguard Worker * packed unsigned integer format, followed by the value that was inserted 1091*cfb92d14SAndroid Build Coastguard Worker * into the given property. 1092*cfb92d14SAndroid Build Coastguard Worker * 1093*cfb92d14SAndroid Build Coastguard Worker * If the type signature of the property specified by property id consists 1094*cfb92d14SAndroid Build Coastguard Worker * of a single structure enclosed by an array (`A(t(...))`), then the 1095*cfb92d14SAndroid Build Coastguard Worker * contents of value MUST contain the contents of the structure (`...`) 1096*cfb92d14SAndroid Build Coastguard Worker * rather than the serialization of the whole item (`t(...)`). Specifically, 1097*cfb92d14SAndroid Build Coastguard Worker * the length of the structure MUST NOT be prepended to `VALUE`. This 1098*cfb92d14SAndroid Build Coastguard Worker * helps to eliminate redundant data. 1099*cfb92d14SAndroid Build Coastguard Worker * 1100*cfb92d14SAndroid Build Coastguard Worker * The resulting order of items in the list is defined by the given 1101*cfb92d14SAndroid Build Coastguard Worker * property. 1102*cfb92d14SAndroid Build Coastguard Worker * 1103*cfb92d14SAndroid Build Coastguard Worker */ 1104*cfb92d14SAndroid Build Coastguard Worker SPINEL_CMD_PROP_VALUE_INSERTED = 7, 1105*cfb92d14SAndroid Build Coastguard Worker 1106*cfb92d14SAndroid Build Coastguard Worker /** 1107*cfb92d14SAndroid Build Coastguard Worker * Property value removal notification command (NCP -> Host) 1108*cfb92d14SAndroid Build Coastguard Worker * 1109*cfb92d14SAndroid Build Coastguard Worker * Encoding: `iD` 1110*cfb92d14SAndroid Build Coastguard Worker * `i` : Property Id 1111*cfb92d14SAndroid Build Coastguard Worker * `D` : Value (encoding depends on the property) 1112*cfb92d14SAndroid Build Coastguard Worker * 1113*cfb92d14SAndroid Build Coastguard Worker * This command can be sent by the NCP in response to the 1114*cfb92d14SAndroid Build Coastguard Worker * `CMD_PROP_VALUE_REMOVE` command, or it can be sent by the NCP in an 1115*cfb92d14SAndroid Build Coastguard Worker * unsolicited fashion to notify the host of various state changes 1116*cfb92d14SAndroid Build Coastguard Worker * asynchronously. 1117*cfb92d14SAndroid Build Coastguard Worker * 1118*cfb92d14SAndroid Build Coastguard Worker * Note that this command operates by value, not by index! 1119*cfb92d14SAndroid Build Coastguard Worker * 1120*cfb92d14SAndroid Build Coastguard Worker * The payload for this command is the property identifier encoded in the 1121*cfb92d14SAndroid Build Coastguard Worker * packed unsigned integer format described in followed by the value that 1122*cfb92d14SAndroid Build Coastguard Worker * was removed from the given property. 1123*cfb92d14SAndroid Build Coastguard Worker * 1124*cfb92d14SAndroid Build Coastguard Worker * If the type signature of the property specified by property id consists 1125*cfb92d14SAndroid Build Coastguard Worker * of a single structure enclosed by an array (`A(t(...))`), then the 1126*cfb92d14SAndroid Build Coastguard Worker * contents of value MUST contain the contents of the structure (`...`) 1127*cfb92d14SAndroid Build Coastguard Worker * rather than the serialization of the whole item (`t(...)`). Specifically, 1128*cfb92d14SAndroid Build Coastguard Worker * the length of the structure MUST NOT be prepended to `VALUE`. This 1129*cfb92d14SAndroid Build Coastguard Worker * helps to eliminate redundant data. 1130*cfb92d14SAndroid Build Coastguard Worker * 1131*cfb92d14SAndroid Build Coastguard Worker * The resulting order of items in the list is defined by the given 1132*cfb92d14SAndroid Build Coastguard Worker * property. 1133*cfb92d14SAndroid Build Coastguard Worker * 1134*cfb92d14SAndroid Build Coastguard Worker */ 1135*cfb92d14SAndroid Build Coastguard Worker SPINEL_CMD_PROP_VALUE_REMOVED = 8, 1136*cfb92d14SAndroid Build Coastguard Worker 1137*cfb92d14SAndroid Build Coastguard Worker SPINEL_CMD_NET_SAVE = 9, // Deprecated 1138*cfb92d14SAndroid Build Coastguard Worker 1139*cfb92d14SAndroid Build Coastguard Worker /** 1140*cfb92d14SAndroid Build Coastguard Worker * Clear saved network settings command (Host -> NCP) 1141*cfb92d14SAndroid Build Coastguard Worker * 1142*cfb92d14SAndroid Build Coastguard Worker * Encoding: Empty 1143*cfb92d14SAndroid Build Coastguard Worker * 1144*cfb92d14SAndroid Build Coastguard Worker * Erases all network credentials and state from non-volatile memory. 1145*cfb92d14SAndroid Build Coastguard Worker * 1146*cfb92d14SAndroid Build Coastguard Worker * This operation affects non-volatile memory only. The current network 1147*cfb92d14SAndroid Build Coastguard Worker * information stored in volatile memory is unaffected. 1148*cfb92d14SAndroid Build Coastguard Worker * 1149*cfb92d14SAndroid Build Coastguard Worker * The response to this command is always a `CMD_PROP_VALUE_IS` for 1150*cfb92d14SAndroid Build Coastguard Worker * `PROP_LAST_STATUS`, indicating the result of the operation. 1151*cfb92d14SAndroid Build Coastguard Worker * 1152*cfb92d14SAndroid Build Coastguard Worker */ 1153*cfb92d14SAndroid Build Coastguard Worker SPINEL_CMD_NET_CLEAR = 10, 1154*cfb92d14SAndroid Build Coastguard Worker 1155*cfb92d14SAndroid Build Coastguard Worker SPINEL_CMD_NET_RECALL = 11, // Deprecated 1156*cfb92d14SAndroid Build Coastguard Worker 1157*cfb92d14SAndroid Build Coastguard Worker /** 1158*cfb92d14SAndroid Build Coastguard Worker * Host buffer offload is an optional NCP capability that, when 1159*cfb92d14SAndroid Build Coastguard Worker * present, allows the NCP to store data buffers on the host processor 1160*cfb92d14SAndroid Build Coastguard Worker * that can be recalled at a later time. 1161*cfb92d14SAndroid Build Coastguard Worker * 1162*cfb92d14SAndroid Build Coastguard Worker * The presence of this feature can be detected by the host by 1163*cfb92d14SAndroid Build Coastguard Worker * checking for the presence of the `CAP_HBO` 1164*cfb92d14SAndroid Build Coastguard Worker * capability in `PROP_CAPS`. 1165*cfb92d14SAndroid Build Coastguard Worker * 1166*cfb92d14SAndroid Build Coastguard Worker * This feature is not currently supported on OpenThread. 1167*cfb92d14SAndroid Build Coastguard Worker * 1168*cfb92d14SAndroid Build Coastguard Worker */ 1169*cfb92d14SAndroid Build Coastguard Worker 1170*cfb92d14SAndroid Build Coastguard Worker SPINEL_CMD_HBO_OFFLOAD = 12, 1171*cfb92d14SAndroid Build Coastguard Worker SPINEL_CMD_HBO_RECLAIM = 13, 1172*cfb92d14SAndroid Build Coastguard Worker SPINEL_CMD_HBO_DROP = 14, 1173*cfb92d14SAndroid Build Coastguard Worker SPINEL_CMD_HBO_OFFLOADED = 15, 1174*cfb92d14SAndroid Build Coastguard Worker SPINEL_CMD_HBO_RECLAIMED = 16, 1175*cfb92d14SAndroid Build Coastguard Worker SPINEL_CMD_HBO_DROPPED = 17, 1176*cfb92d14SAndroid Build Coastguard Worker 1177*cfb92d14SAndroid Build Coastguard Worker /** 1178*cfb92d14SAndroid Build Coastguard Worker * Peek command (Host -> NCP) 1179*cfb92d14SAndroid Build Coastguard Worker * 1180*cfb92d14SAndroid Build Coastguard Worker * Encoding: `LU` 1181*cfb92d14SAndroid Build Coastguard Worker * `L` : The address to peek 1182*cfb92d14SAndroid Build Coastguard Worker * `U` : Number of bytes to read 1183*cfb92d14SAndroid Build Coastguard Worker * 1184*cfb92d14SAndroid Build Coastguard Worker * This command allows the NCP to fetch values from the RAM of the NCP 1185*cfb92d14SAndroid Build Coastguard Worker * for debugging purposes. Upon success, `CMD_PEEK_RET` is sent from the 1186*cfb92d14SAndroid Build Coastguard Worker * NCP to the host. Upon failure, `PROP_LAST_STATUS` is emitted with 1187*cfb92d14SAndroid Build Coastguard Worker * the appropriate error indication. 1188*cfb92d14SAndroid Build Coastguard Worker * 1189*cfb92d14SAndroid Build Coastguard Worker * The NCP MAY prevent certain regions of memory from being accessed. 1190*cfb92d14SAndroid Build Coastguard Worker * 1191*cfb92d14SAndroid Build Coastguard Worker * This command requires the capability `CAP_PEEK_POKE` to be present. 1192*cfb92d14SAndroid Build Coastguard Worker * 1193*cfb92d14SAndroid Build Coastguard Worker */ 1194*cfb92d14SAndroid Build Coastguard Worker SPINEL_CMD_PEEK = 18, 1195*cfb92d14SAndroid Build Coastguard Worker 1196*cfb92d14SAndroid Build Coastguard Worker /** 1197*cfb92d14SAndroid Build Coastguard Worker * Peek return command (NCP -> Host) 1198*cfb92d14SAndroid Build Coastguard Worker * 1199*cfb92d14SAndroid Build Coastguard Worker * Encoding: `LUD` 1200*cfb92d14SAndroid Build Coastguard Worker * `L` : The address peeked 1201*cfb92d14SAndroid Build Coastguard Worker * `U` : Number of bytes read 1202*cfb92d14SAndroid Build Coastguard Worker * `D` : Memory content 1203*cfb92d14SAndroid Build Coastguard Worker * 1204*cfb92d14SAndroid Build Coastguard Worker * This command contains the contents of memory that was requested by 1205*cfb92d14SAndroid Build Coastguard Worker * a previous call to `CMD_PEEK`. 1206*cfb92d14SAndroid Build Coastguard Worker * 1207*cfb92d14SAndroid Build Coastguard Worker * This command requires the capability `CAP_PEEK_POKE` to be present. 1208*cfb92d14SAndroid Build Coastguard Worker * 1209*cfb92d14SAndroid Build Coastguard Worker */ 1210*cfb92d14SAndroid Build Coastguard Worker SPINEL_CMD_PEEK_RET = 19, 1211*cfb92d14SAndroid Build Coastguard Worker 1212*cfb92d14SAndroid Build Coastguard Worker /** 1213*cfb92d14SAndroid Build Coastguard Worker * Poke command (Host -> NCP) 1214*cfb92d14SAndroid Build Coastguard Worker * 1215*cfb92d14SAndroid Build Coastguard Worker * Encoding: `LUD` 1216*cfb92d14SAndroid Build Coastguard Worker * `L` : The address to be poked 1217*cfb92d14SAndroid Build Coastguard Worker * `U` : Number of bytes to write 1218*cfb92d14SAndroid Build Coastguard Worker * `D` : Content to write 1219*cfb92d14SAndroid Build Coastguard Worker * 1220*cfb92d14SAndroid Build Coastguard Worker * This command writes the bytes to the specified memory address 1221*cfb92d14SAndroid Build Coastguard Worker * for debugging purposes. 1222*cfb92d14SAndroid Build Coastguard Worker * 1223*cfb92d14SAndroid Build Coastguard Worker * This command requires the capability `CAP_PEEK_POKE` to be present. 1224*cfb92d14SAndroid Build Coastguard Worker * 1225*cfb92d14SAndroid Build Coastguard Worker */ 1226*cfb92d14SAndroid Build Coastguard Worker SPINEL_CMD_POKE = 20, 1227*cfb92d14SAndroid Build Coastguard Worker 1228*cfb92d14SAndroid Build Coastguard Worker SPINEL_CMD_PROP_VALUE_MULTI_GET = 21, 1229*cfb92d14SAndroid Build Coastguard Worker SPINEL_CMD_PROP_VALUE_MULTI_SET = 22, 1230*cfb92d14SAndroid Build Coastguard Worker SPINEL_CMD_PROP_VALUES_ARE = 23, 1231*cfb92d14SAndroid Build Coastguard Worker 1232*cfb92d14SAndroid Build Coastguard Worker SPINEL_CMD_NEST__BEGIN = 15296, 1233*cfb92d14SAndroid Build Coastguard Worker SPINEL_CMD_NEST__END = 15360, 1234*cfb92d14SAndroid Build Coastguard Worker 1235*cfb92d14SAndroid Build Coastguard Worker SPINEL_CMD_VENDOR__BEGIN = 15360, 1236*cfb92d14SAndroid Build Coastguard Worker SPINEL_CMD_VENDOR__END = 16384, 1237*cfb92d14SAndroid Build Coastguard Worker 1238*cfb92d14SAndroid Build Coastguard Worker SPINEL_CMD_EXPERIMENTAL__BEGIN = 2000000, 1239*cfb92d14SAndroid Build Coastguard Worker SPINEL_CMD_EXPERIMENTAL__END = 2097152, 1240*cfb92d14SAndroid Build Coastguard Worker }; 1241*cfb92d14SAndroid Build Coastguard Worker 1242*cfb92d14SAndroid Build Coastguard Worker typedef uint32_t spinel_command_t; 1243*cfb92d14SAndroid Build Coastguard Worker 1244*cfb92d14SAndroid Build Coastguard Worker enum 1245*cfb92d14SAndroid Build Coastguard Worker { 1246*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_LOCK = 1, 1247*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_NET_SAVE = 2, 1248*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_HBO = 3, 1249*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_POWER_SAVE = 4, 1250*cfb92d14SAndroid Build Coastguard Worker 1251*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_COUNTERS = 5, 1252*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_JAM_DETECT = 6, 1253*cfb92d14SAndroid Build Coastguard Worker 1254*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_PEEK_POKE = 7, 1255*cfb92d14SAndroid Build Coastguard Worker 1256*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_WRITABLE_RAW_STREAM = 8, 1257*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_GPIO = 9, 1258*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_TRNG = 10, 1259*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_CMD_MULTI = 11, 1260*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_UNSOL_UPDATE_FILTER = 12, 1261*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_MCU_POWER_STATE = 13, 1262*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_PCAP = 14, 1263*cfb92d14SAndroid Build Coastguard Worker 1264*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_802_15_4__BEGIN = 16, 1265*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_802_15_4_2003 = (SPINEL_CAP_802_15_4__BEGIN + 0), 1266*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_802_15_4_2006 = (SPINEL_CAP_802_15_4__BEGIN + 1), 1267*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_802_15_4_2011 = (SPINEL_CAP_802_15_4__BEGIN + 2), 1268*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_802_15_4_PIB = (SPINEL_CAP_802_15_4__BEGIN + 5), 1269*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_802_15_4_2450MHZ_OQPSK = (SPINEL_CAP_802_15_4__BEGIN + 8), 1270*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_802_15_4_915MHZ_OQPSK = (SPINEL_CAP_802_15_4__BEGIN + 9), 1271*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_802_15_4_868MHZ_OQPSK = (SPINEL_CAP_802_15_4__BEGIN + 10), 1272*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_802_15_4_915MHZ_BPSK = (SPINEL_CAP_802_15_4__BEGIN + 11), 1273*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_802_15_4_868MHZ_BPSK = (SPINEL_CAP_802_15_4__BEGIN + 12), 1274*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_802_15_4_915MHZ_ASK = (SPINEL_CAP_802_15_4__BEGIN + 13), 1275*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_802_15_4_868MHZ_ASK = (SPINEL_CAP_802_15_4__BEGIN + 14), 1276*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_802_15_4__END = 32, 1277*cfb92d14SAndroid Build Coastguard Worker 1278*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_CONFIG__BEGIN = 32, 1279*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_CONFIG_FTD = (SPINEL_CAP_CONFIG__BEGIN + 0), 1280*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_CONFIG_MTD = (SPINEL_CAP_CONFIG__BEGIN + 1), 1281*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_CONFIG_RADIO = (SPINEL_CAP_CONFIG__BEGIN + 2), 1282*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_CONFIG__END = 40, 1283*cfb92d14SAndroid Build Coastguard Worker 1284*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_ROLE__BEGIN = 48, 1285*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_ROLE_ROUTER = (SPINEL_CAP_ROLE__BEGIN + 0), 1286*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_ROLE_SLEEPY = (SPINEL_CAP_ROLE__BEGIN + 1), 1287*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_ROLE__END = 52, 1288*cfb92d14SAndroid Build Coastguard Worker 1289*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_NET__BEGIN = 52, 1290*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_NET_THREAD_1_0 = (SPINEL_CAP_NET__BEGIN + 0), 1291*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_NET_THREAD_1_1 = (SPINEL_CAP_NET__BEGIN + 1), 1292*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_NET_THREAD_1_2 = (SPINEL_CAP_NET__BEGIN + 2), 1293*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_NET__END = 64, 1294*cfb92d14SAndroid Build Coastguard Worker 1295*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_RCP__BEGIN = 64, 1296*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_RCP_API_VERSION = (SPINEL_CAP_RCP__BEGIN + 0), 1297*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_RCP_MIN_HOST_API_VERSION = (SPINEL_CAP_RCP__BEGIN + 1), 1298*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_RCP_RESET_TO_BOOTLOADER = (SPINEL_CAP_RCP__BEGIN + 2), 1299*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_RCP_LOG_CRASH_DUMP = (SPINEL_CAP_RCP__BEGIN + 3), 1300*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_RCP__END = 80, 1301*cfb92d14SAndroid Build Coastguard Worker 1302*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_OPENTHREAD__BEGIN = 512, 1303*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_MAC_ALLOWLIST = (SPINEL_CAP_OPENTHREAD__BEGIN + 0), 1304*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_MAC_RAW = (SPINEL_CAP_OPENTHREAD__BEGIN + 1), 1305*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_OOB_STEERING_DATA = (SPINEL_CAP_OPENTHREAD__BEGIN + 2), 1306*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_CHANNEL_MONITOR = (SPINEL_CAP_OPENTHREAD__BEGIN + 3), 1307*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_ERROR_RATE_TRACKING = (SPINEL_CAP_OPENTHREAD__BEGIN + 4), 1308*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_CHANNEL_MANAGER = (SPINEL_CAP_OPENTHREAD__BEGIN + 5), 1309*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_OPENTHREAD_LOG_METADATA = (SPINEL_CAP_OPENTHREAD__BEGIN + 6), 1310*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_TIME_SYNC = (SPINEL_CAP_OPENTHREAD__BEGIN + 7), 1311*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_CHILD_SUPERVISION = (SPINEL_CAP_OPENTHREAD__BEGIN + 8), 1312*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_POSIX = (SPINEL_CAP_OPENTHREAD__BEGIN + 9), 1313*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_SLAAC = (SPINEL_CAP_OPENTHREAD__BEGIN + 10), 1314*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_RADIO_COEX = (SPINEL_CAP_OPENTHREAD__BEGIN + 11), 1315*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_MAC_RETRY_HISTOGRAM = (SPINEL_CAP_OPENTHREAD__BEGIN + 12), 1316*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_MULTI_RADIO = (SPINEL_CAP_OPENTHREAD__BEGIN + 13), 1317*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_SRP_CLIENT = (SPINEL_CAP_OPENTHREAD__BEGIN + 14), 1318*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_DUA = (SPINEL_CAP_OPENTHREAD__BEGIN + 15), 1319*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_REFERENCE_DEVICE = (SPINEL_CAP_OPENTHREAD__BEGIN + 16), 1320*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_OPENTHREAD__END = 640, 1321*cfb92d14SAndroid Build Coastguard Worker 1322*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_THREAD__BEGIN = 1024, 1323*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_THREAD_COMMISSIONER = (SPINEL_CAP_THREAD__BEGIN + 0), 1324*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_THREAD_TMF_PROXY = (SPINEL_CAP_THREAD__BEGIN + 1), 1325*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_THREAD_UDP_FORWARD = (SPINEL_CAP_THREAD__BEGIN + 2), 1326*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_THREAD_JOINER = (SPINEL_CAP_THREAD__BEGIN + 3), 1327*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_THREAD_BORDER_ROUTER = (SPINEL_CAP_THREAD__BEGIN + 4), 1328*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_THREAD_SERVICE = (SPINEL_CAP_THREAD__BEGIN + 5), 1329*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_THREAD_CSL_RECEIVER = (SPINEL_CAP_THREAD__BEGIN + 6), 1330*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_THREAD_LINK_METRICS = (SPINEL_CAP_THREAD__BEGIN + 7), 1331*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_THREAD_BACKBONE_ROUTER = (SPINEL_CAP_THREAD__BEGIN + 8), 1332*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_THREAD__END = 1152, 1333*cfb92d14SAndroid Build Coastguard Worker 1334*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_NEST__BEGIN = 15296, 1335*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_NEST_LEGACY_INTERFACE = (SPINEL_CAP_NEST__BEGIN + 0), ///< deprecated 1336*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_NEST_LEGACY_NET_WAKE = (SPINEL_CAP_NEST__BEGIN + 1), ///< deprecated 1337*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_NEST_TRANSMIT_HOOK = (SPINEL_CAP_NEST__BEGIN + 2), 1338*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_NEST__END = 15360, 1339*cfb92d14SAndroid Build Coastguard Worker 1340*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_VENDOR__BEGIN = 15360, 1341*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_VENDOR__END = 16384, 1342*cfb92d14SAndroid Build Coastguard Worker 1343*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_EXPERIMENTAL__BEGIN = 2000000, 1344*cfb92d14SAndroid Build Coastguard Worker SPINEL_CAP_EXPERIMENTAL__END = 2097152, 1345*cfb92d14SAndroid Build Coastguard Worker }; 1346*cfb92d14SAndroid Build Coastguard Worker 1347*cfb92d14SAndroid Build Coastguard Worker typedef uint32_t spinel_capability_t; 1348*cfb92d14SAndroid Build Coastguard Worker 1349*cfb92d14SAndroid Build Coastguard Worker /** 1350*cfb92d14SAndroid Build Coastguard Worker * Property Keys 1351*cfb92d14SAndroid Build Coastguard Worker * 1352*cfb92d14SAndroid Build Coastguard Worker * The properties are broken up into several sections, each with a 1353*cfb92d14SAndroid Build Coastguard Worker * reserved ranges of property identifiers: 1354*cfb92d14SAndroid Build Coastguard Worker * 1355*cfb92d14SAndroid Build Coastguard Worker * Name | Range (Inclusive) | Description 1356*cfb92d14SAndroid Build Coastguard Worker * -------------|--------------------------------|------------------------ 1357*cfb92d14SAndroid Build Coastguard Worker * Core | 0x000 - 0x01F, 0x1000 - 0x11FF | Spinel core 1358*cfb92d14SAndroid Build Coastguard Worker * PHY | 0x020 - 0x02F, 0x1200 - 0x12FF | Radio PHY layer 1359*cfb92d14SAndroid Build Coastguard Worker * MAC | 0x030 - 0x03F, 0x1300 - 0x13FF | MAC layer 1360*cfb92d14SAndroid Build Coastguard Worker * NET | 0x040 - 0x04F, 0x1400 - 0x14FF | Network 1361*cfb92d14SAndroid Build Coastguard Worker * Thread | 0x050 - 0x05F, 0x1500 - 0x15FF | Thread 1362*cfb92d14SAndroid Build Coastguard Worker * IPv6 | 0x060 - 0x06F, 0x1600 - 0x16FF | IPv6 1363*cfb92d14SAndroid Build Coastguard Worker * Stream | 0x070 - 0x07F, 0x1700 - 0x17FF | Stream 1364*cfb92d14SAndroid Build Coastguard Worker * MeshCop | 0x080 - 0x08F, 0x1800 - 0x18FF | Thread Mesh Commissioning 1365*cfb92d14SAndroid Build Coastguard Worker * OpenThread | 0x1900 - 0x19FF | OpenThread specific 1366*cfb92d14SAndroid Build Coastguard Worker * Server | 0x0A0 - 0x0AF | ALOC Service Server 1367*cfb92d14SAndroid Build Coastguard Worker * RCP | 0x0B0 - 0x0FF | RCP specific 1368*cfb92d14SAndroid Build Coastguard Worker * Interface | 0x100 - 0x1FF | Interface (e.g., UART) 1369*cfb92d14SAndroid Build Coastguard Worker * PIB | 0x400 - 0x4FF | 802.15.4 PIB 1370*cfb92d14SAndroid Build Coastguard Worker * Counter | 0x500 - 0x7FF | Counters (MAC, IP, etc). 1371*cfb92d14SAndroid Build Coastguard Worker * RCP | 0x800 - 0x8FF | RCP specific property (extended) 1372*cfb92d14SAndroid Build Coastguard Worker * Nest | 0x3BC0 - 0x3BFF | Nest (legacy) 1373*cfb92d14SAndroid Build Coastguard Worker * Vendor | 0x3C00 - 0x3FFF | Vendor specific 1374*cfb92d14SAndroid Build Coastguard Worker * Debug | 0x4000 - 0x43FF | Debug related 1375*cfb92d14SAndroid Build Coastguard Worker * Experimental | 2,000,000 - 2,097,151 | Experimental use only 1376*cfb92d14SAndroid Build Coastguard Worker * 1377*cfb92d14SAndroid Build Coastguard Worker */ 1378*cfb92d14SAndroid Build Coastguard Worker enum 1379*cfb92d14SAndroid Build Coastguard Worker { 1380*cfb92d14SAndroid Build Coastguard Worker /// Last Operation Status 1381*cfb92d14SAndroid Build Coastguard Worker /** Format: `i` - Read-only 1382*cfb92d14SAndroid Build Coastguard Worker * 1383*cfb92d14SAndroid Build Coastguard Worker * Describes the status of the last operation. Encoded as a packed 1384*cfb92d14SAndroid Build Coastguard Worker * unsigned integer (see `SPINEL_STATUS_*` for list of values). 1385*cfb92d14SAndroid Build Coastguard Worker * 1386*cfb92d14SAndroid Build Coastguard Worker * This property is emitted often to indicate the result status of 1387*cfb92d14SAndroid Build Coastguard Worker * pretty much any Host-to-NCP operation. 1388*cfb92d14SAndroid Build Coastguard Worker * 1389*cfb92d14SAndroid Build Coastguard Worker * It is emitted automatically at NCP startup with a value indicating 1390*cfb92d14SAndroid Build Coastguard Worker * the reset reason. It is also emitted asynchronously on an error ( 1391*cfb92d14SAndroid Build Coastguard Worker * e.g., NCP running out of buffer). 1392*cfb92d14SAndroid Build Coastguard Worker * 1393*cfb92d14SAndroid Build Coastguard Worker */ 1394*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_LAST_STATUS = 0, 1395*cfb92d14SAndroid Build Coastguard Worker 1396*cfb92d14SAndroid Build Coastguard Worker /// Protocol Version 1397*cfb92d14SAndroid Build Coastguard Worker /** Format: `ii` - Read-only 1398*cfb92d14SAndroid Build Coastguard Worker * 1399*cfb92d14SAndroid Build Coastguard Worker * Describes the protocol version information. This property contains 1400*cfb92d14SAndroid Build Coastguard Worker * two fields, each encoded as a packed unsigned integer: 1401*cfb92d14SAndroid Build Coastguard Worker * `i`: Major Version Number 1402*cfb92d14SAndroid Build Coastguard Worker * `i`: Minor Version Number 1403*cfb92d14SAndroid Build Coastguard Worker * 1404*cfb92d14SAndroid Build Coastguard Worker * The version number is defined by `SPINEL_PROTOCOL_VERSION_THREAD_MAJOR` 1405*cfb92d14SAndroid Build Coastguard Worker * and `SPINEL_PROTOCOL_VERSION_THREAD_MINOR`. 1406*cfb92d14SAndroid Build Coastguard Worker * 1407*cfb92d14SAndroid Build Coastguard Worker * This specification describes major version 4, minor version 3. 1408*cfb92d14SAndroid Build Coastguard Worker * 1409*cfb92d14SAndroid Build Coastguard Worker */ 1410*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_PROTOCOL_VERSION = 1, 1411*cfb92d14SAndroid Build Coastguard Worker 1412*cfb92d14SAndroid Build Coastguard Worker /// NCP Version 1413*cfb92d14SAndroid Build Coastguard Worker /** Format: `U` - Read-only 1414*cfb92d14SAndroid Build Coastguard Worker * 1415*cfb92d14SAndroid Build Coastguard Worker * Contains a string which describes the firmware currently running on 1416*cfb92d14SAndroid Build Coastguard Worker * the NCP. Encoded as a zero-terminated UTF-8 string. 1417*cfb92d14SAndroid Build Coastguard Worker * 1418*cfb92d14SAndroid Build Coastguard Worker */ 1419*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_NCP_VERSION = 2, 1420*cfb92d14SAndroid Build Coastguard Worker 1421*cfb92d14SAndroid Build Coastguard Worker /// NCP Network Protocol Type 1422*cfb92d14SAndroid Build Coastguard Worker /** Format: 'i' - Read-only 1423*cfb92d14SAndroid Build Coastguard Worker * 1424*cfb92d14SAndroid Build Coastguard Worker * This value identifies what the network protocol for this NCP. 1425*cfb92d14SAndroid Build Coastguard Worker * The valid protocol type values are defined by enumeration 1426*cfb92d14SAndroid Build Coastguard Worker * `SPINEL_PROTOCOL_TYPE_*`: 1427*cfb92d14SAndroid Build Coastguard Worker * 1428*cfb92d14SAndroid Build Coastguard Worker * `SPINEL_PROTOCOL_TYPE_BOOTLOADER` = 0 1429*cfb92d14SAndroid Build Coastguard Worker * `SPINEL_PROTOCOL_TYPE_ZIGBEE_IP` = 2, 1430*cfb92d14SAndroid Build Coastguard Worker * `SPINEL_PROTOCOL_TYPE_THREAD` = 3, 1431*cfb92d14SAndroid Build Coastguard Worker * 1432*cfb92d14SAndroid Build Coastguard Worker * OpenThread NCP supports only `SPINEL_PROTOCOL_TYPE_THREAD` 1433*cfb92d14SAndroid Build Coastguard Worker * 1434*cfb92d14SAndroid Build Coastguard Worker */ 1435*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_INTERFACE_TYPE = 3, 1436*cfb92d14SAndroid Build Coastguard Worker 1437*cfb92d14SAndroid Build Coastguard Worker /// NCP Vendor ID 1438*cfb92d14SAndroid Build Coastguard Worker /** Format: 'i` - Read-only 1439*cfb92d14SAndroid Build Coastguard Worker * 1440*cfb92d14SAndroid Build Coastguard Worker * Vendor ID. Zero for unknown. 1441*cfb92d14SAndroid Build Coastguard Worker * 1442*cfb92d14SAndroid Build Coastguard Worker */ 1443*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_VENDOR_ID = 4, 1444*cfb92d14SAndroid Build Coastguard Worker 1445*cfb92d14SAndroid Build Coastguard Worker /// NCP Capability List 1446*cfb92d14SAndroid Build Coastguard Worker /** Format: 'A(i)` - Read-only 1447*cfb92d14SAndroid Build Coastguard Worker * 1448*cfb92d14SAndroid Build Coastguard Worker * Describes the supported capabilities of this NCP. Encoded as a list of 1449*cfb92d14SAndroid Build Coastguard Worker * packed unsigned integers. 1450*cfb92d14SAndroid Build Coastguard Worker * 1451*cfb92d14SAndroid Build Coastguard Worker * The capability values are specified by SPINEL_CAP_* enumeration. 1452*cfb92d14SAndroid Build Coastguard Worker * 1453*cfb92d14SAndroid Build Coastguard Worker */ 1454*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CAPS = 5, 1455*cfb92d14SAndroid Build Coastguard Worker 1456*cfb92d14SAndroid Build Coastguard Worker /// NCP Interface Count 1457*cfb92d14SAndroid Build Coastguard Worker /** Format: 'C` - Read-only 1458*cfb92d14SAndroid Build Coastguard Worker * 1459*cfb92d14SAndroid Build Coastguard Worker * Provides number of interfaces. 1460*cfb92d14SAndroid Build Coastguard Worker * 1461*cfb92d14SAndroid Build Coastguard Worker */ 1462*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_INTERFACE_COUNT = 6, 1463*cfb92d14SAndroid Build Coastguard Worker 1464*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_POWER_STATE = 7, ///< PowerState [C] (deprecated, use `MCU_POWER_STATE` instead). 1465*cfb92d14SAndroid Build Coastguard Worker 1466*cfb92d14SAndroid Build Coastguard Worker /// NCP Hardware Address 1467*cfb92d14SAndroid Build Coastguard Worker /** Format: 'E` - Read-only 1468*cfb92d14SAndroid Build Coastguard Worker * 1469*cfb92d14SAndroid Build Coastguard Worker * The static EUI64 address of the device, used as a serial number. 1470*cfb92d14SAndroid Build Coastguard Worker * 1471*cfb92d14SAndroid Build Coastguard Worker */ 1472*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_HWADDR = 8, 1473*cfb92d14SAndroid Build Coastguard Worker 1474*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_LOCK = 9, ///< PropLock [b] (not supported) 1475*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_HBO_MEM_MAX = 10, ///< Max offload mem [S] (not supported) 1476*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_HBO_BLOCK_MAX = 11, ///< Max offload block [S] (not supported) 1477*cfb92d14SAndroid Build Coastguard Worker 1478*cfb92d14SAndroid Build Coastguard Worker /// Host Power State 1479*cfb92d14SAndroid Build Coastguard Worker /** Format: 'C` 1480*cfb92d14SAndroid Build Coastguard Worker * 1481*cfb92d14SAndroid Build Coastguard Worker * Describes the current power state of the host. This property is used 1482*cfb92d14SAndroid Build Coastguard Worker * by the host to inform the NCP when it has changed power states. The 1483*cfb92d14SAndroid Build Coastguard Worker * NCP can then use this state to determine which properties need 1484*cfb92d14SAndroid Build Coastguard Worker * asynchronous updates. Enumeration `spinel_host_power_state_t` defines 1485*cfb92d14SAndroid Build Coastguard Worker * the valid values (`SPINEL_HOST_POWER_STATE_*`): 1486*cfb92d14SAndroid Build Coastguard Worker * 1487*cfb92d14SAndroid Build Coastguard Worker * `HOST_POWER_STATE_OFFLINE`: Host is physically powered off and 1488*cfb92d14SAndroid Build Coastguard Worker * cannot be woken by the NCP. All asynchronous commands are 1489*cfb92d14SAndroid Build Coastguard Worker * squelched. 1490*cfb92d14SAndroid Build Coastguard Worker * 1491*cfb92d14SAndroid Build Coastguard Worker * `HOST_POWER_STATE_DEEP_SLEEP`: The host is in a low power state 1492*cfb92d14SAndroid Build Coastguard Worker * where it can be woken by the NCP but will potentially require more 1493*cfb92d14SAndroid Build Coastguard Worker * than two seconds to become fully responsive. The NCP MUST 1494*cfb92d14SAndroid Build Coastguard Worker * avoid sending unnecessary property updates, such as child table 1495*cfb92d14SAndroid Build Coastguard Worker * updates or non-critical messages on the debug stream. If the NCP 1496*cfb92d14SAndroid Build Coastguard Worker * needs to wake the host for traffic, the NCP MUST first take 1497*cfb92d14SAndroid Build Coastguard Worker * action to wake the host. Once the NCP signals to the host that it 1498*cfb92d14SAndroid Build Coastguard Worker * should wake up, the NCP MUST wait for some activity from the 1499*cfb92d14SAndroid Build Coastguard Worker * host (indicating that it is fully awake) before sending frames. 1500*cfb92d14SAndroid Build Coastguard Worker * 1501*cfb92d14SAndroid Build Coastguard Worker * `HOST_POWER_STATE_RESERVED`: This value MUST NOT be set by the host. If 1502*cfb92d14SAndroid Build Coastguard Worker * received by the NCP, the NCP SHOULD consider this as a synonym 1503*cfb92d14SAndroid Build Coastguard Worker * of `HOST_POWER_STATE_DEEP_SLEEP`. 1504*cfb92d14SAndroid Build Coastguard Worker * 1505*cfb92d14SAndroid Build Coastguard Worker * `HOST_POWER_STATE_LOW_POWER`: The host is in a low power state 1506*cfb92d14SAndroid Build Coastguard Worker * where it can be immediately woken by the NCP. The NCP SHOULD 1507*cfb92d14SAndroid Build Coastguard Worker * avoid sending unnecessary property updates, such as child table 1508*cfb92d14SAndroid Build Coastguard Worker * updates or non-critical messages on the debug stream. 1509*cfb92d14SAndroid Build Coastguard Worker * 1510*cfb92d14SAndroid Build Coastguard Worker * `HOST_POWER_STATE_ONLINE`: The host is awake and responsive. No 1511*cfb92d14SAndroid Build Coastguard Worker * special filtering is performed by the NCP on asynchronous updates. 1512*cfb92d14SAndroid Build Coastguard Worker * 1513*cfb92d14SAndroid Build Coastguard Worker * All other values are RESERVED. They MUST NOT be set by the 1514*cfb92d14SAndroid Build Coastguard Worker * host. If received by the NCP, the NCP SHOULD consider the value as 1515*cfb92d14SAndroid Build Coastguard Worker * a synonym of `HOST_POWER_STATE_LOW_POWER`. 1516*cfb92d14SAndroid Build Coastguard Worker * 1517*cfb92d14SAndroid Build Coastguard Worker * After setting this power state, any further commands from the host to 1518*cfb92d14SAndroid Build Coastguard Worker * the NCP will cause `HOST_POWER_STATE` to automatically revert to 1519*cfb92d14SAndroid Build Coastguard Worker * `HOST_POWER_STATE_ONLINE`. 1520*cfb92d14SAndroid Build Coastguard Worker * 1521*cfb92d14SAndroid Build Coastguard Worker * When the host is entering a low-power state, it should wait for the 1522*cfb92d14SAndroid Build Coastguard Worker * response from the NCP acknowledging the command (with `CMD_VALUE_IS`). 1523*cfb92d14SAndroid Build Coastguard Worker * Once that acknowledgment is received the host may enter the low-power 1524*cfb92d14SAndroid Build Coastguard Worker * state. 1525*cfb92d14SAndroid Build Coastguard Worker * 1526*cfb92d14SAndroid Build Coastguard Worker * If the NCP has the `CAP_UNSOL_UPDATE_FILTER` capability, any unsolicited 1527*cfb92d14SAndroid Build Coastguard Worker * property updates masked by `PROP_UNSOL_UPDATE_FILTER` should be honored 1528*cfb92d14SAndroid Build Coastguard Worker * while the host indicates it is in a low-power state. After resuming to the 1529*cfb92d14SAndroid Build Coastguard Worker * `HOST_POWER_STATE_ONLINE` state, the value of `PROP_UNSOL_UPDATE_FILTER` 1530*cfb92d14SAndroid Build Coastguard Worker * MUST be unchanged from the value assigned prior to the host indicating 1531*cfb92d14SAndroid Build Coastguard Worker * it was entering a low-power state. 1532*cfb92d14SAndroid Build Coastguard Worker * 1533*cfb92d14SAndroid Build Coastguard Worker */ 1534*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_HOST_POWER_STATE = 12, 1535*cfb92d14SAndroid Build Coastguard Worker 1536*cfb92d14SAndroid Build Coastguard Worker /// NCP's MCU Power State 1537*cfb92d14SAndroid Build Coastguard Worker /** Format: 'C` 1538*cfb92d14SAndroid Build Coastguard Worker * Required capability: CAP_MCU_POWER_SAVE 1539*cfb92d14SAndroid Build Coastguard Worker * 1540*cfb92d14SAndroid Build Coastguard Worker * This property specifies the desired power state of NCP's micro-controller 1541*cfb92d14SAndroid Build Coastguard Worker * (MCU) when the underlying platform's operating system enters idle mode (i.e., 1542*cfb92d14SAndroid Build Coastguard Worker * all active tasks/events are processed and the MCU can potentially enter a 1543*cfb92d14SAndroid Build Coastguard Worker * energy-saving power state). 1544*cfb92d14SAndroid Build Coastguard Worker * 1545*cfb92d14SAndroid Build Coastguard Worker * The power state primarily determines how the host should interact with the NCP 1546*cfb92d14SAndroid Build Coastguard Worker * and whether the host needs an external trigger (a "poke") to NCP before it can 1547*cfb92d14SAndroid Build Coastguard Worker * communicate with the NCP or not. After a reset, the MCU power state MUST be 1548*cfb92d14SAndroid Build Coastguard Worker * SPINEL_MCU_POWER_STATE_ON. 1549*cfb92d14SAndroid Build Coastguard Worker * 1550*cfb92d14SAndroid Build Coastguard Worker * Enumeration `spinel_mcu_power_state_t` defines the valid values 1551*cfb92d14SAndroid Build Coastguard Worker * (`SPINEL_MCU_POWER_STATE_*` constants): 1552*cfb92d14SAndroid Build Coastguard Worker * 1553*cfb92d14SAndroid Build Coastguard Worker * `SPINEL_MCU_POWER_STATE_ON`: NCP's MCU stays on and active all the time. 1554*cfb92d14SAndroid Build Coastguard Worker * When the NCP's desired power state is set to this value, host can send 1555*cfb92d14SAndroid Build Coastguard Worker * messages to NCP without requiring any "poke" or external triggers. MCU is 1556*cfb92d14SAndroid Build Coastguard Worker * expected to stay on and active. Note that the `ON` power state only 1557*cfb92d14SAndroid Build Coastguard Worker * determines the MCU's power mode and is not related to radio's state. 1558*cfb92d14SAndroid Build Coastguard Worker * 1559*cfb92d14SAndroid Build Coastguard Worker * `SPINEL_MCU_POWER_STATE_LOW_POWER`: NCP's MCU can enter low-power 1560*cfb92d14SAndroid Build Coastguard Worker * (energy-saving) state. When the NCP's desired power state is set to 1561*cfb92d14SAndroid Build Coastguard Worker * `LOW_POWER`, host is expected to "poke" the NCP (e.g., an external trigger 1562*cfb92d14SAndroid Build Coastguard Worker * like an interrupt) before it can communicate with the NCP (send a message 1563*cfb92d14SAndroid Build Coastguard Worker * to the NCP). The "poke" mechanism is determined by the platform code (based 1564*cfb92d14SAndroid Build Coastguard Worker * on NCP's interface to the host). 1565*cfb92d14SAndroid Build Coastguard Worker * While power state is set to `LOW_POWER`, NCP can still (at any time) send 1566*cfb92d14SAndroid Build Coastguard Worker * messages to host. Note that receiving a message from the NCP does NOT 1567*cfb92d14SAndroid Build Coastguard Worker * indicate that the NCP's power state has changed, i.e., host is expected to 1568*cfb92d14SAndroid Build Coastguard Worker * continue to "poke" NCP when it wants to talk to the NCP until the power 1569*cfb92d14SAndroid Build Coastguard Worker * state is explicitly changed (by setting this property to `ON`). 1570*cfb92d14SAndroid Build Coastguard Worker * Note that the `LOW_POWER` power state only determines the MCU's power mode 1571*cfb92d14SAndroid Build Coastguard Worker * and is not related to radio's state. 1572*cfb92d14SAndroid Build Coastguard Worker * 1573*cfb92d14SAndroid Build Coastguard Worker * `SPINEL_MCU_POWER_STATE_OFF`: NCP is fully powered off. 1574*cfb92d14SAndroid Build Coastguard Worker * An NCP hardware reset (via a RESET pin) is required to bring the NCP back 1575*cfb92d14SAndroid Build Coastguard Worker * to `SPINEL_MCU_POWER_STATE_ON`. RAM is not retained after reset. 1576*cfb92d14SAndroid Build Coastguard Worker * 1577*cfb92d14SAndroid Build Coastguard Worker */ 1578*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MCU_POWER_STATE = 13, 1579*cfb92d14SAndroid Build Coastguard Worker 1580*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_BASE_EXT__BEGIN = 0x1000, 1581*cfb92d14SAndroid Build Coastguard Worker 1582*cfb92d14SAndroid Build Coastguard Worker /// GPIO Configuration 1583*cfb92d14SAndroid Build Coastguard Worker /** Format: `A(CCU)` 1584*cfb92d14SAndroid Build Coastguard Worker * Type: Read-Only (Optionally Read-write using `CMD_PROP_VALUE_INSERT`) 1585*cfb92d14SAndroid Build Coastguard Worker * 1586*cfb92d14SAndroid Build Coastguard Worker * An array of structures which contain the following fields: 1587*cfb92d14SAndroid Build Coastguard Worker * 1588*cfb92d14SAndroid Build Coastguard Worker * * `C`: GPIO Number 1589*cfb92d14SAndroid Build Coastguard Worker * * `C`: GPIO Configuration Flags 1590*cfb92d14SAndroid Build Coastguard Worker * * `U`: Human-readable GPIO name 1591*cfb92d14SAndroid Build Coastguard Worker * 1592*cfb92d14SAndroid Build Coastguard Worker * GPIOs which do not have a corresponding entry are not supported. 1593*cfb92d14SAndroid Build Coastguard Worker * 1594*cfb92d14SAndroid Build Coastguard Worker * The configuration parameter contains the configuration flags for the 1595*cfb92d14SAndroid Build Coastguard Worker * GPIO: 1596*cfb92d14SAndroid Build Coastguard Worker * 1597*cfb92d14SAndroid Build Coastguard Worker * 0 1 2 3 4 5 6 7 1598*cfb92d14SAndroid Build Coastguard Worker * +---+---+---+---+---+---+---+---+ 1599*cfb92d14SAndroid Build Coastguard Worker * |DIR|PUP|PDN|TRIGGER| RESERVED | 1600*cfb92d14SAndroid Build Coastguard Worker * +---+---+---+---+---+---+---+---+ 1601*cfb92d14SAndroid Build Coastguard Worker * |O/D| 1602*cfb92d14SAndroid Build Coastguard Worker * +---+ 1603*cfb92d14SAndroid Build Coastguard Worker * 1604*cfb92d14SAndroid Build Coastguard Worker * * `DIR`: Pin direction. Clear (0) for input, set (1) for output. 1605*cfb92d14SAndroid Build Coastguard Worker * * `PUP`: Pull-up enabled flag. 1606*cfb92d14SAndroid Build Coastguard Worker * * `PDN`/`O/D`: Flag meaning depends on pin direction: 1607*cfb92d14SAndroid Build Coastguard Worker * * Input: Pull-down enabled. 1608*cfb92d14SAndroid Build Coastguard Worker * * Output: Output is an open-drain. 1609*cfb92d14SAndroid Build Coastguard Worker * * `TRIGGER`: Enumeration describing how pin changes generate 1610*cfb92d14SAndroid Build Coastguard Worker * asynchronous notification commands (TBD) from the NCP to the host. 1611*cfb92d14SAndroid Build Coastguard Worker * * 0: Feature disabled for this pin 1612*cfb92d14SAndroid Build Coastguard Worker * * 1: Trigger on falling edge 1613*cfb92d14SAndroid Build Coastguard Worker * * 2: Trigger on rising edge 1614*cfb92d14SAndroid Build Coastguard Worker * * 3: Trigger on level change 1615*cfb92d14SAndroid Build Coastguard Worker * * `RESERVED`: Bits reserved for future use. Always cleared to zero 1616*cfb92d14SAndroid Build Coastguard Worker * and ignored when read. 1617*cfb92d14SAndroid Build Coastguard Worker * 1618*cfb92d14SAndroid Build Coastguard Worker * As an optional feature, the configuration of individual pins may be 1619*cfb92d14SAndroid Build Coastguard Worker * modified using the `CMD_PROP_VALUE_INSERT` command. Only the GPIO 1620*cfb92d14SAndroid Build Coastguard Worker * number and flags fields MUST be present, the GPIO name (if present) 1621*cfb92d14SAndroid Build Coastguard Worker * would be ignored. This command can only be used to modify the 1622*cfb92d14SAndroid Build Coastguard Worker * configuration of GPIOs which are already exposed---it cannot be used 1623*cfb92d14SAndroid Build Coastguard Worker * by the host to add additional GPIOs. 1624*cfb92d14SAndroid Build Coastguard Worker */ 1625*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_GPIO_CONFIG = SPINEL_PROP_BASE_EXT__BEGIN + 0, 1626*cfb92d14SAndroid Build Coastguard Worker 1627*cfb92d14SAndroid Build Coastguard Worker /// GPIO State Bitmask 1628*cfb92d14SAndroid Build Coastguard Worker /** Format: `D` 1629*cfb92d14SAndroid Build Coastguard Worker * Type: Read-Write 1630*cfb92d14SAndroid Build Coastguard Worker * 1631*cfb92d14SAndroid Build Coastguard Worker * Contains a bit field identifying the state of the GPIOs. The length of 1632*cfb92d14SAndroid Build Coastguard Worker * the data associated with these properties depends on the number of 1633*cfb92d14SAndroid Build Coastguard Worker * GPIOs. If you have 10 GPIOs, you'd have two bytes. GPIOs are numbered 1634*cfb92d14SAndroid Build Coastguard Worker * from most significant bit to least significant bit, so 0x80 is GPIO 0, 1635*cfb92d14SAndroid Build Coastguard Worker * 0x40 is GPIO 1, etc. 1636*cfb92d14SAndroid Build Coastguard Worker * 1637*cfb92d14SAndroid Build Coastguard Worker * For GPIOs configured as inputs: 1638*cfb92d14SAndroid Build Coastguard Worker * 1639*cfb92d14SAndroid Build Coastguard Worker * * `CMD_PROP_VALUE_GET`: The value of the associated bit describes the 1640*cfb92d14SAndroid Build Coastguard Worker * logic level read from the pin. 1641*cfb92d14SAndroid Build Coastguard Worker * * `CMD_PROP_VALUE_SET`: The value of the associated bit is ignored 1642*cfb92d14SAndroid Build Coastguard Worker * for these pins. 1643*cfb92d14SAndroid Build Coastguard Worker * 1644*cfb92d14SAndroid Build Coastguard Worker * For GPIOs configured as outputs: 1645*cfb92d14SAndroid Build Coastguard Worker * 1646*cfb92d14SAndroid Build Coastguard Worker * * `CMD_PROP_VALUE_GET`: The value of the associated bit is 1647*cfb92d14SAndroid Build Coastguard Worker * implementation specific. 1648*cfb92d14SAndroid Build Coastguard Worker * * `CMD_PROP_VALUE_SET`: The value of the associated bit determines 1649*cfb92d14SAndroid Build Coastguard Worker * the new logic level of the output. If this pin is configured as an 1650*cfb92d14SAndroid Build Coastguard Worker * open-drain, setting the associated bit to 1 will cause the pin to 1651*cfb92d14SAndroid Build Coastguard Worker * enter a Hi-Z state. 1652*cfb92d14SAndroid Build Coastguard Worker * 1653*cfb92d14SAndroid Build Coastguard Worker * For GPIOs which are not specified in `PROP_GPIO_CONFIG`: 1654*cfb92d14SAndroid Build Coastguard Worker * 1655*cfb92d14SAndroid Build Coastguard Worker * * `CMD_PROP_VALUE_GET`: The value of the associated bit is 1656*cfb92d14SAndroid Build Coastguard Worker * implementation specific. 1657*cfb92d14SAndroid Build Coastguard Worker * * `CMD_PROP_VALUE_SET`: The value of the associated bit MUST be 1658*cfb92d14SAndroid Build Coastguard Worker * ignored by the NCP. 1659*cfb92d14SAndroid Build Coastguard Worker * 1660*cfb92d14SAndroid Build Coastguard Worker * When writing, unspecified bits are assumed to be zero. 1661*cfb92d14SAndroid Build Coastguard Worker */ 1662*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_GPIO_STATE = SPINEL_PROP_BASE_EXT__BEGIN + 2, 1663*cfb92d14SAndroid Build Coastguard Worker 1664*cfb92d14SAndroid Build Coastguard Worker /// GPIO State Set-Only Bitmask 1665*cfb92d14SAndroid Build Coastguard Worker /** Format: `D` 1666*cfb92d14SAndroid Build Coastguard Worker * Type: Write-Only 1667*cfb92d14SAndroid Build Coastguard Worker * 1668*cfb92d14SAndroid Build Coastguard Worker * Allows for the state of various output GPIOs to be set without affecting 1669*cfb92d14SAndroid Build Coastguard Worker * other GPIO states. Contains a bit field identifying the output GPIOs that 1670*cfb92d14SAndroid Build Coastguard Worker * should have their state set to 1. 1671*cfb92d14SAndroid Build Coastguard Worker * 1672*cfb92d14SAndroid Build Coastguard Worker * When writing, unspecified bits are assumed to be zero. The value of 1673*cfb92d14SAndroid Build Coastguard Worker * any bits for GPIOs which are not specified in `PROP_GPIO_CONFIG` MUST 1674*cfb92d14SAndroid Build Coastguard Worker * be ignored. 1675*cfb92d14SAndroid Build Coastguard Worker */ 1676*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_GPIO_STATE_SET = SPINEL_PROP_BASE_EXT__BEGIN + 3, 1677*cfb92d14SAndroid Build Coastguard Worker 1678*cfb92d14SAndroid Build Coastguard Worker /// GPIO State Clear-Only Bitmask 1679*cfb92d14SAndroid Build Coastguard Worker /** Format: `D` 1680*cfb92d14SAndroid Build Coastguard Worker * Type: Write-Only 1681*cfb92d14SAndroid Build Coastguard Worker * 1682*cfb92d14SAndroid Build Coastguard Worker * Allows for the state of various output GPIOs to be cleared without affecting 1683*cfb92d14SAndroid Build Coastguard Worker * other GPIO states. Contains a bit field identifying the output GPIOs that 1684*cfb92d14SAndroid Build Coastguard Worker * should have their state cleared to 0. 1685*cfb92d14SAndroid Build Coastguard Worker * 1686*cfb92d14SAndroid Build Coastguard Worker * When writing, unspecified bits are assumed to be zero. The value of 1687*cfb92d14SAndroid Build Coastguard Worker * any bits for GPIOs which are not specified in `PROP_GPIO_CONFIG` MUST 1688*cfb92d14SAndroid Build Coastguard Worker * be ignored. 1689*cfb92d14SAndroid Build Coastguard Worker */ 1690*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_GPIO_STATE_CLEAR = SPINEL_PROP_BASE_EXT__BEGIN + 4, 1691*cfb92d14SAndroid Build Coastguard Worker 1692*cfb92d14SAndroid Build Coastguard Worker /// 32-bit random number from TRNG, ready-to-use. 1693*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_TRNG_32 = SPINEL_PROP_BASE_EXT__BEGIN + 5, 1694*cfb92d14SAndroid Build Coastguard Worker 1695*cfb92d14SAndroid Build Coastguard Worker /// 16 random bytes from TRNG, ready-to-use. 1696*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_TRNG_128 = SPINEL_PROP_BASE_EXT__BEGIN + 6, 1697*cfb92d14SAndroid Build Coastguard Worker 1698*cfb92d14SAndroid Build Coastguard Worker /// Raw samples from TRNG entropy source representing 32 bits of entropy. 1699*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_TRNG_RAW_32 = SPINEL_PROP_BASE_EXT__BEGIN + 7, 1700*cfb92d14SAndroid Build Coastguard Worker 1701*cfb92d14SAndroid Build Coastguard Worker /// NCP Unsolicited update filter 1702*cfb92d14SAndroid Build Coastguard Worker /** Format: `A(I)` 1703*cfb92d14SAndroid Build Coastguard Worker * Type: Read-Write (optional Insert-Remove) 1704*cfb92d14SAndroid Build Coastguard Worker * Required capability: `CAP_UNSOL_UPDATE_FILTER` 1705*cfb92d14SAndroid Build Coastguard Worker * 1706*cfb92d14SAndroid Build Coastguard Worker * Contains a list of properties which are excluded from generating 1707*cfb92d14SAndroid Build Coastguard Worker * unsolicited value updates. This property is empty after reset. 1708*cfb92d14SAndroid Build Coastguard Worker * In other words, the host may opt-out of unsolicited property updates 1709*cfb92d14SAndroid Build Coastguard Worker * for a specific property by adding that property id to this list. 1710*cfb92d14SAndroid Build Coastguard Worker * Hosts SHOULD NOT add properties to this list which are not 1711*cfb92d14SAndroid Build Coastguard Worker * present in `PROP_UNSOL_UPDATE_LIST`. If such properties are added, 1712*cfb92d14SAndroid Build Coastguard Worker * the NCP ignores the unsupported properties. 1713*cfb92d14SAndroid Build Coastguard Worker * 1714*cfb92d14SAndroid Build Coastguard Worker */ 1715*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_UNSOL_UPDATE_FILTER = SPINEL_PROP_BASE_EXT__BEGIN + 8, 1716*cfb92d14SAndroid Build Coastguard Worker 1717*cfb92d14SAndroid Build Coastguard Worker /// List of properties capable of generating unsolicited value update. 1718*cfb92d14SAndroid Build Coastguard Worker /** Format: `A(I)` 1719*cfb92d14SAndroid Build Coastguard Worker * Type: Read-Only 1720*cfb92d14SAndroid Build Coastguard Worker * Required capability: `CAP_UNSOL_UPDATE_FILTER` 1721*cfb92d14SAndroid Build Coastguard Worker * 1722*cfb92d14SAndroid Build Coastguard Worker * Contains a list of properties which are capable of generating 1723*cfb92d14SAndroid Build Coastguard Worker * unsolicited value updates. This list can be used when populating 1724*cfb92d14SAndroid Build Coastguard Worker * `PROP_UNSOL_UPDATE_FILTER` to disable all unsolicited property 1725*cfb92d14SAndroid Build Coastguard Worker * updates. 1726*cfb92d14SAndroid Build Coastguard Worker * 1727*cfb92d14SAndroid Build Coastguard Worker * This property is intended to effectively behave as a constant 1728*cfb92d14SAndroid Build Coastguard Worker * for a given NCP firmware. 1729*cfb92d14SAndroid Build Coastguard Worker */ 1730*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_UNSOL_UPDATE_LIST = SPINEL_PROP_BASE_EXT__BEGIN + 9, 1731*cfb92d14SAndroid Build Coastguard Worker 1732*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_BASE_EXT__END = 0x1100, 1733*cfb92d14SAndroid Build Coastguard Worker 1734*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_PHY__BEGIN = 0x20, 1735*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_PHY_ENABLED = SPINEL_PROP_PHY__BEGIN + 0, ///< [b] 1736*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_PHY_CHAN = SPINEL_PROP_PHY__BEGIN + 1, ///< [C] 1737*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_PHY_CHAN_SUPPORTED = SPINEL_PROP_PHY__BEGIN + 2, ///< [A(C)] 1738*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_PHY_FREQ = SPINEL_PROP_PHY__BEGIN + 3, ///< kHz [L] 1739*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_PHY_CCA_THRESHOLD = SPINEL_PROP_PHY__BEGIN + 4, ///< dBm [c] 1740*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_PHY_TX_POWER = SPINEL_PROP_PHY__BEGIN + 5, ///< [c] 1741*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_PHY_RSSI = SPINEL_PROP_PHY__BEGIN + 6, ///< dBm [c] 1742*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_PHY_RX_SENSITIVITY = SPINEL_PROP_PHY__BEGIN + 7, ///< dBm [c] 1743*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_PHY_PCAP_ENABLED = SPINEL_PROP_PHY__BEGIN + 8, ///< [b] 1744*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_PHY_CHAN_PREFERRED = SPINEL_PROP_PHY__BEGIN + 9, ///< [A(C)] 1745*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_PHY_FEM_LNA_GAIN = SPINEL_PROP_PHY__BEGIN + 10, ///< dBm [c] 1746*cfb92d14SAndroid Build Coastguard Worker 1747*cfb92d14SAndroid Build Coastguard Worker /// Signal the max power for a channel 1748*cfb92d14SAndroid Build Coastguard Worker /** Format: `Cc` 1749*cfb92d14SAndroid Build Coastguard Worker * 1750*cfb92d14SAndroid Build Coastguard Worker * First byte is the channel then the max transmit power, write-only. 1751*cfb92d14SAndroid Build Coastguard Worker */ 1752*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_PHY_CHAN_MAX_POWER = SPINEL_PROP_PHY__BEGIN + 11, 1753*cfb92d14SAndroid Build Coastguard Worker /// Region code 1754*cfb92d14SAndroid Build Coastguard Worker /** Format: `S` 1755*cfb92d14SAndroid Build Coastguard Worker * 1756*cfb92d14SAndroid Build Coastguard Worker * The ascii representation of the ISO 3166 alpha-2 code. 1757*cfb92d14SAndroid Build Coastguard Worker * 1758*cfb92d14SAndroid Build Coastguard Worker */ 1759*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_PHY_REGION_CODE = SPINEL_PROP_PHY__BEGIN + 12, 1760*cfb92d14SAndroid Build Coastguard Worker 1761*cfb92d14SAndroid Build Coastguard Worker /// Calibrated Power Table 1762*cfb92d14SAndroid Build Coastguard Worker /** Format: `A(Csd)` - Insert/Set 1763*cfb92d14SAndroid Build Coastguard Worker * 1764*cfb92d14SAndroid Build Coastguard Worker * The `Insert` command on the property inserts a calibration power entry to the calibrated power table. 1765*cfb92d14SAndroid Build Coastguard Worker * The `Set` command on the property with empty payload clears the calibrated power table. 1766*cfb92d14SAndroid Build Coastguard Worker * 1767*cfb92d14SAndroid Build Coastguard Worker * Structure Parameters: 1768*cfb92d14SAndroid Build Coastguard Worker * `C`: Channel. 1769*cfb92d14SAndroid Build Coastguard Worker * `s`: Actual power in 0.01 dBm. 1770*cfb92d14SAndroid Build Coastguard Worker * `d`: Raw power setting. 1771*cfb92d14SAndroid Build Coastguard Worker */ 1772*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_PHY_CALIBRATED_POWER = SPINEL_PROP_PHY__BEGIN + 13, 1773*cfb92d14SAndroid Build Coastguard Worker 1774*cfb92d14SAndroid Build Coastguard Worker /// Target power for a channel 1775*cfb92d14SAndroid Build Coastguard Worker /** Format: `t(Cs)` - Write only 1776*cfb92d14SAndroid Build Coastguard Worker * 1777*cfb92d14SAndroid Build Coastguard Worker * Structure Parameters: 1778*cfb92d14SAndroid Build Coastguard Worker * `C`: Channel. 1779*cfb92d14SAndroid Build Coastguard Worker * `s`: Target power in 0.01 dBm. 1780*cfb92d14SAndroid Build Coastguard Worker */ 1781*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_PHY_CHAN_TARGET_POWER = SPINEL_PROP_PHY__BEGIN + 14, 1782*cfb92d14SAndroid Build Coastguard Worker 1783*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_PHY__END = 0x30, 1784*cfb92d14SAndroid Build Coastguard Worker 1785*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_PHY_EXT__BEGIN = 0x1200, 1786*cfb92d14SAndroid Build Coastguard Worker 1787*cfb92d14SAndroid Build Coastguard Worker /// Signal Jamming Detection Enable 1788*cfb92d14SAndroid Build Coastguard Worker /** Format: `b` 1789*cfb92d14SAndroid Build Coastguard Worker * 1790*cfb92d14SAndroid Build Coastguard Worker * Indicates if jamming detection is enabled or disabled. Set to true 1791*cfb92d14SAndroid Build Coastguard Worker * to enable jamming detection. 1792*cfb92d14SAndroid Build Coastguard Worker */ 1793*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_JAM_DETECT_ENABLE = SPINEL_PROP_PHY_EXT__BEGIN + 0, 1794*cfb92d14SAndroid Build Coastguard Worker 1795*cfb92d14SAndroid Build Coastguard Worker /// Signal Jamming Detected Indicator 1796*cfb92d14SAndroid Build Coastguard Worker /** Format: `b` (Read-Only) 1797*cfb92d14SAndroid Build Coastguard Worker * 1798*cfb92d14SAndroid Build Coastguard Worker * Set to true if radio jamming is detected. Set to false otherwise. 1799*cfb92d14SAndroid Build Coastguard Worker * 1800*cfb92d14SAndroid Build Coastguard Worker * When jamming detection is enabled, changes to the value of this 1801*cfb92d14SAndroid Build Coastguard Worker * property are emitted asynchronously via `CMD_PROP_VALUE_IS`. 1802*cfb92d14SAndroid Build Coastguard Worker */ 1803*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_JAM_DETECTED = SPINEL_PROP_PHY_EXT__BEGIN + 1, 1804*cfb92d14SAndroid Build Coastguard Worker 1805*cfb92d14SAndroid Build Coastguard Worker /// Jamming detection RSSI threshold 1806*cfb92d14SAndroid Build Coastguard Worker /** Format: `c` 1807*cfb92d14SAndroid Build Coastguard Worker * Units: dBm 1808*cfb92d14SAndroid Build Coastguard Worker * 1809*cfb92d14SAndroid Build Coastguard Worker * This parameter describes the threshold RSSI level (measured in 1810*cfb92d14SAndroid Build Coastguard Worker * dBm) above which the jamming detection will consider the 1811*cfb92d14SAndroid Build Coastguard Worker * channel blocked. 1812*cfb92d14SAndroid Build Coastguard Worker */ 1813*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_JAM_DETECT_RSSI_THRESHOLD = SPINEL_PROP_PHY_EXT__BEGIN + 2, 1814*cfb92d14SAndroid Build Coastguard Worker 1815*cfb92d14SAndroid Build Coastguard Worker /// Jamming detection window size 1816*cfb92d14SAndroid Build Coastguard Worker /** Format: `C` 1817*cfb92d14SAndroid Build Coastguard Worker * Units: Seconds (1-63) 1818*cfb92d14SAndroid Build Coastguard Worker * 1819*cfb92d14SAndroid Build Coastguard Worker * This parameter describes the window period for signal jamming 1820*cfb92d14SAndroid Build Coastguard Worker * detection. 1821*cfb92d14SAndroid Build Coastguard Worker */ 1822*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_JAM_DETECT_WINDOW = SPINEL_PROP_PHY_EXT__BEGIN + 3, 1823*cfb92d14SAndroid Build Coastguard Worker 1824*cfb92d14SAndroid Build Coastguard Worker /// Jamming detection busy period 1825*cfb92d14SAndroid Build Coastguard Worker /** Format: `C` 1826*cfb92d14SAndroid Build Coastguard Worker * Units: Seconds (1-63) 1827*cfb92d14SAndroid Build Coastguard Worker * 1828*cfb92d14SAndroid Build Coastguard Worker * This parameter describes the number of aggregate seconds within 1829*cfb92d14SAndroid Build Coastguard Worker * the detection window where the RSSI must be above 1830*cfb92d14SAndroid Build Coastguard Worker * `PROP_JAM_DETECT_RSSI_THRESHOLD` to trigger detection. 1831*cfb92d14SAndroid Build Coastguard Worker * 1832*cfb92d14SAndroid Build Coastguard Worker * The behavior of the jamming detection feature when `PROP_JAM_DETECT_BUSY` 1833*cfb92d14SAndroid Build Coastguard Worker * is larger than `PROP_JAM_DETECT_WINDOW` is undefined. 1834*cfb92d14SAndroid Build Coastguard Worker */ 1835*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_JAM_DETECT_BUSY = SPINEL_PROP_PHY_EXT__BEGIN + 4, 1836*cfb92d14SAndroid Build Coastguard Worker 1837*cfb92d14SAndroid Build Coastguard Worker /// Jamming detection history bitmap (for debugging) 1838*cfb92d14SAndroid Build Coastguard Worker /** Format: `X` (read-only) 1839*cfb92d14SAndroid Build Coastguard Worker * 1840*cfb92d14SAndroid Build Coastguard Worker * This value provides information about current state of jamming detection 1841*cfb92d14SAndroid Build Coastguard Worker * module for monitoring/debugging purpose. It returns a 64-bit value where 1842*cfb92d14SAndroid Build Coastguard Worker * each bit corresponds to one second interval starting with bit 0 for the 1843*cfb92d14SAndroid Build Coastguard Worker * most recent interval and bit 63 for the oldest intervals (63 sec earlier). 1844*cfb92d14SAndroid Build Coastguard Worker * The bit is set to 1 if the jamming detection module observed/detected 1845*cfb92d14SAndroid Build Coastguard Worker * high signal level during the corresponding one second interval. 1846*cfb92d14SAndroid Build Coastguard Worker * 1847*cfb92d14SAndroid Build Coastguard Worker */ 1848*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_JAM_DETECT_HISTORY_BITMAP = SPINEL_PROP_PHY_EXT__BEGIN + 5, 1849*cfb92d14SAndroid Build Coastguard Worker 1850*cfb92d14SAndroid Build Coastguard Worker /// Channel monitoring sample interval 1851*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (read-only) 1852*cfb92d14SAndroid Build Coastguard Worker * Units: Milliseconds 1853*cfb92d14SAndroid Build Coastguard Worker * 1854*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_CHANNEL_MONITOR 1855*cfb92d14SAndroid Build Coastguard Worker * 1856*cfb92d14SAndroid Build Coastguard Worker * If channel monitoring is enabled and active, every sample interval, a 1857*cfb92d14SAndroid Build Coastguard Worker * zero-duration Energy Scan is performed, collecting a single RSSI sample 1858*cfb92d14SAndroid Build Coastguard Worker * per channel. The RSSI samples are compared with a pre-specified RSSI 1859*cfb92d14SAndroid Build Coastguard Worker * threshold. 1860*cfb92d14SAndroid Build Coastguard Worker * 1861*cfb92d14SAndroid Build Coastguard Worker */ 1862*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CHANNEL_MONITOR_SAMPLE_INTERVAL = SPINEL_PROP_PHY_EXT__BEGIN + 6, 1863*cfb92d14SAndroid Build Coastguard Worker 1864*cfb92d14SAndroid Build Coastguard Worker /// Channel monitoring RSSI threshold 1865*cfb92d14SAndroid Build Coastguard Worker /** Format: `c` (read-only) 1866*cfb92d14SAndroid Build Coastguard Worker * Units: dBm 1867*cfb92d14SAndroid Build Coastguard Worker * 1868*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_CHANNEL_MONITOR 1869*cfb92d14SAndroid Build Coastguard Worker * 1870*cfb92d14SAndroid Build Coastguard Worker * This value specifies the threshold used by channel monitoring module. 1871*cfb92d14SAndroid Build Coastguard Worker * Channel monitoring maintains the average rate of RSSI samples that 1872*cfb92d14SAndroid Build Coastguard Worker * are above the threshold within (approximately) a pre-specified number 1873*cfb92d14SAndroid Build Coastguard Worker * of samples (sample window). 1874*cfb92d14SAndroid Build Coastguard Worker * 1875*cfb92d14SAndroid Build Coastguard Worker */ 1876*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CHANNEL_MONITOR_RSSI_THRESHOLD = SPINEL_PROP_PHY_EXT__BEGIN + 7, 1877*cfb92d14SAndroid Build Coastguard Worker 1878*cfb92d14SAndroid Build Coastguard Worker /// Channel monitoring sample window 1879*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (read-only) 1880*cfb92d14SAndroid Build Coastguard Worker * Units: Number of samples 1881*cfb92d14SAndroid Build Coastguard Worker * 1882*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_CHANNEL_MONITOR 1883*cfb92d14SAndroid Build Coastguard Worker * 1884*cfb92d14SAndroid Build Coastguard Worker * The averaging sample window length (in units of number of channel 1885*cfb92d14SAndroid Build Coastguard Worker * samples) used by channel monitoring module. Channel monitoring will 1886*cfb92d14SAndroid Build Coastguard Worker * sample all channels every sample interval. It maintains the average rate 1887*cfb92d14SAndroid Build Coastguard Worker * of RSSI samples that are above the RSSI threshold within (approximately) 1888*cfb92d14SAndroid Build Coastguard Worker * the sample window. 1889*cfb92d14SAndroid Build Coastguard Worker * 1890*cfb92d14SAndroid Build Coastguard Worker */ 1891*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CHANNEL_MONITOR_SAMPLE_WINDOW = SPINEL_PROP_PHY_EXT__BEGIN + 8, 1892*cfb92d14SAndroid Build Coastguard Worker 1893*cfb92d14SAndroid Build Coastguard Worker /// Channel monitoring sample count 1894*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (read-only) 1895*cfb92d14SAndroid Build Coastguard Worker * Units: Number of samples 1896*cfb92d14SAndroid Build Coastguard Worker * 1897*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_CHANNEL_MONITOR 1898*cfb92d14SAndroid Build Coastguard Worker * 1899*cfb92d14SAndroid Build Coastguard Worker * Total number of RSSI samples (per channel) taken by the channel 1900*cfb92d14SAndroid Build Coastguard Worker * monitoring module since its start (since Thread network interface 1901*cfb92d14SAndroid Build Coastguard Worker * was enabled). 1902*cfb92d14SAndroid Build Coastguard Worker * 1903*cfb92d14SAndroid Build Coastguard Worker */ 1904*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CHANNEL_MONITOR_SAMPLE_COUNT = SPINEL_PROP_PHY_EXT__BEGIN + 9, 1905*cfb92d14SAndroid Build Coastguard Worker 1906*cfb92d14SAndroid Build Coastguard Worker /// Channel monitoring channel occupancy 1907*cfb92d14SAndroid Build Coastguard Worker /** Format: `A(t(CU))` (read-only) 1908*cfb92d14SAndroid Build Coastguard Worker * 1909*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_CHANNEL_MONITOR 1910*cfb92d14SAndroid Build Coastguard Worker * 1911*cfb92d14SAndroid Build Coastguard Worker * Data per item is: 1912*cfb92d14SAndroid Build Coastguard Worker * 1913*cfb92d14SAndroid Build Coastguard Worker * `C`: Channel 1914*cfb92d14SAndroid Build Coastguard Worker * `U`: Channel occupancy indicator 1915*cfb92d14SAndroid Build Coastguard Worker * 1916*cfb92d14SAndroid Build Coastguard Worker * The channel occupancy value represents the average rate/percentage of 1917*cfb92d14SAndroid Build Coastguard Worker * RSSI samples that were above RSSI threshold ("bad" RSSI samples) within 1918*cfb92d14SAndroid Build Coastguard Worker * (approximately) sample window latest RSSI samples. 1919*cfb92d14SAndroid Build Coastguard Worker * 1920*cfb92d14SAndroid Build Coastguard Worker * Max value of `0xffff` indicates all RSSI samples were above RSSI 1921*cfb92d14SAndroid Build Coastguard Worker * threshold (i.e. 100% of samples were "bad"). 1922*cfb92d14SAndroid Build Coastguard Worker * 1923*cfb92d14SAndroid Build Coastguard Worker */ 1924*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CHANNEL_MONITOR_CHANNEL_OCCUPANCY = SPINEL_PROP_PHY_EXT__BEGIN + 10, 1925*cfb92d14SAndroid Build Coastguard Worker 1926*cfb92d14SAndroid Build Coastguard Worker /// Radio caps 1927*cfb92d14SAndroid Build Coastguard Worker /** Format: `i` (read-only) 1928*cfb92d14SAndroid Build Coastguard Worker * 1929*cfb92d14SAndroid Build Coastguard Worker * Data per item is: 1930*cfb92d14SAndroid Build Coastguard Worker * 1931*cfb92d14SAndroid Build Coastguard Worker * `i`: Radio Capabilities. 1932*cfb92d14SAndroid Build Coastguard Worker * 1933*cfb92d14SAndroid Build Coastguard Worker */ 1934*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_RADIO_CAPS = SPINEL_PROP_PHY_EXT__BEGIN + 11, 1935*cfb92d14SAndroid Build Coastguard Worker 1936*cfb92d14SAndroid Build Coastguard Worker /// All coex metrics related counters. 1937*cfb92d14SAndroid Build Coastguard Worker /** Format: t(LLLLLLLL)t(LLLLLLLLL)bL (Read-only) 1938*cfb92d14SAndroid Build Coastguard Worker * 1939*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_RADIO_COEX 1940*cfb92d14SAndroid Build Coastguard Worker * 1941*cfb92d14SAndroid Build Coastguard Worker * The contents include two structures and two common variables, first structure corresponds to 1942*cfb92d14SAndroid Build Coastguard Worker * all transmit related coex counters, second structure provides the receive related counters. 1943*cfb92d14SAndroid Build Coastguard Worker * 1944*cfb92d14SAndroid Build Coastguard Worker * The transmit structure includes: 1945*cfb92d14SAndroid Build Coastguard Worker * 'L': NumTxRequest (The number of tx requests). 1946*cfb92d14SAndroid Build Coastguard Worker * 'L': NumTxGrantImmediate (The number of tx requests while grant was active). 1947*cfb92d14SAndroid Build Coastguard Worker * 'L': NumTxGrantWait (The number of tx requests while grant was inactive). 1948*cfb92d14SAndroid Build Coastguard Worker * 'L': NumTxGrantWaitActivated (The number of tx requests while grant was inactive that were 1949*cfb92d14SAndroid Build Coastguard Worker * ultimately granted). 1950*cfb92d14SAndroid Build Coastguard Worker * 'L': NumTxGrantWaitTimeout (The number of tx requests while grant was inactive that timed out). 1951*cfb92d14SAndroid Build Coastguard Worker * 'L': NumTxGrantDeactivatedDuringRequest (The number of tx requests that were in progress when grant was 1952*cfb92d14SAndroid Build Coastguard Worker * deactivated). 1953*cfb92d14SAndroid Build Coastguard Worker * 'L': NumTxDelayedGrant (The number of tx requests that were not granted within 50us). 1954*cfb92d14SAndroid Build Coastguard Worker * 'L': AvgTxRequestToGrantTime (The average time in usec from tx request to grant). 1955*cfb92d14SAndroid Build Coastguard Worker * 1956*cfb92d14SAndroid Build Coastguard Worker * The receive structure includes: 1957*cfb92d14SAndroid Build Coastguard Worker * 'L': NumRxRequest (The number of rx requests). 1958*cfb92d14SAndroid Build Coastguard Worker * 'L': NumRxGrantImmediate (The number of rx requests while grant was active). 1959*cfb92d14SAndroid Build Coastguard Worker * 'L': NumRxGrantWait (The number of rx requests while grant was inactive). 1960*cfb92d14SAndroid Build Coastguard Worker * 'L': NumRxGrantWaitActivated (The number of rx requests while grant was inactive that were 1961*cfb92d14SAndroid Build Coastguard Worker * ultimately granted). 1962*cfb92d14SAndroid Build Coastguard Worker * 'L': NumRxGrantWaitTimeout (The number of rx requests while grant was inactive that timed out). 1963*cfb92d14SAndroid Build Coastguard Worker * 'L': NumRxGrantDeactivatedDuringRequest (The number of rx requests that were in progress when grant was 1964*cfb92d14SAndroid Build Coastguard Worker * deactivated). 1965*cfb92d14SAndroid Build Coastguard Worker * 'L': NumRxDelayedGrant (The number of rx requests that were not granted within 50us). 1966*cfb92d14SAndroid Build Coastguard Worker * 'L': AvgRxRequestToGrantTime (The average time in usec from rx request to grant). 1967*cfb92d14SAndroid Build Coastguard Worker * 'L': NumRxGrantNone (The number of rx requests that completed without receiving grant). 1968*cfb92d14SAndroid Build Coastguard Worker * 1969*cfb92d14SAndroid Build Coastguard Worker * Two common variables: 1970*cfb92d14SAndroid Build Coastguard Worker * 'b': Stopped (Stats collection stopped due to saturation). 1971*cfb92d14SAndroid Build Coastguard Worker * 'L': NumGrantGlitch (The number of of grant glitches). 1972*cfb92d14SAndroid Build Coastguard Worker */ 1973*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_RADIO_COEX_METRICS = SPINEL_PROP_PHY_EXT__BEGIN + 12, 1974*cfb92d14SAndroid Build Coastguard Worker 1975*cfb92d14SAndroid Build Coastguard Worker /// Radio Coex Enable 1976*cfb92d14SAndroid Build Coastguard Worker /** Format: `b` 1977*cfb92d14SAndroid Build Coastguard Worker * 1978*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_RADIO_COEX 1979*cfb92d14SAndroid Build Coastguard Worker * 1980*cfb92d14SAndroid Build Coastguard Worker * Indicates if radio coex is enabled or disabled. Set to true to enable radio coex. 1981*cfb92d14SAndroid Build Coastguard Worker */ 1982*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_RADIO_COEX_ENABLE = SPINEL_PROP_PHY_EXT__BEGIN + 13, 1983*cfb92d14SAndroid Build Coastguard Worker 1984*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_PHY_EXT__END = 0x1300, 1985*cfb92d14SAndroid Build Coastguard Worker 1986*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MAC__BEGIN = 0x30, 1987*cfb92d14SAndroid Build Coastguard Worker 1988*cfb92d14SAndroid Build Coastguard Worker /// MAC Scan State 1989*cfb92d14SAndroid Build Coastguard Worker /** Format: `C` 1990*cfb92d14SAndroid Build Coastguard Worker * 1991*cfb92d14SAndroid Build Coastguard Worker * Possible values are from enumeration `spinel_scan_state_t`. 1992*cfb92d14SAndroid Build Coastguard Worker * 1993*cfb92d14SAndroid Build Coastguard Worker * SCAN_STATE_IDLE 1994*cfb92d14SAndroid Build Coastguard Worker * SCAN_STATE_BEACON 1995*cfb92d14SAndroid Build Coastguard Worker * SCAN_STATE_ENERGY 1996*cfb92d14SAndroid Build Coastguard Worker * SCAN_STATE_DISCOVER 1997*cfb92d14SAndroid Build Coastguard Worker * 1998*cfb92d14SAndroid Build Coastguard Worker * Set to `SCAN_STATE_BEACON` to start an active scan. 1999*cfb92d14SAndroid Build Coastguard Worker * Beacons will be emitted from `PROP_MAC_SCAN_BEACON`. 2000*cfb92d14SAndroid Build Coastguard Worker * 2001*cfb92d14SAndroid Build Coastguard Worker * Set to `SCAN_STATE_ENERGY` to start an energy scan. 2002*cfb92d14SAndroid Build Coastguard Worker * Channel energy result will be reported by emissions 2003*cfb92d14SAndroid Build Coastguard Worker * of `PROP_MAC_ENERGY_SCAN_RESULT` (per channel). 2004*cfb92d14SAndroid Build Coastguard Worker * 2005*cfb92d14SAndroid Build Coastguard Worker * Set to `SCAN_STATE_DISCOVER` to start a Thread MLE discovery 2006*cfb92d14SAndroid Build Coastguard Worker * scan operation. Discovery scan result will be emitted from 2007*cfb92d14SAndroid Build Coastguard Worker * `PROP_MAC_SCAN_BEACON`. 2008*cfb92d14SAndroid Build Coastguard Worker * 2009*cfb92d14SAndroid Build Coastguard Worker * Value switches to `SCAN_STATE_IDLE` when scan is complete. 2010*cfb92d14SAndroid Build Coastguard Worker * 2011*cfb92d14SAndroid Build Coastguard Worker */ 2012*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MAC_SCAN_STATE = SPINEL_PROP_MAC__BEGIN + 0, 2013*cfb92d14SAndroid Build Coastguard Worker 2014*cfb92d14SAndroid Build Coastguard Worker /// MAC Scan Channel Mask 2015*cfb92d14SAndroid Build Coastguard Worker /** Format: `A(C)` 2016*cfb92d14SAndroid Build Coastguard Worker * 2017*cfb92d14SAndroid Build Coastguard Worker * List of channels to scan. 2018*cfb92d14SAndroid Build Coastguard Worker * 2019*cfb92d14SAndroid Build Coastguard Worker */ 2020*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MAC_SCAN_MASK = SPINEL_PROP_MAC__BEGIN + 1, 2021*cfb92d14SAndroid Build Coastguard Worker 2022*cfb92d14SAndroid Build Coastguard Worker /// MAC Scan Channel Period 2023*cfb92d14SAndroid Build Coastguard Worker /** Format: `S` 2024*cfb92d14SAndroid Build Coastguard Worker * Unit: milliseconds per channel 2025*cfb92d14SAndroid Build Coastguard Worker * 2026*cfb92d14SAndroid Build Coastguard Worker */ 2027*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MAC_SCAN_PERIOD = SPINEL_PROP_MAC__BEGIN + 2, 2028*cfb92d14SAndroid Build Coastguard Worker 2029*cfb92d14SAndroid Build Coastguard Worker /// MAC Scan Beacon 2030*cfb92d14SAndroid Build Coastguard Worker /** Format `Cct(ESSc)t(iCUdd)` - Asynchronous event only 2031*cfb92d14SAndroid Build Coastguard Worker * 2032*cfb92d14SAndroid Build Coastguard Worker * Scan beacons have two embedded structures which contain 2033*cfb92d14SAndroid Build Coastguard Worker * information about the MAC layer and the NET layer. Their 2034*cfb92d14SAndroid Build Coastguard Worker * format depends on the MAC and NET layer currently in use. 2035*cfb92d14SAndroid Build Coastguard Worker * The format below is for an 802.15.4 MAC with Thread: 2036*cfb92d14SAndroid Build Coastguard Worker * 2037*cfb92d14SAndroid Build Coastguard Worker * `C`: Channel 2038*cfb92d14SAndroid Build Coastguard Worker * `c`: RSSI of the beacon 2039*cfb92d14SAndroid Build Coastguard Worker * `t`: MAC layer properties (802.15.4 layer) 2040*cfb92d14SAndroid Build Coastguard Worker * `E`: Long address 2041*cfb92d14SAndroid Build Coastguard Worker * `S`: Short address 2042*cfb92d14SAndroid Build Coastguard Worker * `S`: PAN-ID 2043*cfb92d14SAndroid Build Coastguard Worker * `c`: LQI 2044*cfb92d14SAndroid Build Coastguard Worker * NET layer properties 2045*cfb92d14SAndroid Build Coastguard Worker * `i`: Protocol Number (SPINEL_PROTOCOL_TYPE_* values) 2046*cfb92d14SAndroid Build Coastguard Worker * `C`: Flags (SPINEL_BEACON_THREAD_FLAG_* values) 2047*cfb92d14SAndroid Build Coastguard Worker * `U`: Network Name 2048*cfb92d14SAndroid Build Coastguard Worker * `d`: XPANID 2049*cfb92d14SAndroid Build Coastguard Worker * `d`: Steering data 2050*cfb92d14SAndroid Build Coastguard Worker * 2051*cfb92d14SAndroid Build Coastguard Worker * Extra parameters may be added to each of the structures 2052*cfb92d14SAndroid Build Coastguard Worker * in the future, so care should be taken to read the length 2053*cfb92d14SAndroid Build Coastguard Worker * that prepends each structure. 2054*cfb92d14SAndroid Build Coastguard Worker * 2055*cfb92d14SAndroid Build Coastguard Worker */ 2056*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MAC_SCAN_BEACON = SPINEL_PROP_MAC__BEGIN + 3, 2057*cfb92d14SAndroid Build Coastguard Worker 2058*cfb92d14SAndroid Build Coastguard Worker /// MAC Long Address 2059*cfb92d14SAndroid Build Coastguard Worker /** Format: `E` 2060*cfb92d14SAndroid Build Coastguard Worker * 2061*cfb92d14SAndroid Build Coastguard Worker * The 802.15.4 long address of this node. 2062*cfb92d14SAndroid Build Coastguard Worker * 2063*cfb92d14SAndroid Build Coastguard Worker */ 2064*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MAC_15_4_LADDR = SPINEL_PROP_MAC__BEGIN + 4, 2065*cfb92d14SAndroid Build Coastguard Worker 2066*cfb92d14SAndroid Build Coastguard Worker /// MAC Short Address 2067*cfb92d14SAndroid Build Coastguard Worker /** Format: `S` 2068*cfb92d14SAndroid Build Coastguard Worker * 2069*cfb92d14SAndroid Build Coastguard Worker * The 802.15.4 short address of this node. 2070*cfb92d14SAndroid Build Coastguard Worker * 2071*cfb92d14SAndroid Build Coastguard Worker */ 2072*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MAC_15_4_SADDR = SPINEL_PROP_MAC__BEGIN + 5, 2073*cfb92d14SAndroid Build Coastguard Worker 2074*cfb92d14SAndroid Build Coastguard Worker /// MAC PAN ID 2075*cfb92d14SAndroid Build Coastguard Worker /** Format: `S` 2076*cfb92d14SAndroid Build Coastguard Worker * 2077*cfb92d14SAndroid Build Coastguard Worker * The 802.15.4 PANID this node is associated with. 2078*cfb92d14SAndroid Build Coastguard Worker * 2079*cfb92d14SAndroid Build Coastguard Worker */ 2080*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MAC_15_4_PANID = SPINEL_PROP_MAC__BEGIN + 6, 2081*cfb92d14SAndroid Build Coastguard Worker 2082*cfb92d14SAndroid Build Coastguard Worker /// MAC Stream Raw Enabled 2083*cfb92d14SAndroid Build Coastguard Worker /** Format: `b` 2084*cfb92d14SAndroid Build Coastguard Worker * 2085*cfb92d14SAndroid Build Coastguard Worker * Set to true to enable raw MAC frames to be emitted from 2086*cfb92d14SAndroid Build Coastguard Worker * `PROP_STREAM_RAW`. 2087*cfb92d14SAndroid Build Coastguard Worker * 2088*cfb92d14SAndroid Build Coastguard Worker */ 2089*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MAC_RAW_STREAM_ENABLED = SPINEL_PROP_MAC__BEGIN + 7, 2090*cfb92d14SAndroid Build Coastguard Worker 2091*cfb92d14SAndroid Build Coastguard Worker /// MAC Promiscuous Mode 2092*cfb92d14SAndroid Build Coastguard Worker /** Format: `C` 2093*cfb92d14SAndroid Build Coastguard Worker * 2094*cfb92d14SAndroid Build Coastguard Worker * Possible values are from enumeration 2095*cfb92d14SAndroid Build Coastguard Worker * `SPINEL_MAC_PROMISCUOUS_MODE_*`: 2096*cfb92d14SAndroid Build Coastguard Worker * 2097*cfb92d14SAndroid Build Coastguard Worker * `SPINEL_MAC_PROMISCUOUS_MODE_OFF` 2098*cfb92d14SAndroid Build Coastguard Worker * Normal MAC filtering is in place. 2099*cfb92d14SAndroid Build Coastguard Worker * 2100*cfb92d14SAndroid Build Coastguard Worker * `SPINEL_MAC_PROMISCUOUS_MODE_NETWORK` 2101*cfb92d14SAndroid Build Coastguard Worker * All MAC packets matching network are passed up 2102*cfb92d14SAndroid Build Coastguard Worker * the stack. 2103*cfb92d14SAndroid Build Coastguard Worker * 2104*cfb92d14SAndroid Build Coastguard Worker * `SPINEL_MAC_PROMISCUOUS_MODE_FULL` 2105*cfb92d14SAndroid Build Coastguard Worker * All decoded MAC packets are passed up the stack. 2106*cfb92d14SAndroid Build Coastguard Worker * 2107*cfb92d14SAndroid Build Coastguard Worker */ 2108*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MAC_PROMISCUOUS_MODE = SPINEL_PROP_MAC__BEGIN + 8, 2109*cfb92d14SAndroid Build Coastguard Worker 2110*cfb92d14SAndroid Build Coastguard Worker /// MAC Energy Scan Result 2111*cfb92d14SAndroid Build Coastguard Worker /** Format: `Cc` - Asynchronous event only 2112*cfb92d14SAndroid Build Coastguard Worker * 2113*cfb92d14SAndroid Build Coastguard Worker * This property is emitted during energy scan operation 2114*cfb92d14SAndroid Build Coastguard Worker * per scanned channel with following format: 2115*cfb92d14SAndroid Build Coastguard Worker * 2116*cfb92d14SAndroid Build Coastguard Worker * `C`: Channel 2117*cfb92d14SAndroid Build Coastguard Worker * `c`: RSSI (in dBm) 2118*cfb92d14SAndroid Build Coastguard Worker * 2119*cfb92d14SAndroid Build Coastguard Worker */ 2120*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MAC_ENERGY_SCAN_RESULT = SPINEL_PROP_MAC__BEGIN + 9, 2121*cfb92d14SAndroid Build Coastguard Worker 2122*cfb92d14SAndroid Build Coastguard Worker /// MAC Data Poll Period 2123*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` 2124*cfb92d14SAndroid Build Coastguard Worker * Unit: millisecond 2125*cfb92d14SAndroid Build Coastguard Worker * The (user-specified) data poll (802.15.4 MAC Data Request) period 2126*cfb92d14SAndroid Build Coastguard Worker * in milliseconds. Value zero means there is no user-specified 2127*cfb92d14SAndroid Build Coastguard Worker * poll period, and the network stack determines the maximum period 2128*cfb92d14SAndroid Build Coastguard Worker * based on the MLE Child Timeout. 2129*cfb92d14SAndroid Build Coastguard Worker * 2130*cfb92d14SAndroid Build Coastguard Worker * If the value is non-zero, it specifies the maximum period between 2131*cfb92d14SAndroid Build Coastguard Worker * data poll transmissions. Note that the network stack may send data 2132*cfb92d14SAndroid Build Coastguard Worker * request transmissions more frequently when expecting a control-message 2133*cfb92d14SAndroid Build Coastguard Worker * (e.g., when waiting for an MLE Child ID Response). 2134*cfb92d14SAndroid Build Coastguard Worker * 2135*cfb92d14SAndroid Build Coastguard Worker */ 2136*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MAC_DATA_POLL_PERIOD = SPINEL_PROP_MAC__BEGIN + 10, 2137*cfb92d14SAndroid Build Coastguard Worker 2138*cfb92d14SAndroid Build Coastguard Worker /// MAC RxOnWhenIdle mode 2139*cfb92d14SAndroid Build Coastguard Worker /** Format: `b` 2140*cfb92d14SAndroid Build Coastguard Worker * 2141*cfb92d14SAndroid Build Coastguard Worker * Set to true to enable RxOnWhenIdle or false to disable it. 2142*cfb92d14SAndroid Build Coastguard Worker * When True, the radio is expected to stay in receive state during 2143*cfb92d14SAndroid Build Coastguard Worker * idle periods. When False, the radio is expected to switch to sleep 2144*cfb92d14SAndroid Build Coastguard Worker * state during idle periods. 2145*cfb92d14SAndroid Build Coastguard Worker * 2146*cfb92d14SAndroid Build Coastguard Worker */ 2147*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MAC_RX_ON_WHEN_IDLE_MODE = SPINEL_PROP_MAC__BEGIN + 11, 2148*cfb92d14SAndroid Build Coastguard Worker 2149*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MAC__END = 0x40, 2150*cfb92d14SAndroid Build Coastguard Worker 2151*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MAC_EXT__BEGIN = 0x1300, 2152*cfb92d14SAndroid Build Coastguard Worker 2153*cfb92d14SAndroid Build Coastguard Worker /// MAC Allowlist 2154*cfb92d14SAndroid Build Coastguard Worker /** Format: `A(t(Ec))` 2155*cfb92d14SAndroid Build Coastguard Worker * Required capability: `CAP_MAC_ALLOWLIST` 2156*cfb92d14SAndroid Build Coastguard Worker * 2157*cfb92d14SAndroid Build Coastguard Worker * Structure Parameters: 2158*cfb92d14SAndroid Build Coastguard Worker * 2159*cfb92d14SAndroid Build Coastguard Worker * `E`: EUI64 address of node 2160*cfb92d14SAndroid Build Coastguard Worker * `c`: Optional RSSI-override value. The value 127 indicates 2161*cfb92d14SAndroid Build Coastguard Worker * that the RSSI-override feature is not enabled for this 2162*cfb92d14SAndroid Build Coastguard Worker * address. If this value is omitted when setting or 2163*cfb92d14SAndroid Build Coastguard Worker * inserting, it is assumed to be 127. This parameter is 2164*cfb92d14SAndroid Build Coastguard Worker * ignored when removing. 2165*cfb92d14SAndroid Build Coastguard Worker */ 2166*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MAC_ALLOWLIST = SPINEL_PROP_MAC_EXT__BEGIN + 0, 2167*cfb92d14SAndroid Build Coastguard Worker 2168*cfb92d14SAndroid Build Coastguard Worker /// MAC Allowlist Enabled Flag 2169*cfb92d14SAndroid Build Coastguard Worker /** Format: `b` 2170*cfb92d14SAndroid Build Coastguard Worker * Required capability: `CAP_MAC_ALLOWLIST` 2171*cfb92d14SAndroid Build Coastguard Worker * 2172*cfb92d14SAndroid Build Coastguard Worker */ 2173*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MAC_ALLOWLIST_ENABLED = SPINEL_PROP_MAC_EXT__BEGIN + 1, 2174*cfb92d14SAndroid Build Coastguard Worker 2175*cfb92d14SAndroid Build Coastguard Worker /// MAC Extended Address 2176*cfb92d14SAndroid Build Coastguard Worker /** Format: `E` 2177*cfb92d14SAndroid Build Coastguard Worker * 2178*cfb92d14SAndroid Build Coastguard Worker * Specified by Thread. Randomly-chosen, but non-volatile EUI-64. 2179*cfb92d14SAndroid Build Coastguard Worker */ 2180*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MAC_EXTENDED_ADDR = SPINEL_PROP_MAC_EXT__BEGIN + 2, 2181*cfb92d14SAndroid Build Coastguard Worker 2182*cfb92d14SAndroid Build Coastguard Worker /// MAC Source Match Enabled Flag 2183*cfb92d14SAndroid Build Coastguard Worker /** Format: `b` 2184*cfb92d14SAndroid Build Coastguard Worker * Required Capability: SPINEL_CAP_MAC_RAW or SPINEL_CAP_CONFIG_RADIO 2185*cfb92d14SAndroid Build Coastguard Worker * 2186*cfb92d14SAndroid Build Coastguard Worker * Set to true to enable radio source matching or false to disable it. 2187*cfb92d14SAndroid Build Coastguard Worker * The source match functionality is used by radios when generating 2188*cfb92d14SAndroid Build Coastguard Worker * ACKs. The short and extended address lists are used for setting 2189*cfb92d14SAndroid Build Coastguard Worker * the Frame Pending bit in the ACKs. 2190*cfb92d14SAndroid Build Coastguard Worker * 2191*cfb92d14SAndroid Build Coastguard Worker */ 2192*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MAC_SRC_MATCH_ENABLED = SPINEL_PROP_MAC_EXT__BEGIN + 3, 2193*cfb92d14SAndroid Build Coastguard Worker 2194*cfb92d14SAndroid Build Coastguard Worker /// MAC Source Match Short Address List 2195*cfb92d14SAndroid Build Coastguard Worker /** Format: `A(S)` 2196*cfb92d14SAndroid Build Coastguard Worker * Required Capability: SPINEL_CAP_MAC_RAW or SPINEL_CAP_CONFIG_RADIO 2197*cfb92d14SAndroid Build Coastguard Worker * 2198*cfb92d14SAndroid Build Coastguard Worker */ 2199*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MAC_SRC_MATCH_SHORT_ADDRESSES = SPINEL_PROP_MAC_EXT__BEGIN + 4, 2200*cfb92d14SAndroid Build Coastguard Worker 2201*cfb92d14SAndroid Build Coastguard Worker /// MAC Source Match Extended Address List 2202*cfb92d14SAndroid Build Coastguard Worker /** Format: `A(E)` 2203*cfb92d14SAndroid Build Coastguard Worker * Required Capability: SPINEL_CAP_MAC_RAW or SPINEL_CAP_CONFIG_RADIO 2204*cfb92d14SAndroid Build Coastguard Worker * 2205*cfb92d14SAndroid Build Coastguard Worker */ 2206*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MAC_SRC_MATCH_EXTENDED_ADDRESSES = SPINEL_PROP_MAC_EXT__BEGIN + 5, 2207*cfb92d14SAndroid Build Coastguard Worker 2208*cfb92d14SAndroid Build Coastguard Worker /// MAC Denylist 2209*cfb92d14SAndroid Build Coastguard Worker /** Format: `A(t(E))` 2210*cfb92d14SAndroid Build Coastguard Worker * Required capability: `CAP_MAC_ALLOWLIST` 2211*cfb92d14SAndroid Build Coastguard Worker * 2212*cfb92d14SAndroid Build Coastguard Worker * Structure Parameters: 2213*cfb92d14SAndroid Build Coastguard Worker * 2214*cfb92d14SAndroid Build Coastguard Worker * `E`: EUI64 address of node 2215*cfb92d14SAndroid Build Coastguard Worker * 2216*cfb92d14SAndroid Build Coastguard Worker */ 2217*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MAC_DENYLIST = SPINEL_PROP_MAC_EXT__BEGIN + 6, 2218*cfb92d14SAndroid Build Coastguard Worker 2219*cfb92d14SAndroid Build Coastguard Worker /// MAC Denylist Enabled Flag 2220*cfb92d14SAndroid Build Coastguard Worker /** Format: `b` 2221*cfb92d14SAndroid Build Coastguard Worker * Required capability: `CAP_MAC_ALLOWLIST` 2222*cfb92d14SAndroid Build Coastguard Worker */ 2223*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MAC_DENYLIST_ENABLED = SPINEL_PROP_MAC_EXT__BEGIN + 7, 2224*cfb92d14SAndroid Build Coastguard Worker 2225*cfb92d14SAndroid Build Coastguard Worker /// MAC Received Signal Strength Filter 2226*cfb92d14SAndroid Build Coastguard Worker /** Format: `A(t(Ec))` 2227*cfb92d14SAndroid Build Coastguard Worker * Required capability: `CAP_MAC_ALLOWLIST` 2228*cfb92d14SAndroid Build Coastguard Worker * 2229*cfb92d14SAndroid Build Coastguard Worker * Structure Parameters: 2230*cfb92d14SAndroid Build Coastguard Worker * 2231*cfb92d14SAndroid Build Coastguard Worker * * `E`: Optional EUI64 address of node. Set default RSS if not included. 2232*cfb92d14SAndroid Build Coastguard Worker * * `c`: Fixed RSS. 127 means not set. 2233*cfb92d14SAndroid Build Coastguard Worker */ 2234*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MAC_FIXED_RSS = SPINEL_PROP_MAC_EXT__BEGIN + 8, 2235*cfb92d14SAndroid Build Coastguard Worker 2236*cfb92d14SAndroid Build Coastguard Worker /// The CCA failure rate 2237*cfb92d14SAndroid Build Coastguard Worker /** Format: `S` 2238*cfb92d14SAndroid Build Coastguard Worker * 2239*cfb92d14SAndroid Build Coastguard Worker * This property provides the current CCA (Clear Channel Assessment) failure rate. 2240*cfb92d14SAndroid Build Coastguard Worker * 2241*cfb92d14SAndroid Build Coastguard Worker * Maximum value `0xffff` corresponding to 100% failure rate. 2242*cfb92d14SAndroid Build Coastguard Worker * 2243*cfb92d14SAndroid Build Coastguard Worker */ 2244*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MAC_CCA_FAILURE_RATE = SPINEL_PROP_MAC_EXT__BEGIN + 9, 2245*cfb92d14SAndroid Build Coastguard Worker 2246*cfb92d14SAndroid Build Coastguard Worker /// MAC Max direct retry number 2247*cfb92d14SAndroid Build Coastguard Worker /** Format: `C` 2248*cfb92d14SAndroid Build Coastguard Worker * 2249*cfb92d14SAndroid Build Coastguard Worker * The maximum (user-specified) number of direct frame transmission retries. 2250*cfb92d14SAndroid Build Coastguard Worker * 2251*cfb92d14SAndroid Build Coastguard Worker */ 2252*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MAC_MAX_RETRY_NUMBER_DIRECT = SPINEL_PROP_MAC_EXT__BEGIN + 10, 2253*cfb92d14SAndroid Build Coastguard Worker 2254*cfb92d14SAndroid Build Coastguard Worker /// MAC Max indirect retry number 2255*cfb92d14SAndroid Build Coastguard Worker /** Format: `C` 2256*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_CONFIG_FTD` 2257*cfb92d14SAndroid Build Coastguard Worker * 2258*cfb92d14SAndroid Build Coastguard Worker * The maximum (user-specified) number of indirect frame transmission retries. 2259*cfb92d14SAndroid Build Coastguard Worker * 2260*cfb92d14SAndroid Build Coastguard Worker */ 2261*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MAC_MAX_RETRY_NUMBER_INDIRECT = SPINEL_PROP_MAC_EXT__BEGIN + 11, 2262*cfb92d14SAndroid Build Coastguard Worker 2263*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MAC_EXT__END = 0x1400, 2264*cfb92d14SAndroid Build Coastguard Worker 2265*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_NET__BEGIN = 0x40, 2266*cfb92d14SAndroid Build Coastguard Worker 2267*cfb92d14SAndroid Build Coastguard Worker /// Network Is Saved (Is Commissioned) 2268*cfb92d14SAndroid Build Coastguard Worker /** Format: `b` - Read only 2269*cfb92d14SAndroid Build Coastguard Worker * 2270*cfb92d14SAndroid Build Coastguard Worker * Returns true if there is a network state stored/saved. 2271*cfb92d14SAndroid Build Coastguard Worker * 2272*cfb92d14SAndroid Build Coastguard Worker */ 2273*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_NET_SAVED = SPINEL_PROP_NET__BEGIN + 0, 2274*cfb92d14SAndroid Build Coastguard Worker 2275*cfb92d14SAndroid Build Coastguard Worker /// Network Interface Status 2276*cfb92d14SAndroid Build Coastguard Worker /** Format `b` - Read-write 2277*cfb92d14SAndroid Build Coastguard Worker * 2278*cfb92d14SAndroid Build Coastguard Worker * Network interface up/down status. Write true to bring 2279*cfb92d14SAndroid Build Coastguard Worker * interface up and false to bring interface down. 2280*cfb92d14SAndroid Build Coastguard Worker * 2281*cfb92d14SAndroid Build Coastguard Worker */ 2282*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_NET_IF_UP = SPINEL_PROP_NET__BEGIN + 1, 2283*cfb92d14SAndroid Build Coastguard Worker 2284*cfb92d14SAndroid Build Coastguard Worker /// Thread Stack Operational Status 2285*cfb92d14SAndroid Build Coastguard Worker /** Format `b` - Read-write 2286*cfb92d14SAndroid Build Coastguard Worker * 2287*cfb92d14SAndroid Build Coastguard Worker * Thread stack operational status. Write true to start 2288*cfb92d14SAndroid Build Coastguard Worker * Thread stack and false to stop it. 2289*cfb92d14SAndroid Build Coastguard Worker * 2290*cfb92d14SAndroid Build Coastguard Worker */ 2291*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_NET_STACK_UP = SPINEL_PROP_NET__BEGIN + 2, 2292*cfb92d14SAndroid Build Coastguard Worker 2293*cfb92d14SAndroid Build Coastguard Worker /// Thread Device Role 2294*cfb92d14SAndroid Build Coastguard Worker /** Format `C` - Read-write 2295*cfb92d14SAndroid Build Coastguard Worker * 2296*cfb92d14SAndroid Build Coastguard Worker * Possible values are from enumeration `spinel_net_role_t` 2297*cfb92d14SAndroid Build Coastguard Worker * 2298*cfb92d14SAndroid Build Coastguard Worker * SPINEL_NET_ROLE_DETACHED = 0, 2299*cfb92d14SAndroid Build Coastguard Worker * SPINEL_NET_ROLE_CHILD = 1, 2300*cfb92d14SAndroid Build Coastguard Worker * SPINEL_NET_ROLE_ROUTER = 2, 2301*cfb92d14SAndroid Build Coastguard Worker * SPINEL_NET_ROLE_LEADER = 3, 2302*cfb92d14SAndroid Build Coastguard Worker * SPINEL_NET_ROLE_DISABLED = 4, 2303*cfb92d14SAndroid Build Coastguard Worker * 2304*cfb92d14SAndroid Build Coastguard Worker */ 2305*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_NET_ROLE = SPINEL_PROP_NET__BEGIN + 3, 2306*cfb92d14SAndroid Build Coastguard Worker 2307*cfb92d14SAndroid Build Coastguard Worker /// Thread Network Name 2308*cfb92d14SAndroid Build Coastguard Worker /** Format `U` - Read-write 2309*cfb92d14SAndroid Build Coastguard Worker * 2310*cfb92d14SAndroid Build Coastguard Worker */ 2311*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_NET_NETWORK_NAME = SPINEL_PROP_NET__BEGIN + 4, 2312*cfb92d14SAndroid Build Coastguard Worker 2313*cfb92d14SAndroid Build Coastguard Worker /// Thread Network Extended PAN ID 2314*cfb92d14SAndroid Build Coastguard Worker /** Format `D` - Read-write 2315*cfb92d14SAndroid Build Coastguard Worker * 2316*cfb92d14SAndroid Build Coastguard Worker */ 2317*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_NET_XPANID = SPINEL_PROP_NET__BEGIN + 5, 2318*cfb92d14SAndroid Build Coastguard Worker 2319*cfb92d14SAndroid Build Coastguard Worker /// Thread Network Key 2320*cfb92d14SAndroid Build Coastguard Worker /** Format `D` - Read-write 2321*cfb92d14SAndroid Build Coastguard Worker * 2322*cfb92d14SAndroid Build Coastguard Worker */ 2323*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_NET_NETWORK_KEY = SPINEL_PROP_NET__BEGIN + 6, 2324*cfb92d14SAndroid Build Coastguard Worker 2325*cfb92d14SAndroid Build Coastguard Worker /// Thread Network Key Sequence Counter 2326*cfb92d14SAndroid Build Coastguard Worker /** Format `L` - Read-write 2327*cfb92d14SAndroid Build Coastguard Worker * 2328*cfb92d14SAndroid Build Coastguard Worker */ 2329*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_NET_KEY_SEQUENCE_COUNTER = SPINEL_PROP_NET__BEGIN + 7, 2330*cfb92d14SAndroid Build Coastguard Worker 2331*cfb92d14SAndroid Build Coastguard Worker /// Thread Network Partition Id 2332*cfb92d14SAndroid Build Coastguard Worker /** Format `L` - Read-write 2333*cfb92d14SAndroid Build Coastguard Worker * 2334*cfb92d14SAndroid Build Coastguard Worker * The partition ID of the partition that this node is a 2335*cfb92d14SAndroid Build Coastguard Worker * member of. 2336*cfb92d14SAndroid Build Coastguard Worker * 2337*cfb92d14SAndroid Build Coastguard Worker */ 2338*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_NET_PARTITION_ID = SPINEL_PROP_NET__BEGIN + 8, 2339*cfb92d14SAndroid Build Coastguard Worker 2340*cfb92d14SAndroid Build Coastguard Worker /// Require Join Existing 2341*cfb92d14SAndroid Build Coastguard Worker /** Format: `b` 2342*cfb92d14SAndroid Build Coastguard Worker * Default Value: `false` 2343*cfb92d14SAndroid Build Coastguard Worker * 2344*cfb92d14SAndroid Build Coastguard Worker * This flag is typically used for nodes that are associating with an 2345*cfb92d14SAndroid Build Coastguard Worker * existing network for the first time. If this is set to `true` before 2346*cfb92d14SAndroid Build Coastguard Worker * `PROP_NET_STACK_UP` is set to `true`, the 2347*cfb92d14SAndroid Build Coastguard Worker * creation of a new partition at association is prevented. If the node 2348*cfb92d14SAndroid Build Coastguard Worker * cannot associate with an existing partition, `PROP_LAST_STATUS` will 2349*cfb92d14SAndroid Build Coastguard Worker * emit a status that indicates why the association failed and 2350*cfb92d14SAndroid Build Coastguard Worker * `PROP_NET_STACK_UP` will automatically revert to `false`. 2351*cfb92d14SAndroid Build Coastguard Worker * 2352*cfb92d14SAndroid Build Coastguard Worker * Once associated with an existing partition, this flag automatically 2353*cfb92d14SAndroid Build Coastguard Worker * reverts to `false`. 2354*cfb92d14SAndroid Build Coastguard Worker * 2355*cfb92d14SAndroid Build Coastguard Worker * The behavior of this property being set to `true` when 2356*cfb92d14SAndroid Build Coastguard Worker * `PROP_NET_STACK_UP` is already set to `true` is undefined. 2357*cfb92d14SAndroid Build Coastguard Worker * 2358*cfb92d14SAndroid Build Coastguard Worker */ 2359*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_NET_REQUIRE_JOIN_EXISTING = SPINEL_PROP_NET__BEGIN + 9, 2360*cfb92d14SAndroid Build Coastguard Worker 2361*cfb92d14SAndroid Build Coastguard Worker /// Thread Network Key Switch Guard Time 2362*cfb92d14SAndroid Build Coastguard Worker /** Format `L` - Read-write 2363*cfb92d14SAndroid Build Coastguard Worker * 2364*cfb92d14SAndroid Build Coastguard Worker */ 2365*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_NET_KEY_SWITCH_GUARDTIME = SPINEL_PROP_NET__BEGIN + 10, 2366*cfb92d14SAndroid Build Coastguard Worker 2367*cfb92d14SAndroid Build Coastguard Worker /// Thread Network PSKc 2368*cfb92d14SAndroid Build Coastguard Worker /** Format `D` - Read-write 2369*cfb92d14SAndroid Build Coastguard Worker * 2370*cfb92d14SAndroid Build Coastguard Worker */ 2371*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_NET_PSKC = SPINEL_PROP_NET__BEGIN + 11, 2372*cfb92d14SAndroid Build Coastguard Worker 2373*cfb92d14SAndroid Build Coastguard Worker /// Instruct NCP to leave the current network gracefully 2374*cfb92d14SAndroid Build Coastguard Worker /** Format Empty - Write only 2375*cfb92d14SAndroid Build Coastguard Worker * 2376*cfb92d14SAndroid Build Coastguard Worker */ 2377*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_NET_LEAVE_GRACEFULLY = SPINEL_PROP_NET__BEGIN + 12, 2378*cfb92d14SAndroid Build Coastguard Worker 2379*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_NET__END = 0x50, 2380*cfb92d14SAndroid Build Coastguard Worker 2381*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_NET_EXT__BEGIN = 0x1400, 2382*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_NET_EXT__END = 0x1500, 2383*cfb92d14SAndroid Build Coastguard Worker 2384*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD__BEGIN = 0x50, 2385*cfb92d14SAndroid Build Coastguard Worker 2386*cfb92d14SAndroid Build Coastguard Worker /// Thread Leader IPv6 Address 2387*cfb92d14SAndroid Build Coastguard Worker /** Format `6` - Read only 2388*cfb92d14SAndroid Build Coastguard Worker * 2389*cfb92d14SAndroid Build Coastguard Worker */ 2390*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_LEADER_ADDR = SPINEL_PROP_THREAD__BEGIN + 0, 2391*cfb92d14SAndroid Build Coastguard Worker 2392*cfb92d14SAndroid Build Coastguard Worker /// Thread Parent Info 2393*cfb92d14SAndroid Build Coastguard Worker /** Format: `ESLccCCCCC` - Read only 2394*cfb92d14SAndroid Build Coastguard Worker * 2395*cfb92d14SAndroid Build Coastguard Worker * `E`: Extended address 2396*cfb92d14SAndroid Build Coastguard Worker * `S`: RLOC16 2397*cfb92d14SAndroid Build Coastguard Worker * `L`: Age (seconds since last heard from) 2398*cfb92d14SAndroid Build Coastguard Worker * `c`: Average RSS (in dBm) 2399*cfb92d14SAndroid Build Coastguard Worker * `c`: Last RSSI (in dBm) 2400*cfb92d14SAndroid Build Coastguard Worker * `C`: Link Quality In 2401*cfb92d14SAndroid Build Coastguard Worker * `C`: Link Quality Out 2402*cfb92d14SAndroid Build Coastguard Worker * `C`: Version 2403*cfb92d14SAndroid Build Coastguard Worker * `C`: CSL clock accuracy 2404*cfb92d14SAndroid Build Coastguard Worker * `C`: CSL uncertainty 2405*cfb92d14SAndroid Build Coastguard Worker * 2406*cfb92d14SAndroid Build Coastguard Worker */ 2407*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_PARENT = SPINEL_PROP_THREAD__BEGIN + 1, 2408*cfb92d14SAndroid Build Coastguard Worker 2409*cfb92d14SAndroid Build Coastguard Worker /// Thread Child Table 2410*cfb92d14SAndroid Build Coastguard Worker /** Format: [A(t(ESLLCCcCc)] - Read only 2411*cfb92d14SAndroid Build Coastguard Worker * 2412*cfb92d14SAndroid Build Coastguard Worker * Data per item is: 2413*cfb92d14SAndroid Build Coastguard Worker * 2414*cfb92d14SAndroid Build Coastguard Worker * `E`: Extended address 2415*cfb92d14SAndroid Build Coastguard Worker * `S`: RLOC16 2416*cfb92d14SAndroid Build Coastguard Worker * `L`: Timeout (in seconds) 2417*cfb92d14SAndroid Build Coastguard Worker * `L`: Age (in seconds) 2418*cfb92d14SAndroid Build Coastguard Worker * `L`: Network Data version 2419*cfb92d14SAndroid Build Coastguard Worker * `C`: Link Quality In 2420*cfb92d14SAndroid Build Coastguard Worker * `c`: Average RSS (in dBm) 2421*cfb92d14SAndroid Build Coastguard Worker * `C`: Mode (bit-flags) 2422*cfb92d14SAndroid Build Coastguard Worker * `c`: Last RSSI (in dBm) 2423*cfb92d14SAndroid Build Coastguard Worker * 2424*cfb92d14SAndroid Build Coastguard Worker */ 2425*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_CHILD_TABLE = SPINEL_PROP_THREAD__BEGIN + 2, 2426*cfb92d14SAndroid Build Coastguard Worker 2427*cfb92d14SAndroid Build Coastguard Worker /// Thread Leader Router Id 2428*cfb92d14SAndroid Build Coastguard Worker /** Format `C` - Read only 2429*cfb92d14SAndroid Build Coastguard Worker * 2430*cfb92d14SAndroid Build Coastguard Worker * The router-id of the current leader. 2431*cfb92d14SAndroid Build Coastguard Worker * 2432*cfb92d14SAndroid Build Coastguard Worker */ 2433*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_LEADER_RID = SPINEL_PROP_THREAD__BEGIN + 3, 2434*cfb92d14SAndroid Build Coastguard Worker 2435*cfb92d14SAndroid Build Coastguard Worker /// Thread Leader Weight 2436*cfb92d14SAndroid Build Coastguard Worker /** Format `C` - Read only 2437*cfb92d14SAndroid Build Coastguard Worker * 2438*cfb92d14SAndroid Build Coastguard Worker * The leader weight of the current leader. 2439*cfb92d14SAndroid Build Coastguard Worker * 2440*cfb92d14SAndroid Build Coastguard Worker */ 2441*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_LEADER_WEIGHT = SPINEL_PROP_THREAD__BEGIN + 4, 2442*cfb92d14SAndroid Build Coastguard Worker 2443*cfb92d14SAndroid Build Coastguard Worker /// Thread Local Leader Weight 2444*cfb92d14SAndroid Build Coastguard Worker /** Format `C` - Read only 2445*cfb92d14SAndroid Build Coastguard Worker * 2446*cfb92d14SAndroid Build Coastguard Worker * The leader weight of this node. 2447*cfb92d14SAndroid Build Coastguard Worker * 2448*cfb92d14SAndroid Build Coastguard Worker */ 2449*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_LOCAL_LEADER_WEIGHT = SPINEL_PROP_THREAD__BEGIN + 5, 2450*cfb92d14SAndroid Build Coastguard Worker 2451*cfb92d14SAndroid Build Coastguard Worker /// Thread Local Network Data 2452*cfb92d14SAndroid Build Coastguard Worker /** Format `D` - Read only 2453*cfb92d14SAndroid Build Coastguard Worker * 2454*cfb92d14SAndroid Build Coastguard Worker */ 2455*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_NETWORK_DATA = SPINEL_PROP_THREAD__BEGIN + 6, 2456*cfb92d14SAndroid Build Coastguard Worker 2457*cfb92d14SAndroid Build Coastguard Worker /// Thread Local Network Data Version 2458*cfb92d14SAndroid Build Coastguard Worker /** Format `C` - Read only 2459*cfb92d14SAndroid Build Coastguard Worker * 2460*cfb92d14SAndroid Build Coastguard Worker */ 2461*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_NETWORK_DATA_VERSION = SPINEL_PROP_THREAD__BEGIN + 7, 2462*cfb92d14SAndroid Build Coastguard Worker 2463*cfb92d14SAndroid Build Coastguard Worker /// Thread Local Stable Network Data 2464*cfb92d14SAndroid Build Coastguard Worker /** Format `D` - Read only 2465*cfb92d14SAndroid Build Coastguard Worker * 2466*cfb92d14SAndroid Build Coastguard Worker */ 2467*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_STABLE_NETWORK_DATA = SPINEL_PROP_THREAD__BEGIN + 8, 2468*cfb92d14SAndroid Build Coastguard Worker 2469*cfb92d14SAndroid Build Coastguard Worker /// Thread Local Stable Network Data Version 2470*cfb92d14SAndroid Build Coastguard Worker /** Format `C` - Read only 2471*cfb92d14SAndroid Build Coastguard Worker * 2472*cfb92d14SAndroid Build Coastguard Worker */ 2473*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_STABLE_NETWORK_DATA_VERSION = SPINEL_PROP_THREAD__BEGIN + 9, 2474*cfb92d14SAndroid Build Coastguard Worker 2475*cfb92d14SAndroid Build Coastguard Worker /// On-Mesh Prefixes 2476*cfb92d14SAndroid Build Coastguard Worker /** Format: `A(t(6CbCbSC))` 2477*cfb92d14SAndroid Build Coastguard Worker * 2478*cfb92d14SAndroid Build Coastguard Worker * Data per item is: 2479*cfb92d14SAndroid Build Coastguard Worker * 2480*cfb92d14SAndroid Build Coastguard Worker * `6`: IPv6 Prefix 2481*cfb92d14SAndroid Build Coastguard Worker * `C`: Prefix length in bits 2482*cfb92d14SAndroid Build Coastguard Worker * `b`: Stable flag 2483*cfb92d14SAndroid Build Coastguard Worker * `C`: TLV flags (SPINEL_NET_FLAG_* definition) 2484*cfb92d14SAndroid Build Coastguard Worker * `b`: "Is defined locally" flag. Set if this network was locally 2485*cfb92d14SAndroid Build Coastguard Worker * defined. Assumed to be true for set, insert and replace. Clear if 2486*cfb92d14SAndroid Build Coastguard Worker * the on mesh network was defined by another node. 2487*cfb92d14SAndroid Build Coastguard Worker * This field is ignored for INSERT and REMOVE commands. 2488*cfb92d14SAndroid Build Coastguard Worker * `S`: The RLOC16 of the device that registered this on-mesh prefix entry. 2489*cfb92d14SAndroid Build Coastguard Worker * This value is not used and ignored when adding an on-mesh prefix. 2490*cfb92d14SAndroid Build Coastguard Worker * This field is ignored for INSERT and REMOVE commands. 2491*cfb92d14SAndroid Build Coastguard Worker * `C`: TLV flags extended (additional field for Thread 1.2 features). 2492*cfb92d14SAndroid Build Coastguard Worker * 2493*cfb92d14SAndroid Build Coastguard Worker */ 2494*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_ON_MESH_NETS = SPINEL_PROP_THREAD__BEGIN + 10, 2495*cfb92d14SAndroid Build Coastguard Worker 2496*cfb92d14SAndroid Build Coastguard Worker /// Off-mesh routes 2497*cfb92d14SAndroid Build Coastguard Worker /** Format: [A(t(6CbCbb))] 2498*cfb92d14SAndroid Build Coastguard Worker * 2499*cfb92d14SAndroid Build Coastguard Worker * Data per item is: 2500*cfb92d14SAndroid Build Coastguard Worker * 2501*cfb92d14SAndroid Build Coastguard Worker * `6`: Route Prefix 2502*cfb92d14SAndroid Build Coastguard Worker * `C`: Prefix length in bits 2503*cfb92d14SAndroid Build Coastguard Worker * `b`: Stable flag 2504*cfb92d14SAndroid Build Coastguard Worker * `C`: Route flags (SPINEL_ROUTE_FLAG_* and SPINEL_ROUTE_PREFERENCE_* definitions) 2505*cfb92d14SAndroid Build Coastguard Worker * `b`: "Is defined locally" flag. Set if this route info was locally 2506*cfb92d14SAndroid Build Coastguard Worker * defined as part of local network data. Assumed to be true for set, 2507*cfb92d14SAndroid Build Coastguard Worker * insert and replace. Clear if the route is part of partition's network 2508*cfb92d14SAndroid Build Coastguard Worker * data. 2509*cfb92d14SAndroid Build Coastguard Worker * `b`: "Next hop is this device" flag. Set if the next hop for the 2510*cfb92d14SAndroid Build Coastguard Worker * route is this device itself (i.e., route was added by this device) 2511*cfb92d14SAndroid Build Coastguard Worker * This value is ignored when adding an external route. For any added 2512*cfb92d14SAndroid Build Coastguard Worker * route the next hop is this device. 2513*cfb92d14SAndroid Build Coastguard Worker * `S`: The RLOC16 of the device that registered this route entry. 2514*cfb92d14SAndroid Build Coastguard Worker * This value is not used and ignored when adding a route. 2515*cfb92d14SAndroid Build Coastguard Worker * 2516*cfb92d14SAndroid Build Coastguard Worker */ 2517*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_OFF_MESH_ROUTES = SPINEL_PROP_THREAD__BEGIN + 11, 2518*cfb92d14SAndroid Build Coastguard Worker 2519*cfb92d14SAndroid Build Coastguard Worker /// Thread Assisting Ports 2520*cfb92d14SAndroid Build Coastguard Worker /** Format `A(S)` 2521*cfb92d14SAndroid Build Coastguard Worker * 2522*cfb92d14SAndroid Build Coastguard Worker * Array of port numbers. 2523*cfb92d14SAndroid Build Coastguard Worker */ 2524*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_ASSISTING_PORTS = SPINEL_PROP_THREAD__BEGIN + 12, 2525*cfb92d14SAndroid Build Coastguard Worker 2526*cfb92d14SAndroid Build Coastguard Worker /// Thread Allow Local Network Data Change 2527*cfb92d14SAndroid Build Coastguard Worker /** Format `b` - Read-write 2528*cfb92d14SAndroid Build Coastguard Worker * 2529*cfb92d14SAndroid Build Coastguard Worker * Set to true before changing local net data. Set to false when finished. 2530*cfb92d14SAndroid Build Coastguard Worker * This allows changes to be aggregated into a single event. 2531*cfb92d14SAndroid Build Coastguard Worker * 2532*cfb92d14SAndroid Build Coastguard Worker */ 2533*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_ALLOW_LOCAL_NET_DATA_CHANGE = SPINEL_PROP_THREAD__BEGIN + 13, 2534*cfb92d14SAndroid Build Coastguard Worker 2535*cfb92d14SAndroid Build Coastguard Worker /// Thread Mode 2536*cfb92d14SAndroid Build Coastguard Worker /** Format: `C` 2537*cfb92d14SAndroid Build Coastguard Worker * 2538*cfb92d14SAndroid Build Coastguard Worker * This property contains the value of the mode 2539*cfb92d14SAndroid Build Coastguard Worker * TLV for this node. The meaning of the bits in this 2540*cfb92d14SAndroid Build Coastguard Worker * bit-field are defined by section 4.5.2 of the Thread 2541*cfb92d14SAndroid Build Coastguard Worker * specification. 2542*cfb92d14SAndroid Build Coastguard Worker * 2543*cfb92d14SAndroid Build Coastguard Worker * The values `SPINEL_THREAD_MODE_*` defines the bit-fields 2544*cfb92d14SAndroid Build Coastguard Worker * 2545*cfb92d14SAndroid Build Coastguard Worker */ 2546*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_MODE = SPINEL_PROP_THREAD__BEGIN + 14, 2547*cfb92d14SAndroid Build Coastguard Worker 2548*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD__END = 0x60, 2549*cfb92d14SAndroid Build Coastguard Worker 2550*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_EXT__BEGIN = 0x1500, 2551*cfb92d14SAndroid Build Coastguard Worker 2552*cfb92d14SAndroid Build Coastguard Worker /// Thread Child Timeout 2553*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` 2554*cfb92d14SAndroid Build Coastguard Worker * Unit: Seconds 2555*cfb92d14SAndroid Build Coastguard Worker * 2556*cfb92d14SAndroid Build Coastguard Worker * Used when operating in the Child role. 2557*cfb92d14SAndroid Build Coastguard Worker */ 2558*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_CHILD_TIMEOUT = SPINEL_PROP_THREAD_EXT__BEGIN + 0, 2559*cfb92d14SAndroid Build Coastguard Worker 2560*cfb92d14SAndroid Build Coastguard Worker /// Thread RLOC16 2561*cfb92d14SAndroid Build Coastguard Worker /** Format: `S` 2562*cfb92d14SAndroid Build Coastguard Worker * 2563*cfb92d14SAndroid Build Coastguard Worker */ 2564*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_RLOC16 = SPINEL_PROP_THREAD_EXT__BEGIN + 1, 2565*cfb92d14SAndroid Build Coastguard Worker 2566*cfb92d14SAndroid Build Coastguard Worker /// Thread Router Upgrade Threshold 2567*cfb92d14SAndroid Build Coastguard Worker /** Format: `C` 2568*cfb92d14SAndroid Build Coastguard Worker * 2569*cfb92d14SAndroid Build Coastguard Worker */ 2570*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_ROUTER_UPGRADE_THRESHOLD = SPINEL_PROP_THREAD_EXT__BEGIN + 2, 2571*cfb92d14SAndroid Build Coastguard Worker 2572*cfb92d14SAndroid Build Coastguard Worker /// Thread Context Reuse Delay 2573*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` 2574*cfb92d14SAndroid Build Coastguard Worker * 2575*cfb92d14SAndroid Build Coastguard Worker */ 2576*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_CONTEXT_REUSE_DELAY = SPINEL_PROP_THREAD_EXT__BEGIN + 3, 2577*cfb92d14SAndroid Build Coastguard Worker 2578*cfb92d14SAndroid Build Coastguard Worker /// Thread Network ID Timeout 2579*cfb92d14SAndroid Build Coastguard Worker /** Format: `C` 2580*cfb92d14SAndroid Build Coastguard Worker * 2581*cfb92d14SAndroid Build Coastguard Worker */ 2582*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_NETWORK_ID_TIMEOUT = SPINEL_PROP_THREAD_EXT__BEGIN + 4, 2583*cfb92d14SAndroid Build Coastguard Worker 2584*cfb92d14SAndroid Build Coastguard Worker /// List of active thread router ids 2585*cfb92d14SAndroid Build Coastguard Worker /** Format: `A(C)` 2586*cfb92d14SAndroid Build Coastguard Worker * 2587*cfb92d14SAndroid Build Coastguard Worker * Note that some implementations may not support CMD_GET_VALUE 2588*cfb92d14SAndroid Build Coastguard Worker * router ids, but may support CMD_REMOVE_VALUE when the node is 2589*cfb92d14SAndroid Build Coastguard Worker * a leader. 2590*cfb92d14SAndroid Build Coastguard Worker * 2591*cfb92d14SAndroid Build Coastguard Worker */ 2592*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_ACTIVE_ROUTER_IDS = SPINEL_PROP_THREAD_EXT__BEGIN + 5, 2593*cfb92d14SAndroid Build Coastguard Worker 2594*cfb92d14SAndroid Build Coastguard Worker /// Forward IPv6 packets that use RLOC16 addresses to HOST. 2595*cfb92d14SAndroid Build Coastguard Worker /** Format: `b` 2596*cfb92d14SAndroid Build Coastguard Worker * 2597*cfb92d14SAndroid Build Coastguard Worker * Allow host to directly observe all IPv6 packets received by the NCP, 2598*cfb92d14SAndroid Build Coastguard Worker * including ones sent to the RLOC16 address. 2599*cfb92d14SAndroid Build Coastguard Worker * 2600*cfb92d14SAndroid Build Coastguard Worker * Default is false. 2601*cfb92d14SAndroid Build Coastguard Worker * 2602*cfb92d14SAndroid Build Coastguard Worker */ 2603*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_RLOC16_DEBUG_PASSTHRU = SPINEL_PROP_THREAD_EXT__BEGIN + 6, 2604*cfb92d14SAndroid Build Coastguard Worker 2605*cfb92d14SAndroid Build Coastguard Worker /// Router Role Enabled 2606*cfb92d14SAndroid Build Coastguard Worker /** Format `b` 2607*cfb92d14SAndroid Build Coastguard Worker * 2608*cfb92d14SAndroid Build Coastguard Worker * Allows host to indicate whether or not the router role is enabled. 2609*cfb92d14SAndroid Build Coastguard Worker * If current role is a router, setting this property to `false` starts 2610*cfb92d14SAndroid Build Coastguard Worker * a re-attach process as an end-device. 2611*cfb92d14SAndroid Build Coastguard Worker * 2612*cfb92d14SAndroid Build Coastguard Worker */ 2613*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_ROUTER_ROLE_ENABLED = SPINEL_PROP_THREAD_EXT__BEGIN + 7, 2614*cfb92d14SAndroid Build Coastguard Worker 2615*cfb92d14SAndroid Build Coastguard Worker /// Thread Router Downgrade Threshold 2616*cfb92d14SAndroid Build Coastguard Worker /** Format: `C` 2617*cfb92d14SAndroid Build Coastguard Worker * 2618*cfb92d14SAndroid Build Coastguard Worker */ 2619*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_ROUTER_DOWNGRADE_THRESHOLD = SPINEL_PROP_THREAD_EXT__BEGIN + 8, 2620*cfb92d14SAndroid Build Coastguard Worker 2621*cfb92d14SAndroid Build Coastguard Worker /// Thread Router Selection Jitter 2622*cfb92d14SAndroid Build Coastguard Worker /** Format: `C` 2623*cfb92d14SAndroid Build Coastguard Worker * 2624*cfb92d14SAndroid Build Coastguard Worker */ 2625*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_ROUTER_SELECTION_JITTER = SPINEL_PROP_THREAD_EXT__BEGIN + 9, 2626*cfb92d14SAndroid Build Coastguard Worker 2627*cfb92d14SAndroid Build Coastguard Worker /// Thread Preferred Router Id 2628*cfb92d14SAndroid Build Coastguard Worker /** Format: `C` - Write only 2629*cfb92d14SAndroid Build Coastguard Worker * 2630*cfb92d14SAndroid Build Coastguard Worker * Specifies the preferred Router Id. Upon becoming a router/leader the node 2631*cfb92d14SAndroid Build Coastguard Worker * attempts to use this Router Id. If the preferred Router Id is not set or 2632*cfb92d14SAndroid Build Coastguard Worker * if it can not be used, a randomly generated router id is picked. This 2633*cfb92d14SAndroid Build Coastguard Worker * property can be set only when the device role is either detached or 2634*cfb92d14SAndroid Build Coastguard Worker * disabled. 2635*cfb92d14SAndroid Build Coastguard Worker * 2636*cfb92d14SAndroid Build Coastguard Worker */ 2637*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_PREFERRED_ROUTER_ID = SPINEL_PROP_THREAD_EXT__BEGIN + 10, 2638*cfb92d14SAndroid Build Coastguard Worker 2639*cfb92d14SAndroid Build Coastguard Worker /// Thread Neighbor Table 2640*cfb92d14SAndroid Build Coastguard Worker /** Format: `A(t(ESLCcCbLLc))` - Read only 2641*cfb92d14SAndroid Build Coastguard Worker * 2642*cfb92d14SAndroid Build Coastguard Worker * Data per item is: 2643*cfb92d14SAndroid Build Coastguard Worker * 2644*cfb92d14SAndroid Build Coastguard Worker * `E`: Extended address 2645*cfb92d14SAndroid Build Coastguard Worker * `S`: RLOC16 2646*cfb92d14SAndroid Build Coastguard Worker * `L`: Age (in seconds) 2647*cfb92d14SAndroid Build Coastguard Worker * `C`: Link Quality In 2648*cfb92d14SAndroid Build Coastguard Worker * `c`: Average RSS (in dBm) 2649*cfb92d14SAndroid Build Coastguard Worker * `C`: Mode (bit-flags) 2650*cfb92d14SAndroid Build Coastguard Worker * `b`: `true` if neighbor is a child, `false` otherwise. 2651*cfb92d14SAndroid Build Coastguard Worker * `L`: Link Frame Counter 2652*cfb92d14SAndroid Build Coastguard Worker * `L`: MLE Frame Counter 2653*cfb92d14SAndroid Build Coastguard Worker * `c`: The last RSSI (in dBm) 2654*cfb92d14SAndroid Build Coastguard Worker * 2655*cfb92d14SAndroid Build Coastguard Worker */ 2656*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_NEIGHBOR_TABLE = SPINEL_PROP_THREAD_EXT__BEGIN + 11, 2657*cfb92d14SAndroid Build Coastguard Worker 2658*cfb92d14SAndroid Build Coastguard Worker /// Thread Max Child Count 2659*cfb92d14SAndroid Build Coastguard Worker /** Format: `C` 2660*cfb92d14SAndroid Build Coastguard Worker * 2661*cfb92d14SAndroid Build Coastguard Worker * Specifies the maximum number of children currently allowed. 2662*cfb92d14SAndroid Build Coastguard Worker * This parameter can only be set when Thread protocol operation 2663*cfb92d14SAndroid Build Coastguard Worker * has been stopped. 2664*cfb92d14SAndroid Build Coastguard Worker * 2665*cfb92d14SAndroid Build Coastguard Worker */ 2666*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_CHILD_COUNT_MAX = SPINEL_PROP_THREAD_EXT__BEGIN + 12, 2667*cfb92d14SAndroid Build Coastguard Worker 2668*cfb92d14SAndroid Build Coastguard Worker /// Leader Network Data 2669*cfb92d14SAndroid Build Coastguard Worker /** Format: `D` - Read only 2670*cfb92d14SAndroid Build Coastguard Worker * 2671*cfb92d14SAndroid Build Coastguard Worker */ 2672*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_LEADER_NETWORK_DATA = SPINEL_PROP_THREAD_EXT__BEGIN + 13, 2673*cfb92d14SAndroid Build Coastguard Worker 2674*cfb92d14SAndroid Build Coastguard Worker /// Stable Leader Network Data 2675*cfb92d14SAndroid Build Coastguard Worker /** Format: `D` - Read only 2676*cfb92d14SAndroid Build Coastguard Worker * 2677*cfb92d14SAndroid Build Coastguard Worker */ 2678*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_STABLE_LEADER_NETWORK_DATA = SPINEL_PROP_THREAD_EXT__BEGIN + 14, 2679*cfb92d14SAndroid Build Coastguard Worker 2680*cfb92d14SAndroid Build Coastguard Worker /// Thread Joiner Data 2681*cfb92d14SAndroid Build Coastguard Worker /** Format `A(T(ULE))` 2682*cfb92d14SAndroid Build Coastguard Worker * PSKd, joiner timeout, eui64 (optional) 2683*cfb92d14SAndroid Build Coastguard Worker * 2684*cfb92d14SAndroid Build Coastguard Worker * This property is being deprecated by SPINEL_PROP_MESHCOP_COMMISSIONER_JOINERS. 2685*cfb92d14SAndroid Build Coastguard Worker * 2686*cfb92d14SAndroid Build Coastguard Worker */ 2687*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_JOINERS = SPINEL_PROP_THREAD_EXT__BEGIN + 15, 2688*cfb92d14SAndroid Build Coastguard Worker 2689*cfb92d14SAndroid Build Coastguard Worker /// Thread Commissioner Enable 2690*cfb92d14SAndroid Build Coastguard Worker /** Format `b` 2691*cfb92d14SAndroid Build Coastguard Worker * 2692*cfb92d14SAndroid Build Coastguard Worker * Default value is `false`. 2693*cfb92d14SAndroid Build Coastguard Worker * 2694*cfb92d14SAndroid Build Coastguard Worker * This property is being deprecated by SPINEL_PROP_MESHCOP_COMMISSIONER_STATE. 2695*cfb92d14SAndroid Build Coastguard Worker * 2696*cfb92d14SAndroid Build Coastguard Worker */ 2697*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_COMMISSIONER_ENABLED = SPINEL_PROP_THREAD_EXT__BEGIN + 16, 2698*cfb92d14SAndroid Build Coastguard Worker 2699*cfb92d14SAndroid Build Coastguard Worker /// Thread TMF proxy enable 2700*cfb92d14SAndroid Build Coastguard Worker /** Format `b` 2701*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_THREAD_TMF_PROXY` 2702*cfb92d14SAndroid Build Coastguard Worker * 2703*cfb92d14SAndroid Build Coastguard Worker * This property is deprecated. 2704*cfb92d14SAndroid Build Coastguard Worker * 2705*cfb92d14SAndroid Build Coastguard Worker */ 2706*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_TMF_PROXY_ENABLED = SPINEL_PROP_THREAD_EXT__BEGIN + 17, 2707*cfb92d14SAndroid Build Coastguard Worker 2708*cfb92d14SAndroid Build Coastguard Worker /// Thread TMF proxy stream 2709*cfb92d14SAndroid Build Coastguard Worker /** Format `dSS` 2710*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_THREAD_TMF_PROXY` 2711*cfb92d14SAndroid Build Coastguard Worker * 2712*cfb92d14SAndroid Build Coastguard Worker * This property is deprecated. Please see `SPINEL_PROP_THREAD_UDP_FORWARD_STREAM`. 2713*cfb92d14SAndroid Build Coastguard Worker * 2714*cfb92d14SAndroid Build Coastguard Worker */ 2715*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_TMF_PROXY_STREAM = SPINEL_PROP_THREAD_EXT__BEGIN + 18, 2716*cfb92d14SAndroid Build Coastguard Worker 2717*cfb92d14SAndroid Build Coastguard Worker /// Thread "joiner" flag used during discovery scan operation 2718*cfb92d14SAndroid Build Coastguard Worker /** Format `b` 2719*cfb92d14SAndroid Build Coastguard Worker * 2720*cfb92d14SAndroid Build Coastguard Worker * This property defines the Joiner Flag value in the Discovery Request TLV. 2721*cfb92d14SAndroid Build Coastguard Worker * 2722*cfb92d14SAndroid Build Coastguard Worker * Default value is `false`. 2723*cfb92d14SAndroid Build Coastguard Worker * 2724*cfb92d14SAndroid Build Coastguard Worker */ 2725*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_DISCOVERY_SCAN_JOINER_FLAG = SPINEL_PROP_THREAD_EXT__BEGIN + 19, 2726*cfb92d14SAndroid Build Coastguard Worker 2727*cfb92d14SAndroid Build Coastguard Worker /// Enable EUI64 filtering for discovery scan operation. 2728*cfb92d14SAndroid Build Coastguard Worker /** Format `b` 2729*cfb92d14SAndroid Build Coastguard Worker * 2730*cfb92d14SAndroid Build Coastguard Worker * Default value is `false` 2731*cfb92d14SAndroid Build Coastguard Worker * 2732*cfb92d14SAndroid Build Coastguard Worker */ 2733*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_DISCOVERY_SCAN_ENABLE_FILTERING = SPINEL_PROP_THREAD_EXT__BEGIN + 20, 2734*cfb92d14SAndroid Build Coastguard Worker 2735*cfb92d14SAndroid Build Coastguard Worker /// PANID used for Discovery scan operation (used for PANID filtering). 2736*cfb92d14SAndroid Build Coastguard Worker /** Format: `S` 2737*cfb92d14SAndroid Build Coastguard Worker * 2738*cfb92d14SAndroid Build Coastguard Worker * Default value is 0xffff (Broadcast PAN) to disable PANID filtering 2739*cfb92d14SAndroid Build Coastguard Worker * 2740*cfb92d14SAndroid Build Coastguard Worker */ 2741*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_DISCOVERY_SCAN_PANID = SPINEL_PROP_THREAD_EXT__BEGIN + 21, 2742*cfb92d14SAndroid Build Coastguard Worker 2743*cfb92d14SAndroid Build Coastguard Worker /// Thread (out of band) steering data for MLE Discovery Response. 2744*cfb92d14SAndroid Build Coastguard Worker /** Format `E` - Write only 2745*cfb92d14SAndroid Build Coastguard Worker * 2746*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_OOB_STEERING_DATA. 2747*cfb92d14SAndroid Build Coastguard Worker * 2748*cfb92d14SAndroid Build Coastguard Worker * Writing to this property allows to set/update the MLE 2749*cfb92d14SAndroid Build Coastguard Worker * Discovery Response steering data out of band. 2750*cfb92d14SAndroid Build Coastguard Worker * 2751*cfb92d14SAndroid Build Coastguard Worker * - All zeros to clear the steering data (indicating that 2752*cfb92d14SAndroid Build Coastguard Worker * there is no steering data). 2753*cfb92d14SAndroid Build Coastguard Worker * - All 0xFFs to set steering data/bloom filter to 2754*cfb92d14SAndroid Build Coastguard Worker * accept/allow all. 2755*cfb92d14SAndroid Build Coastguard Worker * - A specific EUI64 which is then added to current steering 2756*cfb92d14SAndroid Build Coastguard Worker * data/bloom filter. 2757*cfb92d14SAndroid Build Coastguard Worker * 2758*cfb92d14SAndroid Build Coastguard Worker */ 2759*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_STEERING_DATA = SPINEL_PROP_THREAD_EXT__BEGIN + 22, 2760*cfb92d14SAndroid Build Coastguard Worker 2761*cfb92d14SAndroid Build Coastguard Worker /// Thread Router Table. 2762*cfb92d14SAndroid Build Coastguard Worker /** Format: `A(t(ESCCCCCCb)` - Read only 2763*cfb92d14SAndroid Build Coastguard Worker * 2764*cfb92d14SAndroid Build Coastguard Worker * Data per item is: 2765*cfb92d14SAndroid Build Coastguard Worker * 2766*cfb92d14SAndroid Build Coastguard Worker * `E`: IEEE 802.15.4 Extended Address 2767*cfb92d14SAndroid Build Coastguard Worker * `S`: RLOC16 2768*cfb92d14SAndroid Build Coastguard Worker * `C`: Router ID 2769*cfb92d14SAndroid Build Coastguard Worker * `C`: Next hop to router 2770*cfb92d14SAndroid Build Coastguard Worker * `C`: Path cost to router 2771*cfb92d14SAndroid Build Coastguard Worker * `C`: Link Quality In 2772*cfb92d14SAndroid Build Coastguard Worker * `C`: Link Quality Out 2773*cfb92d14SAndroid Build Coastguard Worker * `C`: Age (seconds since last heard) 2774*cfb92d14SAndroid Build Coastguard Worker * `b`: Link established with Router ID or not. 2775*cfb92d14SAndroid Build Coastguard Worker * 2776*cfb92d14SAndroid Build Coastguard Worker */ 2777*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_ROUTER_TABLE = SPINEL_PROP_THREAD_EXT__BEGIN + 23, 2778*cfb92d14SAndroid Build Coastguard Worker 2779*cfb92d14SAndroid Build Coastguard Worker /// Thread Active Operational Dataset 2780*cfb92d14SAndroid Build Coastguard Worker /** Format: `A(t(iD))` - Read-Write 2781*cfb92d14SAndroid Build Coastguard Worker * 2782*cfb92d14SAndroid Build Coastguard Worker * This property provides access to current Thread Active Operational Dataset. A Thread device maintains the 2783*cfb92d14SAndroid Build Coastguard Worker * Operational Dataset that it has stored locally and the one currently in use by the partition to which it is 2784*cfb92d14SAndroid Build Coastguard Worker * attached. This property corresponds to the locally stored Dataset on the device. 2785*cfb92d14SAndroid Build Coastguard Worker * 2786*cfb92d14SAndroid Build Coastguard Worker * Operational Dataset consists of a set of supported properties (e.g., channel, network key, network name, PAN id, 2787*cfb92d14SAndroid Build Coastguard Worker * etc). Note that not all supported properties may be present (have a value) in a Dataset. 2788*cfb92d14SAndroid Build Coastguard Worker * 2789*cfb92d14SAndroid Build Coastguard Worker * The Dataset value is encoded as an array of structs containing pairs of property key (as `i`) followed by the 2790*cfb92d14SAndroid Build Coastguard Worker * property value (as `D`). The property value must follow the format associated with the corresponding property. 2791*cfb92d14SAndroid Build Coastguard Worker * 2792*cfb92d14SAndroid Build Coastguard Worker * On write, any unknown/unsupported property keys must be ignored. 2793*cfb92d14SAndroid Build Coastguard Worker * 2794*cfb92d14SAndroid Build Coastguard Worker * The following properties can be included in a Dataset list: 2795*cfb92d14SAndroid Build Coastguard Worker * 2796*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_DATASET_ACTIVE_TIMESTAMP 2797*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_PHY_CHAN 2798*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_PHY_CHAN_SUPPORTED (Channel Mask Page 0) 2799*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_NET_NETWORK_KEY 2800*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_NET_NETWORK_NAME 2801*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_NET_XPANID 2802*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_MAC_15_4_PANID 2803*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_IPV6_ML_PREFIX 2804*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_NET_PSKC 2805*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_DATASET_SECURITY_POLICY 2806*cfb92d14SAndroid Build Coastguard Worker * 2807*cfb92d14SAndroid Build Coastguard Worker */ 2808*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_ACTIVE_DATASET = SPINEL_PROP_THREAD_EXT__BEGIN + 24, 2809*cfb92d14SAndroid Build Coastguard Worker 2810*cfb92d14SAndroid Build Coastguard Worker /// Thread Pending Operational Dataset 2811*cfb92d14SAndroid Build Coastguard Worker /** Format: `A(t(iD))` - Read-Write 2812*cfb92d14SAndroid Build Coastguard Worker * 2813*cfb92d14SAndroid Build Coastguard Worker * This property provide access to current locally stored Pending Operational Dataset. 2814*cfb92d14SAndroid Build Coastguard Worker * 2815*cfb92d14SAndroid Build Coastguard Worker * The formatting of this property follows the same rules as in SPINEL_PROP_THREAD_ACTIVE_DATASET. 2816*cfb92d14SAndroid Build Coastguard Worker * 2817*cfb92d14SAndroid Build Coastguard Worker * In addition supported properties in SPINEL_PROP_THREAD_ACTIVE_DATASET, the following properties can also 2818*cfb92d14SAndroid Build Coastguard Worker * be included in the Pending Dataset: 2819*cfb92d14SAndroid Build Coastguard Worker * 2820*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_DATASET_PENDING_TIMESTAMP 2821*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_DATASET_DELAY_TIMER 2822*cfb92d14SAndroid Build Coastguard Worker * 2823*cfb92d14SAndroid Build Coastguard Worker */ 2824*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_PENDING_DATASET = SPINEL_PROP_THREAD_EXT__BEGIN + 25, 2825*cfb92d14SAndroid Build Coastguard Worker 2826*cfb92d14SAndroid Build Coastguard Worker /// Send MGMT_SET Thread Active Operational Dataset 2827*cfb92d14SAndroid Build Coastguard Worker /** Format: `A(t(iD))` - Write only 2828*cfb92d14SAndroid Build Coastguard Worker * 2829*cfb92d14SAndroid Build Coastguard Worker * The formatting of this property follows the same rules as in SPINEL_PROP_THREAD_ACTIVE_DATASET. 2830*cfb92d14SAndroid Build Coastguard Worker * 2831*cfb92d14SAndroid Build Coastguard Worker * This is write-only property. When written, it triggers a MGMT_ACTIVE_SET meshcop command to be sent to leader 2832*cfb92d14SAndroid Build Coastguard Worker * with the given Dataset. The spinel frame response should be a `LAST_STATUS` with the status of the transmission 2833*cfb92d14SAndroid Build Coastguard Worker * of MGMT_ACTIVE_SET command. 2834*cfb92d14SAndroid Build Coastguard Worker * 2835*cfb92d14SAndroid Build Coastguard Worker * In addition to supported properties in SPINEL_PROP_THREAD_ACTIVE_DATASET, the following property can be 2836*cfb92d14SAndroid Build Coastguard Worker * included in the Dataset (to allow for custom raw TLVs): 2837*cfb92d14SAndroid Build Coastguard Worker * 2838*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_DATASET_RAW_TLVS 2839*cfb92d14SAndroid Build Coastguard Worker * 2840*cfb92d14SAndroid Build Coastguard Worker */ 2841*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_MGMT_SET_ACTIVE_DATASET = SPINEL_PROP_THREAD_EXT__BEGIN + 26, 2842*cfb92d14SAndroid Build Coastguard Worker 2843*cfb92d14SAndroid Build Coastguard Worker /// Send MGMT_SET Thread Pending Operational Dataset 2844*cfb92d14SAndroid Build Coastguard Worker /** Format: `A(t(iD))` - Write only 2845*cfb92d14SAndroid Build Coastguard Worker * 2846*cfb92d14SAndroid Build Coastguard Worker * This property is similar to SPINEL_PROP_THREAD_PENDING_DATASET and follows the same format and rules. 2847*cfb92d14SAndroid Build Coastguard Worker * 2848*cfb92d14SAndroid Build Coastguard Worker * In addition to supported properties in SPINEL_PROP_THREAD_PENDING_DATASET, the following property can be 2849*cfb92d14SAndroid Build Coastguard Worker * included the Dataset (to allow for custom raw TLVs to be provided). 2850*cfb92d14SAndroid Build Coastguard Worker * 2851*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_DATASET_RAW_TLVS 2852*cfb92d14SAndroid Build Coastguard Worker * 2853*cfb92d14SAndroid Build Coastguard Worker */ 2854*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_MGMT_SET_PENDING_DATASET = SPINEL_PROP_THREAD_EXT__BEGIN + 27, 2855*cfb92d14SAndroid Build Coastguard Worker 2856*cfb92d14SAndroid Build Coastguard Worker /// Operational Dataset Active Timestamp 2857*cfb92d14SAndroid Build Coastguard Worker /** Format: `X` - No direct read or write 2858*cfb92d14SAndroid Build Coastguard Worker * 2859*cfb92d14SAndroid Build Coastguard Worker * It can only be included in one of the Dataset related properties below: 2860*cfb92d14SAndroid Build Coastguard Worker * 2861*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_THREAD_ACTIVE_DATASET 2862*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_THREAD_PENDING_DATASET 2863*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_THREAD_MGMT_SET_ACTIVE_DATASET 2864*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_THREAD_MGMT_SET_PENDING_DATASET 2865*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_THREAD_MGMT_GET_ACTIVE_DATASET 2866*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_THREAD_MGMT_GET_PENDING_DATASET 2867*cfb92d14SAndroid Build Coastguard Worker * 2868*cfb92d14SAndroid Build Coastguard Worker */ 2869*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_DATASET_ACTIVE_TIMESTAMP = SPINEL_PROP_THREAD_EXT__BEGIN + 28, 2870*cfb92d14SAndroid Build Coastguard Worker 2871*cfb92d14SAndroid Build Coastguard Worker /// Operational Dataset Pending Timestamp 2872*cfb92d14SAndroid Build Coastguard Worker /** Format: `X` - No direct read or write 2873*cfb92d14SAndroid Build Coastguard Worker * 2874*cfb92d14SAndroid Build Coastguard Worker * It can only be included in one of the Pending Dataset properties: 2875*cfb92d14SAndroid Build Coastguard Worker * 2876*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_THREAD_PENDING_DATASET 2877*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_THREAD_MGMT_SET_PENDING_DATASET 2878*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_THREAD_MGMT_GET_PENDING_DATASET 2879*cfb92d14SAndroid Build Coastguard Worker * 2880*cfb92d14SAndroid Build Coastguard Worker */ 2881*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_DATASET_PENDING_TIMESTAMP = SPINEL_PROP_THREAD_EXT__BEGIN + 29, 2882*cfb92d14SAndroid Build Coastguard Worker 2883*cfb92d14SAndroid Build Coastguard Worker /// Operational Dataset Delay Timer 2884*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` - No direct read or write 2885*cfb92d14SAndroid Build Coastguard Worker * 2886*cfb92d14SAndroid Build Coastguard Worker * Delay timer (in ms) specifies the time renaming until Thread devices overwrite the value in the Active 2887*cfb92d14SAndroid Build Coastguard Worker * Operational Dataset with the corresponding values in the Pending Operational Dataset. 2888*cfb92d14SAndroid Build Coastguard Worker * 2889*cfb92d14SAndroid Build Coastguard Worker * It can only be included in one of the Pending Dataset properties: 2890*cfb92d14SAndroid Build Coastguard Worker * 2891*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_THREAD_PENDING_DATASET 2892*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_THREAD_MGMT_SET_PENDING_DATASET 2893*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_THREAD_MGMT_GET_PENDING_DATASET 2894*cfb92d14SAndroid Build Coastguard Worker * 2895*cfb92d14SAndroid Build Coastguard Worker */ 2896*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_DATASET_DELAY_TIMER = SPINEL_PROP_THREAD_EXT__BEGIN + 30, 2897*cfb92d14SAndroid Build Coastguard Worker 2898*cfb92d14SAndroid Build Coastguard Worker /// Operational Dataset Security Policy 2899*cfb92d14SAndroid Build Coastguard Worker /** Format: `SD` - No direct read or write 2900*cfb92d14SAndroid Build Coastguard Worker * 2901*cfb92d14SAndroid Build Coastguard Worker * It can only be included in one of the Dataset related properties below: 2902*cfb92d14SAndroid Build Coastguard Worker * 2903*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_THREAD_ACTIVE_DATASET 2904*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_THREAD_PENDING_DATASET 2905*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_THREAD_MGMT_SET_ACTIVE_DATASET 2906*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_THREAD_MGMT_SET_PENDING_DATASET 2907*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_THREAD_MGMT_GET_ACTIVE_DATASET 2908*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_THREAD_MGMT_GET_PENDING_DATASET 2909*cfb92d14SAndroid Build Coastguard Worker * 2910*cfb92d14SAndroid Build Coastguard Worker * Content is 2911*cfb92d14SAndroid Build Coastguard Worker * `S` : Key Rotation Time (in units of hour) 2912*cfb92d14SAndroid Build Coastguard Worker * `C` : Security Policy Flags (as specified in Thread 1.1 Section 8.10.1.15) 2913*cfb92d14SAndroid Build Coastguard Worker * `C` : Optional Security Policy Flags extension (as specified in Thread 1.2 Section 8.10.1.15). 2914*cfb92d14SAndroid Build Coastguard Worker * 0xf8 is used if this field is missing. 2915*cfb92d14SAndroid Build Coastguard Worker * 2916*cfb92d14SAndroid Build Coastguard Worker */ 2917*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_DATASET_SECURITY_POLICY = SPINEL_PROP_THREAD_EXT__BEGIN + 31, 2918*cfb92d14SAndroid Build Coastguard Worker 2919*cfb92d14SAndroid Build Coastguard Worker /// Operational Dataset Additional Raw TLVs 2920*cfb92d14SAndroid Build Coastguard Worker /** Format: `D` - No direct read or write 2921*cfb92d14SAndroid Build Coastguard Worker * 2922*cfb92d14SAndroid Build Coastguard Worker * This property defines extra raw TLVs that can be added to an Operational DataSet. 2923*cfb92d14SAndroid Build Coastguard Worker * 2924*cfb92d14SAndroid Build Coastguard Worker * It can only be included in one of the following Dataset properties: 2925*cfb92d14SAndroid Build Coastguard Worker * 2926*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_THREAD_MGMT_SET_ACTIVE_DATASET 2927*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_THREAD_MGMT_SET_PENDING_DATASET 2928*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_THREAD_MGMT_GET_ACTIVE_DATASET 2929*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_THREAD_MGMT_GET_PENDING_DATASET 2930*cfb92d14SAndroid Build Coastguard Worker * 2931*cfb92d14SAndroid Build Coastguard Worker */ 2932*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_DATASET_RAW_TLVS = SPINEL_PROP_THREAD_EXT__BEGIN + 32, 2933*cfb92d14SAndroid Build Coastguard Worker 2934*cfb92d14SAndroid Build Coastguard Worker /// Child table addresses 2935*cfb92d14SAndroid Build Coastguard Worker /** Format: `A(t(ESA(6)))` - Read only 2936*cfb92d14SAndroid Build Coastguard Worker * 2937*cfb92d14SAndroid Build Coastguard Worker * This property provides the list of all addresses associated with every child 2938*cfb92d14SAndroid Build Coastguard Worker * including any registered IPv6 addresses. 2939*cfb92d14SAndroid Build Coastguard Worker * 2940*cfb92d14SAndroid Build Coastguard Worker * Data per item is: 2941*cfb92d14SAndroid Build Coastguard Worker * 2942*cfb92d14SAndroid Build Coastguard Worker * `E`: Extended address of the child 2943*cfb92d14SAndroid Build Coastguard Worker * `S`: RLOC16 of the child 2944*cfb92d14SAndroid Build Coastguard Worker * `A(6)`: List of IPv6 addresses registered by the child (if any) 2945*cfb92d14SAndroid Build Coastguard Worker * 2946*cfb92d14SAndroid Build Coastguard Worker */ 2947*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_CHILD_TABLE_ADDRESSES = SPINEL_PROP_THREAD_EXT__BEGIN + 33, 2948*cfb92d14SAndroid Build Coastguard Worker 2949*cfb92d14SAndroid Build Coastguard Worker /// Neighbor Table Frame and Message Error Rates 2950*cfb92d14SAndroid Build Coastguard Worker /** Format: `A(t(ESSScc))` 2951*cfb92d14SAndroid Build Coastguard Worker * Required capability: `CAP_ERROR_RATE_TRACKING` 2952*cfb92d14SAndroid Build Coastguard Worker * 2953*cfb92d14SAndroid Build Coastguard Worker * This property provides link quality related info including 2954*cfb92d14SAndroid Build Coastguard Worker * frame and (IPv6) message error rates for all neighbors. 2955*cfb92d14SAndroid Build Coastguard Worker * 2956*cfb92d14SAndroid Build Coastguard Worker * With regards to message error rate, note that a larger (IPv6) 2957*cfb92d14SAndroid Build Coastguard Worker * message can be fragmented and sent as multiple MAC frames. The 2958*cfb92d14SAndroid Build Coastguard Worker * message transmission is considered a failure, if any of its 2959*cfb92d14SAndroid Build Coastguard Worker * fragments fail after all MAC retry attempts. 2960*cfb92d14SAndroid Build Coastguard Worker * 2961*cfb92d14SAndroid Build Coastguard Worker * Data per item is: 2962*cfb92d14SAndroid Build Coastguard Worker * 2963*cfb92d14SAndroid Build Coastguard Worker * `E`: Extended address of the neighbor 2964*cfb92d14SAndroid Build Coastguard Worker * `S`: RLOC16 of the neighbor 2965*cfb92d14SAndroid Build Coastguard Worker * `S`: Frame error rate (0 -> 0%, 0xffff -> 100%) 2966*cfb92d14SAndroid Build Coastguard Worker * `S`: Message error rate (0 -> 0%, 0xffff -> 100%) 2967*cfb92d14SAndroid Build Coastguard Worker * `c`: Average RSSI (in dBm) 2968*cfb92d14SAndroid Build Coastguard Worker * `c`: Last RSSI (in dBm) 2969*cfb92d14SAndroid Build Coastguard Worker * 2970*cfb92d14SAndroid Build Coastguard Worker */ 2971*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_NEIGHBOR_TABLE_ERROR_RATES = SPINEL_PROP_THREAD_EXT__BEGIN + 34, 2972*cfb92d14SAndroid Build Coastguard Worker 2973*cfb92d14SAndroid Build Coastguard Worker /// EID (Endpoint Identifier) IPv6 Address Cache Table 2974*cfb92d14SAndroid Build Coastguard Worker /** Format `A(t(6SCCt(bL6)t(bSS))) 2975*cfb92d14SAndroid Build Coastguard Worker * 2976*cfb92d14SAndroid Build Coastguard Worker * This property provides Thread EID address cache table. 2977*cfb92d14SAndroid Build Coastguard Worker * 2978*cfb92d14SAndroid Build Coastguard Worker * Data per item is: 2979*cfb92d14SAndroid Build Coastguard Worker * 2980*cfb92d14SAndroid Build Coastguard Worker * `6` : Target IPv6 address 2981*cfb92d14SAndroid Build Coastguard Worker * `S` : RLOC16 of target 2982*cfb92d14SAndroid Build Coastguard Worker * `C` : Age (order of use, 0 indicates most recently used entry) 2983*cfb92d14SAndroid Build Coastguard Worker * `C` : Entry state (values are defined by enumeration `SPINEL_ADDRESS_CACHE_ENTRY_STATE_*`). 2984*cfb92d14SAndroid Build Coastguard Worker * 2985*cfb92d14SAndroid Build Coastguard Worker * `t` : Info when state is `SPINEL_ADDRESS_CACHE_ENTRY_STATE_CACHED` 2986*cfb92d14SAndroid Build Coastguard Worker * `b` : Indicates whether last transaction time and ML-EID are valid. 2987*cfb92d14SAndroid Build Coastguard Worker * `L` : Last transaction time 2988*cfb92d14SAndroid Build Coastguard Worker * `6` : Mesh-local EID 2989*cfb92d14SAndroid Build Coastguard Worker * 2990*cfb92d14SAndroid Build Coastguard Worker * `t` : Info when state is other than `SPINEL_ADDRESS_CACHE_ENTRY_STATE_CACHED` 2991*cfb92d14SAndroid Build Coastguard Worker * `b` : Indicates whether the entry can be evicted. 2992*cfb92d14SAndroid Build Coastguard Worker * `S` : Timeout in seconds 2993*cfb92d14SAndroid Build Coastguard Worker * `S` : Retry delay (applicable if in query-retry state). 2994*cfb92d14SAndroid Build Coastguard Worker * 2995*cfb92d14SAndroid Build Coastguard Worker */ 2996*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_ADDRESS_CACHE_TABLE = SPINEL_PROP_THREAD_EXT__BEGIN + 35, 2997*cfb92d14SAndroid Build Coastguard Worker 2998*cfb92d14SAndroid Build Coastguard Worker /// Thread UDP forward stream 2999*cfb92d14SAndroid Build Coastguard Worker /** Format `dS6S` 3000*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_THREAD_UDP_FORWARD` 3001*cfb92d14SAndroid Build Coastguard Worker * 3002*cfb92d14SAndroid Build Coastguard Worker * This property helps exchange UDP packets with host. 3003*cfb92d14SAndroid Build Coastguard Worker * 3004*cfb92d14SAndroid Build Coastguard Worker * `d`: UDP payload 3005*cfb92d14SAndroid Build Coastguard Worker * `S`: Remote UDP port 3006*cfb92d14SAndroid Build Coastguard Worker * `6`: Remote IPv6 address 3007*cfb92d14SAndroid Build Coastguard Worker * `S`: Local UDP port 3008*cfb92d14SAndroid Build Coastguard Worker * 3009*cfb92d14SAndroid Build Coastguard Worker */ 3010*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_UDP_FORWARD_STREAM = SPINEL_PROP_THREAD_EXT__BEGIN + 36, 3011*cfb92d14SAndroid Build Coastguard Worker 3012*cfb92d14SAndroid Build Coastguard Worker /// Send MGMT_GET Thread Active Operational Dataset 3013*cfb92d14SAndroid Build Coastguard Worker /** Format: `A(t(iD))` - Write only 3014*cfb92d14SAndroid Build Coastguard Worker * 3015*cfb92d14SAndroid Build Coastguard Worker * The formatting of this property follows the same rules as in SPINEL_PROP_THREAD_MGMT_SET_ACTIVE_DATASET. This 3016*cfb92d14SAndroid Build Coastguard Worker * property further allows the sender to not include a value associated with properties in formatting of `t(iD)`, 3017*cfb92d14SAndroid Build Coastguard Worker * i.e., it should accept either a `t(iD)` or a `t(i)` encoding (in both cases indicating that the associated 3018*cfb92d14SAndroid Build Coastguard Worker * Dataset property should be requested as part of MGMT_GET command). 3019*cfb92d14SAndroid Build Coastguard Worker * 3020*cfb92d14SAndroid Build Coastguard Worker * This is write-only property. When written, it triggers a MGMT_ACTIVE_GET meshcop command to be sent to leader 3021*cfb92d14SAndroid Build Coastguard Worker * requesting the Dataset related properties from the format. The spinel frame response should be a `LAST_STATUS` 3022*cfb92d14SAndroid Build Coastguard Worker * with the status of the transmission of MGMT_ACTIVE_GET command. 3023*cfb92d14SAndroid Build Coastguard Worker * 3024*cfb92d14SAndroid Build Coastguard Worker * In addition to supported properties in SPINEL_PROP_THREAD_MGMT_SET_ACTIVE_DATASET, the following property can be 3025*cfb92d14SAndroid Build Coastguard Worker * optionally included in the Dataset: 3026*cfb92d14SAndroid Build Coastguard Worker * 3027*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_DATASET_DEST_ADDRESS 3028*cfb92d14SAndroid Build Coastguard Worker * 3029*cfb92d14SAndroid Build Coastguard Worker */ 3030*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_MGMT_GET_ACTIVE_DATASET = SPINEL_PROP_THREAD_EXT__BEGIN + 37, 3031*cfb92d14SAndroid Build Coastguard Worker 3032*cfb92d14SAndroid Build Coastguard Worker /// Send MGMT_GET Thread Pending Operational Dataset 3033*cfb92d14SAndroid Build Coastguard Worker /** Format: `A(t(iD))` - Write only 3034*cfb92d14SAndroid Build Coastguard Worker * 3035*cfb92d14SAndroid Build Coastguard Worker * The formatting of this property follows the same rules as in SPINEL_PROP_THREAD_MGMT_GET_ACTIVE_DATASET. 3036*cfb92d14SAndroid Build Coastguard Worker * 3037*cfb92d14SAndroid Build Coastguard Worker * This is write-only property. When written, it triggers a MGMT_PENDING_GET meshcop command to be sent to leader 3038*cfb92d14SAndroid Build Coastguard Worker * with the given Dataset. The spinel frame response should be a `LAST_STATUS` with the status of the transmission 3039*cfb92d14SAndroid Build Coastguard Worker * of MGMT_PENDING_GET command. 3040*cfb92d14SAndroid Build Coastguard Worker * 3041*cfb92d14SAndroid Build Coastguard Worker */ 3042*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_MGMT_GET_PENDING_DATASET = SPINEL_PROP_THREAD_EXT__BEGIN + 38, 3043*cfb92d14SAndroid Build Coastguard Worker 3044*cfb92d14SAndroid Build Coastguard Worker /// Operational Dataset (MGMT_GET) Destination IPv6 Address 3045*cfb92d14SAndroid Build Coastguard Worker /** Format: `6` - No direct read or write 3046*cfb92d14SAndroid Build Coastguard Worker * 3047*cfb92d14SAndroid Build Coastguard Worker * This property specifies the IPv6 destination when sending MGMT_GET command for either Active or Pending Dataset 3048*cfb92d14SAndroid Build Coastguard Worker * if not provided, Leader ALOC address is used as default. 3049*cfb92d14SAndroid Build Coastguard Worker * 3050*cfb92d14SAndroid Build Coastguard Worker * It can only be included in one of the MGMT_GET Dataset properties: 3051*cfb92d14SAndroid Build Coastguard Worker * 3052*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_THREAD_MGMT_GET_ACTIVE_DATASET 3053*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_THREAD_MGMT_GET_PENDING_DATASET 3054*cfb92d14SAndroid Build Coastguard Worker * 3055*cfb92d14SAndroid Build Coastguard Worker */ 3056*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_DATASET_DEST_ADDRESS = SPINEL_PROP_THREAD_EXT__BEGIN + 39, 3057*cfb92d14SAndroid Build Coastguard Worker 3058*cfb92d14SAndroid Build Coastguard Worker /// Thread New Operational Dataset 3059*cfb92d14SAndroid Build Coastguard Worker /** Format: `A(t(iD))` - Read only - FTD build only 3060*cfb92d14SAndroid Build Coastguard Worker * 3061*cfb92d14SAndroid Build Coastguard Worker * This property allows host to request NCP to create and return a new Operation Dataset to use when forming a new 3062*cfb92d14SAndroid Build Coastguard Worker * network. 3063*cfb92d14SAndroid Build Coastguard Worker * 3064*cfb92d14SAndroid Build Coastguard Worker * Operational Dataset consists of a set of supported properties (e.g., channel, network key, network name, PAN id, 3065*cfb92d14SAndroid Build Coastguard Worker * etc). Note that not all supported properties may be present (have a value) in a Dataset. 3066*cfb92d14SAndroid Build Coastguard Worker * 3067*cfb92d14SAndroid Build Coastguard Worker * The Dataset value is encoded as an array of structs containing pairs of property key (as `i`) followed by the 3068*cfb92d14SAndroid Build Coastguard Worker * property value (as `D`). The property value must follow the format associated with the corresponding property. 3069*cfb92d14SAndroid Build Coastguard Worker * 3070*cfb92d14SAndroid Build Coastguard Worker * The following properties can be included in a Dataset list: 3071*cfb92d14SAndroid Build Coastguard Worker * 3072*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_DATASET_ACTIVE_TIMESTAMP 3073*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_PHY_CHAN 3074*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_PHY_CHAN_SUPPORTED (Channel Mask Page 0) 3075*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_NET_NETWORK_KEY 3076*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_NET_NETWORK_NAME 3077*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_NET_XPANID 3078*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_MAC_15_4_PANID 3079*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_IPV6_ML_PREFIX 3080*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_NET_PSKC 3081*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_DATASET_SECURITY_POLICY 3082*cfb92d14SAndroid Build Coastguard Worker * 3083*cfb92d14SAndroid Build Coastguard Worker */ 3084*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_NEW_DATASET = SPINEL_PROP_THREAD_EXT__BEGIN + 40, 3085*cfb92d14SAndroid Build Coastguard Worker 3086*cfb92d14SAndroid Build Coastguard Worker /// MAC CSL Period 3087*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` 3088*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_THREAD_CSL_RECEIVER` 3089*cfb92d14SAndroid Build Coastguard Worker * 3090*cfb92d14SAndroid Build Coastguard Worker * The CSL period in microseconds. Value of 0 indicates that CSL should be disabled. 3091*cfb92d14SAndroid Build Coastguard Worker * 3092*cfb92d14SAndroid Build Coastguard Worker * The CSL period MUST be a multiple of 160 (which is 802.15 "ten symbols time"). 3093*cfb92d14SAndroid Build Coastguard Worker * 3094*cfb92d14SAndroid Build Coastguard Worker */ 3095*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_CSL_PERIOD = SPINEL_PROP_THREAD_EXT__BEGIN + 41, 3096*cfb92d14SAndroid Build Coastguard Worker 3097*cfb92d14SAndroid Build Coastguard Worker /// MAC CSL Timeout 3098*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` 3099*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_THREAD_CSL_RECEIVER` 3100*cfb92d14SAndroid Build Coastguard Worker * 3101*cfb92d14SAndroid Build Coastguard Worker * The CSL timeout in seconds. 3102*cfb92d14SAndroid Build Coastguard Worker */ 3103*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_CSL_TIMEOUT = SPINEL_PROP_THREAD_EXT__BEGIN + 42, 3104*cfb92d14SAndroid Build Coastguard Worker 3105*cfb92d14SAndroid Build Coastguard Worker /// MAC CSL Channel 3106*cfb92d14SAndroid Build Coastguard Worker /** Format: `C` 3107*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_THREAD_CSL_RECEIVER` 3108*cfb92d14SAndroid Build Coastguard Worker * 3109*cfb92d14SAndroid Build Coastguard Worker * The CSL channel as described in chapter 4.6.5.1.2 of the Thread v1.2.0 Specification. 3110*cfb92d14SAndroid Build Coastguard Worker * Value of 0 means that CSL reception (if enabled) occurs on the Thread Network channel. 3111*cfb92d14SAndroid Build Coastguard Worker * Value from range [11,26] is an alternative channel on which a CSL reception occurs. 3112*cfb92d14SAndroid Build Coastguard Worker */ 3113*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_CSL_CHANNEL = SPINEL_PROP_THREAD_EXT__BEGIN + 43, 3114*cfb92d14SAndroid Build Coastguard Worker 3115*cfb92d14SAndroid Build Coastguard Worker /// Thread Domain Name 3116*cfb92d14SAndroid Build Coastguard Worker /** Format `U` - Read-write 3117*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_NET_THREAD_1_2` 3118*cfb92d14SAndroid Build Coastguard Worker * 3119*cfb92d14SAndroid Build Coastguard Worker * This property is available since Thread 1.2.0. 3120*cfb92d14SAndroid Build Coastguard Worker * Write to this property succeeds only when Thread protocols are disabled. 3121*cfb92d14SAndroid Build Coastguard Worker * 3122*cfb92d14SAndroid Build Coastguard Worker */ 3123*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_DOMAIN_NAME = SPINEL_PROP_THREAD_EXT__BEGIN + 44, 3124*cfb92d14SAndroid Build Coastguard Worker 3125*cfb92d14SAndroid Build Coastguard Worker /// Link metrics query 3126*cfb92d14SAndroid Build Coastguard Worker /** Format: `6CC` - Write-Only 3127*cfb92d14SAndroid Build Coastguard Worker * 3128*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_THREAD_LINK_METRICS` 3129*cfb92d14SAndroid Build Coastguard Worker * 3130*cfb92d14SAndroid Build Coastguard Worker * `6` : IPv6 destination address 3131*cfb92d14SAndroid Build Coastguard Worker * `C` : Series id (0 for Single Probe) 3132*cfb92d14SAndroid Build Coastguard Worker * `C` : List of requested metric ids encoded as bit fields in single byte 3133*cfb92d14SAndroid Build Coastguard Worker * 3134*cfb92d14SAndroid Build Coastguard Worker * +---------------+----+ 3135*cfb92d14SAndroid Build Coastguard Worker * | Metric | Id | 3136*cfb92d14SAndroid Build Coastguard Worker * +---------------+----+ 3137*cfb92d14SAndroid Build Coastguard Worker * | Received PDUs | 0 | 3138*cfb92d14SAndroid Build Coastguard Worker * | LQI | 1 | 3139*cfb92d14SAndroid Build Coastguard Worker * | Link margin | 2 | 3140*cfb92d14SAndroid Build Coastguard Worker * | RSSI | 3 | 3141*cfb92d14SAndroid Build Coastguard Worker * +---------------+----+ 3142*cfb92d14SAndroid Build Coastguard Worker * 3143*cfb92d14SAndroid Build Coastguard Worker * If the query succeeds, the NCP will send a result to the Host using 3144*cfb92d14SAndroid Build Coastguard Worker * @ref SPINEL_PROP_THREAD_LINK_METRICS_QUERY_RESULT. 3145*cfb92d14SAndroid Build Coastguard Worker * 3146*cfb92d14SAndroid Build Coastguard Worker */ 3147*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_LINK_METRICS_QUERY = SPINEL_PROP_THREAD_EXT__BEGIN + 45, 3148*cfb92d14SAndroid Build Coastguard Worker 3149*cfb92d14SAndroid Build Coastguard Worker /// Link metrics query result 3150*cfb92d14SAndroid Build Coastguard Worker /** Format: `6Ct(A(t(CD)))` - Unsolicited notifications only 3151*cfb92d14SAndroid Build Coastguard Worker * 3152*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_THREAD_LINK_METRICS` 3153*cfb92d14SAndroid Build Coastguard Worker * 3154*cfb92d14SAndroid Build Coastguard Worker * `6` : IPv6 destination address 3155*cfb92d14SAndroid Build Coastguard Worker * `C` : Status 3156*cfb92d14SAndroid Build Coastguard Worker * `t(A(t(CD)))` : Array of structs encoded as following: 3157*cfb92d14SAndroid Build Coastguard Worker * `C` : Metric id 3158*cfb92d14SAndroid Build Coastguard Worker * `D` : Metric value 3159*cfb92d14SAndroid Build Coastguard Worker * 3160*cfb92d14SAndroid Build Coastguard Worker * +---------------+----+----------------+ 3161*cfb92d14SAndroid Build Coastguard Worker * | Metric | Id | Value format | 3162*cfb92d14SAndroid Build Coastguard Worker * +---------------+----+----------------+ 3163*cfb92d14SAndroid Build Coastguard Worker * | Received PDUs | 0 | `L` (uint32_t) | 3164*cfb92d14SAndroid Build Coastguard Worker * | LQI | 1 | `C` (uint8_t) | 3165*cfb92d14SAndroid Build Coastguard Worker * | Link margin | 2 | `C` (uint8_t) | 3166*cfb92d14SAndroid Build Coastguard Worker * | RSSI | 3 | `c` (int8_t) | 3167*cfb92d14SAndroid Build Coastguard Worker * +---------------+----+----------------+ 3168*cfb92d14SAndroid Build Coastguard Worker * 3169*cfb92d14SAndroid Build Coastguard Worker */ 3170*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_LINK_METRICS_QUERY_RESULT = SPINEL_PROP_THREAD_EXT__BEGIN + 46, 3171*cfb92d14SAndroid Build Coastguard Worker 3172*cfb92d14SAndroid Build Coastguard Worker /// Link metrics probe 3173*cfb92d14SAndroid Build Coastguard Worker /** Format `6CC` - Write only 3174*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_THREAD_LINK_METRICS` 3175*cfb92d14SAndroid Build Coastguard Worker * 3176*cfb92d14SAndroid Build Coastguard Worker * Send a MLE Link Probe message to the peer. 3177*cfb92d14SAndroid Build Coastguard Worker * 3178*cfb92d14SAndroid Build Coastguard Worker * `6` : IPv6 destination address 3179*cfb92d14SAndroid Build Coastguard Worker * `C` : The Series ID for which this Probe message targets at 3180*cfb92d14SAndroid Build Coastguard Worker * `C` : The length of the Probe message, valid range: [0, 64] 3181*cfb92d14SAndroid Build Coastguard Worker * 3182*cfb92d14SAndroid Build Coastguard Worker */ 3183*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_LINK_METRICS_PROBE = SPINEL_PROP_THREAD_EXT__BEGIN + 47, 3184*cfb92d14SAndroid Build Coastguard Worker 3185*cfb92d14SAndroid Build Coastguard Worker /// Link metrics Enhanced-ACK Based Probing management 3186*cfb92d14SAndroid Build Coastguard Worker /** Format: 6Cd - Write only 3187*cfb92d14SAndroid Build Coastguard Worker * 3188*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_THREAD_LINK_METRICS` 3189*cfb92d14SAndroid Build Coastguard Worker * 3190*cfb92d14SAndroid Build Coastguard Worker * `6` : IPv6 destination address 3191*cfb92d14SAndroid Build Coastguard Worker * `C` : Indicate whether to register or clear the probing. `0` - clear, `1` - register 3192*cfb92d14SAndroid Build Coastguard Worker * `C` : List of requested metric ids encoded as bit fields in single byte 3193*cfb92d14SAndroid Build Coastguard Worker * 3194*cfb92d14SAndroid Build Coastguard Worker * +---------------+----+ 3195*cfb92d14SAndroid Build Coastguard Worker * | Metric | Id | 3196*cfb92d14SAndroid Build Coastguard Worker * +---------------+----+ 3197*cfb92d14SAndroid Build Coastguard Worker * | LQI | 1 | 3198*cfb92d14SAndroid Build Coastguard Worker * | Link margin | 2 | 3199*cfb92d14SAndroid Build Coastguard Worker * | RSSI | 3 | 3200*cfb92d14SAndroid Build Coastguard Worker * +---------------+----+ 3201*cfb92d14SAndroid Build Coastguard Worker * 3202*cfb92d14SAndroid Build Coastguard Worker * Result of configuration is reported asynchronously to the Host using the 3203*cfb92d14SAndroid Build Coastguard Worker * @ref SPINEL_PROP_THREAD_LINK_METRICS_MGMT_RESPONSE. 3204*cfb92d14SAndroid Build Coastguard Worker * 3205*cfb92d14SAndroid Build Coastguard Worker * Whenever Enh-ACK IE report is received it is passed to the Host using the 3206*cfb92d14SAndroid Build Coastguard Worker * @ref SPINEL_PROP_THREAD_LINK_METRICS_MGMT_ENH_ACK_IE property. 3207*cfb92d14SAndroid Build Coastguard Worker * 3208*cfb92d14SAndroid Build Coastguard Worker */ 3209*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_LINK_METRICS_MGMT_ENH_ACK = SPINEL_PROP_THREAD_EXT__BEGIN + 48, 3210*cfb92d14SAndroid Build Coastguard Worker 3211*cfb92d14SAndroid Build Coastguard Worker /// Link metrics Enhanced-ACK Based Probing IE report 3212*cfb92d14SAndroid Build Coastguard Worker /** Format: SEA(t(CD)) - Unsolicited notifications only 3213*cfb92d14SAndroid Build Coastguard Worker * 3214*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_THREAD_LINK_METRICS` 3215*cfb92d14SAndroid Build Coastguard Worker * 3216*cfb92d14SAndroid Build Coastguard Worker * `S` : Short address of the Probing Subject 3217*cfb92d14SAndroid Build Coastguard Worker * `E` : Extended address of the Probing Subject 3218*cfb92d14SAndroid Build Coastguard Worker * `t(A(t(CD)))` : Struct that contains array of structs encoded as following: 3219*cfb92d14SAndroid Build Coastguard Worker * `C` : Metric id 3220*cfb92d14SAndroid Build Coastguard Worker * `D` : Metric value 3221*cfb92d14SAndroid Build Coastguard Worker * 3222*cfb92d14SAndroid Build Coastguard Worker * +---------------+----+----------------+ 3223*cfb92d14SAndroid Build Coastguard Worker * | Metric | Id | Value format | 3224*cfb92d14SAndroid Build Coastguard Worker * +---------------+----+----------------+ 3225*cfb92d14SAndroid Build Coastguard Worker * | LQI | 1 | `C` (uint8_t) | 3226*cfb92d14SAndroid Build Coastguard Worker * | Link margin | 2 | `C` (uint8_t) | 3227*cfb92d14SAndroid Build Coastguard Worker * | RSSI | 3 | `c` (int8_t) | 3228*cfb92d14SAndroid Build Coastguard Worker * +---------------+----+----------------+ 3229*cfb92d14SAndroid Build Coastguard Worker * 3230*cfb92d14SAndroid Build Coastguard Worker */ 3231*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_LINK_METRICS_MGMT_ENH_ACK_IE = SPINEL_PROP_THREAD_EXT__BEGIN + 49, 3232*cfb92d14SAndroid Build Coastguard Worker 3233*cfb92d14SAndroid Build Coastguard Worker /// Link metrics Forward Tracking Series management 3234*cfb92d14SAndroid Build Coastguard Worker /** Format: 6CCC - Write only 3235*cfb92d14SAndroid Build Coastguard Worker * 3236*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_THREAD_LINK_METRICS` 3237*cfb92d14SAndroid Build Coastguard Worker * 3238*cfb92d14SAndroid Build Coastguard Worker * `6` : IPv6 destination address 3239*cfb92d14SAndroid Build Coastguard Worker * `C` : Series id 3240*cfb92d14SAndroid Build Coastguard Worker * `C` : Tracked frame types encoded as bit fields in single byte, if equal to zero, 3241*cfb92d14SAndroid Build Coastguard Worker * accounting is stopped and a series is removed 3242*cfb92d14SAndroid Build Coastguard Worker * `C` : Requested metric ids encoded as bit fields in single byte 3243*cfb92d14SAndroid Build Coastguard Worker * 3244*cfb92d14SAndroid Build Coastguard Worker * +------------------+----+ 3245*cfb92d14SAndroid Build Coastguard Worker * | Frame type | Id | 3246*cfb92d14SAndroid Build Coastguard Worker * +------------------+----+ 3247*cfb92d14SAndroid Build Coastguard Worker * | MLE Link Probe | 0 | 3248*cfb92d14SAndroid Build Coastguard Worker * | MAC Data | 1 | 3249*cfb92d14SAndroid Build Coastguard Worker * | MAC Data Request | 2 | 3250*cfb92d14SAndroid Build Coastguard Worker * | MAC ACK | 3 | 3251*cfb92d14SAndroid Build Coastguard Worker * +------------------+----+ 3252*cfb92d14SAndroid Build Coastguard Worker * 3253*cfb92d14SAndroid Build Coastguard Worker * +---------------+----+ 3254*cfb92d14SAndroid Build Coastguard Worker * | Metric | Id | 3255*cfb92d14SAndroid Build Coastguard Worker * +---------------+----+ 3256*cfb92d14SAndroid Build Coastguard Worker * | Received PDUs | 0 | 3257*cfb92d14SAndroid Build Coastguard Worker * | LQI | 1 | 3258*cfb92d14SAndroid Build Coastguard Worker * | Link margin | 2 | 3259*cfb92d14SAndroid Build Coastguard Worker * | RSSI | 3 | 3260*cfb92d14SAndroid Build Coastguard Worker * +---------------+----+ 3261*cfb92d14SAndroid Build Coastguard Worker * 3262*cfb92d14SAndroid Build Coastguard Worker * Result of configuration is reported asynchronously to the Host using the 3263*cfb92d14SAndroid Build Coastguard Worker * @ref SPINEL_PROP_THREAD_LINK_METRICS_MGMT_RESPONSE. 3264*cfb92d14SAndroid Build Coastguard Worker * 3265*cfb92d14SAndroid Build Coastguard Worker */ 3266*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_LINK_METRICS_MGMT_FORWARD = SPINEL_PROP_THREAD_EXT__BEGIN + 50, 3267*cfb92d14SAndroid Build Coastguard Worker 3268*cfb92d14SAndroid Build Coastguard Worker /// Link metrics management response 3269*cfb92d14SAndroid Build Coastguard Worker /** Format: 6C - Unsolicited notifications only 3270*cfb92d14SAndroid Build Coastguard Worker * 3271*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_THREAD_LINK_METRICS` 3272*cfb92d14SAndroid Build Coastguard Worker * 3273*cfb92d14SAndroid Build Coastguard Worker * `6` : IPv6 source address 3274*cfb92d14SAndroid Build Coastguard Worker * `C` : Received status 3275*cfb92d14SAndroid Build Coastguard Worker * 3276*cfb92d14SAndroid Build Coastguard Worker */ 3277*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_LINK_METRICS_MGMT_RESPONSE = SPINEL_PROP_THREAD_EXT__BEGIN + 51, 3278*cfb92d14SAndroid Build Coastguard Worker 3279*cfb92d14SAndroid Build Coastguard Worker /// Multicast Listeners Register Request 3280*cfb92d14SAndroid Build Coastguard Worker /** Format `t(A(6))A(t(CD))` - Write-only 3281*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_NET_THREAD_1_2` 3282*cfb92d14SAndroid Build Coastguard Worker * 3283*cfb92d14SAndroid Build Coastguard Worker * `t(A(6))`: Array of IPv6 multicast addresses 3284*cfb92d14SAndroid Build Coastguard Worker * `A(t(CD))`: Array of structs holding optional parameters as follows 3285*cfb92d14SAndroid Build Coastguard Worker * `C`: Parameter id 3286*cfb92d14SAndroid Build Coastguard Worker * `D`: Parameter value 3287*cfb92d14SAndroid Build Coastguard Worker * 3288*cfb92d14SAndroid Build Coastguard Worker * +----------------------------------------------------------------+ 3289*cfb92d14SAndroid Build Coastguard Worker * | Id: SPINEL_THREAD_MLR_PARAMID_TIMEOUT | 3290*cfb92d14SAndroid Build Coastguard Worker * | Type: `L` | 3291*cfb92d14SAndroid Build Coastguard Worker * | Description: Timeout in seconds. If this optional parameter is | 3292*cfb92d14SAndroid Build Coastguard Worker * | omitted, the default value of the BBR will be used. | 3293*cfb92d14SAndroid Build Coastguard Worker * | Special values: | 3294*cfb92d14SAndroid Build Coastguard Worker * | 0 causes given addresses to be removed | 3295*cfb92d14SAndroid Build Coastguard Worker * | 0xFFFFFFFF is permanent and persistent registration | 3296*cfb92d14SAndroid Build Coastguard Worker * +----------------------------------------------------------------+ 3297*cfb92d14SAndroid Build Coastguard Worker * 3298*cfb92d14SAndroid Build Coastguard Worker * Write to this property initiates update of Multicast Listeners Table on the primary BBR. 3299*cfb92d14SAndroid Build Coastguard Worker * If the write succeeded, the result of network operation will be notified later by the 3300*cfb92d14SAndroid Build Coastguard Worker * SPINEL_PROP_THREAD_MLR_RESPONSE property. If the write fails, no MLR.req is issued and 3301*cfb92d14SAndroid Build Coastguard Worker * notification through the SPINEL_PROP_THREAD_MLR_RESPONSE property will not occur. 3302*cfb92d14SAndroid Build Coastguard Worker * 3303*cfb92d14SAndroid Build Coastguard Worker */ 3304*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_MLR_REQUEST = SPINEL_PROP_THREAD_EXT__BEGIN + 52, 3305*cfb92d14SAndroid Build Coastguard Worker 3306*cfb92d14SAndroid Build Coastguard Worker /// Multicast Listeners Register Response 3307*cfb92d14SAndroid Build Coastguard Worker /** Format `CCt(A(6))` - Unsolicited notifications only 3308*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_NET_THREAD_1_2` 3309*cfb92d14SAndroid Build Coastguard Worker * 3310*cfb92d14SAndroid Build Coastguard Worker * `C`: Status 3311*cfb92d14SAndroid Build Coastguard Worker * `C`: MlrStatus (The Multicast Listener Registration Status) 3312*cfb92d14SAndroid Build Coastguard Worker * `A(6)`: Array of IPv6 addresses that failed to be updated on the primary BBR 3313*cfb92d14SAndroid Build Coastguard Worker * 3314*cfb92d14SAndroid Build Coastguard Worker * This property is notified asynchronously when the NCP receives MLR.rsp following 3315*cfb92d14SAndroid Build Coastguard Worker * previous write to the SPINEL_PROP_THREAD_MLR_REQUEST property. 3316*cfb92d14SAndroid Build Coastguard Worker */ 3317*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_MLR_RESPONSE = SPINEL_PROP_THREAD_EXT__BEGIN + 53, 3318*cfb92d14SAndroid Build Coastguard Worker 3319*cfb92d14SAndroid Build Coastguard Worker /// Interface Identifier specified for Thread Domain Unicast Address. 3320*cfb92d14SAndroid Build Coastguard Worker /** Format: `A(C)` - Read-write 3321*cfb92d14SAndroid Build Coastguard Worker * 3322*cfb92d14SAndroid Build Coastguard Worker * `A(C)`: Interface Identifier (8 bytes). 3323*cfb92d14SAndroid Build Coastguard Worker * 3324*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_DUA 3325*cfb92d14SAndroid Build Coastguard Worker * 3326*cfb92d14SAndroid Build Coastguard Worker * If write to this property is performed without specified parameter 3327*cfb92d14SAndroid Build Coastguard Worker * the Interface Identifier of the Thread Domain Unicast Address will be cleared. 3328*cfb92d14SAndroid Build Coastguard Worker * If the DUA Interface Identifier is cleared on the NCP device, 3329*cfb92d14SAndroid Build Coastguard Worker * the get spinel property command will be returned successfully without specified parameter. 3330*cfb92d14SAndroid Build Coastguard Worker * 3331*cfb92d14SAndroid Build Coastguard Worker */ 3332*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_DUA_ID = SPINEL_PROP_THREAD_EXT__BEGIN + 54, 3333*cfb92d14SAndroid Build Coastguard Worker 3334*cfb92d14SAndroid Build Coastguard Worker /// Thread 1.2 Primary Backbone Router information in the Thread Network. 3335*cfb92d14SAndroid Build Coastguard Worker /** Format: `SSLC` - Read-Only 3336*cfb92d14SAndroid Build Coastguard Worker * 3337*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_NET_THREAD_1_2` 3338*cfb92d14SAndroid Build Coastguard Worker * 3339*cfb92d14SAndroid Build Coastguard Worker * `S`: Server. 3340*cfb92d14SAndroid Build Coastguard Worker * `S`: Reregistration Delay (in seconds). 3341*cfb92d14SAndroid Build Coastguard Worker * `L`: Multicast Listener Registration Timeout (in seconds). 3342*cfb92d14SAndroid Build Coastguard Worker * `C`: Sequence Number. 3343*cfb92d14SAndroid Build Coastguard Worker * 3344*cfb92d14SAndroid Build Coastguard Worker */ 3345*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_BACKBONE_ROUTER_PRIMARY = SPINEL_PROP_THREAD_EXT__BEGIN + 55, 3346*cfb92d14SAndroid Build Coastguard Worker 3347*cfb92d14SAndroid Build Coastguard Worker /// Thread 1.2 Backbone Router local state. 3348*cfb92d14SAndroid Build Coastguard Worker /** Format: `C` - Read-Write 3349*cfb92d14SAndroid Build Coastguard Worker * 3350*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_THREAD_BACKBONE_ROUTER` 3351*cfb92d14SAndroid Build Coastguard Worker * 3352*cfb92d14SAndroid Build Coastguard Worker * The valid values are specified by SPINEL_THREAD_BACKBONE_ROUTER_STATE_<state> enumeration. 3353*cfb92d14SAndroid Build Coastguard Worker * Backbone functionality will be disabled if SPINEL_THREAD_BACKBONE_ROUTER_STATE_DISABLED 3354*cfb92d14SAndroid Build Coastguard Worker * is written to this property, enabled otherwise. 3355*cfb92d14SAndroid Build Coastguard Worker * 3356*cfb92d14SAndroid Build Coastguard Worker */ 3357*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_BACKBONE_ROUTER_LOCAL_STATE = SPINEL_PROP_THREAD_EXT__BEGIN + 56, 3358*cfb92d14SAndroid Build Coastguard Worker 3359*cfb92d14SAndroid Build Coastguard Worker /// Local Thread 1.2 Backbone Router configuration. 3360*cfb92d14SAndroid Build Coastguard Worker /** Format: SLC - Read-Write 3361*cfb92d14SAndroid Build Coastguard Worker * 3362*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_THREAD_BACKBONE_ROUTER` 3363*cfb92d14SAndroid Build Coastguard Worker * 3364*cfb92d14SAndroid Build Coastguard Worker * `S`: Reregistration Delay (in seconds). 3365*cfb92d14SAndroid Build Coastguard Worker * `L`: Multicast Listener Registration Timeout (in seconds). 3366*cfb92d14SAndroid Build Coastguard Worker * `C`: Sequence Number. 3367*cfb92d14SAndroid Build Coastguard Worker * 3368*cfb92d14SAndroid Build Coastguard Worker */ 3369*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_BACKBONE_ROUTER_LOCAL_CONFIG = SPINEL_PROP_THREAD_EXT__BEGIN + 57, 3370*cfb92d14SAndroid Build Coastguard Worker 3371*cfb92d14SAndroid Build Coastguard Worker /// Register local Thread 1.2 Backbone Router configuration. 3372*cfb92d14SAndroid Build Coastguard Worker /** Format: Empty (Write only). 3373*cfb92d14SAndroid Build Coastguard Worker * 3374*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_THREAD_BACKBONE_ROUTER` 3375*cfb92d14SAndroid Build Coastguard Worker * 3376*cfb92d14SAndroid Build Coastguard Worker * Writing to this property (with any value) will register local Backbone Router configuration. 3377*cfb92d14SAndroid Build Coastguard Worker * 3378*cfb92d14SAndroid Build Coastguard Worker */ 3379*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_BACKBONE_ROUTER_LOCAL_REGISTER = SPINEL_PROP_THREAD_EXT__BEGIN + 58, 3380*cfb92d14SAndroid Build Coastguard Worker 3381*cfb92d14SAndroid Build Coastguard Worker /// Thread 1.2 Backbone Router registration jitter. 3382*cfb92d14SAndroid Build Coastguard Worker /** Format: `C` - Read-Write 3383*cfb92d14SAndroid Build Coastguard Worker * 3384*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_THREAD_BACKBONE_ROUTER` 3385*cfb92d14SAndroid Build Coastguard Worker * 3386*cfb92d14SAndroid Build Coastguard Worker * `C`: Backbone Router registration jitter. 3387*cfb92d14SAndroid Build Coastguard Worker * 3388*cfb92d14SAndroid Build Coastguard Worker */ 3389*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_BACKBONE_ROUTER_LOCAL_REGISTRATION_JITTER = SPINEL_PROP_THREAD_EXT__BEGIN + 59, 3390*cfb92d14SAndroid Build Coastguard Worker 3391*cfb92d14SAndroid Build Coastguard Worker /// Thread Active Operational Dataset in raw TLVs format. 3392*cfb92d14SAndroid Build Coastguard Worker /** Format: `D` - Read-Write 3393*cfb92d14SAndroid Build Coastguard Worker * 3394*cfb92d14SAndroid Build Coastguard Worker * This property provides access to the current Thread Active Operational Dataset. A Thread device maintains the 3395*cfb92d14SAndroid Build Coastguard Worker * Operational Dataset that it has stored locally and the one currently in use by the partition to which it is 3396*cfb92d14SAndroid Build Coastguard Worker * attached. This property corresponds to the locally stored Dataset on the device. 3397*cfb92d14SAndroid Build Coastguard Worker * 3398*cfb92d14SAndroid Build Coastguard Worker * On write, any unknown/unsupported TLVs must be ignored. 3399*cfb92d14SAndroid Build Coastguard Worker * 3400*cfb92d14SAndroid Build Coastguard Worker */ 3401*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_ACTIVE_DATASET_TLVS = SPINEL_PROP_THREAD_EXT__BEGIN + 60, 3402*cfb92d14SAndroid Build Coastguard Worker 3403*cfb92d14SAndroid Build Coastguard Worker /// Thread Pending Operational Dataset in raw TLVs format. 3404*cfb92d14SAndroid Build Coastguard Worker /** Format: `D` - Read-Write 3405*cfb92d14SAndroid Build Coastguard Worker * 3406*cfb92d14SAndroid Build Coastguard Worker * This property provides access to the current locally stored Pending Operational Dataset. 3407*cfb92d14SAndroid Build Coastguard Worker * 3408*cfb92d14SAndroid Build Coastguard Worker * The formatting of this property follows the same rules as in SPINEL_PROP_THREAD_ACTIVE_DATASET_TLVS. 3409*cfb92d14SAndroid Build Coastguard Worker * 3410*cfb92d14SAndroid Build Coastguard Worker * On write, any unknown/unsupported TLVs must be ignored. 3411*cfb92d14SAndroid Build Coastguard Worker * 3412*cfb92d14SAndroid Build Coastguard Worker */ 3413*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_PENDING_DATASET_TLVS = SPINEL_PROP_THREAD_EXT__BEGIN + 61, 3414*cfb92d14SAndroid Build Coastguard Worker 3415*cfb92d14SAndroid Build Coastguard Worker /// Send MGMT_SET Thread Pending Operational Dataset (in TLV format). 3416*cfb92d14SAndroid Build Coastguard Worker /** Format: `D` - Write only 3417*cfb92d14SAndroid Build Coastguard Worker * 3418*cfb92d14SAndroid Build Coastguard Worker * This is write-only property. When written, it triggers a MGMT_PENDING_SET meshcop command to be sent to leader 3419*cfb92d14SAndroid Build Coastguard Worker * with the given Dataset. 3420*cfb92d14SAndroid Build Coastguard Worker * 3421*cfb92d14SAndroid Build Coastguard Worker * When setting this property, the spinel frame response will be: 3422*cfb92d14SAndroid Build Coastguard Worker * 1. A `LAST_STATUS` with the status of the transmission of MGMT_PENDING_SET command if it fails. 3423*cfb92d14SAndroid Build Coastguard Worker * 2. A `SPINEL_PROP_THREAD_MGMT_SET_PENDING_DATASET_TLVS` with no content. 3424*cfb92d14SAndroid Build Coastguard Worker * 3425*cfb92d14SAndroid Build Coastguard Worker * On response reception or timeout, another notification will be sent to the host: 3426*cfb92d14SAndroid Build Coastguard Worker * A `SPINEL_PROP_THREAD_MGMT_SET_PENDING_DATASET_TLVS` with a spinel_status_t indicating 3427*cfb92d14SAndroid Build Coastguard Worker * the result of MGMT_SET_PENDING. 3428*cfb92d14SAndroid Build Coastguard Worker * 3429*cfb92d14SAndroid Build Coastguard Worker * On write, any unknown/unsupported TLVs must be ignored. 3430*cfb92d14SAndroid Build Coastguard Worker * 3431*cfb92d14SAndroid Build Coastguard Worker */ 3432*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_MGMT_SET_PENDING_DATASET_TLVS = SPINEL_PROP_THREAD_EXT__BEGIN + 62, 3433*cfb92d14SAndroid Build Coastguard Worker 3434*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_EXT__END = 0x1600, 3435*cfb92d14SAndroid Build Coastguard Worker 3436*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_IPV6__BEGIN = 0x60, 3437*cfb92d14SAndroid Build Coastguard Worker 3438*cfb92d14SAndroid Build Coastguard Worker /// Link-Local IPv6 Address 3439*cfb92d14SAndroid Build Coastguard Worker /** Format: `6` - Read only 3440*cfb92d14SAndroid Build Coastguard Worker * 3441*cfb92d14SAndroid Build Coastguard Worker */ 3442*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_IPV6_LL_ADDR = SPINEL_PROP_IPV6__BEGIN + 0, ///< [6] 3443*cfb92d14SAndroid Build Coastguard Worker 3444*cfb92d14SAndroid Build Coastguard Worker /// Mesh Local IPv6 Address 3445*cfb92d14SAndroid Build Coastguard Worker /** Format: `6` - Read only 3446*cfb92d14SAndroid Build Coastguard Worker * 3447*cfb92d14SAndroid Build Coastguard Worker */ 3448*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_IPV6_ML_ADDR = SPINEL_PROP_IPV6__BEGIN + 1, 3449*cfb92d14SAndroid Build Coastguard Worker 3450*cfb92d14SAndroid Build Coastguard Worker /// Mesh Local Prefix 3451*cfb92d14SAndroid Build Coastguard Worker /** Format: `6C` - Read-write 3452*cfb92d14SAndroid Build Coastguard Worker * 3453*cfb92d14SAndroid Build Coastguard Worker * Provides Mesh Local Prefix 3454*cfb92d14SAndroid Build Coastguard Worker * 3455*cfb92d14SAndroid Build Coastguard Worker * `6`: Mesh local prefix 3456*cfb92d14SAndroid Build Coastguard Worker * `C` : Prefix length (64 bit for Thread). 3457*cfb92d14SAndroid Build Coastguard Worker * 3458*cfb92d14SAndroid Build Coastguard Worker */ 3459*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_IPV6_ML_PREFIX = SPINEL_PROP_IPV6__BEGIN + 2, 3460*cfb92d14SAndroid Build Coastguard Worker 3461*cfb92d14SAndroid Build Coastguard Worker /// IPv6 (Unicast) Address Table 3462*cfb92d14SAndroid Build Coastguard Worker /** Format: `A(t(6CLLC))` 3463*cfb92d14SAndroid Build Coastguard Worker * 3464*cfb92d14SAndroid Build Coastguard Worker * This property provides all unicast addresses. 3465*cfb92d14SAndroid Build Coastguard Worker * 3466*cfb92d14SAndroid Build Coastguard Worker * Array of structures containing: 3467*cfb92d14SAndroid Build Coastguard Worker * 3468*cfb92d14SAndroid Build Coastguard Worker * `6`: IPv6 Address 3469*cfb92d14SAndroid Build Coastguard Worker * `C`: Network Prefix Length (in bits) 3470*cfb92d14SAndroid Build Coastguard Worker * `L`: Preferred Lifetime 3471*cfb92d14SAndroid Build Coastguard Worker * `L`: Valid Lifetime 3472*cfb92d14SAndroid Build Coastguard Worker * 3473*cfb92d14SAndroid Build Coastguard Worker */ 3474*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_IPV6_ADDRESS_TABLE = SPINEL_PROP_IPV6__BEGIN + 3, 3475*cfb92d14SAndroid Build Coastguard Worker 3476*cfb92d14SAndroid Build Coastguard Worker /// IPv6 Route Table - Deprecated 3477*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_IPV6_ROUTE_TABLE = SPINEL_PROP_IPV6__BEGIN + 4, 3478*cfb92d14SAndroid Build Coastguard Worker 3479*cfb92d14SAndroid Build Coastguard Worker /// IPv6 ICMP Ping Offload 3480*cfb92d14SAndroid Build Coastguard Worker /** Format: `b` 3481*cfb92d14SAndroid Build Coastguard Worker * 3482*cfb92d14SAndroid Build Coastguard Worker * Allow the NCP to directly respond to ICMP ping requests. If this is 3483*cfb92d14SAndroid Build Coastguard Worker * turned on, ping request ICMP packets will not be passed to the host. 3484*cfb92d14SAndroid Build Coastguard Worker * 3485*cfb92d14SAndroid Build Coastguard Worker * Default value is `false`. 3486*cfb92d14SAndroid Build Coastguard Worker */ 3487*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_IPV6_ICMP_PING_OFFLOAD = SPINEL_PROP_IPV6__BEGIN + 5, 3488*cfb92d14SAndroid Build Coastguard Worker 3489*cfb92d14SAndroid Build Coastguard Worker /// IPv6 Multicast Address Table 3490*cfb92d14SAndroid Build Coastguard Worker /** Format: `A(t(6))` 3491*cfb92d14SAndroid Build Coastguard Worker * 3492*cfb92d14SAndroid Build Coastguard Worker * This property provides all multicast addresses. 3493*cfb92d14SAndroid Build Coastguard Worker * 3494*cfb92d14SAndroid Build Coastguard Worker */ 3495*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_IPV6_MULTICAST_ADDRESS_TABLE = SPINEL_PROP_IPV6__BEGIN + 6, 3496*cfb92d14SAndroid Build Coastguard Worker 3497*cfb92d14SAndroid Build Coastguard Worker /// IPv6 ICMP Ping Offload 3498*cfb92d14SAndroid Build Coastguard Worker /** Format: `C` 3499*cfb92d14SAndroid Build Coastguard Worker * 3500*cfb92d14SAndroid Build Coastguard Worker * Allow the NCP to directly respond to ICMP ping requests. If this is 3501*cfb92d14SAndroid Build Coastguard Worker * turned on, ping request ICMP packets will not be passed to the host. 3502*cfb92d14SAndroid Build Coastguard Worker * 3503*cfb92d14SAndroid Build Coastguard Worker * This property allows enabling responses sent to unicast only, multicast 3504*cfb92d14SAndroid Build Coastguard Worker * only, or both. The valid value are defined by enumeration 3505*cfb92d14SAndroid Build Coastguard Worker * `spinel_ipv6_icmp_ping_offload_mode_t`. 3506*cfb92d14SAndroid Build Coastguard Worker * 3507*cfb92d14SAndroid Build Coastguard Worker * SPINEL_IPV6_ICMP_PING_OFFLOAD_DISABLED = 0 3508*cfb92d14SAndroid Build Coastguard Worker * SPINEL_IPV6_ICMP_PING_OFFLOAD_UNICAST_ONLY = 1 3509*cfb92d14SAndroid Build Coastguard Worker * SPINEL_IPV6_ICMP_PING_OFFLOAD_MULTICAST_ONLY = 2 3510*cfb92d14SAndroid Build Coastguard Worker * SPINEL_IPV6_ICMP_PING_OFFLOAD_ALL = 3 3511*cfb92d14SAndroid Build Coastguard Worker * SPINEL_IPV6_ICMP_PING_OFFLOAD_RLOC_ALOC_ONLY = 4 3512*cfb92d14SAndroid Build Coastguard Worker * 3513*cfb92d14SAndroid Build Coastguard Worker * Default value is `NET_IPV6_ICMP_PING_OFFLOAD_DISABLED`. 3514*cfb92d14SAndroid Build Coastguard Worker * 3515*cfb92d14SAndroid Build Coastguard Worker */ 3516*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_IPV6_ICMP_PING_OFFLOAD_MODE = SPINEL_PROP_IPV6__BEGIN + 7, ///< [b] 3517*cfb92d14SAndroid Build Coastguard Worker 3518*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_IPV6__END = 0x70, 3519*cfb92d14SAndroid Build Coastguard Worker 3520*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_IPV6_EXT__BEGIN = 0x1600, 3521*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_IPV6_EXT__END = 0x1700, 3522*cfb92d14SAndroid Build Coastguard Worker 3523*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_STREAM__BEGIN = 0x70, 3524*cfb92d14SAndroid Build Coastguard Worker 3525*cfb92d14SAndroid Build Coastguard Worker /// Debug Stream 3526*cfb92d14SAndroid Build Coastguard Worker /** Format: `U` (stream, read only) 3527*cfb92d14SAndroid Build Coastguard Worker * 3528*cfb92d14SAndroid Build Coastguard Worker * This property is a streaming property, meaning that you cannot explicitly 3529*cfb92d14SAndroid Build Coastguard Worker * fetch the value of this property. The stream provides human-readable debugging 3530*cfb92d14SAndroid Build Coastguard Worker * output which may be displayed in the host logs. 3531*cfb92d14SAndroid Build Coastguard Worker * 3532*cfb92d14SAndroid Build Coastguard Worker * The location of newline characters is not assumed by the host: it is 3533*cfb92d14SAndroid Build Coastguard Worker * the NCP's responsibility to insert newline characters where needed, 3534*cfb92d14SAndroid Build Coastguard Worker * just like with any other text stream. 3535*cfb92d14SAndroid Build Coastguard Worker * 3536*cfb92d14SAndroid Build Coastguard Worker * To receive the debugging stream, you wait for `CMD_PROP_VALUE_IS` 3537*cfb92d14SAndroid Build Coastguard Worker * commands for this property from the NCP. 3538*cfb92d14SAndroid Build Coastguard Worker * 3539*cfb92d14SAndroid Build Coastguard Worker */ 3540*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_STREAM_DEBUG = SPINEL_PROP_STREAM__BEGIN + 0, 3541*cfb92d14SAndroid Build Coastguard Worker 3542*cfb92d14SAndroid Build Coastguard Worker /// Raw Stream 3543*cfb92d14SAndroid Build Coastguard Worker /** Format: `dD` (stream, read only) 3544*cfb92d14SAndroid Build Coastguard Worker * Required Capability: SPINEL_CAP_MAC_RAW or SPINEL_CAP_CONFIG_RADIO 3545*cfb92d14SAndroid Build Coastguard Worker * 3546*cfb92d14SAndroid Build Coastguard Worker * This stream provides the capability of sending and receiving raw 15.4 frames 3547*cfb92d14SAndroid Build Coastguard Worker * to and from the radio. The exact format of the frame metadata and data is 3548*cfb92d14SAndroid Build Coastguard Worker * dependent on the MAC and PHY being used. 3549*cfb92d14SAndroid Build Coastguard Worker * 3550*cfb92d14SAndroid Build Coastguard Worker * This property is a streaming property, meaning that you cannot explicitly 3551*cfb92d14SAndroid Build Coastguard Worker * fetch the value of this property. To receive traffic, you wait for 3552*cfb92d14SAndroid Build Coastguard Worker * `CMD_PROP_VALUE_IS` commands with this property id from the NCP. 3553*cfb92d14SAndroid Build Coastguard Worker * 3554*cfb92d14SAndroid Build Coastguard Worker * The general format of this property is: 3555*cfb92d14SAndroid Build Coastguard Worker * 3556*cfb92d14SAndroid Build Coastguard Worker * `d` : frame data 3557*cfb92d14SAndroid Build Coastguard Worker * `D` : frame meta data 3558*cfb92d14SAndroid Build Coastguard Worker * 3559*cfb92d14SAndroid Build Coastguard Worker * The frame meta data is optional. Frame metadata MAY be empty or partially 3560*cfb92d14SAndroid Build Coastguard Worker * specified. Partially specified metadata MUST be accepted. Default values 3561*cfb92d14SAndroid Build Coastguard Worker * are used for all unspecified fields. 3562*cfb92d14SAndroid Build Coastguard Worker * 3563*cfb92d14SAndroid Build Coastguard Worker * The frame metadata field consists of the following fields: 3564*cfb92d14SAndroid Build Coastguard Worker * 3565*cfb92d14SAndroid Build Coastguard Worker * `c` : Received Signal Strength (RSSI) in dBm - default is -128 3566*cfb92d14SAndroid Build Coastguard Worker * `c` : Noise floor in dBm - default is -128 3567*cfb92d14SAndroid Build Coastguard Worker * `S` : Flags (see below). 3568*cfb92d14SAndroid Build Coastguard Worker * `d` : PHY-specific data/struct 3569*cfb92d14SAndroid Build Coastguard Worker * `d` : Vendor-specific data/struct 3570*cfb92d14SAndroid Build Coastguard Worker * 3571*cfb92d14SAndroid Build Coastguard Worker * Flags fields are defined by the following enumeration bitfields: 3572*cfb92d14SAndroid Build Coastguard Worker * 3573*cfb92d14SAndroid Build Coastguard Worker * SPINEL_MD_FLAG_TX = 0x0001 : Packet was transmitted, not received. 3574*cfb92d14SAndroid Build Coastguard Worker * SPINEL_MD_FLAG_BAD_FCS = 0x0004 : Packet was received with bad FCS 3575*cfb92d14SAndroid Build Coastguard Worker * SPINEL_MD_FLAG_DUPE = 0x0008 : Packet seems to be a duplicate 3576*cfb92d14SAndroid Build Coastguard Worker * SPINEL_MD_FLAG_RESERVED = 0xFFF2 : Flags reserved for future use. 3577*cfb92d14SAndroid Build Coastguard Worker * 3578*cfb92d14SAndroid Build Coastguard Worker * The format of PHY-specific data for a Thread device contains the following 3579*cfb92d14SAndroid Build Coastguard Worker * optional fields: 3580*cfb92d14SAndroid Build Coastguard Worker 3581*cfb92d14SAndroid Build Coastguard Worker * `C` : 802.15.4 channel (Receive channel) 3582*cfb92d14SAndroid Build Coastguard Worker * `C` : IEEE 802.15.4 LQI 3583*cfb92d14SAndroid Build Coastguard Worker * `L` : The timestamp milliseconds 3584*cfb92d14SAndroid Build Coastguard Worker * `S` : The timestamp microseconds, offset to mMsec 3585*cfb92d14SAndroid Build Coastguard Worker * 3586*cfb92d14SAndroid Build Coastguard Worker * Frames written to this stream with `CMD_PROP_VALUE_SET` will be sent out 3587*cfb92d14SAndroid Build Coastguard Worker * over the radio. This allows the caller to use the radio directly. 3588*cfb92d14SAndroid Build Coastguard Worker * 3589*cfb92d14SAndroid Build Coastguard Worker * The frame meta data for the `CMD_PROP_VALUE_SET` contains the following 3590*cfb92d14SAndroid Build Coastguard Worker * fields. Default values are used for all unspecified fields. 3591*cfb92d14SAndroid Build Coastguard Worker * 3592*cfb92d14SAndroid Build Coastguard Worker * `C` : Channel (for frame tx) - MUST be included. 3593*cfb92d14SAndroid Build Coastguard Worker * `C` : Maximum number of backoffs attempts before declaring CCA failure 3594*cfb92d14SAndroid Build Coastguard Worker * (use Thread stack default if not specified) 3595*cfb92d14SAndroid Build Coastguard Worker * `C` : Maximum number of retries allowed after a transmission failure 3596*cfb92d14SAndroid Build Coastguard Worker * (use Thread stack default if not specified) 3597*cfb92d14SAndroid Build Coastguard Worker * `b` : Set to true to enable CSMA-CA for this packet, false otherwise. 3598*cfb92d14SAndroid Build Coastguard Worker * (default true). 3599*cfb92d14SAndroid Build Coastguard Worker * `b` : Set to true to indicate if header is updated - related to 3600*cfb92d14SAndroid Build Coastguard Worker * `mIsHeaderUpdated` in `otRadioFrame` (default false). 3601*cfb92d14SAndroid Build Coastguard Worker * `b` : Set to true to indicate it is a retransmission - related to 3602*cfb92d14SAndroid Build Coastguard Worker * `mIsARetx` in `otRadioFrame` (default false). 3603*cfb92d14SAndroid Build Coastguard Worker * `b` : Set to true to indicate security was processed on tx frame 3604*cfb92d14SAndroid Build Coastguard Worker * `mIsSecurityProcessed` in `otRadioFrame` (default false). 3605*cfb92d14SAndroid Build Coastguard Worker * `L` : TX delay interval used for CSL - related to `mTxDelay` in 3606*cfb92d14SAndroid Build Coastguard Worker * `otRadioFrame` (default zero). 3607*cfb92d14SAndroid Build Coastguard Worker * `L` : TX delay based time used for CSL - related to `mTxDelayBaseTime` 3608*cfb92d14SAndroid Build Coastguard Worker * in `otRadioFrame` (default zero). 3609*cfb92d14SAndroid Build Coastguard Worker * `C` : RX channel after TX done (default assumed to be same as 3610*cfb92d14SAndroid Build Coastguard Worker * channel in metadata) 3611*cfb92d14SAndroid Build Coastguard Worker * 3612*cfb92d14SAndroid Build Coastguard Worker */ 3613*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_STREAM_RAW = SPINEL_PROP_STREAM__BEGIN + 1, 3614*cfb92d14SAndroid Build Coastguard Worker 3615*cfb92d14SAndroid Build Coastguard Worker /// (IPv6) Network Stream 3616*cfb92d14SAndroid Build Coastguard Worker /** Format: `dD` (stream, read only) 3617*cfb92d14SAndroid Build Coastguard Worker * 3618*cfb92d14SAndroid Build Coastguard Worker * This stream provides the capability of sending and receiving (IPv6) 3619*cfb92d14SAndroid Build Coastguard Worker * data packets to and from the currently attached network. The packets 3620*cfb92d14SAndroid Build Coastguard Worker * are sent or received securely (encryption and authentication). 3621*cfb92d14SAndroid Build Coastguard Worker * 3622*cfb92d14SAndroid Build Coastguard Worker * This property is a streaming property, meaning that you cannot explicitly 3623*cfb92d14SAndroid Build Coastguard Worker * fetch the value of this property. To receive traffic, you wait for 3624*cfb92d14SAndroid Build Coastguard Worker * `CMD_PROP_VALUE_IS` commands with this property id from the NCP. 3625*cfb92d14SAndroid Build Coastguard Worker * 3626*cfb92d14SAndroid Build Coastguard Worker * To send network packets, you call `CMD_PROP_VALUE_SET` on this property with 3627*cfb92d14SAndroid Build Coastguard Worker * the value of the packet. 3628*cfb92d14SAndroid Build Coastguard Worker * 3629*cfb92d14SAndroid Build Coastguard Worker * The general format of this property is: 3630*cfb92d14SAndroid Build Coastguard Worker * 3631*cfb92d14SAndroid Build Coastguard Worker * `d` : packet data 3632*cfb92d14SAndroid Build Coastguard Worker * `D` : packet meta data 3633*cfb92d14SAndroid Build Coastguard Worker * 3634*cfb92d14SAndroid Build Coastguard Worker * The packet metadata is optional. Packet meta data MAY be empty or partially 3635*cfb92d14SAndroid Build Coastguard Worker * specified. Partially specified metadata MUST be accepted. Default values 3636*cfb92d14SAndroid Build Coastguard Worker * are used for all unspecified fields. 3637*cfb92d14SAndroid Build Coastguard Worker * 3638*cfb92d14SAndroid Build Coastguard Worker * For OpenThread the meta data is currently empty. 3639*cfb92d14SAndroid Build Coastguard Worker * 3640*cfb92d14SAndroid Build Coastguard Worker */ 3641*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_STREAM_NET = SPINEL_PROP_STREAM__BEGIN + 2, 3642*cfb92d14SAndroid Build Coastguard Worker 3643*cfb92d14SAndroid Build Coastguard Worker /// (IPv6) Network Stream Insecure 3644*cfb92d14SAndroid Build Coastguard Worker /** Format: `dD` (stream, read only) 3645*cfb92d14SAndroid Build Coastguard Worker * 3646*cfb92d14SAndroid Build Coastguard Worker * This stream provides the capability of sending and receiving unencrypted 3647*cfb92d14SAndroid Build Coastguard Worker * and unauthenticated data packets to and from nearby devices for the 3648*cfb92d14SAndroid Build Coastguard Worker * purposes of device commissioning. 3649*cfb92d14SAndroid Build Coastguard Worker * 3650*cfb92d14SAndroid Build Coastguard Worker * This property is a streaming property, meaning that you cannot explicitly 3651*cfb92d14SAndroid Build Coastguard Worker * fetch the value of this property. To receive traffic, you wait for 3652*cfb92d14SAndroid Build Coastguard Worker * `CMD_PROP_VALUE_IS` commands with this property id from the NCP. 3653*cfb92d14SAndroid Build Coastguard Worker * 3654*cfb92d14SAndroid Build Coastguard Worker * To send network packets, you call `CMD_PROP_VALUE_SET` on this property with 3655*cfb92d14SAndroid Build Coastguard Worker * the value of the packet. 3656*cfb92d14SAndroid Build Coastguard Worker * 3657*cfb92d14SAndroid Build Coastguard Worker * The general format of this property is: 3658*cfb92d14SAndroid Build Coastguard Worker * 3659*cfb92d14SAndroid Build Coastguard Worker * `d` : packet data 3660*cfb92d14SAndroid Build Coastguard Worker * `D` : packet meta data 3661*cfb92d14SAndroid Build Coastguard Worker * 3662*cfb92d14SAndroid Build Coastguard Worker * The packet metadata is optional. Packet meta data MAY be empty or partially 3663*cfb92d14SAndroid Build Coastguard Worker * specified. Partially specified metadata MUST be accepted. Default values 3664*cfb92d14SAndroid Build Coastguard Worker * are used for all unspecified fields. 3665*cfb92d14SAndroid Build Coastguard Worker * 3666*cfb92d14SAndroid Build Coastguard Worker * For OpenThread the meta data is currently empty. 3667*cfb92d14SAndroid Build Coastguard Worker * 3668*cfb92d14SAndroid Build Coastguard Worker */ 3669*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_STREAM_NET_INSECURE = SPINEL_PROP_STREAM__BEGIN + 3, 3670*cfb92d14SAndroid Build Coastguard Worker 3671*cfb92d14SAndroid Build Coastguard Worker /// Log Stream 3672*cfb92d14SAndroid Build Coastguard Worker /** Format: `UD` (stream, read only) 3673*cfb92d14SAndroid Build Coastguard Worker * 3674*cfb92d14SAndroid Build Coastguard Worker * This property is a read-only streaming property which provides 3675*cfb92d14SAndroid Build Coastguard Worker * formatted log string from NCP. This property provides asynchronous 3676*cfb92d14SAndroid Build Coastguard Worker * `CMD_PROP_VALUE_IS` updates with a new log string and includes 3677*cfb92d14SAndroid Build Coastguard Worker * optional meta data. 3678*cfb92d14SAndroid Build Coastguard Worker * 3679*cfb92d14SAndroid Build Coastguard Worker * `U`: The log string 3680*cfb92d14SAndroid Build Coastguard Worker * `D`: Log metadata (optional). 3681*cfb92d14SAndroid Build Coastguard Worker * 3682*cfb92d14SAndroid Build Coastguard Worker * Any data after the log string is considered metadata and is OPTIONAL. 3683*cfb92d14SAndroid Build Coastguard Worker * Presence of `SPINEL_CAP_OPENTHREAD_LOG_METADATA` capability 3684*cfb92d14SAndroid Build Coastguard Worker * indicates that OpenThread log metadata format is used as defined 3685*cfb92d14SAndroid Build Coastguard Worker * below: 3686*cfb92d14SAndroid Build Coastguard Worker * 3687*cfb92d14SAndroid Build Coastguard Worker * `C`: Log level (as per definition in enumeration 3688*cfb92d14SAndroid Build Coastguard Worker * `SPINEL_NCP_LOG_LEVEL_<level>`) 3689*cfb92d14SAndroid Build Coastguard Worker * `i`: OpenThread Log region (as per definition in enumeration 3690*cfb92d14SAndroid Build Coastguard Worker * `SPINEL_NCP_LOG_REGION_<region>). 3691*cfb92d14SAndroid Build Coastguard Worker * `X`: Log timestamp = <timestamp_base> + <current_time_ms> 3692*cfb92d14SAndroid Build Coastguard Worker * 3693*cfb92d14SAndroid Build Coastguard Worker */ 3694*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_STREAM_LOG = SPINEL_PROP_STREAM__BEGIN + 4, 3695*cfb92d14SAndroid Build Coastguard Worker 3696*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_STREAM__END = 0x80, 3697*cfb92d14SAndroid Build Coastguard Worker 3698*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_STREAM_EXT__BEGIN = 0x1700, 3699*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_STREAM_EXT__END = 0x1800, 3700*cfb92d14SAndroid Build Coastguard Worker 3701*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MESHCOP__BEGIN = 0x80, 3702*cfb92d14SAndroid Build Coastguard Worker 3703*cfb92d14SAndroid Build Coastguard Worker // Thread Joiner State 3704*cfb92d14SAndroid Build Coastguard Worker /** Format `C` - Read Only 3705*cfb92d14SAndroid Build Coastguard Worker * 3706*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_THREAD_JOINER 3707*cfb92d14SAndroid Build Coastguard Worker * 3708*cfb92d14SAndroid Build Coastguard Worker * The valid values are specified by `spinel_meshcop_joiner_state_t` (`SPINEL_MESHCOP_JOINER_STATE_<state>`) 3709*cfb92d14SAndroid Build Coastguard Worker * enumeration. 3710*cfb92d14SAndroid Build Coastguard Worker * 3711*cfb92d14SAndroid Build Coastguard Worker */ 3712*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MESHCOP_JOINER_STATE = SPINEL_PROP_MESHCOP__BEGIN + 0, ///<[C] 3713*cfb92d14SAndroid Build Coastguard Worker 3714*cfb92d14SAndroid Build Coastguard Worker /// Thread Joiner Commissioning command and the parameters 3715*cfb92d14SAndroid Build Coastguard Worker /** Format `b` or `bU(UUUUU)` (fields in parenthesis are optional) - Write Only 3716*cfb92d14SAndroid Build Coastguard Worker * 3717*cfb92d14SAndroid Build Coastguard Worker * This property starts or stops Joiner's commissioning process 3718*cfb92d14SAndroid Build Coastguard Worker * 3719*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_THREAD_JOINER 3720*cfb92d14SAndroid Build Coastguard Worker * 3721*cfb92d14SAndroid Build Coastguard Worker * Writing to this property starts/stops the Joiner commissioning process. 3722*cfb92d14SAndroid Build Coastguard Worker * The immediate `VALUE_IS` response indicates success/failure of the starting/stopping 3723*cfb92d14SAndroid Build Coastguard Worker * the Joiner commissioning process. 3724*cfb92d14SAndroid Build Coastguard Worker * 3725*cfb92d14SAndroid Build Coastguard Worker * After a successful start operation, the join process outcome is reported through an 3726*cfb92d14SAndroid Build Coastguard Worker * asynchronous `VALUE_IS(LAST_STATUS)` update with one of the following error status values: 3727*cfb92d14SAndroid Build Coastguard Worker * 3728*cfb92d14SAndroid Build Coastguard Worker * - SPINEL_STATUS_JOIN_SUCCESS the join process succeeded. 3729*cfb92d14SAndroid Build Coastguard Worker * - SPINEL_STATUS_JOIN_SECURITY the join process failed due to security credentials. 3730*cfb92d14SAndroid Build Coastguard Worker * - SPINEL_STATUS_JOIN_NO_PEERS no joinable network was discovered. 3731*cfb92d14SAndroid Build Coastguard Worker * - SPINEL_STATUS_JOIN_RSP_TIMEOUT if a response timed out. 3732*cfb92d14SAndroid Build Coastguard Worker * - SPINEL_STATUS_JOIN_FAILURE join failure. 3733*cfb92d14SAndroid Build Coastguard Worker * 3734*cfb92d14SAndroid Build Coastguard Worker * Frame format: 3735*cfb92d14SAndroid Build Coastguard Worker * 3736*cfb92d14SAndroid Build Coastguard Worker * `b` : Start or stop commissioning process (true to start). 3737*cfb92d14SAndroid Build Coastguard Worker * 3738*cfb92d14SAndroid Build Coastguard Worker * Only if the start commissioning. 3739*cfb92d14SAndroid Build Coastguard Worker * 3740*cfb92d14SAndroid Build Coastguard Worker * `U` : Joiner's PSKd. 3741*cfb92d14SAndroid Build Coastguard Worker * 3742*cfb92d14SAndroid Build Coastguard Worker * The next fields are all optional. If not provided, OpenThread default values would be used. 3743*cfb92d14SAndroid Build Coastguard Worker * 3744*cfb92d14SAndroid Build Coastguard Worker * `U` : Provisioning URL (use empty string if not required). 3745*cfb92d14SAndroid Build Coastguard Worker * `U` : Vendor Name. If not specified or empty string, use OpenThread default (PACKAGE_NAME). 3746*cfb92d14SAndroid Build Coastguard Worker * `U` : Vendor Model. If not specified or empty string, use OpenThread default (OPENTHREAD_CONFIG_PLATFORM_INFO). 3747*cfb92d14SAndroid Build Coastguard Worker * `U` : Vendor Sw Version. If not specified or empty string, use OpenThread default (PACKAGE_VERSION). 3748*cfb92d14SAndroid Build Coastguard Worker * `U` : Vendor Data String. Will not be appended if not specified. 3749*cfb92d14SAndroid Build Coastguard Worker * 3750*cfb92d14SAndroid Build Coastguard Worker */ 3751*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MESHCOP_JOINER_COMMISSIONING = SPINEL_PROP_MESHCOP__BEGIN + 1, 3752*cfb92d14SAndroid Build Coastguard Worker 3753*cfb92d14SAndroid Build Coastguard Worker // Thread Commissioner State 3754*cfb92d14SAndroid Build Coastguard Worker /** Format `C` 3755*cfb92d14SAndroid Build Coastguard Worker * 3756*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_THREAD_COMMISSIONER 3757*cfb92d14SAndroid Build Coastguard Worker * 3758*cfb92d14SAndroid Build Coastguard Worker * The valid values are specified by SPINEL_MESHCOP_COMMISSIONER_STATE_<state> enumeration. 3759*cfb92d14SAndroid Build Coastguard Worker * 3760*cfb92d14SAndroid Build Coastguard Worker */ 3761*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MESHCOP_COMMISSIONER_STATE = SPINEL_PROP_MESHCOP__BEGIN + 2, 3762*cfb92d14SAndroid Build Coastguard Worker 3763*cfb92d14SAndroid Build Coastguard Worker // Thread Commissioner Joiners 3764*cfb92d14SAndroid Build Coastguard Worker /** Format `A(t(t(E|CX)UL))` - get, insert or remove. 3765*cfb92d14SAndroid Build Coastguard Worker * 3766*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_THREAD_COMMISSIONER 3767*cfb92d14SAndroid Build Coastguard Worker * 3768*cfb92d14SAndroid Build Coastguard Worker * Data per array entry is: 3769*cfb92d14SAndroid Build Coastguard Worker * 3770*cfb92d14SAndroid Build Coastguard Worker * `t()` | `t(E)` | `t(CX)` : Joiner info struct (formatting varies). 3771*cfb92d14SAndroid Build Coastguard Worker * 3772*cfb92d14SAndroid Build Coastguard Worker * - `t()` or empty struct indicates any joiner. 3773*cfb92d14SAndroid Build Coastguard Worker * - `t(E)` specifies the Joiner EUI-64. 3774*cfb92d14SAndroid Build Coastguard Worker * - `t(CX) specifies Joiner Discerner, `C` is Discerner length (in bits), and `X` is Discerner value. 3775*cfb92d14SAndroid Build Coastguard Worker * 3776*cfb92d14SAndroid Build Coastguard Worker * The struct is followed by: 3777*cfb92d14SAndroid Build Coastguard Worker * 3778*cfb92d14SAndroid Build Coastguard Worker * `L` : Timeout after which to remove Joiner (when written should be in seconds, when read is in milliseconds) 3779*cfb92d14SAndroid Build Coastguard Worker * `U` : PSKd 3780*cfb92d14SAndroid Build Coastguard Worker * 3781*cfb92d14SAndroid Build Coastguard Worker * For CMD_PROP_VALUE_REMOVE the timeout and PSKd are optional. 3782*cfb92d14SAndroid Build Coastguard Worker * 3783*cfb92d14SAndroid Build Coastguard Worker */ 3784*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MESHCOP_COMMISSIONER_JOINERS = SPINEL_PROP_MESHCOP__BEGIN + 3, 3785*cfb92d14SAndroid Build Coastguard Worker 3786*cfb92d14SAndroid Build Coastguard Worker // Thread Commissioner Provisioning URL 3787*cfb92d14SAndroid Build Coastguard Worker /** Format `U` 3788*cfb92d14SAndroid Build Coastguard Worker * 3789*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_THREAD_COMMISSIONER 3790*cfb92d14SAndroid Build Coastguard Worker * 3791*cfb92d14SAndroid Build Coastguard Worker */ 3792*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MESHCOP_COMMISSIONER_PROVISIONING_URL = SPINEL_PROP_MESHCOP__BEGIN + 4, 3793*cfb92d14SAndroid Build Coastguard Worker 3794*cfb92d14SAndroid Build Coastguard Worker // Thread Commissioner Session ID 3795*cfb92d14SAndroid Build Coastguard Worker /** Format `S` - Read only 3796*cfb92d14SAndroid Build Coastguard Worker * 3797*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_THREAD_COMMISSIONER 3798*cfb92d14SAndroid Build Coastguard Worker * 3799*cfb92d14SAndroid Build Coastguard Worker */ 3800*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MESHCOP_COMMISSIONER_SESSION_ID = SPINEL_PROP_MESHCOP__BEGIN + 5, 3801*cfb92d14SAndroid Build Coastguard Worker 3802*cfb92d14SAndroid Build Coastguard Worker /// Thread Joiner Discerner 3803*cfb92d14SAndroid Build Coastguard Worker /** Format `CX` - Read-write 3804*cfb92d14SAndroid Build Coastguard Worker * 3805*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_THREAD_JOINER 3806*cfb92d14SAndroid Build Coastguard Worker * 3807*cfb92d14SAndroid Build Coastguard Worker * This property represents a Joiner Discerner. 3808*cfb92d14SAndroid Build Coastguard Worker * 3809*cfb92d14SAndroid Build Coastguard Worker * The Joiner Discerner is used to calculate the Joiner ID used during commissioning/joining process. 3810*cfb92d14SAndroid Build Coastguard Worker * 3811*cfb92d14SAndroid Build Coastguard Worker * By default (when a discerner is not provided or cleared), Joiner ID is derived as first 64 bits of the result 3812*cfb92d14SAndroid Build Coastguard Worker * of computing SHA-256 over factory-assigned IEEE EUI-64. Note that this is the main behavior expected by Thread 3813*cfb92d14SAndroid Build Coastguard Worker * specification. 3814*cfb92d14SAndroid Build Coastguard Worker * 3815*cfb92d14SAndroid Build Coastguard Worker * Format: 3816*cfb92d14SAndroid Build Coastguard Worker * 3817*cfb92d14SAndroid Build Coastguard Worker * 'C' : The Joiner Discerner bit length (number of bits). 3818*cfb92d14SAndroid Build Coastguard Worker * `X` : The Joiner Discerner value (64-bit unsigned) - Only present/applicable when length is non-zero. 3819*cfb92d14SAndroid Build Coastguard Worker * 3820*cfb92d14SAndroid Build Coastguard Worker * When writing to this property, the length can be set to zero to clear any previously set Joiner Discerner value. 3821*cfb92d14SAndroid Build Coastguard Worker * 3822*cfb92d14SAndroid Build Coastguard Worker * When reading this property if there is no currently set Joiner Discerner, zero is returned as the length (with 3823*cfb92d14SAndroid Build Coastguard Worker * no value field). 3824*cfb92d14SAndroid Build Coastguard Worker * 3825*cfb92d14SAndroid Build Coastguard Worker */ 3826*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MESHCOP_JOINER_DISCERNER = SPINEL_PROP_MESHCOP__BEGIN + 6, 3827*cfb92d14SAndroid Build Coastguard Worker 3828*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MESHCOP__END = 0x90, 3829*cfb92d14SAndroid Build Coastguard Worker 3830*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MESHCOP_EXT__BEGIN = 0x1800, 3831*cfb92d14SAndroid Build Coastguard Worker 3832*cfb92d14SAndroid Build Coastguard Worker // Thread Commissioner Announce Begin 3833*cfb92d14SAndroid Build Coastguard Worker /** Format `LCS6` - Write only 3834*cfb92d14SAndroid Build Coastguard Worker * 3835*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_THREAD_COMMISSIONER 3836*cfb92d14SAndroid Build Coastguard Worker * 3837*cfb92d14SAndroid Build Coastguard Worker * Writing to this property sends an Announce Begin message with the specified parameters. Response is a 3838*cfb92d14SAndroid Build Coastguard Worker * `LAST_STATUS` update with status of operation. 3839*cfb92d14SAndroid Build Coastguard Worker * 3840*cfb92d14SAndroid Build Coastguard Worker * `L` : Channel mask 3841*cfb92d14SAndroid Build Coastguard Worker * `C` : Number of messages per channel 3842*cfb92d14SAndroid Build Coastguard Worker * `S` : The time between two successive MLE Announce transmissions (milliseconds) 3843*cfb92d14SAndroid Build Coastguard Worker * `6` : IPv6 destination 3844*cfb92d14SAndroid Build Coastguard Worker * 3845*cfb92d14SAndroid Build Coastguard Worker */ 3846*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MESHCOP_COMMISSIONER_ANNOUNCE_BEGIN = SPINEL_PROP_MESHCOP_EXT__BEGIN + 0, 3847*cfb92d14SAndroid Build Coastguard Worker 3848*cfb92d14SAndroid Build Coastguard Worker // Thread Commissioner Energy Scan Query 3849*cfb92d14SAndroid Build Coastguard Worker /** Format `LCSS6` - Write only 3850*cfb92d14SAndroid Build Coastguard Worker * 3851*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_THREAD_COMMISSIONER 3852*cfb92d14SAndroid Build Coastguard Worker * 3853*cfb92d14SAndroid Build Coastguard Worker * Writing to this property sends an Energy Scan Query message with the specified parameters. Response is a 3854*cfb92d14SAndroid Build Coastguard Worker * `LAST_STATUS` with status of operation. The energy scan results are emitted asynchronously through 3855*cfb92d14SAndroid Build Coastguard Worker * `SPINEL_PROP_MESHCOP_COMMISSIONER_ENERGY_SCAN_RESULT` updates. 3856*cfb92d14SAndroid Build Coastguard Worker * 3857*cfb92d14SAndroid Build Coastguard Worker * Format is: 3858*cfb92d14SAndroid Build Coastguard Worker * 3859*cfb92d14SAndroid Build Coastguard Worker * `L` : Channel mask 3860*cfb92d14SAndroid Build Coastguard Worker * `C` : The number of energy measurements per channel 3861*cfb92d14SAndroid Build Coastguard Worker * `S` : The time between energy measurements (milliseconds) 3862*cfb92d14SAndroid Build Coastguard Worker * `S` : The scan duration for each energy measurement (milliseconds) 3863*cfb92d14SAndroid Build Coastguard Worker * `6` : IPv6 destination. 3864*cfb92d14SAndroid Build Coastguard Worker * 3865*cfb92d14SAndroid Build Coastguard Worker */ 3866*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MESHCOP_COMMISSIONER_ENERGY_SCAN = SPINEL_PROP_MESHCOP_EXT__BEGIN + 1, 3867*cfb92d14SAndroid Build Coastguard Worker 3868*cfb92d14SAndroid Build Coastguard Worker // Thread Commissioner Energy Scan Result 3869*cfb92d14SAndroid Build Coastguard Worker /** Format `Ld` - Asynchronous event only 3870*cfb92d14SAndroid Build Coastguard Worker * 3871*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_THREAD_COMMISSIONER 3872*cfb92d14SAndroid Build Coastguard Worker * 3873*cfb92d14SAndroid Build Coastguard Worker * This property provides asynchronous `CMD_PROP_VALUE_INSERTED` updates to report energy scan results for a 3874*cfb92d14SAndroid Build Coastguard Worker * previously sent Energy Scan Query message (please see `SPINEL_PROP_MESHCOP_COMMISSIONER_ENERGY_SCAN`). 3875*cfb92d14SAndroid Build Coastguard Worker * 3876*cfb92d14SAndroid Build Coastguard Worker * Format is: 3877*cfb92d14SAndroid Build Coastguard Worker * 3878*cfb92d14SAndroid Build Coastguard Worker * `L` : Channel mask 3879*cfb92d14SAndroid Build Coastguard Worker * `d` : Energy measurement data (note that `d` encoding includes the length) 3880*cfb92d14SAndroid Build Coastguard Worker * 3881*cfb92d14SAndroid Build Coastguard Worker */ 3882*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MESHCOP_COMMISSIONER_ENERGY_SCAN_RESULT = SPINEL_PROP_MESHCOP_EXT__BEGIN + 2, 3883*cfb92d14SAndroid Build Coastguard Worker 3884*cfb92d14SAndroid Build Coastguard Worker // Thread Commissioner PAN ID Query 3885*cfb92d14SAndroid Build Coastguard Worker /** Format `SL6` - Write only 3886*cfb92d14SAndroid Build Coastguard Worker * 3887*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_THREAD_COMMISSIONER 3888*cfb92d14SAndroid Build Coastguard Worker * 3889*cfb92d14SAndroid Build Coastguard Worker * Writing to this property sends a PAN ID Query message with the specified parameters. Response is a 3890*cfb92d14SAndroid Build Coastguard Worker * `LAST_STATUS` with status of operation. The PAN ID Conflict results are emitted asynchronously through 3891*cfb92d14SAndroid Build Coastguard Worker * `SPINEL_PROP_MESHCOP_COMMISSIONER_PAN_ID_CONFLICT_RESULT` updates. 3892*cfb92d14SAndroid Build Coastguard Worker * 3893*cfb92d14SAndroid Build Coastguard Worker * Format is: 3894*cfb92d14SAndroid Build Coastguard Worker * 3895*cfb92d14SAndroid Build Coastguard Worker * `S` : PAN ID to query 3896*cfb92d14SAndroid Build Coastguard Worker * `L` : Channel mask 3897*cfb92d14SAndroid Build Coastguard Worker * `6` : IPv6 destination 3898*cfb92d14SAndroid Build Coastguard Worker * 3899*cfb92d14SAndroid Build Coastguard Worker */ 3900*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MESHCOP_COMMISSIONER_PAN_ID_QUERY = SPINEL_PROP_MESHCOP_EXT__BEGIN + 3, 3901*cfb92d14SAndroid Build Coastguard Worker 3902*cfb92d14SAndroid Build Coastguard Worker // Thread Commissioner PAN ID Conflict Result 3903*cfb92d14SAndroid Build Coastguard Worker /** Format `SL` - Asynchronous event only 3904*cfb92d14SAndroid Build Coastguard Worker * 3905*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_THREAD_COMMISSIONER 3906*cfb92d14SAndroid Build Coastguard Worker * 3907*cfb92d14SAndroid Build Coastguard Worker * This property provides asynchronous `CMD_PROP_VALUE_INSERTED` updates to report PAN ID conflict results for a 3908*cfb92d14SAndroid Build Coastguard Worker * previously sent PAN ID Query message (please see `SPINEL_PROP_MESHCOP_COMMISSIONER_PAN_ID_QUERY`). 3909*cfb92d14SAndroid Build Coastguard Worker * 3910*cfb92d14SAndroid Build Coastguard Worker * Format is: 3911*cfb92d14SAndroid Build Coastguard Worker * 3912*cfb92d14SAndroid Build Coastguard Worker * `S` : The PAN ID 3913*cfb92d14SAndroid Build Coastguard Worker * `L` : Channel mask 3914*cfb92d14SAndroid Build Coastguard Worker * 3915*cfb92d14SAndroid Build Coastguard Worker */ 3916*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MESHCOP_COMMISSIONER_PAN_ID_CONFLICT_RESULT = SPINEL_PROP_MESHCOP_EXT__BEGIN + 4, 3917*cfb92d14SAndroid Build Coastguard Worker 3918*cfb92d14SAndroid Build Coastguard Worker // Thread Commissioner Send MGMT_COMMISSIONER_GET 3919*cfb92d14SAndroid Build Coastguard Worker /** Format `d` - Write only 3920*cfb92d14SAndroid Build Coastguard Worker * 3921*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_THREAD_COMMISSIONER 3922*cfb92d14SAndroid Build Coastguard Worker * 3923*cfb92d14SAndroid Build Coastguard Worker * Writing to this property sends a MGMT_COMMISSIONER_GET message with the specified parameters. Response is a 3924*cfb92d14SAndroid Build Coastguard Worker * `LAST_STATUS` with status of operation. 3925*cfb92d14SAndroid Build Coastguard Worker * 3926*cfb92d14SAndroid Build Coastguard Worker * Format is: 3927*cfb92d14SAndroid Build Coastguard Worker * 3928*cfb92d14SAndroid Build Coastguard Worker * `d` : List of TLV types to get 3929*cfb92d14SAndroid Build Coastguard Worker * 3930*cfb92d14SAndroid Build Coastguard Worker */ 3931*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MESHCOP_COMMISSIONER_MGMT_GET = SPINEL_PROP_MESHCOP_EXT__BEGIN + 5, 3932*cfb92d14SAndroid Build Coastguard Worker 3933*cfb92d14SAndroid Build Coastguard Worker // Thread Commissioner Send MGMT_COMMISSIONER_SET 3934*cfb92d14SAndroid Build Coastguard Worker /** Format `d` - Write only 3935*cfb92d14SAndroid Build Coastguard Worker * 3936*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_THREAD_COMMISSIONER 3937*cfb92d14SAndroid Build Coastguard Worker * 3938*cfb92d14SAndroid Build Coastguard Worker * Writing to this property sends a MGMT_COMMISSIONER_SET message with the specified parameters. Response is a 3939*cfb92d14SAndroid Build Coastguard Worker * `LAST_STATUS` with status of operation. 3940*cfb92d14SAndroid Build Coastguard Worker * 3941*cfb92d14SAndroid Build Coastguard Worker * Format is: 3942*cfb92d14SAndroid Build Coastguard Worker * 3943*cfb92d14SAndroid Build Coastguard Worker * `d` : TLV encoded data 3944*cfb92d14SAndroid Build Coastguard Worker * 3945*cfb92d14SAndroid Build Coastguard Worker */ 3946*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MESHCOP_COMMISSIONER_MGMT_SET = SPINEL_PROP_MESHCOP_EXT__BEGIN + 6, 3947*cfb92d14SAndroid Build Coastguard Worker 3948*cfb92d14SAndroid Build Coastguard Worker // Thread Commissioner Generate PSKc 3949*cfb92d14SAndroid Build Coastguard Worker /** Format: `UUd` - Write only 3950*cfb92d14SAndroid Build Coastguard Worker * 3951*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_THREAD_COMMISSIONER 3952*cfb92d14SAndroid Build Coastguard Worker * 3953*cfb92d14SAndroid Build Coastguard Worker * Writing to this property allows user to generate PSKc from a given commissioning pass-phrase, network name, 3954*cfb92d14SAndroid Build Coastguard Worker * extended PAN Id. 3955*cfb92d14SAndroid Build Coastguard Worker * 3956*cfb92d14SAndroid Build Coastguard Worker * Written value format is: 3957*cfb92d14SAndroid Build Coastguard Worker * 3958*cfb92d14SAndroid Build Coastguard Worker * `U` : The commissioning pass-phrase. 3959*cfb92d14SAndroid Build Coastguard Worker * `U` : Network Name. 3960*cfb92d14SAndroid Build Coastguard Worker * `d` : Extended PAN ID. 3961*cfb92d14SAndroid Build Coastguard Worker * 3962*cfb92d14SAndroid Build Coastguard Worker * The response on success would be a `VALUE_IS` command with the PSKc with format below: 3963*cfb92d14SAndroid Build Coastguard Worker * 3964*cfb92d14SAndroid Build Coastguard Worker * `D` : The PSKc 3965*cfb92d14SAndroid Build Coastguard Worker * 3966*cfb92d14SAndroid Build Coastguard Worker * On a failure a `LAST_STATUS` is emitted with the error status. 3967*cfb92d14SAndroid Build Coastguard Worker * 3968*cfb92d14SAndroid Build Coastguard Worker */ 3969*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MESHCOP_COMMISSIONER_GENERATE_PSKC = SPINEL_PROP_MESHCOP_EXT__BEGIN + 7, 3970*cfb92d14SAndroid Build Coastguard Worker 3971*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MESHCOP_EXT__END = 0x1900, 3972*cfb92d14SAndroid Build Coastguard Worker 3973*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_OPENTHREAD__BEGIN = 0x1900, 3974*cfb92d14SAndroid Build Coastguard Worker 3975*cfb92d14SAndroid Build Coastguard Worker /// Channel Manager - Channel Change New Channel 3976*cfb92d14SAndroid Build Coastguard Worker /** Format: `C` (read-write) 3977*cfb92d14SAndroid Build Coastguard Worker * 3978*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_CHANNEL_MANAGER 3979*cfb92d14SAndroid Build Coastguard Worker * 3980*cfb92d14SAndroid Build Coastguard Worker * Setting this property triggers the Channel Manager to start 3981*cfb92d14SAndroid Build Coastguard Worker * a channel change process. The network switches to the given 3982*cfb92d14SAndroid Build Coastguard Worker * channel after the specified delay (see `CHANNEL_MANAGER_DELAY`). 3983*cfb92d14SAndroid Build Coastguard Worker * 3984*cfb92d14SAndroid Build Coastguard Worker * A subsequent write to this property will cancel an ongoing 3985*cfb92d14SAndroid Build Coastguard Worker * (previously requested) channel change. 3986*cfb92d14SAndroid Build Coastguard Worker * 3987*cfb92d14SAndroid Build Coastguard Worker */ 3988*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CHANNEL_MANAGER_NEW_CHANNEL = SPINEL_PROP_OPENTHREAD__BEGIN + 0, 3989*cfb92d14SAndroid Build Coastguard Worker 3990*cfb92d14SAndroid Build Coastguard Worker /// Channel Manager - Channel Change Delay 3991*cfb92d14SAndroid Build Coastguard Worker /** Format 'S' 3992*cfb92d14SAndroid Build Coastguard Worker * Units: seconds 3993*cfb92d14SAndroid Build Coastguard Worker * 3994*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_CHANNEL_MANAGER 3995*cfb92d14SAndroid Build Coastguard Worker * 3996*cfb92d14SAndroid Build Coastguard Worker * This property specifies the delay (in seconds) to be used for 3997*cfb92d14SAndroid Build Coastguard Worker * a channel change request. 3998*cfb92d14SAndroid Build Coastguard Worker * 3999*cfb92d14SAndroid Build Coastguard Worker * The delay should preferably be longer than maximum data poll 4000*cfb92d14SAndroid Build Coastguard Worker * interval used by all sleepy-end-devices within the Thread 4001*cfb92d14SAndroid Build Coastguard Worker * network. 4002*cfb92d14SAndroid Build Coastguard Worker * 4003*cfb92d14SAndroid Build Coastguard Worker */ 4004*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CHANNEL_MANAGER_DELAY = SPINEL_PROP_OPENTHREAD__BEGIN + 1, 4005*cfb92d14SAndroid Build Coastguard Worker 4006*cfb92d14SAndroid Build Coastguard Worker /// Channel Manager Supported Channels 4007*cfb92d14SAndroid Build Coastguard Worker /** Format 'A(C)' 4008*cfb92d14SAndroid Build Coastguard Worker * 4009*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_CHANNEL_MANAGER 4010*cfb92d14SAndroid Build Coastguard Worker * 4011*cfb92d14SAndroid Build Coastguard Worker * This property specifies the list of supported channels. 4012*cfb92d14SAndroid Build Coastguard Worker * 4013*cfb92d14SAndroid Build Coastguard Worker */ 4014*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CHANNEL_MANAGER_SUPPORTED_CHANNELS = SPINEL_PROP_OPENTHREAD__BEGIN + 2, 4015*cfb92d14SAndroid Build Coastguard Worker 4016*cfb92d14SAndroid Build Coastguard Worker /// Channel Manager Favored Channels 4017*cfb92d14SAndroid Build Coastguard Worker /** Format 'A(C)' 4018*cfb92d14SAndroid Build Coastguard Worker * 4019*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_CHANNEL_MANAGER 4020*cfb92d14SAndroid Build Coastguard Worker * 4021*cfb92d14SAndroid Build Coastguard Worker * This property specifies the list of favored channels (when `ChannelManager` is asked to select channel) 4022*cfb92d14SAndroid Build Coastguard Worker * 4023*cfb92d14SAndroid Build Coastguard Worker */ 4024*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CHANNEL_MANAGER_FAVORED_CHANNELS = SPINEL_PROP_OPENTHREAD__BEGIN + 3, 4025*cfb92d14SAndroid Build Coastguard Worker 4026*cfb92d14SAndroid Build Coastguard Worker /// Channel Manager Channel Select Trigger 4027*cfb92d14SAndroid Build Coastguard Worker /** Format 'b' 4028*cfb92d14SAndroid Build Coastguard Worker * 4029*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_CHANNEL_MANAGER 4030*cfb92d14SAndroid Build Coastguard Worker * 4031*cfb92d14SAndroid Build Coastguard Worker * Writing to this property triggers a request on `ChannelManager` to select a new channel. 4032*cfb92d14SAndroid Build Coastguard Worker * 4033*cfb92d14SAndroid Build Coastguard Worker * Once a Channel Select is triggered, the Channel Manager will perform the following 3 steps: 4034*cfb92d14SAndroid Build Coastguard Worker * 4035*cfb92d14SAndroid Build Coastguard Worker * 1) `ChannelManager` decides if the channel change would be helpful. This check can be skipped if in the input 4036*cfb92d14SAndroid Build Coastguard Worker * boolean to this property is set to `true` (skipping the quality check). 4037*cfb92d14SAndroid Build Coastguard Worker * This step uses the collected link quality metrics on the device such as CCA failure rate, frame and message 4038*cfb92d14SAndroid Build Coastguard Worker * error rates per neighbor, etc. to determine if the current channel quality is at the level that justifies 4039*cfb92d14SAndroid Build Coastguard Worker * a channel change. 4040*cfb92d14SAndroid Build Coastguard Worker * 4041*cfb92d14SAndroid Build Coastguard Worker * 2) If first step passes, then `ChannelManager` selects a potentially better channel. It uses the collected 4042*cfb92d14SAndroid Build Coastguard Worker * channel quality data by `ChannelMonitor` module. The supported and favored channels are used at this step. 4043*cfb92d14SAndroid Build Coastguard Worker * 4044*cfb92d14SAndroid Build Coastguard Worker * 3) If the newly selected channel is different from the current channel, `ChannelManager` requests/starts the 4045*cfb92d14SAndroid Build Coastguard Worker * channel change process. 4046*cfb92d14SAndroid Build Coastguard Worker * 4047*cfb92d14SAndroid Build Coastguard Worker * Reading this property always yields `false`. 4048*cfb92d14SAndroid Build Coastguard Worker * 4049*cfb92d14SAndroid Build Coastguard Worker */ 4050*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CHANNEL_MANAGER_CHANNEL_SELECT = SPINEL_PROP_OPENTHREAD__BEGIN + 4, 4051*cfb92d14SAndroid Build Coastguard Worker 4052*cfb92d14SAndroid Build Coastguard Worker /// Channel Manager Auto Channel Selection Enabled 4053*cfb92d14SAndroid Build Coastguard Worker /** Format 'b' 4054*cfb92d14SAndroid Build Coastguard Worker * 4055*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_CHANNEL_MANAGER 4056*cfb92d14SAndroid Build Coastguard Worker * 4057*cfb92d14SAndroid Build Coastguard Worker * This property indicates if auto-channel-selection functionality is enabled/disabled on `ChannelManager`. 4058*cfb92d14SAndroid Build Coastguard Worker * 4059*cfb92d14SAndroid Build Coastguard Worker * When enabled, `ChannelManager` will periodically checks and attempts to select a new channel. The period interval 4060*cfb92d14SAndroid Build Coastguard Worker * is specified by `SPINEL_PROP_CHANNEL_MANAGER_AUTO_SELECT_INTERVAL`. 4061*cfb92d14SAndroid Build Coastguard Worker * 4062*cfb92d14SAndroid Build Coastguard Worker */ 4063*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CHANNEL_MANAGER_AUTO_SELECT_ENABLED = SPINEL_PROP_OPENTHREAD__BEGIN + 5, 4064*cfb92d14SAndroid Build Coastguard Worker 4065*cfb92d14SAndroid Build Coastguard Worker /// Channel Manager Auto Channel Selection Interval 4066*cfb92d14SAndroid Build Coastguard Worker /** Format 'L' 4067*cfb92d14SAndroid Build Coastguard Worker * units: seconds 4068*cfb92d14SAndroid Build Coastguard Worker * 4069*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_CHANNEL_MANAGER 4070*cfb92d14SAndroid Build Coastguard Worker * 4071*cfb92d14SAndroid Build Coastguard Worker * This property specifies the auto-channel-selection check interval (in seconds). 4072*cfb92d14SAndroid Build Coastguard Worker * 4073*cfb92d14SAndroid Build Coastguard Worker */ 4074*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CHANNEL_MANAGER_AUTO_SELECT_INTERVAL = SPINEL_PROP_OPENTHREAD__BEGIN + 6, 4075*cfb92d14SAndroid Build Coastguard Worker 4076*cfb92d14SAndroid Build Coastguard Worker /// Thread network time. 4077*cfb92d14SAndroid Build Coastguard Worker /** Format: `Xc` - Read only 4078*cfb92d14SAndroid Build Coastguard Worker * 4079*cfb92d14SAndroid Build Coastguard Worker * Data per item is: 4080*cfb92d14SAndroid Build Coastguard Worker * 4081*cfb92d14SAndroid Build Coastguard Worker * `X`: The Thread network time, in microseconds. 4082*cfb92d14SAndroid Build Coastguard Worker * `c`: Time synchronization status. 4083*cfb92d14SAndroid Build Coastguard Worker * 4084*cfb92d14SAndroid Build Coastguard Worker */ 4085*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_THREAD_NETWORK_TIME = SPINEL_PROP_OPENTHREAD__BEGIN + 7, 4086*cfb92d14SAndroid Build Coastguard Worker 4087*cfb92d14SAndroid Build Coastguard Worker /// Thread time synchronization period 4088*cfb92d14SAndroid Build Coastguard Worker /** Format: `S` - Read-Write 4089*cfb92d14SAndroid Build Coastguard Worker * 4090*cfb92d14SAndroid Build Coastguard Worker * Data per item is: 4091*cfb92d14SAndroid Build Coastguard Worker * 4092*cfb92d14SAndroid Build Coastguard Worker * `S`: Time synchronization period, in seconds. 4093*cfb92d14SAndroid Build Coastguard Worker * 4094*cfb92d14SAndroid Build Coastguard Worker */ 4095*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_TIME_SYNC_PERIOD = SPINEL_PROP_OPENTHREAD__BEGIN + 8, 4096*cfb92d14SAndroid Build Coastguard Worker 4097*cfb92d14SAndroid Build Coastguard Worker /// Thread Time synchronization XTAL accuracy threshold for Router 4098*cfb92d14SAndroid Build Coastguard Worker /** Format: `S` - Read-Write 4099*cfb92d14SAndroid Build Coastguard Worker * 4100*cfb92d14SAndroid Build Coastguard Worker * Data per item is: 4101*cfb92d14SAndroid Build Coastguard Worker * 4102*cfb92d14SAndroid Build Coastguard Worker * `S`: The XTAL accuracy threshold for Router, in PPM. 4103*cfb92d14SAndroid Build Coastguard Worker * 4104*cfb92d14SAndroid Build Coastguard Worker */ 4105*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_TIME_SYNC_XTAL_THRESHOLD = SPINEL_PROP_OPENTHREAD__BEGIN + 9, 4106*cfb92d14SAndroid Build Coastguard Worker 4107*cfb92d14SAndroid Build Coastguard Worker /// Child Supervision Interval 4108*cfb92d14SAndroid Build Coastguard Worker /** Format: `S` - Read-Write 4109*cfb92d14SAndroid Build Coastguard Worker * Units: Seconds 4110*cfb92d14SAndroid Build Coastguard Worker * 4111*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_CHILD_SUPERVISION` 4112*cfb92d14SAndroid Build Coastguard Worker * 4113*cfb92d14SAndroid Build Coastguard Worker * The child supervision interval (in seconds). Zero indicates that child supervision is disabled. 4114*cfb92d14SAndroid Build Coastguard Worker * 4115*cfb92d14SAndroid Build Coastguard Worker * When enabled, Child supervision feature ensures that at least one message is sent to every sleepy child within 4116*cfb92d14SAndroid Build Coastguard Worker * the given supervision interval. If there is no other message, a supervision message (a data message with empty 4117*cfb92d14SAndroid Build Coastguard Worker * payload) is enqueued and sent to the child. 4118*cfb92d14SAndroid Build Coastguard Worker * 4119*cfb92d14SAndroid Build Coastguard Worker * This property is available for FTD build only. 4120*cfb92d14SAndroid Build Coastguard Worker * 4121*cfb92d14SAndroid Build Coastguard Worker */ 4122*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CHILD_SUPERVISION_INTERVAL = SPINEL_PROP_OPENTHREAD__BEGIN + 10, 4123*cfb92d14SAndroid Build Coastguard Worker 4124*cfb92d14SAndroid Build Coastguard Worker /// Child Supervision Check Timeout 4125*cfb92d14SAndroid Build Coastguard Worker /** Format: `S` - Read-Write 4126*cfb92d14SAndroid Build Coastguard Worker * Units: Seconds 4127*cfb92d14SAndroid Build Coastguard Worker * 4128*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_CHILD_SUPERVISION` 4129*cfb92d14SAndroid Build Coastguard Worker * 4130*cfb92d14SAndroid Build Coastguard Worker * The child supervision check timeout interval (in seconds). Zero indicates supervision check on the child is 4131*cfb92d14SAndroid Build Coastguard Worker * disabled. 4132*cfb92d14SAndroid Build Coastguard Worker * 4133*cfb92d14SAndroid Build Coastguard Worker * Supervision check is only applicable on a sleepy child. When enabled, if the child does not hear from its parent 4134*cfb92d14SAndroid Build Coastguard Worker * within the specified check timeout, it initiates a re-attach process by starting an MLE Child Update 4135*cfb92d14SAndroid Build Coastguard Worker * Request/Response exchange with the parent. 4136*cfb92d14SAndroid Build Coastguard Worker * 4137*cfb92d14SAndroid Build Coastguard Worker * This property is available for FTD and MTD builds. 4138*cfb92d14SAndroid Build Coastguard Worker * 4139*cfb92d14SAndroid Build Coastguard Worker */ 4140*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CHILD_SUPERVISION_CHECK_TIMEOUT = SPINEL_PROP_OPENTHREAD__BEGIN + 11, 4141*cfb92d14SAndroid Build Coastguard Worker 4142*cfb92d14SAndroid Build Coastguard Worker // RCP (NCP in radio only mode) version 4143*cfb92d14SAndroid Build Coastguard Worker /** Format `U` - Read only 4144*cfb92d14SAndroid Build Coastguard Worker * 4145*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_POSIX 4146*cfb92d14SAndroid Build Coastguard Worker * 4147*cfb92d14SAndroid Build Coastguard Worker * This property gives the version string of RCP (NCP in radio mode) which is being controlled by a POSIX 4148*cfb92d14SAndroid Build Coastguard Worker * application. It is available only in "POSIX" platform (i.e., `OPENTHREAD_PLATFORM_POSIX` is enabled). 4149*cfb92d14SAndroid Build Coastguard Worker * 4150*cfb92d14SAndroid Build Coastguard Worker */ 4151*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_RCP_VERSION = SPINEL_PROP_OPENTHREAD__BEGIN + 12, 4152*cfb92d14SAndroid Build Coastguard Worker 4153*cfb92d14SAndroid Build Coastguard Worker /// Thread Parent Response info 4154*cfb92d14SAndroid Build Coastguard Worker /** Format: `ESccCCCb` - Asynchronous event only 4155*cfb92d14SAndroid Build Coastguard Worker * 4156*cfb92d14SAndroid Build Coastguard Worker * `E`: Extended address 4157*cfb92d14SAndroid Build Coastguard Worker * `S`: RLOC16 4158*cfb92d14SAndroid Build Coastguard Worker * `c`: Instant RSSI 4159*cfb92d14SAndroid Build Coastguard Worker * 'c': Parent Priority 4160*cfb92d14SAndroid Build Coastguard Worker * `C`: Link Quality3 4161*cfb92d14SAndroid Build Coastguard Worker * `C`: Link Quality2 4162*cfb92d14SAndroid Build Coastguard Worker * `C`: Link Quality1 4163*cfb92d14SAndroid Build Coastguard Worker * 'b': Is the node receiving parent response frame attached 4164*cfb92d14SAndroid Build Coastguard Worker * 4165*cfb92d14SAndroid Build Coastguard Worker * This property sends Parent Response frame information to the Host. 4166*cfb92d14SAndroid Build Coastguard Worker * This property is available for FTD build only. 4167*cfb92d14SAndroid Build Coastguard Worker * 4168*cfb92d14SAndroid Build Coastguard Worker */ 4169*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_PARENT_RESPONSE_INFO = SPINEL_PROP_OPENTHREAD__BEGIN + 13, 4170*cfb92d14SAndroid Build Coastguard Worker 4171*cfb92d14SAndroid Build Coastguard Worker /// SLAAC enabled 4172*cfb92d14SAndroid Build Coastguard Worker /** Format `b` - Read-Write 4173*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_SLAAC` 4174*cfb92d14SAndroid Build Coastguard Worker * 4175*cfb92d14SAndroid Build Coastguard Worker * This property allows the host to enable/disable SLAAC module on NCP at run-time. When SLAAC module is enabled, 4176*cfb92d14SAndroid Build Coastguard Worker * SLAAC addresses (based on on-mesh prefixes in Network Data) are added to the interface. When SLAAC module is 4177*cfb92d14SAndroid Build Coastguard Worker * disabled any previously added SLAAC address is removed. 4178*cfb92d14SAndroid Build Coastguard Worker * 4179*cfb92d14SAndroid Build Coastguard Worker */ 4180*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_SLAAC_ENABLED = SPINEL_PROP_OPENTHREAD__BEGIN + 14, 4181*cfb92d14SAndroid Build Coastguard Worker 4182*cfb92d14SAndroid Build Coastguard Worker // Supported Radio Links (by device) 4183*cfb92d14SAndroid Build Coastguard Worker /** 4184*cfb92d14SAndroid Build Coastguard Worker * Format `A(i)` - Read only 4185*cfb92d14SAndroid Build Coastguard Worker * 4186*cfb92d14SAndroid Build Coastguard Worker * This property returns list of supported radio links by the device itself. Enumeration `SPINEL_RADIO_LINK_{TYPE}` 4187*cfb92d14SAndroid Build Coastguard Worker * values indicate different radio link types. 4188*cfb92d14SAndroid Build Coastguard Worker * 4189*cfb92d14SAndroid Build Coastguard Worker */ 4190*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_SUPPORTED_RADIO_LINKS = SPINEL_PROP_OPENTHREAD__BEGIN + 15, 4191*cfb92d14SAndroid Build Coastguard Worker 4192*cfb92d14SAndroid Build Coastguard Worker /// Neighbor Table Multi Radio Link Info 4193*cfb92d14SAndroid Build Coastguard Worker /** Format: `A(t(ESA(t(iC))))` - Read only 4194*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_MULTI_RADIO`. 4195*cfb92d14SAndroid Build Coastguard Worker * 4196*cfb92d14SAndroid Build Coastguard Worker * Each item represents info about a neighbor: 4197*cfb92d14SAndroid Build Coastguard Worker * 4198*cfb92d14SAndroid Build Coastguard Worker * `E`: Neighbor's Extended Address 4199*cfb92d14SAndroid Build Coastguard Worker * `S`: Neighbor's RLOC16 4200*cfb92d14SAndroid Build Coastguard Worker * 4201*cfb92d14SAndroid Build Coastguard Worker * This is then followed by an array of radio link info structures indicating which radio links are supported by 4202*cfb92d14SAndroid Build Coastguard Worker * the neighbor: 4203*cfb92d14SAndroid Build Coastguard Worker * 4204*cfb92d14SAndroid Build Coastguard Worker * `i` : Radio link type (enumeration `SPINEL_RADIO_LINK_{TYPE}`). 4205*cfb92d14SAndroid Build Coastguard Worker * `C` : Preference value associated with radio link. 4206*cfb92d14SAndroid Build Coastguard Worker * 4207*cfb92d14SAndroid Build Coastguard Worker */ 4208*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_NEIGHBOR_TABLE_MULTI_RADIO_INFO = SPINEL_PROP_OPENTHREAD__BEGIN + 16, 4209*cfb92d14SAndroid Build Coastguard Worker 4210*cfb92d14SAndroid Build Coastguard Worker /// SRP Client Start 4211*cfb92d14SAndroid Build Coastguard Worker /** Format: `b(6Sb)` - Write only 4212*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_SRP_CLIENT`. 4213*cfb92d14SAndroid Build Coastguard Worker * 4214*cfb92d14SAndroid Build Coastguard Worker * Writing to this property allows user to start or stop the SRP client operation with a given SRP server. 4215*cfb92d14SAndroid Build Coastguard Worker * 4216*cfb92d14SAndroid Build Coastguard Worker * Written value format is: 4217*cfb92d14SAndroid Build Coastguard Worker * 4218*cfb92d14SAndroid Build Coastguard Worker * `b` : TRUE to start the client, FALSE to stop the client. 4219*cfb92d14SAndroid Build Coastguard Worker * 4220*cfb92d14SAndroid Build Coastguard Worker * When used to start the SRP client, the following fields should also be included: 4221*cfb92d14SAndroid Build Coastguard Worker * 4222*cfb92d14SAndroid Build Coastguard Worker * `6` : SRP server IPv6 address. 4223*cfb92d14SAndroid Build Coastguard Worker * `U` : SRP server port number. 4224*cfb92d14SAndroid Build Coastguard Worker * `b` : Boolean to indicate whether or not to emit SRP client events (using `SPINEL_PROP_SRP_CLIENT_EVENT`). 4225*cfb92d14SAndroid Build Coastguard Worker * 4226*cfb92d14SAndroid Build Coastguard Worker */ 4227*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_SRP_CLIENT_START = SPINEL_PROP_OPENTHREAD__BEGIN + 17, 4228*cfb92d14SAndroid Build Coastguard Worker 4229*cfb92d14SAndroid Build Coastguard Worker /// SRP Client Lease Interval 4230*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` - Read/Write 4231*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_SRP_CLIENT`. 4232*cfb92d14SAndroid Build Coastguard Worker * 4233*cfb92d14SAndroid Build Coastguard Worker * The lease interval used in SRP update requests (in seconds). 4234*cfb92d14SAndroid Build Coastguard Worker * 4235*cfb92d14SAndroid Build Coastguard Worker */ 4236*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_SRP_CLIENT_LEASE_INTERVAL = SPINEL_PROP_OPENTHREAD__BEGIN + 18, 4237*cfb92d14SAndroid Build Coastguard Worker 4238*cfb92d14SAndroid Build Coastguard Worker /// SRP Client Key Lease Interval 4239*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` - Read/Write 4240*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_SRP_CLIENT`. 4241*cfb92d14SAndroid Build Coastguard Worker * 4242*cfb92d14SAndroid Build Coastguard Worker * The key lease interval used in SRP update requests (in seconds). 4243*cfb92d14SAndroid Build Coastguard Worker * 4244*cfb92d14SAndroid Build Coastguard Worker */ 4245*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_SRP_CLIENT_KEY_LEASE_INTERVAL = SPINEL_PROP_OPENTHREAD__BEGIN + 19, 4246*cfb92d14SAndroid Build Coastguard Worker 4247*cfb92d14SAndroid Build Coastguard Worker /// SRP Client Host Info 4248*cfb92d14SAndroid Build Coastguard Worker /** Format: `UCt(A(6))` - Read only 4249*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_SRP_CLIENT`. 4250*cfb92d14SAndroid Build Coastguard Worker * 4251*cfb92d14SAndroid Build Coastguard Worker * Format is: 4252*cfb92d14SAndroid Build Coastguard Worker * 4253*cfb92d14SAndroid Build Coastguard Worker * `U` : The host name. 4254*cfb92d14SAndroid Build Coastguard Worker * `C` : The host state (values from `spinel_srp_client_item_state_t`). 4255*cfb92d14SAndroid Build Coastguard Worker * `t(A(6))` : Structure containing array of host IPv6 addresses. 4256*cfb92d14SAndroid Build Coastguard Worker * 4257*cfb92d14SAndroid Build Coastguard Worker */ 4258*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_SRP_CLIENT_HOST_INFO = SPINEL_PROP_OPENTHREAD__BEGIN + 20, 4259*cfb92d14SAndroid Build Coastguard Worker 4260*cfb92d14SAndroid Build Coastguard Worker /// SRP Client Host Name (label). 4261*cfb92d14SAndroid Build Coastguard Worker /** Format: `U` - Read/Write 4262*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_SRP_CLIENT`. 4263*cfb92d14SAndroid Build Coastguard Worker * 4264*cfb92d14SAndroid Build Coastguard Worker */ 4265*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_SRP_CLIENT_HOST_NAME = SPINEL_PROP_OPENTHREAD__BEGIN + 21, 4266*cfb92d14SAndroid Build Coastguard Worker 4267*cfb92d14SAndroid Build Coastguard Worker /// SRP Client Host Addresses 4268*cfb92d14SAndroid Build Coastguard Worker /** Format: `A(6)` - Read/Write 4269*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_SRP_CLIENT`. 4270*cfb92d14SAndroid Build Coastguard Worker * 4271*cfb92d14SAndroid Build Coastguard Worker */ 4272*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_SRP_CLIENT_HOST_ADDRESSES = SPINEL_PROP_OPENTHREAD__BEGIN + 22, 4273*cfb92d14SAndroid Build Coastguard Worker 4274*cfb92d14SAndroid Build Coastguard Worker /// SRP Client Services 4275*cfb92d14SAndroid Build Coastguard Worker /** Format: `A(t(UUSSSd))` - Read/Insert/Remove 4276*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_SRP_CLIENT`. 4277*cfb92d14SAndroid Build Coastguard Worker * 4278*cfb92d14SAndroid Build Coastguard Worker * This property provides a list/array of services. 4279*cfb92d14SAndroid Build Coastguard Worker * 4280*cfb92d14SAndroid Build Coastguard Worker * Data per item for `SPINEL_CMD_PROP_VALUE_GET` and/or `SPINEL_CMD_PROP_VALUE_INSERT` operation is as follows: 4281*cfb92d14SAndroid Build Coastguard Worker * 4282*cfb92d14SAndroid Build Coastguard Worker * `U` : The service name labels (e.g., "_chip._udp", not the full domain name. 4283*cfb92d14SAndroid Build Coastguard Worker * `U` : The service instance name label (not the full name). 4284*cfb92d14SAndroid Build Coastguard Worker * `S` : The service port number. 4285*cfb92d14SAndroid Build Coastguard Worker * `S` : The service priority. 4286*cfb92d14SAndroid Build Coastguard Worker * `S` : The service weight. 4287*cfb92d14SAndroid Build Coastguard Worker * 4288*cfb92d14SAndroid Build Coastguard Worker * For `SPINEL_CMD_PROP_VALUE_REMOVE` command, the following format is used: 4289*cfb92d14SAndroid Build Coastguard Worker * 4290*cfb92d14SAndroid Build Coastguard Worker * `U` : The service name labels (e.g., "_chip._udp", not the full domain name. 4291*cfb92d14SAndroid Build Coastguard Worker * `U` : The service instance name label (not the full name). 4292*cfb92d14SAndroid Build Coastguard Worker * `b` : Indicates whether to clear the service entry (optional). 4293*cfb92d14SAndroid Build Coastguard Worker * 4294*cfb92d14SAndroid Build Coastguard Worker * The last boolean (`b`) field is optional. When included it indicates on `true` to clear the service (clear it 4295*cfb92d14SAndroid Build Coastguard Worker * on client immediately with no interaction to server) and on `false` to remove the service (inform server and 4296*cfb92d14SAndroid Build Coastguard Worker * wait for the service entry to be removed on server). If it is not included, the value is `false`. 4297*cfb92d14SAndroid Build Coastguard Worker * 4298*cfb92d14SAndroid Build Coastguard Worker */ 4299*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_SRP_CLIENT_SERVICES = SPINEL_PROP_OPENTHREAD__BEGIN + 23, 4300*cfb92d14SAndroid Build Coastguard Worker 4301*cfb92d14SAndroid Build Coastguard Worker /// SRP Client Host And Services Remove 4302*cfb92d14SAndroid Build Coastguard Worker /** Format: `bb` : Write only 4303*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_SRP_CLIENT`. 4304*cfb92d14SAndroid Build Coastguard Worker * 4305*cfb92d14SAndroid Build Coastguard Worker * Writing to this property with starts the remove process of the host info and all services. 4306*cfb92d14SAndroid Build Coastguard Worker * Please see `otSrpClientRemoveHostAndServices()` for more details. 4307*cfb92d14SAndroid Build Coastguard Worker * 4308*cfb92d14SAndroid Build Coastguard Worker * Format is: 4309*cfb92d14SAndroid Build Coastguard Worker * 4310*cfb92d14SAndroid Build Coastguard Worker * `b` : A boolean indicating whether or not the host key lease should also be cleared. 4311*cfb92d14SAndroid Build Coastguard Worker * `b` : A boolean indicating whether or not to send update to server when host info is not registered. 4312*cfb92d14SAndroid Build Coastguard Worker * 4313*cfb92d14SAndroid Build Coastguard Worker */ 4314*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_SRP_CLIENT_HOST_SERVICES_REMOVE = SPINEL_PROP_OPENTHREAD__BEGIN + 24, 4315*cfb92d14SAndroid Build Coastguard Worker 4316*cfb92d14SAndroid Build Coastguard Worker /// SRP Client Host And Services Clear 4317*cfb92d14SAndroid Build Coastguard Worker /** Format: Empty : Write only 4318*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_SRP_CLIENT`. 4319*cfb92d14SAndroid Build Coastguard Worker * 4320*cfb92d14SAndroid Build Coastguard Worker * Writing to this property clears all host info and all the services. 4321*cfb92d14SAndroid Build Coastguard Worker * Please see `otSrpClientClearHostAndServices()` for more details. 4322*cfb92d14SAndroid Build Coastguard Worker * 4323*cfb92d14SAndroid Build Coastguard Worker */ 4324*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_SRP_CLIENT_HOST_SERVICES_CLEAR = SPINEL_PROP_OPENTHREAD__BEGIN + 25, 4325*cfb92d14SAndroid Build Coastguard Worker 4326*cfb92d14SAndroid Build Coastguard Worker /// SRP Client Event 4327*cfb92d14SAndroid Build Coastguard Worker /** Format: t() : Asynchronous event only 4328*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_SRP_CLIENT`. 4329*cfb92d14SAndroid Build Coastguard Worker * 4330*cfb92d14SAndroid Build Coastguard Worker * This property is asynchronously emitted when there is an event from SRP client notifying some state changes or 4331*cfb92d14SAndroid Build Coastguard Worker * errors. 4332*cfb92d14SAndroid Build Coastguard Worker * 4333*cfb92d14SAndroid Build Coastguard Worker * The general format of this property is as follows: 4334*cfb92d14SAndroid Build Coastguard Worker * 4335*cfb92d14SAndroid Build Coastguard Worker * `S` : Error code (see `spinel_srp_client_error_t` enumeration). 4336*cfb92d14SAndroid Build Coastguard Worker * `d` : Host info data. 4337*cfb92d14SAndroid Build Coastguard Worker * `d` : Active services. 4338*cfb92d14SAndroid Build Coastguard Worker * `d` : Removed services. 4339*cfb92d14SAndroid Build Coastguard Worker * 4340*cfb92d14SAndroid Build Coastguard Worker * The host info data contains: 4341*cfb92d14SAndroid Build Coastguard Worker * 4342*cfb92d14SAndroid Build Coastguard Worker * `U` : The host name. 4343*cfb92d14SAndroid Build Coastguard Worker * `C` : The host state (values from `spinel_srp_client_item_state_t`). 4344*cfb92d14SAndroid Build Coastguard Worker * `t(A(6))` : Structure containing array of host IPv6 addresses. 4345*cfb92d14SAndroid Build Coastguard Worker * 4346*cfb92d14SAndroid Build Coastguard Worker * The active or removed services data is an array of services `A(t(UUSSSd))` with each service format: 4347*cfb92d14SAndroid Build Coastguard Worker * 4348*cfb92d14SAndroid Build Coastguard Worker * `U` : The service name labels (e.g., "_chip._udp", not the full domain name. 4349*cfb92d14SAndroid Build Coastguard Worker * `U` : The service instance name label (not the full name). 4350*cfb92d14SAndroid Build Coastguard Worker * `S` : The service port number. 4351*cfb92d14SAndroid Build Coastguard Worker * `S` : The service priority. 4352*cfb92d14SAndroid Build Coastguard Worker * `S` : The service weight. 4353*cfb92d14SAndroid Build Coastguard Worker * `d` : The encoded TXT-DATA. 4354*cfb92d14SAndroid Build Coastguard Worker * 4355*cfb92d14SAndroid Build Coastguard Worker */ 4356*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_SRP_CLIENT_EVENT = SPINEL_PROP_OPENTHREAD__BEGIN + 26, 4357*cfb92d14SAndroid Build Coastguard Worker 4358*cfb92d14SAndroid Build Coastguard Worker /// SRP Client Service Key Inclusion Enabled 4359*cfb92d14SAndroid Build Coastguard Worker /** Format `b` : Read-Write 4360*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_SRP_CLIENT` & `SPINEL_CAP_REFERENCE_DEVICE`. 4361*cfb92d14SAndroid Build Coastguard Worker * 4362*cfb92d14SAndroid Build Coastguard Worker * This boolean property indicates whether the "service key record inclusion" mode is enabled or not. 4363*cfb92d14SAndroid Build Coastguard Worker * 4364*cfb92d14SAndroid Build Coastguard Worker * When enabled, SRP client will include KEY record in Service Description Instructions in the SRP update messages 4365*cfb92d14SAndroid Build Coastguard Worker * that it sends. 4366*cfb92d14SAndroid Build Coastguard Worker * 4367*cfb92d14SAndroid Build Coastguard Worker * KEY record is optional in Service Description Instruction (it is required and always included in the Host 4368*cfb92d14SAndroid Build Coastguard Worker * Description Instruction). The default behavior of SRP client is to not include it. This function is intended to 4369*cfb92d14SAndroid Build Coastguard Worker * override the default behavior for testing only. 4370*cfb92d14SAndroid Build Coastguard Worker * 4371*cfb92d14SAndroid Build Coastguard Worker */ 4372*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_SRP_CLIENT_SERVICE_KEY_ENABLED = SPINEL_PROP_OPENTHREAD__BEGIN + 27, 4373*cfb92d14SAndroid Build Coastguard Worker 4374*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_OPENTHREAD__END = 0x2000, 4375*cfb92d14SAndroid Build Coastguard Worker 4376*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_SERVER__BEGIN = 0xA0, 4377*cfb92d14SAndroid Build Coastguard Worker 4378*cfb92d14SAndroid Build Coastguard Worker /// Server Allow Local Network Data Change 4379*cfb92d14SAndroid Build Coastguard Worker /** Format `b` - Read-write 4380*cfb92d14SAndroid Build Coastguard Worker * 4381*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_THREAD_SERVICE 4382*cfb92d14SAndroid Build Coastguard Worker * 4383*cfb92d14SAndroid Build Coastguard Worker * Set to true before changing local server net data. Set to false when finished. 4384*cfb92d14SAndroid Build Coastguard Worker * This allows changes to be aggregated into a single event. 4385*cfb92d14SAndroid Build Coastguard Worker * 4386*cfb92d14SAndroid Build Coastguard Worker */ 4387*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_SERVER_ALLOW_LOCAL_DATA_CHANGE = SPINEL_PROP_SERVER__BEGIN + 0, 4388*cfb92d14SAndroid Build Coastguard Worker 4389*cfb92d14SAndroid Build Coastguard Worker // Server Services 4390*cfb92d14SAndroid Build Coastguard Worker /** Format: `A(t(LdbdS))` 4391*cfb92d14SAndroid Build Coastguard Worker * 4392*cfb92d14SAndroid Build Coastguard Worker * This property provides all services registered on the device 4393*cfb92d14SAndroid Build Coastguard Worker * 4394*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_THREAD_SERVICE 4395*cfb92d14SAndroid Build Coastguard Worker * 4396*cfb92d14SAndroid Build Coastguard Worker * Array of structures containing: 4397*cfb92d14SAndroid Build Coastguard Worker * 4398*cfb92d14SAndroid Build Coastguard Worker * `L`: Enterprise Number 4399*cfb92d14SAndroid Build Coastguard Worker * `d`: Service Data 4400*cfb92d14SAndroid Build Coastguard Worker * `b`: Stable 4401*cfb92d14SAndroid Build Coastguard Worker * `d`: Server Data 4402*cfb92d14SAndroid Build Coastguard Worker * `S`: RLOC 4403*cfb92d14SAndroid Build Coastguard Worker * 4404*cfb92d14SAndroid Build Coastguard Worker */ 4405*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_SERVER_SERVICES = SPINEL_PROP_SERVER__BEGIN + 1, 4406*cfb92d14SAndroid Build Coastguard Worker 4407*cfb92d14SAndroid Build Coastguard Worker // Server Leader Services 4408*cfb92d14SAndroid Build Coastguard Worker /** Format: `A(t(CLdbdS))` 4409*cfb92d14SAndroid Build Coastguard Worker * 4410*cfb92d14SAndroid Build Coastguard Worker * This property provides all services registered on the leader 4411*cfb92d14SAndroid Build Coastguard Worker * 4412*cfb92d14SAndroid Build Coastguard Worker * Array of structures containing: 4413*cfb92d14SAndroid Build Coastguard Worker * 4414*cfb92d14SAndroid Build Coastguard Worker * `C`: Service ID 4415*cfb92d14SAndroid Build Coastguard Worker * `L`: Enterprise Number 4416*cfb92d14SAndroid Build Coastguard Worker * `d`: Service Data 4417*cfb92d14SAndroid Build Coastguard Worker * `b`: Stable 4418*cfb92d14SAndroid Build Coastguard Worker * `d`: Server Data 4419*cfb92d14SAndroid Build Coastguard Worker * `S`: RLOC 4420*cfb92d14SAndroid Build Coastguard Worker * 4421*cfb92d14SAndroid Build Coastguard Worker */ 4422*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_SERVER_LEADER_SERVICES = SPINEL_PROP_SERVER__BEGIN + 2, 4423*cfb92d14SAndroid Build Coastguard Worker 4424*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_SERVER__END = 0xB0, 4425*cfb92d14SAndroid Build Coastguard Worker 4426*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_RCP__BEGIN = 0xB0, 4427*cfb92d14SAndroid Build Coastguard Worker 4428*cfb92d14SAndroid Build Coastguard Worker /// RCP API Version number 4429*cfb92d14SAndroid Build Coastguard Worker /** Format: `i` (read-only) 4430*cfb92d14SAndroid Build Coastguard Worker * 4431*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_RADIO and SPINEL_CAP_RCP_API_VERSION. 4432*cfb92d14SAndroid Build Coastguard Worker * 4433*cfb92d14SAndroid Build Coastguard Worker * This property gives the RCP API Version number. 4434*cfb92d14SAndroid Build Coastguard Worker * 4435*cfb92d14SAndroid Build Coastguard Worker * Please see "Spinel definition compatibility guideline" section. 4436*cfb92d14SAndroid Build Coastguard Worker * 4437*cfb92d14SAndroid Build Coastguard Worker */ 4438*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_RCP_API_VERSION = SPINEL_PROP_RCP__BEGIN + 0, 4439*cfb92d14SAndroid Build Coastguard Worker 4440*cfb92d14SAndroid Build Coastguard Worker /// Min host RCP API Version number 4441*cfb92d14SAndroid Build Coastguard Worker /** Format: `i` (read-only) 4442*cfb92d14SAndroid Build Coastguard Worker * 4443*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_RADIO and SPINEL_CAP_RCP_MIN_HOST_API_VERSION. 4444*cfb92d14SAndroid Build Coastguard Worker * 4445*cfb92d14SAndroid Build Coastguard Worker * This property gives the minimum host RCP API Version number. 4446*cfb92d14SAndroid Build Coastguard Worker * 4447*cfb92d14SAndroid Build Coastguard Worker * Please see "Spinel definition compatibility guideline" section. 4448*cfb92d14SAndroid Build Coastguard Worker * 4449*cfb92d14SAndroid Build Coastguard Worker */ 4450*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_RCP_MIN_HOST_API_VERSION = SPINEL_PROP_RCP__BEGIN + 1, 4451*cfb92d14SAndroid Build Coastguard Worker 4452*cfb92d14SAndroid Build Coastguard Worker /// Crash Dump 4453*cfb92d14SAndroid Build Coastguard Worker /** Format: Empty : Write only 4454*cfb92d14SAndroid Build Coastguard Worker * 4455*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_RADIO and SPINEL_CAP_RCP_LOG_CRASH_DUMP. 4456*cfb92d14SAndroid Build Coastguard Worker * 4457*cfb92d14SAndroid Build Coastguard Worker * Writing to this property instructs the RCP to log a crash dump if available. 4458*cfb92d14SAndroid Build Coastguard Worker * 4459*cfb92d14SAndroid Build Coastguard Worker */ 4460*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_RCP_LOG_CRASH_DUMP = SPINEL_PROP_RCP__BEGIN + 2, 4461*cfb92d14SAndroid Build Coastguard Worker 4462*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_RCP__END = 0xFF, 4463*cfb92d14SAndroid Build Coastguard Worker 4464*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_INTERFACE__BEGIN = 0x100, 4465*cfb92d14SAndroid Build Coastguard Worker 4466*cfb92d14SAndroid Build Coastguard Worker /// UART Bitrate 4467*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` 4468*cfb92d14SAndroid Build Coastguard Worker * 4469*cfb92d14SAndroid Build Coastguard Worker * If the NCP is using a UART to communicate with the host, 4470*cfb92d14SAndroid Build Coastguard Worker * this property allows the host to change the bitrate 4471*cfb92d14SAndroid Build Coastguard Worker * of the serial connection. The value encoding is `L`, 4472*cfb92d14SAndroid Build Coastguard Worker * which is a little-endian 32-bit unsigned integer. 4473*cfb92d14SAndroid Build Coastguard Worker * The host should not assume that all possible numeric values 4474*cfb92d14SAndroid Build Coastguard Worker * are supported. 4475*cfb92d14SAndroid Build Coastguard Worker * 4476*cfb92d14SAndroid Build Coastguard Worker * If implemented by the NCP, this property should be persistent 4477*cfb92d14SAndroid Build Coastguard Worker * across software resets and forgotten upon hardware resets. 4478*cfb92d14SAndroid Build Coastguard Worker * 4479*cfb92d14SAndroid Build Coastguard Worker * This property is only implemented when a UART is being 4480*cfb92d14SAndroid Build Coastguard Worker * used for Spinel. This property is optional. 4481*cfb92d14SAndroid Build Coastguard Worker * 4482*cfb92d14SAndroid Build Coastguard Worker * When changing the bitrate, all frames will be received 4483*cfb92d14SAndroid Build Coastguard Worker * at the previous bitrate until the response frame to this command 4484*cfb92d14SAndroid Build Coastguard Worker * is received. Once a successful response frame is received by 4485*cfb92d14SAndroid Build Coastguard Worker * the host, all further frames will be transmitted at the new 4486*cfb92d14SAndroid Build Coastguard Worker * bitrate. 4487*cfb92d14SAndroid Build Coastguard Worker */ 4488*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_UART_BITRATE = SPINEL_PROP_INTERFACE__BEGIN + 0, 4489*cfb92d14SAndroid Build Coastguard Worker 4490*cfb92d14SAndroid Build Coastguard Worker /// UART Software Flow Control 4491*cfb92d14SAndroid Build Coastguard Worker /** Format: `b` 4492*cfb92d14SAndroid Build Coastguard Worker * 4493*cfb92d14SAndroid Build Coastguard Worker * If the NCP is using a UART to communicate with the host, 4494*cfb92d14SAndroid Build Coastguard Worker * this property allows the host to determine if software flow 4495*cfb92d14SAndroid Build Coastguard Worker * control (XON/XOFF style) should be used and (optionally) to 4496*cfb92d14SAndroid Build Coastguard Worker * turn it on or off. 4497*cfb92d14SAndroid Build Coastguard Worker * 4498*cfb92d14SAndroid Build Coastguard Worker * This property is only implemented when a UART is being 4499*cfb92d14SAndroid Build Coastguard Worker * used for Spinel. This property is optional. 4500*cfb92d14SAndroid Build Coastguard Worker */ 4501*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_UART_XON_XOFF = SPINEL_PROP_INTERFACE__BEGIN + 1, 4502*cfb92d14SAndroid Build Coastguard Worker 4503*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_INTERFACE__END = 0x200, 4504*cfb92d14SAndroid Build Coastguard Worker 4505*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_15_4_PIB__BEGIN = 0x400, 4506*cfb92d14SAndroid Build Coastguard Worker // For direct access to the 802.15.4 PID. 4507*cfb92d14SAndroid Build Coastguard Worker // Individual registers are fetched using 4508*cfb92d14SAndroid Build Coastguard Worker // `SPINEL_PROP_15_4_PIB__BEGIN+[PIB_IDENTIFIER]` 4509*cfb92d14SAndroid Build Coastguard Worker // Only supported if SPINEL_CAP_15_4_PIB is set. 4510*cfb92d14SAndroid Build Coastguard Worker // 4511*cfb92d14SAndroid Build Coastguard Worker // For brevity, the entire 802.15.4 PIB space is 4512*cfb92d14SAndroid Build Coastguard Worker // not defined here, but a few choice attributes 4513*cfb92d14SAndroid Build Coastguard Worker // are defined for illustration and convenience. 4514*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_15_4_PIB_PHY_CHANNELS_SUPPORTED = SPINEL_PROP_15_4_PIB__BEGIN + 0x01, ///< [A(L)] 4515*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_15_4_PIB_MAC_PROMISCUOUS_MODE = SPINEL_PROP_15_4_PIB__BEGIN + 0x51, ///< [b] 4516*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_15_4_PIB_MAC_SECURITY_ENABLED = SPINEL_PROP_15_4_PIB__BEGIN + 0x5d, ///< [b] 4517*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_15_4_PIB__END = 0x500, 4518*cfb92d14SAndroid Build Coastguard Worker 4519*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR__BEGIN = 0x500, 4520*cfb92d14SAndroid Build Coastguard Worker 4521*cfb92d14SAndroid Build Coastguard Worker /// Counter reset 4522*cfb92d14SAndroid Build Coastguard Worker /** Format: Empty (Write only). 4523*cfb92d14SAndroid Build Coastguard Worker * 4524*cfb92d14SAndroid Build Coastguard Worker * Writing to this property (with any value) will reset all MAC, MLE, IP, and NCP counters to zero. 4525*cfb92d14SAndroid Build Coastguard Worker * 4526*cfb92d14SAndroid Build Coastguard Worker */ 4527*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_RESET = SPINEL_PROP_CNTR__BEGIN + 0, 4528*cfb92d14SAndroid Build Coastguard Worker 4529*cfb92d14SAndroid Build Coastguard Worker /// The total number of transmissions. 4530*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4531*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_TX_PKT_TOTAL = SPINEL_PROP_CNTR__BEGIN + 1, 4532*cfb92d14SAndroid Build Coastguard Worker 4533*cfb92d14SAndroid Build Coastguard Worker /// The number of transmissions with ack request. 4534*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4535*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_TX_PKT_ACK_REQ = SPINEL_PROP_CNTR__BEGIN + 2, 4536*cfb92d14SAndroid Build Coastguard Worker 4537*cfb92d14SAndroid Build Coastguard Worker /// The number of transmissions that were acked. 4538*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4539*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_TX_PKT_ACKED = SPINEL_PROP_CNTR__BEGIN + 3, 4540*cfb92d14SAndroid Build Coastguard Worker 4541*cfb92d14SAndroid Build Coastguard Worker /// The number of transmissions without ack request. 4542*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4543*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_TX_PKT_NO_ACK_REQ = SPINEL_PROP_CNTR__BEGIN + 4, 4544*cfb92d14SAndroid Build Coastguard Worker 4545*cfb92d14SAndroid Build Coastguard Worker /// The number of transmitted data. 4546*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4547*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_TX_PKT_DATA = SPINEL_PROP_CNTR__BEGIN + 5, 4548*cfb92d14SAndroid Build Coastguard Worker 4549*cfb92d14SAndroid Build Coastguard Worker /// The number of transmitted data poll. 4550*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4551*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_TX_PKT_DATA_POLL = SPINEL_PROP_CNTR__BEGIN + 6, 4552*cfb92d14SAndroid Build Coastguard Worker 4553*cfb92d14SAndroid Build Coastguard Worker /// The number of transmitted beacon. 4554*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4555*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_TX_PKT_BEACON = SPINEL_PROP_CNTR__BEGIN + 7, 4556*cfb92d14SAndroid Build Coastguard Worker 4557*cfb92d14SAndroid Build Coastguard Worker /// The number of transmitted beacon request. 4558*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4559*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_TX_PKT_BEACON_REQ = SPINEL_PROP_CNTR__BEGIN + 8, 4560*cfb92d14SAndroid Build Coastguard Worker 4561*cfb92d14SAndroid Build Coastguard Worker /// The number of transmitted other types of frames. 4562*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4563*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_TX_PKT_OTHER = SPINEL_PROP_CNTR__BEGIN + 9, 4564*cfb92d14SAndroid Build Coastguard Worker 4565*cfb92d14SAndroid Build Coastguard Worker /// The number of retransmission times. 4566*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4567*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_TX_PKT_RETRY = SPINEL_PROP_CNTR__BEGIN + 10, 4568*cfb92d14SAndroid Build Coastguard Worker 4569*cfb92d14SAndroid Build Coastguard Worker /// The number of CCA failure times. 4570*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4571*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_TX_ERR_CCA = SPINEL_PROP_CNTR__BEGIN + 11, 4572*cfb92d14SAndroid Build Coastguard Worker 4573*cfb92d14SAndroid Build Coastguard Worker /// The number of unicast packets transmitted. 4574*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4575*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_TX_PKT_UNICAST = SPINEL_PROP_CNTR__BEGIN + 12, 4576*cfb92d14SAndroid Build Coastguard Worker 4577*cfb92d14SAndroid Build Coastguard Worker /// The number of broadcast packets transmitted. 4578*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4579*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_TX_PKT_BROADCAST = SPINEL_PROP_CNTR__BEGIN + 13, 4580*cfb92d14SAndroid Build Coastguard Worker 4581*cfb92d14SAndroid Build Coastguard Worker /// The number of frame transmission failures due to abort error. 4582*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4583*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_TX_ERR_ABORT = SPINEL_PROP_CNTR__BEGIN + 14, 4584*cfb92d14SAndroid Build Coastguard Worker 4585*cfb92d14SAndroid Build Coastguard Worker /// The total number of received packets. 4586*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4587*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_RX_PKT_TOTAL = SPINEL_PROP_CNTR__BEGIN + 100, 4588*cfb92d14SAndroid Build Coastguard Worker 4589*cfb92d14SAndroid Build Coastguard Worker /// The number of received data. 4590*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4591*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_RX_PKT_DATA = SPINEL_PROP_CNTR__BEGIN + 101, 4592*cfb92d14SAndroid Build Coastguard Worker 4593*cfb92d14SAndroid Build Coastguard Worker /// The number of received data poll. 4594*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4595*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_RX_PKT_DATA_POLL = SPINEL_PROP_CNTR__BEGIN + 102, 4596*cfb92d14SAndroid Build Coastguard Worker 4597*cfb92d14SAndroid Build Coastguard Worker /// The number of received beacon. 4598*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4599*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_RX_PKT_BEACON = SPINEL_PROP_CNTR__BEGIN + 103, 4600*cfb92d14SAndroid Build Coastguard Worker 4601*cfb92d14SAndroid Build Coastguard Worker /// The number of received beacon request. 4602*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4603*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_RX_PKT_BEACON_REQ = SPINEL_PROP_CNTR__BEGIN + 104, 4604*cfb92d14SAndroid Build Coastguard Worker 4605*cfb92d14SAndroid Build Coastguard Worker /// The number of received other types of frames. 4606*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4607*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_RX_PKT_OTHER = SPINEL_PROP_CNTR__BEGIN + 105, 4608*cfb92d14SAndroid Build Coastguard Worker 4609*cfb92d14SAndroid Build Coastguard Worker /// The number of received packets filtered by allowlist. 4610*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4611*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_RX_PKT_FILT_WL = SPINEL_PROP_CNTR__BEGIN + 106, 4612*cfb92d14SAndroid Build Coastguard Worker 4613*cfb92d14SAndroid Build Coastguard Worker /// The number of received packets filtered by destination check. 4614*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4615*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_RX_PKT_FILT_DA = SPINEL_PROP_CNTR__BEGIN + 107, 4616*cfb92d14SAndroid Build Coastguard Worker 4617*cfb92d14SAndroid Build Coastguard Worker /// The number of received packets that are empty. 4618*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4619*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_RX_ERR_EMPTY = SPINEL_PROP_CNTR__BEGIN + 108, 4620*cfb92d14SAndroid Build Coastguard Worker 4621*cfb92d14SAndroid Build Coastguard Worker /// The number of received packets from an unknown neighbor. 4622*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4623*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_RX_ERR_UKWN_NBR = SPINEL_PROP_CNTR__BEGIN + 109, 4624*cfb92d14SAndroid Build Coastguard Worker 4625*cfb92d14SAndroid Build Coastguard Worker /// The number of received packets whose source address is invalid. 4626*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4627*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_RX_ERR_NVLD_SADDR = SPINEL_PROP_CNTR__BEGIN + 110, 4628*cfb92d14SAndroid Build Coastguard Worker 4629*cfb92d14SAndroid Build Coastguard Worker /// The number of received packets with a security error. 4630*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4631*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_RX_ERR_SECURITY = SPINEL_PROP_CNTR__BEGIN + 111, 4632*cfb92d14SAndroid Build Coastguard Worker 4633*cfb92d14SAndroid Build Coastguard Worker /// The number of received packets with a checksum error. 4634*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4635*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_RX_ERR_BAD_FCS = SPINEL_PROP_CNTR__BEGIN + 112, 4636*cfb92d14SAndroid Build Coastguard Worker 4637*cfb92d14SAndroid Build Coastguard Worker /// The number of received packets with other errors. 4638*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4639*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_RX_ERR_OTHER = SPINEL_PROP_CNTR__BEGIN + 113, 4640*cfb92d14SAndroid Build Coastguard Worker 4641*cfb92d14SAndroid Build Coastguard Worker /// The number of received duplicated. 4642*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4643*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_RX_PKT_DUP = SPINEL_PROP_CNTR__BEGIN + 114, 4644*cfb92d14SAndroid Build Coastguard Worker 4645*cfb92d14SAndroid Build Coastguard Worker /// The number of unicast packets received. 4646*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4647*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_RX_PKT_UNICAST = SPINEL_PROP_CNTR__BEGIN + 115, 4648*cfb92d14SAndroid Build Coastguard Worker 4649*cfb92d14SAndroid Build Coastguard Worker /// The number of broadcast packets received. 4650*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4651*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_RX_PKT_BROADCAST = SPINEL_PROP_CNTR__BEGIN + 116, 4652*cfb92d14SAndroid Build Coastguard Worker 4653*cfb92d14SAndroid Build Coastguard Worker /// The total number of secure transmitted IP messages. 4654*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4655*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_TX_IP_SEC_TOTAL = SPINEL_PROP_CNTR__BEGIN + 200, 4656*cfb92d14SAndroid Build Coastguard Worker 4657*cfb92d14SAndroid Build Coastguard Worker /// The total number of insecure transmitted IP messages. 4658*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4659*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_TX_IP_INSEC_TOTAL = SPINEL_PROP_CNTR__BEGIN + 201, 4660*cfb92d14SAndroid Build Coastguard Worker 4661*cfb92d14SAndroid Build Coastguard Worker /// The number of dropped (not transmitted) IP messages. 4662*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4663*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_TX_IP_DROPPED = SPINEL_PROP_CNTR__BEGIN + 202, 4664*cfb92d14SAndroid Build Coastguard Worker 4665*cfb92d14SAndroid Build Coastguard Worker /// The total number of secure received IP message. 4666*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4667*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_RX_IP_SEC_TOTAL = SPINEL_PROP_CNTR__BEGIN + 203, 4668*cfb92d14SAndroid Build Coastguard Worker 4669*cfb92d14SAndroid Build Coastguard Worker /// The total number of insecure received IP message. 4670*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4671*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_RX_IP_INSEC_TOTAL = SPINEL_PROP_CNTR__BEGIN + 204, 4672*cfb92d14SAndroid Build Coastguard Worker 4673*cfb92d14SAndroid Build Coastguard Worker /// The number of dropped received IP messages. 4674*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4675*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_RX_IP_DROPPED = SPINEL_PROP_CNTR__BEGIN + 205, 4676*cfb92d14SAndroid Build Coastguard Worker 4677*cfb92d14SAndroid Build Coastguard Worker /// The number of transmitted spinel frames. 4678*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4679*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_TX_SPINEL_TOTAL = SPINEL_PROP_CNTR__BEGIN + 300, 4680*cfb92d14SAndroid Build Coastguard Worker 4681*cfb92d14SAndroid Build Coastguard Worker /// The number of received spinel frames. 4682*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4683*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_RX_SPINEL_TOTAL = SPINEL_PROP_CNTR__BEGIN + 301, 4684*cfb92d14SAndroid Build Coastguard Worker 4685*cfb92d14SAndroid Build Coastguard Worker /// The number of received spinel frames with error. 4686*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4687*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_RX_SPINEL_ERR = SPINEL_PROP_CNTR__BEGIN + 302, 4688*cfb92d14SAndroid Build Coastguard Worker 4689*cfb92d14SAndroid Build Coastguard Worker /// Number of out of order received spinel frames (tid increase by more than 1). 4690*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4691*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_RX_SPINEL_OUT_OF_ORDER_TID = SPINEL_PROP_CNTR__BEGIN + 303, 4692*cfb92d14SAndroid Build Coastguard Worker 4693*cfb92d14SAndroid Build Coastguard Worker /// The number of successful Tx IP packets 4694*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4695*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_IP_TX_SUCCESS = SPINEL_PROP_CNTR__BEGIN + 304, 4696*cfb92d14SAndroid Build Coastguard Worker 4697*cfb92d14SAndroid Build Coastguard Worker /// The number of successful Rx IP packets 4698*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4699*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_IP_RX_SUCCESS = SPINEL_PROP_CNTR__BEGIN + 305, 4700*cfb92d14SAndroid Build Coastguard Worker 4701*cfb92d14SAndroid Build Coastguard Worker /// The number of failed Tx IP packets 4702*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4703*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_IP_TX_FAILURE = SPINEL_PROP_CNTR__BEGIN + 306, 4704*cfb92d14SAndroid Build Coastguard Worker 4705*cfb92d14SAndroid Build Coastguard Worker /// The number of failed Rx IP packets 4706*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` (Read-only) */ 4707*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_IP_RX_FAILURE = SPINEL_PROP_CNTR__BEGIN + 307, 4708*cfb92d14SAndroid Build Coastguard Worker 4709*cfb92d14SAndroid Build Coastguard Worker /// The message buffer counter info 4710*cfb92d14SAndroid Build Coastguard Worker /** Format: `SSSSSSSSSSSSSSSS` (Read-only) 4711*cfb92d14SAndroid Build Coastguard Worker * `S`, (TotalBuffers) The number of buffers in the pool. 4712*cfb92d14SAndroid Build Coastguard Worker * `S`, (FreeBuffers) The number of free message buffers. 4713*cfb92d14SAndroid Build Coastguard Worker * `S`, (6loSendMessages) The number of messages in the 6lo send queue. 4714*cfb92d14SAndroid Build Coastguard Worker * `S`, (6loSendBuffers) The number of buffers in the 6lo send queue. 4715*cfb92d14SAndroid Build Coastguard Worker * `S`, (6loReassemblyMessages) The number of messages in the 6LoWPAN reassembly queue. 4716*cfb92d14SAndroid Build Coastguard Worker * `S`, (6loReassemblyBuffers) The number of buffers in the 6LoWPAN reassembly queue. 4717*cfb92d14SAndroid Build Coastguard Worker * `S`, (Ip6Messages) The number of messages in the IPv6 send queue. 4718*cfb92d14SAndroid Build Coastguard Worker * `S`, (Ip6Buffers) The number of buffers in the IPv6 send queue. 4719*cfb92d14SAndroid Build Coastguard Worker * `S`, (MplMessages) The number of messages in the MPL send queue. 4720*cfb92d14SAndroid Build Coastguard Worker * `S`, (MplBuffers) The number of buffers in the MPL send queue. 4721*cfb92d14SAndroid Build Coastguard Worker * `S`, (MleMessages) The number of messages in the MLE send queue. 4722*cfb92d14SAndroid Build Coastguard Worker * `S`, (MleBuffers) The number of buffers in the MLE send queue. 4723*cfb92d14SAndroid Build Coastguard Worker * `S`, (ArpMessages) The number of messages in the ARP send queue. 4724*cfb92d14SAndroid Build Coastguard Worker * `S`, (ArpBuffers) The number of buffers in the ARP send queue. 4725*cfb92d14SAndroid Build Coastguard Worker * `S`, (CoapMessages) The number of messages in the CoAP send queue. 4726*cfb92d14SAndroid Build Coastguard Worker * `S`, (CoapBuffers) The number of buffers in the CoAP send queue. 4727*cfb92d14SAndroid Build Coastguard Worker */ 4728*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MSG_BUFFER_COUNTERS = SPINEL_PROP_CNTR__BEGIN + 400, 4729*cfb92d14SAndroid Build Coastguard Worker 4730*cfb92d14SAndroid Build Coastguard Worker /// All MAC related counters. 4731*cfb92d14SAndroid Build Coastguard Worker /** Format: t(A(L))t(A(L)) 4732*cfb92d14SAndroid Build Coastguard Worker * 4733*cfb92d14SAndroid Build Coastguard Worker * The contents include two structs, first one corresponds to 4734*cfb92d14SAndroid Build Coastguard Worker * all transmit related MAC counters, second one provides the 4735*cfb92d14SAndroid Build Coastguard Worker * receive related counters. 4736*cfb92d14SAndroid Build Coastguard Worker * 4737*cfb92d14SAndroid Build Coastguard Worker * The transmit structure includes: 4738*cfb92d14SAndroid Build Coastguard Worker * 4739*cfb92d14SAndroid Build Coastguard Worker * 'L': TxTotal (The total number of transmissions). 4740*cfb92d14SAndroid Build Coastguard Worker * 'L': TxUnicast (The total number of unicast transmissions). 4741*cfb92d14SAndroid Build Coastguard Worker * 'L': TxBroadcast (The total number of broadcast transmissions). 4742*cfb92d14SAndroid Build Coastguard Worker * 'L': TxAckRequested (The number of transmissions with ack request). 4743*cfb92d14SAndroid Build Coastguard Worker * 'L': TxAcked (The number of transmissions that were acked). 4744*cfb92d14SAndroid Build Coastguard Worker * 'L': TxNoAckRequested (The number of transmissions without ack request). 4745*cfb92d14SAndroid Build Coastguard Worker * 'L': TxData (The number of transmitted data). 4746*cfb92d14SAndroid Build Coastguard Worker * 'L': TxDataPoll (The number of transmitted data poll). 4747*cfb92d14SAndroid Build Coastguard Worker * 'L': TxBeacon (The number of transmitted beacon). 4748*cfb92d14SAndroid Build Coastguard Worker * 'L': TxBeaconRequest (The number of transmitted beacon request). 4749*cfb92d14SAndroid Build Coastguard Worker * 'L': TxOther (The number of transmitted other types of frames). 4750*cfb92d14SAndroid Build Coastguard Worker * 'L': TxRetry (The number of retransmission times). 4751*cfb92d14SAndroid Build Coastguard Worker * 'L': TxErrCca (The number of CCA failure times). 4752*cfb92d14SAndroid Build Coastguard Worker * 'L': TxErrAbort (The number of frame transmission failures due to abort error). 4753*cfb92d14SAndroid Build Coastguard Worker * 'L': TxErrBusyChannel (The number of frames that were dropped due to a busy channel). 4754*cfb92d14SAndroid Build Coastguard Worker * 'L': TxDirectMaxRetryExpiry (The number of expired retransmission retries for direct message). 4755*cfb92d14SAndroid Build Coastguard Worker * 'L': TxIndirectMaxRetryExpiry (The number of expired retransmission retries for indirect message). 4756*cfb92d14SAndroid Build Coastguard Worker * 4757*cfb92d14SAndroid Build Coastguard Worker * The receive structure includes: 4758*cfb92d14SAndroid Build Coastguard Worker * 4759*cfb92d14SAndroid Build Coastguard Worker * 'L': RxTotal (The total number of received packets). 4760*cfb92d14SAndroid Build Coastguard Worker * 'L': RxUnicast (The total number of unicast packets received). 4761*cfb92d14SAndroid Build Coastguard Worker * 'L': RxBroadcast (The total number of broadcast packets received). 4762*cfb92d14SAndroid Build Coastguard Worker * 'L': RxData (The number of received data). 4763*cfb92d14SAndroid Build Coastguard Worker * 'L': RxDataPoll (The number of received data poll). 4764*cfb92d14SAndroid Build Coastguard Worker * 'L': RxBeacon (The number of received beacon). 4765*cfb92d14SAndroid Build Coastguard Worker * 'L': RxBeaconRequest (The number of received beacon request). 4766*cfb92d14SAndroid Build Coastguard Worker * 'L': RxOther (The number of received other types of frames). 4767*cfb92d14SAndroid Build Coastguard Worker * 'L': RxAddressFiltered (The number of received packets filtered by address filter 4768*cfb92d14SAndroid Build Coastguard Worker * (allowlist or denylist)). 4769*cfb92d14SAndroid Build Coastguard Worker * 'L': RxDestAddrFiltered (The number of received packets filtered by destination check). 4770*cfb92d14SAndroid Build Coastguard Worker * 'L': RxDuplicated (The number of received duplicated packets). 4771*cfb92d14SAndroid Build Coastguard Worker * 'L': RxErrNoFrame (The number of received packets with no or malformed content). 4772*cfb92d14SAndroid Build Coastguard Worker * 'L': RxErrUnknownNeighbor (The number of received packets from unknown neighbor). 4773*cfb92d14SAndroid Build Coastguard Worker * 'L': RxErrInvalidSrcAddr (The number of received packets whose source address is invalid). 4774*cfb92d14SAndroid Build Coastguard Worker * 'L': RxErrSec (The number of received packets with security error). 4775*cfb92d14SAndroid Build Coastguard Worker * 'L': RxErrFcs (The number of received packets with FCS error). 4776*cfb92d14SAndroid Build Coastguard Worker * 'L': RxErrOther (The number of received packets with other error). 4777*cfb92d14SAndroid Build Coastguard Worker * 4778*cfb92d14SAndroid Build Coastguard Worker * Writing to this property with any value would reset all MAC counters to zero. 4779*cfb92d14SAndroid Build Coastguard Worker * 4780*cfb92d14SAndroid Build Coastguard Worker */ 4781*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_ALL_MAC_COUNTERS = SPINEL_PROP_CNTR__BEGIN + 401, 4782*cfb92d14SAndroid Build Coastguard Worker 4783*cfb92d14SAndroid Build Coastguard Worker /// Thread MLE counters. 4784*cfb92d14SAndroid Build Coastguard Worker /** Format: `SSSSSSSSS` 4785*cfb92d14SAndroid Build Coastguard Worker * 4786*cfb92d14SAndroid Build Coastguard Worker * 'S': DisabledRole (The number of times device entered OT_DEVICE_ROLE_DISABLED role). 4787*cfb92d14SAndroid Build Coastguard Worker * 'S': DetachedRole (The number of times device entered OT_DEVICE_ROLE_DETACHED role). 4788*cfb92d14SAndroid Build Coastguard Worker * 'S': ChildRole (The number of times device entered OT_DEVICE_ROLE_CHILD role). 4789*cfb92d14SAndroid Build Coastguard Worker * 'S': RouterRole (The number of times device entered OT_DEVICE_ROLE_ROUTER role). 4790*cfb92d14SAndroid Build Coastguard Worker * 'S': LeaderRole (The number of times device entered OT_DEVICE_ROLE_LEADER role). 4791*cfb92d14SAndroid Build Coastguard Worker * 'S': AttachAttempts (The number of attach attempts while device was detached). 4792*cfb92d14SAndroid Build Coastguard Worker * 'S': PartitionIdChanges (The number of changes to partition ID). 4793*cfb92d14SAndroid Build Coastguard Worker * 'S': BetterPartitionAttachAttempts (The number of attempts to attach to a better partition). 4794*cfb92d14SAndroid Build Coastguard Worker * 'S': ParentChanges (The number of times device changed its parents). 4795*cfb92d14SAndroid Build Coastguard Worker * 4796*cfb92d14SAndroid Build Coastguard Worker * Writing to this property with any value would reset all MLE counters to zero. 4797*cfb92d14SAndroid Build Coastguard Worker * 4798*cfb92d14SAndroid Build Coastguard Worker */ 4799*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_MLE_COUNTERS = SPINEL_PROP_CNTR__BEGIN + 402, 4800*cfb92d14SAndroid Build Coastguard Worker 4801*cfb92d14SAndroid Build Coastguard Worker /// Thread IPv6 counters. 4802*cfb92d14SAndroid Build Coastguard Worker /** Format: `t(LL)t(LL)` 4803*cfb92d14SAndroid Build Coastguard Worker * 4804*cfb92d14SAndroid Build Coastguard Worker * The contents include two structs, first one corresponds to 4805*cfb92d14SAndroid Build Coastguard Worker * all transmit related MAC counters, second one provides the 4806*cfb92d14SAndroid Build Coastguard Worker * receive related counters. 4807*cfb92d14SAndroid Build Coastguard Worker * 4808*cfb92d14SAndroid Build Coastguard Worker * The transmit structure includes: 4809*cfb92d14SAndroid Build Coastguard Worker * 'L': TxSuccess (The number of IPv6 packets successfully transmitted). 4810*cfb92d14SAndroid Build Coastguard Worker * 'L': TxFailure (The number of IPv6 packets failed to transmit). 4811*cfb92d14SAndroid Build Coastguard Worker * 4812*cfb92d14SAndroid Build Coastguard Worker * The receive structure includes: 4813*cfb92d14SAndroid Build Coastguard Worker * 'L': RxSuccess (The number of IPv6 packets successfully received). 4814*cfb92d14SAndroid Build Coastguard Worker * 'L': RxFailure (The number of IPv6 packets failed to receive). 4815*cfb92d14SAndroid Build Coastguard Worker * 4816*cfb92d14SAndroid Build Coastguard Worker * Writing to this property with any value would reset all IPv6 counters to zero. 4817*cfb92d14SAndroid Build Coastguard Worker * 4818*cfb92d14SAndroid Build Coastguard Worker */ 4819*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_ALL_IP_COUNTERS = SPINEL_PROP_CNTR__BEGIN + 403, 4820*cfb92d14SAndroid Build Coastguard Worker 4821*cfb92d14SAndroid Build Coastguard Worker /// MAC retry histogram. 4822*cfb92d14SAndroid Build Coastguard Worker /** Format: t(A(L))t(A(L)) 4823*cfb92d14SAndroid Build Coastguard Worker * 4824*cfb92d14SAndroid Build Coastguard Worker * Required capability: SPINEL_CAP_MAC_RETRY_HISTOGRAM 4825*cfb92d14SAndroid Build Coastguard Worker * 4826*cfb92d14SAndroid Build Coastguard Worker * The contents include two structs, first one is histogram which corresponds to retransmissions number of direct 4827*cfb92d14SAndroid Build Coastguard Worker * messages, second one provides the histogram of retransmissions for indirect messages. 4828*cfb92d14SAndroid Build Coastguard Worker * 4829*cfb92d14SAndroid Build Coastguard Worker * The first structure includes: 4830*cfb92d14SAndroid Build Coastguard Worker * 'L': DirectRetry[0] (The number of packets after 0 retry). 4831*cfb92d14SAndroid Build Coastguard Worker * 'L': DirectRetry[1] (The number of packets after 1 retry). 4832*cfb92d14SAndroid Build Coastguard Worker * ... 4833*cfb92d14SAndroid Build Coastguard Worker * 'L': DirectRetry[n] (The number of packets after n retry). 4834*cfb92d14SAndroid Build Coastguard Worker * 4835*cfb92d14SAndroid Build Coastguard Worker * The size of the array is OPENTHREAD_CONFIG_MAC_RETRY_SUCCESS_HISTOGRAM_MAX_SIZE_COUNT_DIRECT. 4836*cfb92d14SAndroid Build Coastguard Worker * 4837*cfb92d14SAndroid Build Coastguard Worker * The second structure includes: 4838*cfb92d14SAndroid Build Coastguard Worker * 'L': IndirectRetry[0] (The number of packets after 0 retry). 4839*cfb92d14SAndroid Build Coastguard Worker * 'L': IndirectRetry[1] (The number of packets after 1 retry). 4840*cfb92d14SAndroid Build Coastguard Worker * ... 4841*cfb92d14SAndroid Build Coastguard Worker * 'L': IndirectRetry[m] (The number of packets after m retry). 4842*cfb92d14SAndroid Build Coastguard Worker * 4843*cfb92d14SAndroid Build Coastguard Worker * The size of the array is OPENTHREAD_CONFIG_MAC_RETRY_SUCCESS_HISTOGRAM_MAX_SIZE_COUNT_INDIRECT. 4844*cfb92d14SAndroid Build Coastguard Worker * 4845*cfb92d14SAndroid Build Coastguard Worker * Writing to this property with any value would reset MAC retry histogram. 4846*cfb92d14SAndroid Build Coastguard Worker * 4847*cfb92d14SAndroid Build Coastguard Worker */ 4848*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR_MAC_RETRY_HISTOGRAM = SPINEL_PROP_CNTR__BEGIN + 404, 4849*cfb92d14SAndroid Build Coastguard Worker 4850*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_CNTR__END = 0x800, 4851*cfb92d14SAndroid Build Coastguard Worker 4852*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_RCP_EXT__BEGIN = 0x800, 4853*cfb92d14SAndroid Build Coastguard Worker 4854*cfb92d14SAndroid Build Coastguard Worker /// MAC Key 4855*cfb92d14SAndroid Build Coastguard Worker /** Format: `CCddd`. 4856*cfb92d14SAndroid Build Coastguard Worker * 4857*cfb92d14SAndroid Build Coastguard Worker * `C`: MAC key ID mode 4858*cfb92d14SAndroid Build Coastguard Worker * `C`: MAC key ID 4859*cfb92d14SAndroid Build Coastguard Worker * `d`: previous MAC key material data 4860*cfb92d14SAndroid Build Coastguard Worker * `d`: current MAC key material data 4861*cfb92d14SAndroid Build Coastguard Worker * `d`: next MAC key material data 4862*cfb92d14SAndroid Build Coastguard Worker * 4863*cfb92d14SAndroid Build Coastguard Worker * The Spinel property is used to set/get MAC key materials to and from RCP. 4864*cfb92d14SAndroid Build Coastguard Worker * 4865*cfb92d14SAndroid Build Coastguard Worker */ 4866*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_RCP_MAC_KEY = SPINEL_PROP_RCP_EXT__BEGIN + 0, 4867*cfb92d14SAndroid Build Coastguard Worker 4868*cfb92d14SAndroid Build Coastguard Worker /// MAC Frame Counter 4869*cfb92d14SAndroid Build Coastguard Worker /** Format: `L` for read and `Lb` or `L` for write 4870*cfb92d14SAndroid Build Coastguard Worker * 4871*cfb92d14SAndroid Build Coastguard Worker * `L`: MAC frame counter 4872*cfb92d14SAndroid Build Coastguard Worker * 'b': Optional boolean used only during write. If not provided, `false` is assumed. 4873*cfb92d14SAndroid Build Coastguard Worker * If `true` counter is set only if the new value is larger than current value. 4874*cfb92d14SAndroid Build Coastguard Worker * If `false` the new value is set as frame counter independent of the current value. 4875*cfb92d14SAndroid Build Coastguard Worker * 4876*cfb92d14SAndroid Build Coastguard Worker * The Spinel property is used to set MAC frame counter to RCP. 4877*cfb92d14SAndroid Build Coastguard Worker * 4878*cfb92d14SAndroid Build Coastguard Worker */ 4879*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_RCP_MAC_FRAME_COUNTER = SPINEL_PROP_RCP_EXT__BEGIN + 1, 4880*cfb92d14SAndroid Build Coastguard Worker 4881*cfb92d14SAndroid Build Coastguard Worker /// Timestamps when Spinel frame is received and transmitted 4882*cfb92d14SAndroid Build Coastguard Worker /** Format: `X`. 4883*cfb92d14SAndroid Build Coastguard Worker * 4884*cfb92d14SAndroid Build Coastguard Worker * `X`: Spinel frame transmit timestamp 4885*cfb92d14SAndroid Build Coastguard Worker * 4886*cfb92d14SAndroid Build Coastguard Worker * The Spinel property is used to get timestamp from RCP to calculate host and RCP timer difference. 4887*cfb92d14SAndroid Build Coastguard Worker * 4888*cfb92d14SAndroid Build Coastguard Worker */ 4889*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_RCP_TIMESTAMP = SPINEL_PROP_RCP_EXT__BEGIN + 2, 4890*cfb92d14SAndroid Build Coastguard Worker 4891*cfb92d14SAndroid Build Coastguard Worker /// Configure Enhanced ACK probing 4892*cfb92d14SAndroid Build Coastguard Worker /** Format: `SEC` (Write-only). 4893*cfb92d14SAndroid Build Coastguard Worker * 4894*cfb92d14SAndroid Build Coastguard Worker * `S`: Short address 4895*cfb92d14SAndroid Build Coastguard Worker * `E`: Extended address 4896*cfb92d14SAndroid Build Coastguard Worker * `C`: List of requested metric ids encoded as bit fields in single byte 4897*cfb92d14SAndroid Build Coastguard Worker * 4898*cfb92d14SAndroid Build Coastguard Worker * +---------------+----+ 4899*cfb92d14SAndroid Build Coastguard Worker * | Metric | Id | 4900*cfb92d14SAndroid Build Coastguard Worker * +---------------+----+ 4901*cfb92d14SAndroid Build Coastguard Worker * | Received PDUs | 0 | 4902*cfb92d14SAndroid Build Coastguard Worker * | LQI | 1 | 4903*cfb92d14SAndroid Build Coastguard Worker * | Link margin | 2 | 4904*cfb92d14SAndroid Build Coastguard Worker * | RSSI | 3 | 4905*cfb92d14SAndroid Build Coastguard Worker * +---------------+----+ 4906*cfb92d14SAndroid Build Coastguard Worker * 4907*cfb92d14SAndroid Build Coastguard Worker * Enable/disable or update Enhanced-ACK Based Probing in radio for a specific Initiator. 4908*cfb92d14SAndroid Build Coastguard Worker * 4909*cfb92d14SAndroid Build Coastguard Worker */ 4910*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_RCP_ENH_ACK_PROBING = SPINEL_PROP_RCP_EXT__BEGIN + 3, 4911*cfb92d14SAndroid Build Coastguard Worker 4912*cfb92d14SAndroid Build Coastguard Worker /// CSL Accuracy 4913*cfb92d14SAndroid Build Coastguard Worker /** Format: `C` 4914*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_NET_THREAD_1_2` 4915*cfb92d14SAndroid Build Coastguard Worker * 4916*cfb92d14SAndroid Build Coastguard Worker * The current CSL rx/tx scheduling drift, in units of ± ppm. 4917*cfb92d14SAndroid Build Coastguard Worker * 4918*cfb92d14SAndroid Build Coastguard Worker */ 4919*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_RCP_CSL_ACCURACY = SPINEL_PROP_RCP_EXT__BEGIN + 4, 4920*cfb92d14SAndroid Build Coastguard Worker 4921*cfb92d14SAndroid Build Coastguard Worker /// CSL Uncertainty 4922*cfb92d14SAndroid Build Coastguard Worker /** Format: `C` 4923*cfb92d14SAndroid Build Coastguard Worker * Required capability: `SPINEL_CAP_NET_THREAD_1_2` 4924*cfb92d14SAndroid Build Coastguard Worker * 4925*cfb92d14SAndroid Build Coastguard Worker * The current uncertainty, in units of 10 us, of the clock used for scheduling CSL operations. 4926*cfb92d14SAndroid Build Coastguard Worker * 4927*cfb92d14SAndroid Build Coastguard Worker */ 4928*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_RCP_CSL_UNCERTAINTY = SPINEL_PROP_RCP_EXT__BEGIN + 5, 4929*cfb92d14SAndroid Build Coastguard Worker 4930*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_RCP_EXT__END = 0x900, 4931*cfb92d14SAndroid Build Coastguard Worker 4932*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MULTIPAN__BEGIN = 0x900, 4933*cfb92d14SAndroid Build Coastguard Worker 4934*cfb92d14SAndroid Build Coastguard Worker /// Multipan interface selection. 4935*cfb92d14SAndroid Build Coastguard Worker /** Format: `C` 4936*cfb92d14SAndroid Build Coastguard Worker * Type: Read-Write 4937*cfb92d14SAndroid Build Coastguard Worker * 4938*cfb92d14SAndroid Build Coastguard Worker * `C`: b[0-1] - Interface id. 4939*cfb92d14SAndroid Build Coastguard Worker * b[7] - 1: Complete pending radio operation, 0: immediate(force) switch. 4940*cfb92d14SAndroid Build Coastguard Worker * 4941*cfb92d14SAndroid Build Coastguard Worker * This feature gets or sets the radio interface to be used in multipan configuration 4942*cfb92d14SAndroid Build Coastguard Worker * 4943*cfb92d14SAndroid Build Coastguard Worker * Default value: 0 4944*cfb92d14SAndroid Build Coastguard Worker * 4945*cfb92d14SAndroid Build Coastguard Worker */ 4946*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MULTIPAN_ACTIVE_INTERFACE = SPINEL_PROP_MULTIPAN__BEGIN + 0, 4947*cfb92d14SAndroid Build Coastguard Worker 4948*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_MULTIPAN__END = 0x910, 4949*cfb92d14SAndroid Build Coastguard Worker 4950*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_NEST__BEGIN = 0x3BC0, 4951*cfb92d14SAndroid Build Coastguard Worker 4952*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_NEST_STREAM_MFG = SPINEL_PROP_NEST__BEGIN + 0, 4953*cfb92d14SAndroid Build Coastguard Worker 4954*cfb92d14SAndroid Build Coastguard Worker /// The legacy network ULA prefix (8 bytes). 4955*cfb92d14SAndroid Build Coastguard Worker /** Format: 'D' 4956*cfb92d14SAndroid Build Coastguard Worker * 4957*cfb92d14SAndroid Build Coastguard Worker * This property is deprecated. 4958*cfb92d14SAndroid Build Coastguard Worker * 4959*cfb92d14SAndroid Build Coastguard Worker */ 4960*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_NEST_LEGACY_ULA_PREFIX = SPINEL_PROP_NEST__BEGIN + 1, 4961*cfb92d14SAndroid Build Coastguard Worker 4962*cfb92d14SAndroid Build Coastguard Worker /// The EUI64 of last node joined using legacy protocol (if none, all zero EUI64 is returned). 4963*cfb92d14SAndroid Build Coastguard Worker /** Format: 'E' 4964*cfb92d14SAndroid Build Coastguard Worker * 4965*cfb92d14SAndroid Build Coastguard Worker * This property is deprecated. 4966*cfb92d14SAndroid Build Coastguard Worker * 4967*cfb92d14SAndroid Build Coastguard Worker */ 4968*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_NEST_LEGACY_LAST_NODE_JOINED = SPINEL_PROP_NEST__BEGIN + 2, 4969*cfb92d14SAndroid Build Coastguard Worker 4970*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_NEST__END = 0x3C00, 4971*cfb92d14SAndroid Build Coastguard Worker 4972*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_VENDOR__BEGIN = 0x3C00, 4973*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_VENDOR__END = 0x4000, 4974*cfb92d14SAndroid Build Coastguard Worker 4975*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_VENDOR_ESP__BEGIN = (SPINEL_PROP_VENDOR__BEGIN + 0), 4976*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_VENDOR_ESP__END = (SPINEL_PROP_VENDOR__BEGIN + 128), 4977*cfb92d14SAndroid Build Coastguard Worker 4978*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_DEBUG__BEGIN = 0x4000, 4979*cfb92d14SAndroid Build Coastguard Worker 4980*cfb92d14SAndroid Build Coastguard Worker /// Testing platform assert 4981*cfb92d14SAndroid Build Coastguard Worker /** Format: 'b' (read-only) 4982*cfb92d14SAndroid Build Coastguard Worker * 4983*cfb92d14SAndroid Build Coastguard Worker * Reading this property will cause an assert on the NCP. This is intended for testing the assert functionality of 4984*cfb92d14SAndroid Build Coastguard Worker * underlying platform/NCP. Assert should ideally cause the NCP to reset, but if this is not supported a `false` 4985*cfb92d14SAndroid Build Coastguard Worker * boolean is returned in response. 4986*cfb92d14SAndroid Build Coastguard Worker * 4987*cfb92d14SAndroid Build Coastguard Worker */ 4988*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_DEBUG_TEST_ASSERT = SPINEL_PROP_DEBUG__BEGIN + 0, 4989*cfb92d14SAndroid Build Coastguard Worker 4990*cfb92d14SAndroid Build Coastguard Worker /// The NCP log level. 4991*cfb92d14SAndroid Build Coastguard Worker /** Format: `C` */ 4992*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_DEBUG_NCP_LOG_LEVEL = SPINEL_PROP_DEBUG__BEGIN + 1, 4993*cfb92d14SAndroid Build Coastguard Worker 4994*cfb92d14SAndroid Build Coastguard Worker /// Testing platform watchdog 4995*cfb92d14SAndroid Build Coastguard Worker /** Format: Empty (read-only) 4996*cfb92d14SAndroid Build Coastguard Worker * 4997*cfb92d14SAndroid Build Coastguard Worker * Reading this property will causes NCP to start a `while(true) ;` loop and thus triggering a watchdog. 4998*cfb92d14SAndroid Build Coastguard Worker * 4999*cfb92d14SAndroid Build Coastguard Worker * This is intended for testing the watchdog functionality on the underlying platform/NCP. 5000*cfb92d14SAndroid Build Coastguard Worker * 5001*cfb92d14SAndroid Build Coastguard Worker */ 5002*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_DEBUG_TEST_WATCHDOG = SPINEL_PROP_DEBUG__BEGIN + 2, 5003*cfb92d14SAndroid Build Coastguard Worker 5004*cfb92d14SAndroid Build Coastguard Worker /// The NCP timestamp base 5005*cfb92d14SAndroid Build Coastguard Worker /** Format: X (write-only) 5006*cfb92d14SAndroid Build Coastguard Worker * 5007*cfb92d14SAndroid Build Coastguard Worker * This property controls the time base value that is used for logs timestamp field calculation. 5008*cfb92d14SAndroid Build Coastguard Worker * 5009*cfb92d14SAndroid Build Coastguard Worker */ 5010*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_DEBUG_LOG_TIMESTAMP_BASE = SPINEL_PROP_DEBUG__BEGIN + 3, 5011*cfb92d14SAndroid Build Coastguard Worker 5012*cfb92d14SAndroid Build Coastguard Worker /// TREL Radio Link - test mode enable 5013*cfb92d14SAndroid Build Coastguard Worker /** Format `b` (read-write) 5014*cfb92d14SAndroid Build Coastguard Worker * 5015*cfb92d14SAndroid Build Coastguard Worker * This property is intended for testing TREL (Thread Radio Encapsulation Link) radio type only (during simulation). 5016*cfb92d14SAndroid Build Coastguard Worker * It allows the TREL interface to be temporarily disabled and (re)enabled. While disabled all traffic through 5017*cfb92d14SAndroid Build Coastguard Worker * TREL interface is dropped silently (to emulate a radio/interface down scenario). 5018*cfb92d14SAndroid Build Coastguard Worker * 5019*cfb92d14SAndroid Build Coastguard Worker * This property is only available when the TREL radio link type is supported. 5020*cfb92d14SAndroid Build Coastguard Worker * 5021*cfb92d14SAndroid Build Coastguard Worker */ 5022*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_DEBUG_TREL_TEST_MODE_ENABLE = SPINEL_PROP_DEBUG__BEGIN + 4, 5023*cfb92d14SAndroid Build Coastguard Worker 5024*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_DEBUG__END = 0x4400, 5025*cfb92d14SAndroid Build Coastguard Worker 5026*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_EXPERIMENTAL__BEGIN = 2000000, 5027*cfb92d14SAndroid Build Coastguard Worker SPINEL_PROP_EXPERIMENTAL__END = 2097152, 5028*cfb92d14SAndroid Build Coastguard Worker }; 5029*cfb92d14SAndroid Build Coastguard Worker 5030*cfb92d14SAndroid Build Coastguard Worker typedef uint32_t spinel_prop_key_t; 5031*cfb92d14SAndroid Build Coastguard Worker 5032*cfb92d14SAndroid Build Coastguard Worker // ---------------------------------------------------------------------------- 5033*cfb92d14SAndroid Build Coastguard Worker 5034*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_HEADER_FLAG 0x80 5035*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_HEADER_FLAGS_SHIFT 6 5036*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_HEADER_FLAGS_MASK (3 << SPINEL_HEADER_FLAGS_SHIFT) 5037*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_HEADER_GET_FLAG(x) (((x)&SPINEL_HEADER_FLAGS_MASK) >> SPINEL_HEADER_FLAGS_SHIFT) 5038*cfb92d14SAndroid Build Coastguard Worker 5039*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_HEADER_TID_SHIFT 0 5040*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_HEADER_TID_MASK (15 << SPINEL_HEADER_TID_SHIFT) 5041*cfb92d14SAndroid Build Coastguard Worker 5042*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_HEADER_IID_SHIFT 4 5043*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_HEADER_IID_MASK (3 << SPINEL_HEADER_IID_SHIFT) 5044*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_HEADER_IID(iid) (static_cast<uint8_t>((iid) << SPINEL_HEADER_IID_SHIFT)) 5045*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_HEADER_IID_MAX 3 5046*cfb92d14SAndroid Build Coastguard Worker 5047*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_HEADER_IID_0 SPINEL_HEADER_IID(0) 5048*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_HEADER_IID_1 SPINEL_HEADER_IID(1) 5049*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_HEADER_IID_2 SPINEL_HEADER_IID(2) 5050*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_HEADER_IID_3 SPINEL_HEADER_IID(3) 5051*cfb92d14SAndroid Build Coastguard Worker 5052*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_HEADER_INVALID_IID 0xFF 5053*cfb92d14SAndroid Build Coastguard Worker 5054*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_HEADER_GET_IID(x) (((x)&SPINEL_HEADER_IID_MASK) >> SPINEL_HEADER_IID_SHIFT) 5055*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_HEADER_GET_TID(x) (spinel_tid_t)(((x)&SPINEL_HEADER_TID_MASK) >> SPINEL_HEADER_TID_SHIFT) 5056*cfb92d14SAndroid Build Coastguard Worker 5057*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_GET_NEXT_TID(x) (spinel_tid_t)((x) >= 0xF ? 1 : (x) + 1) 5058*cfb92d14SAndroid Build Coastguard Worker 5059*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_BEACON_THREAD_FLAG_VERSION_SHIFT 4 5060*cfb92d14SAndroid Build Coastguard Worker 5061*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_BEACON_THREAD_FLAG_VERSION_MASK (0xf << SPINEL_BEACON_THREAD_FLAG_VERSION_SHIFT) 5062*cfb92d14SAndroid Build Coastguard Worker 5063*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_BEACON_THREAD_FLAG_JOINABLE (1 << 0) 5064*cfb92d14SAndroid Build Coastguard Worker 5065*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_BEACON_THREAD_FLAG_NATIVE (1 << 3) 5066*cfb92d14SAndroid Build Coastguard Worker 5067*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_MULTIPAN_INTERFACE_SOFT_SWITCH_SHIFT 7 5068*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_MULTIPAN_INTERFACE_SOFT_SWITCH_MASK (1 << SPINEL_MULTIPAN_INTERFACE_SOFT_SWITCH_SHIFT) 5069*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_MULTIPAN_INTERFACE_ID_MASK 0x03 5070*cfb92d14SAndroid Build Coastguard Worker 5071*cfb92d14SAndroid Build Coastguard Worker // ---------------------------------------------------------------------------- 5072*cfb92d14SAndroid Build Coastguard Worker 5073*cfb92d14SAndroid Build Coastguard Worker enum 5074*cfb92d14SAndroid Build Coastguard Worker { 5075*cfb92d14SAndroid Build Coastguard Worker SPINEL_DATATYPE_NULL_C = 0, 5076*cfb92d14SAndroid Build Coastguard Worker SPINEL_DATATYPE_VOID_C = '.', 5077*cfb92d14SAndroid Build Coastguard Worker SPINEL_DATATYPE_BOOL_C = 'b', 5078*cfb92d14SAndroid Build Coastguard Worker SPINEL_DATATYPE_UINT8_C = 'C', 5079*cfb92d14SAndroid Build Coastguard Worker SPINEL_DATATYPE_INT8_C = 'c', 5080*cfb92d14SAndroid Build Coastguard Worker SPINEL_DATATYPE_UINT16_C = 'S', 5081*cfb92d14SAndroid Build Coastguard Worker SPINEL_DATATYPE_INT16_C = 's', 5082*cfb92d14SAndroid Build Coastguard Worker SPINEL_DATATYPE_UINT32_C = 'L', 5083*cfb92d14SAndroid Build Coastguard Worker SPINEL_DATATYPE_INT32_C = 'l', 5084*cfb92d14SAndroid Build Coastguard Worker SPINEL_DATATYPE_UINT64_C = 'X', 5085*cfb92d14SAndroid Build Coastguard Worker SPINEL_DATATYPE_INT64_C = 'x', 5086*cfb92d14SAndroid Build Coastguard Worker SPINEL_DATATYPE_UINT_PACKED_C = 'i', 5087*cfb92d14SAndroid Build Coastguard Worker SPINEL_DATATYPE_IPv6ADDR_C = '6', 5088*cfb92d14SAndroid Build Coastguard Worker SPINEL_DATATYPE_EUI64_C = 'E', 5089*cfb92d14SAndroid Build Coastguard Worker SPINEL_DATATYPE_EUI48_C = 'e', 5090*cfb92d14SAndroid Build Coastguard Worker SPINEL_DATATYPE_DATA_WLEN_C = 'd', 5091*cfb92d14SAndroid Build Coastguard Worker SPINEL_DATATYPE_DATA_C = 'D', 5092*cfb92d14SAndroid Build Coastguard Worker SPINEL_DATATYPE_UTF8_C = 'U', //!< Zero-Terminated UTF8-Encoded String 5093*cfb92d14SAndroid Build Coastguard Worker SPINEL_DATATYPE_STRUCT_C = 't', 5094*cfb92d14SAndroid Build Coastguard Worker SPINEL_DATATYPE_ARRAY_C = 'A', 5095*cfb92d14SAndroid Build Coastguard Worker }; 5096*cfb92d14SAndroid Build Coastguard Worker 5097*cfb92d14SAndroid Build Coastguard Worker typedef char spinel_datatype_t; 5098*cfb92d14SAndroid Build Coastguard Worker 5099*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_DATATYPE_NULL_S "" 5100*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_DATATYPE_VOID_S "." 5101*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_DATATYPE_BOOL_S "b" 5102*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_DATATYPE_UINT8_S "C" 5103*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_DATATYPE_INT8_S "c" 5104*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_DATATYPE_UINT16_S "S" 5105*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_DATATYPE_INT16_S "s" 5106*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_DATATYPE_UINT32_S "L" 5107*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_DATATYPE_INT32_S "l" 5108*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_DATATYPE_UINT64_S "X" 5109*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_DATATYPE_INT64_S "x" 5110*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_DATATYPE_UINT_PACKED_S "i" 5111*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_DATATYPE_IPv6ADDR_S "6" 5112*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_DATATYPE_EUI64_S "E" 5113*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_DATATYPE_EUI48_S "e" 5114*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_DATATYPE_DATA_WLEN_S "d" 5115*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_DATATYPE_DATA_S "D" 5116*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_DATATYPE_UTF8_S "U" //!< Zero-Terminated UTF8-Encoded String 5117*cfb92d14SAndroid Build Coastguard Worker 5118*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_DATATYPE_ARRAY_S(x) "A(" x ")" 5119*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_DATATYPE_STRUCT_S(x) "t(" x ")" 5120*cfb92d14SAndroid Build Coastguard Worker 5121*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_DATATYPE_ARRAY_STRUCT_S(x) SPINEL_DATATYPE_ARRAY_S(SPINEL_DATATYPE_STRUCT_WLEN_S(x)) 5122*cfb92d14SAndroid Build Coastguard Worker 5123*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_DATATYPE_COMMAND_S \ 5124*cfb92d14SAndroid Build Coastguard Worker SPINEL_DATATYPE_UINT8_S /* header */ \ 5125*cfb92d14SAndroid Build Coastguard Worker SPINEL_DATATYPE_UINT_PACKED_S /* command */ 5126*cfb92d14SAndroid Build Coastguard Worker 5127*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_DATATYPE_COMMAND_PROP_S \ 5128*cfb92d14SAndroid Build Coastguard Worker SPINEL_DATATYPE_COMMAND_S /* prop command */ \ 5129*cfb92d14SAndroid Build Coastguard Worker SPINEL_DATATYPE_UINT_PACKED_S /* property id */ 5130*cfb92d14SAndroid Build Coastguard Worker 5131*cfb92d14SAndroid Build Coastguard Worker #define SPINEL_MAX_UINT_PACKED 2097151 5132*cfb92d14SAndroid Build Coastguard Worker 5133*cfb92d14SAndroid Build Coastguard Worker SPINEL_API_EXTERN spinel_ssize_t spinel_datatype_pack(uint8_t *data_out, 5134*cfb92d14SAndroid Build Coastguard Worker spinel_size_t data_len_max, 5135*cfb92d14SAndroid Build Coastguard Worker const char *pack_format, 5136*cfb92d14SAndroid Build Coastguard Worker ...); 5137*cfb92d14SAndroid Build Coastguard Worker SPINEL_API_EXTERN spinel_ssize_t spinel_datatype_vpack(uint8_t *data_out, 5138*cfb92d14SAndroid Build Coastguard Worker spinel_size_t data_len_max, 5139*cfb92d14SAndroid Build Coastguard Worker const char *pack_format, 5140*cfb92d14SAndroid Build Coastguard Worker va_list args); 5141*cfb92d14SAndroid Build Coastguard Worker SPINEL_API_EXTERN spinel_ssize_t spinel_datatype_unpack(const uint8_t *data_in, 5142*cfb92d14SAndroid Build Coastguard Worker spinel_size_t data_len, 5143*cfb92d14SAndroid Build Coastguard Worker const char *pack_format, 5144*cfb92d14SAndroid Build Coastguard Worker ...); 5145*cfb92d14SAndroid Build Coastguard Worker /** 5146*cfb92d14SAndroid Build Coastguard Worker * Parses spinel data similar to sscanf(). 5147*cfb92d14SAndroid Build Coastguard Worker * 5148*cfb92d14SAndroid Build Coastguard Worker * Actually calls spinel_datatype_vunpack_in_place() to parse data. 5149*cfb92d14SAndroid Build Coastguard Worker * 5150*cfb92d14SAndroid Build Coastguard Worker * @param[in] data_in A pointer to the data to parse. 5151*cfb92d14SAndroid Build Coastguard Worker * @param[in] data_len The length of @p data_in in bytes. 5152*cfb92d14SAndroid Build Coastguard Worker * @param[in] pack_format C string that contains a format string follows the same specification of spinel. 5153*cfb92d14SAndroid Build Coastguard Worker * @param[in] ... Additional arguments depending on the format string @p pack_format. 5154*cfb92d14SAndroid Build Coastguard Worker * 5155*cfb92d14SAndroid Build Coastguard Worker * @returns The parsed length in bytes. 5156*cfb92d14SAndroid Build Coastguard Worker * 5157*cfb92d14SAndroid Build Coastguard Worker * @note This function behaves different from `spinel_datatype_unpack()`: 5158*cfb92d14SAndroid Build Coastguard Worker * - This function expects composite data arguments of pointer to data type, while `spinel_datatype_unpack()` 5159*cfb92d14SAndroid Build Coastguard Worker * expects them of pointer to data type pointer. For example, if `SPINEL_DATATYPE_EUI64_C` is present in 5160*cfb92d14SAndroid Build Coastguard Worker * @p pack_format, this function expects a `spinel_eui64_t *` is included in variable arguments, while 5161*cfb92d14SAndroid Build Coastguard Worker * `spinel_datatype_unpack()` expects a `spinel_eui64_t **` is included. 5162*cfb92d14SAndroid Build Coastguard Worker * - For `SPINEL_DATATYPE_UTF8_C`, this function expects two arguments, the first of type `char *` and the 5163*cfb92d14SAndroid Build Coastguard Worker * second is of type `size_t` to indicate length of the provided buffer in the first argument just like 5164*cfb92d14SAndroid Build Coastguard Worker * `strncpy()`, while `spinel_datatype_unpack()` only expects a `const char **`. 5165*cfb92d14SAndroid Build Coastguard Worker * 5166*cfb92d14SAndroid Build Coastguard Worker * @sa spinel_datatype_vunpack_in_place() 5167*cfb92d14SAndroid Build Coastguard Worker * 5168*cfb92d14SAndroid Build Coastguard Worker */ 5169*cfb92d14SAndroid Build Coastguard Worker SPINEL_API_EXTERN spinel_ssize_t spinel_datatype_unpack_in_place(const uint8_t *data_in, 5170*cfb92d14SAndroid Build Coastguard Worker spinel_size_t data_len, 5171*cfb92d14SAndroid Build Coastguard Worker const char *pack_format, 5172*cfb92d14SAndroid Build Coastguard Worker ...); 5173*cfb92d14SAndroid Build Coastguard Worker SPINEL_API_EXTERN spinel_ssize_t spinel_datatype_vunpack(const uint8_t *data_in, 5174*cfb92d14SAndroid Build Coastguard Worker spinel_size_t data_len, 5175*cfb92d14SAndroid Build Coastguard Worker const char *pack_format, 5176*cfb92d14SAndroid Build Coastguard Worker va_list args); 5177*cfb92d14SAndroid Build Coastguard Worker /** 5178*cfb92d14SAndroid Build Coastguard Worker * Parses spinel data similar to vsscanf(). 5179*cfb92d14SAndroid Build Coastguard Worker * 5180*cfb92d14SAndroid Build Coastguard Worker * @param[in] data_in A pointer to the data to parse. 5181*cfb92d14SAndroid Build Coastguard Worker * @param[in] data_len The length of @p data_in in bytes. 5182*cfb92d14SAndroid Build Coastguard Worker * @param[in] pack_format C string that contains a format string follows the same specification of spinel. 5183*cfb92d14SAndroid Build Coastguard Worker * @param[in] args A value identifying a variable arguments list. 5184*cfb92d14SAndroid Build Coastguard Worker * 5185*cfb92d14SAndroid Build Coastguard Worker * @returns The parsed length in bytes. 5186*cfb92d14SAndroid Build Coastguard Worker * 5187*cfb92d14SAndroid Build Coastguard Worker * @note This function behaves different from `spinel_datatype_vunpack()`: 5188*cfb92d14SAndroid Build Coastguard Worker * - This function expects composite data arguments of pointer to data type, while `spinel_datatype_vunpack()` 5189*cfb92d14SAndroid Build Coastguard Worker * expects them of pointer to data type pointer. For example, if `SPINEL_DATATYPE_EUI64_C` is present in 5190*cfb92d14SAndroid Build Coastguard Worker * @p pack_format, this function expects a `spinel_eui64_t *` is included in variable arguments, while 5191*cfb92d14SAndroid Build Coastguard Worker * `spinel_datatype_vunpack()` expects a `spinel_eui64_t **` is included. 5192*cfb92d14SAndroid Build Coastguard Worker * - For `SPINEL_DATATYPE_UTF8_C`, this function expects two arguments, the first of type `char *` and the 5193*cfb92d14SAndroid Build Coastguard Worker * second is of type `size_t` to indicate length of the provided buffer in the first argument just like 5194*cfb92d14SAndroid Build Coastguard Worker * `strncpy()`, while `spinel_datatype_vunpack()` only expects a `const char **`. 5195*cfb92d14SAndroid Build Coastguard Worker * 5196*cfb92d14SAndroid Build Coastguard Worker * @sa spinel_datatype_unpack_in_place() 5197*cfb92d14SAndroid Build Coastguard Worker * 5198*cfb92d14SAndroid Build Coastguard Worker */ 5199*cfb92d14SAndroid Build Coastguard Worker SPINEL_API_EXTERN spinel_ssize_t spinel_datatype_vunpack_in_place(const uint8_t *data_in, 5200*cfb92d14SAndroid Build Coastguard Worker spinel_size_t data_len, 5201*cfb92d14SAndroid Build Coastguard Worker const char *pack_format, 5202*cfb92d14SAndroid Build Coastguard Worker va_list args); 5203*cfb92d14SAndroid Build Coastguard Worker 5204*cfb92d14SAndroid Build Coastguard Worker SPINEL_API_EXTERN spinel_ssize_t spinel_packed_uint_decode(const uint8_t *bytes, 5205*cfb92d14SAndroid Build Coastguard Worker spinel_size_t len, 5206*cfb92d14SAndroid Build Coastguard Worker unsigned int *value_ptr); 5207*cfb92d14SAndroid Build Coastguard Worker SPINEL_API_EXTERN spinel_ssize_t spinel_packed_uint_encode(uint8_t *bytes, spinel_size_t len, unsigned int value); 5208*cfb92d14SAndroid Build Coastguard Worker SPINEL_API_EXTERN spinel_ssize_t spinel_packed_uint_size(unsigned int value); 5209*cfb92d14SAndroid Build Coastguard Worker 5210*cfb92d14SAndroid Build Coastguard Worker SPINEL_API_EXTERN const char *spinel_next_packed_datatype(const char *pack_format); 5211*cfb92d14SAndroid Build Coastguard Worker 5212*cfb92d14SAndroid Build Coastguard Worker // ---------------------------------------------------------------------------- 5213*cfb92d14SAndroid Build Coastguard Worker 5214*cfb92d14SAndroid Build Coastguard Worker SPINEL_API_EXTERN const char *spinel_command_to_cstr(spinel_command_t command); 5215*cfb92d14SAndroid Build Coastguard Worker 5216*cfb92d14SAndroid Build Coastguard Worker SPINEL_API_EXTERN const char *spinel_prop_key_to_cstr(spinel_prop_key_t prop_key); 5217*cfb92d14SAndroid Build Coastguard Worker 5218*cfb92d14SAndroid Build Coastguard Worker SPINEL_API_EXTERN const char *spinel_net_role_to_cstr(uint8_t net_role); 5219*cfb92d14SAndroid Build Coastguard Worker 5220*cfb92d14SAndroid Build Coastguard Worker SPINEL_API_EXTERN const char *spinel_mcu_power_state_to_cstr(uint8_t mcu_power_state); 5221*cfb92d14SAndroid Build Coastguard Worker 5222*cfb92d14SAndroid Build Coastguard Worker SPINEL_API_EXTERN const char *spinel_status_to_cstr(spinel_status_t status); 5223*cfb92d14SAndroid Build Coastguard Worker 5224*cfb92d14SAndroid Build Coastguard Worker SPINEL_API_EXTERN const char *spinel_capability_to_cstr(spinel_capability_t capability); 5225*cfb92d14SAndroid Build Coastguard Worker 5226*cfb92d14SAndroid Build Coastguard Worker SPINEL_API_EXTERN const char *spinel_radio_link_to_cstr(uint32_t radio); 5227*cfb92d14SAndroid Build Coastguard Worker 5228*cfb92d14SAndroid Build Coastguard Worker SPINEL_API_EXTERN const char *spinel_link_metrics_status_to_cstr(uint8_t status); 5229*cfb92d14SAndroid Build Coastguard Worker 5230*cfb92d14SAndroid Build Coastguard Worker // ---------------------------------------------------------------------------- 5231*cfb92d14SAndroid Build Coastguard Worker 5232*cfb92d14SAndroid Build Coastguard Worker #if defined(__cplusplus) 5233*cfb92d14SAndroid Build Coastguard Worker } 5234*cfb92d14SAndroid Build Coastguard Worker #endif 5235*cfb92d14SAndroid Build Coastguard Worker 5236*cfb92d14SAndroid Build Coastguard Worker #endif /* defined(SPINEL_HEADER_INCLUDED) */ 5237