zigbee-on-host
Version:
ZigBee stack designed to run on a host and communicate with a radio co-processor (RCP)
1,310 lines • 116 kB
TypeScript
export declare const enum SpinelPropertyId {
/** Format: `i` - Read-only
*
* Describes the status of the last operation. Encoded as a packed
* unsigned integer (see `SPINEL_STATUS_*` for list of values).
*
* This property is emitted often to indicate the result status of
* pretty much any Host-to-NCP operation.
*
* It is emitted automatically at NCP startup with a value indicating
* the reset reason. It is also emitted asynchronously on an error (
* e.g., NCP running out of buffer).
*/
LAST_STATUS = 0,
/** Format: `ii` - Read-only
*
* Describes the protocol version information. This property contains
* two fields, each encoded as a packed unsigned integer:
* `i`: Major Version Number
* `i`: Minor Version Number
*
* The version number is defined by `SPINEL_PROTOCOL_VERSION_THREAD_MAJOR`
* and `SPINEL_PROTOCOL_VERSION_THREAD_MINOR`.
*
* This specification describes major version 4, minor version 3.
*/
PROTOCOL_VERSION = 1,
/** Format: `U` - Read-only
*
* Contains a string which describes the firmware currently running on
* the NCP. Encoded as a zero-terminated UTF-8 string.
*/
NCP_VERSION = 2,
/** Format: 'i' - Read-only
*
* This value identifies what the network protocol for this NCP.
* The valid protocol type values are defined by enumeration
* `SPINEL_PROTOCOL_TYPE_*`:
*
* `SPINEL_PROTOCOL_TYPE_BOOTLOADER` = 0
* `SPINEL_PROTOCOL_TYPE_ZIGBEE_IP` = 2,
* `SPINEL_PROTOCOL_TYPE_THREAD` = 3,
*
* OpenThread NCP supports only `SPINEL_PROTOCOL_TYPE_THREAD`
*/
INTERFACE_TYPE = 3,
/** Format: 'i` - Read-only
*
* Vendor ID. Zero for unknown.
*/
VENDOR_ID = 4,
/** Format: 'A(i)` - Read-only
*
* Describes the supported capabilities of this NCP. Encoded as a list of
* packed unsigned integers.
*
* The capability values are specified by SPINEL_CAP_* enumeration.
*/
CAPS = 5,
/** Format: 'C` - Read-only
*
* Provides number of interfaces.
*/
INTERFACE_COUNT = 6,
POWER_STATE = 7,///< PowerState [C] (deprecated, use `MCU_POWER_STATE` instead).
/** Format: 'E` - Read-only
*
* The static EUI64 address of the device, used as a serial number.
*/
HWADDR = 8,
LOCK = 9,///< PropLock [b] (not supported)
HBO_MEM_MAX = 10,///< Max offload mem [S] (not supported)
HBO_BLOCK_MAX = 11,///< Max offload block [S] (not supported)
/** Format: 'C`
*
* Describes the current power state of the host. This property is used
* by the host to inform the NCP when it has changed power states. The
* NCP can then use this state to determine which properties need
* asynchronous updates. Enumeration `spinel_host_power_state_t` defines
* the valid values (`SPINEL_HOST_POWER_STATE_*`):
*
* `HOST_POWER_STATE_OFFLINE`: Host is physically powered off and
* cannot be woken by the NCP. All asynchronous commands are
* squelched.
*
* `HOST_POWER_STATE_DEEP_SLEEP`: The host is in a low power state
* where it can be woken by the NCP but will potentially require more
* than two seconds to become fully responsive. The NCP MUST
* avoid sending unnecessary property updates, such as child table
* updates or non-critical messages on the debug stream. If the NCP
* needs to wake the host for traffic, the NCP MUST first take
* action to wake the host. Once the NCP signals to the host that it
* should wake up, the NCP MUST wait for some activity from the
* host (indicating that it is fully awake) before sending frames.
*
* `HOST_POWER_STATE_RESERVED`: This value MUST NOT be set by the host. If
* received by the NCP, the NCP SHOULD consider this as a synonym
* of `HOST_POWER_STATE_DEEP_SLEEP`.
*
* `HOST_POWER_STATE_LOW_POWER`: The host is in a low power state
* where it can be immediately woken by the NCP. The NCP SHOULD
* avoid sending unnecessary property updates, such as child table
* updates or non-critical messages on the debug stream.
*
* `HOST_POWER_STATE_ONLINE`: The host is awake and responsive. No
* special filtering is performed by the NCP on asynchronous updates.
*
* All other values are RESERVED. They MUST NOT be set by the
* host. If received by the NCP, the NCP SHOULD consider the value as
* a synonym of `HOST_POWER_STATE_LOW_POWER`.
*
* After setting this power state, any further commands from the host to
* the NCP will cause `HOST_POWER_STATE` to automatically revert to
* `HOST_POWER_STATE_ONLINE`.
*
* When the host is entering a low-power state, it should wait for the
* response from the NCP acknowledging the command (with `CMD_VALUE_IS`).
* Once that acknowledgment is received the host may enter the low-power
* state.
*
* If the NCP has the `CAP_UNSOL_UPDATE_FILTER` capability, any unsolicited
* property updates masked by `PROP_UNSOL_UPDATE_FILTER` should be honored
* while the host indicates it is in a low-power state. After resuming to the
* `HOST_POWER_STATE_ONLINE` state, the value of `PROP_UNSOL_UPDATE_FILTER`
* MUST be unchanged from the value assigned prior to the host indicating
* it was entering a low-power state.
*/
HOST_POWER_STATE = 12,
/** Format: 'C`
* Required capability: CAP_MCU_POWER_SAVE
*
* This property specifies the desired power state of NCP's micro-controller
* (MCU) when the underlying platform's operating system enters idle mode (i.e.,
* all active tasks/events are processed and the MCU can potentially enter a
* energy-saving power state).
*
* The power state primarily determines how the host should interact with the NCP
* and whether the host needs an external trigger (a "poke") to NCP before it can
* communicate with the NCP or not. After a reset, the MCU power state MUST be
* SPINEL_MCU_POWER_STATE_ON.
*
* Enumeration `spinel_mcu_power_state_t` defines the valid values
* (`SPINEL_MCU_POWER_STATE_*` constants):
*
* `SPINEL_MCU_POWER_STATE_ON`: NCP's MCU stays on and active all the time.
* When the NCP's desired power state is set to this value, host can send
* messages to NCP without requiring any "poke" or external triggers. MCU is
* expected to stay on and active. Note that the `ON` power state only
* determines the MCU's power mode and is not related to radio's state.
*
* `SPINEL_MCU_POWER_STATE_LOW_POWER`: NCP's MCU can enter low-power
* (energy-saving) state. When the NCP's desired power state is set to
* `LOW_POWER`, host is expected to "poke" the NCP (e.g., an external trigger
* like an interrupt) before it can communicate with the NCP (send a message
* to the NCP). The "poke" mechanism is determined by the platform code (based
* on NCP's interface to the host).
* While power state is set to `LOW_POWER`, NCP can still (at any time) send
* messages to host. Note that receiving a message from the NCP does NOT
* indicate that the NCP's power state has changed, i.e., host is expected to
* continue to "poke" NCP when it wants to talk to the NCP until the power
* state is explicitly changed (by setting this property to `ON`).
* Note that the `LOW_POWER` power state only determines the MCU's power mode
* and is not related to radio's state.
*
* `SPINEL_MCU_POWER_STATE_OFF`: NCP is fully powered off.
* An NCP hardware reset (via a RESET pin) is required to bring the NCP back
* to `SPINEL_MCU_POWER_STATE_ON`. RAM is not retained after reset.
*/
MCU_POWER_STATE = 13,
/** Format: `A(CCU)`
* Type: Read-Only (Optionally Read-write using `CMD_PROP_VALUE_INSERT`)
*
* An array of structures which contain the following fields:
*
* * `C`: GPIO Number
* * `C`: GPIO Configuration Flags
* * `U`: Human-readable GPIO name
*
* GPIOs which do not have a corresponding entry are not supported.
*
* The configuration parameter contains the configuration flags for the
* GPIO:
*
* 0 1 2 3 4 5 6 7
* +---+---+---+---+---+---+---+---+
* |DIR|PUP|PDN|TRIGGER| RESERVED |
* +---+---+---+---+---+---+---+---+
* |O/D|
* +---+
*
* * `DIR`: Pin direction. Clear (0) for input, set (1) for output.
* * `PUP`: Pull-up enabled flag.
* * `PDN`/`O/D`: Flag meaning depends on pin direction:
* * Input: Pull-down enabled.
* * Output: Output is an open-drain.
* * `TRIGGER`: Enumeration describing how pin changes generate
* asynchronous notification commands (TBD) from the NCP to the host.
* * 0: Feature disabled for this pin
* * 1: Trigger on falling edge
* * 2: Trigger on rising edge
* * 3: Trigger on level change
* * `RESERVED`: Bits reserved for future use. Always cleared to zero
* and ignored when read.
*
* As an optional feature, the configuration of individual pins may be
* modified using the `CMD_PROP_VALUE_INSERT` command. Only the GPIO
* number and flags fields MUST be present, the GPIO name (if present)
* would be ignored. This command can only be used to modify the
* configuration of GPIOs which are already exposed---it cannot be used
* by the host to add additional GPIOs.
*/
GPIO_CONFIG = 4096,
/** Format: `D`
* Type: Read-Write
*
* Contains a bit field identifying the state of the GPIOs. The length of
* the data associated with these properties depends on the number of
* GPIOs. If you have 10 GPIOs, you'd have two bytes. GPIOs are numbered
* from most significant bit to least significant bit, so 0x80 is GPIO 0,
* 0x40 is GPIO 1, etc.
*
* For GPIOs configured as inputs:
*
* * `CMD_PROP_VALUE_GET`: The value of the associated bit describes the
* logic level read from the pin.
* * `CMD_PROP_VALUE_SET`: The value of the associated bit is ignored
* for these pins.
*
* For GPIOs configured as outputs:
*
* * `CMD_PROP_VALUE_GET`: The value of the associated bit is
* implementation specific.
* * `CMD_PROP_VALUE_SET`: The value of the associated bit determines
* the new logic level of the output. If this pin is configured as an
* open-drain, setting the associated bit to 1 will cause the pin to
* enter a Hi-Z state.
*
* For GPIOs which are not specified in `PROP_GPIO_CONFIG`:
*
* * `CMD_PROP_VALUE_GET`: The value of the associated bit is
* implementation specific.
* * `CMD_PROP_VALUE_SET`: The value of the associated bit MUST be
* ignored by the NCP.
*
* When writing, unspecified bits are assumed to be zero.
*/
GPIO_STATE = 4098,
/** Format: `D`
* Type: Write-Only
*
* Allows for the state of various output GPIOs to be set without affecting
* other GPIO states. Contains a bit field identifying the output GPIOs that
* should have their state set to 1.
*
* When writing, unspecified bits are assumed to be zero. The value of
* any bits for GPIOs which are not specified in `PROP_GPIO_CONFIG` MUST
* be ignored.
*/
GPIO_STATE_SET = 4099,
/** Format: `D`
* Type: Write-Only
*
* Allows for the state of various output GPIOs to be cleared without affecting
* other GPIO states. Contains a bit field identifying the output GPIOs that
* should have their state cleared to 0.
*
* When writing, unspecified bits are assumed to be zero. The value of
* any bits for GPIOs which are not specified in `PROP_GPIO_CONFIG` MUST
* be ignored.
*/
GPIO_STATE_CLEAR = 4100,
TRNG_32 = 4101,
TRNG_128 = 4102,
TRNG_RAW_32 = 4103,
/** Format: `A(I)`
* Type: Read-Write (optional Insert-Remove)
* Required capability: `CAP_UNSOL_UPDATE_FILTER`
*
* Contains a list of properties which are excluded from generating
* unsolicited value updates. This property is empty after reset.
* In other words, the host may opt-out of unsolicited property updates
* for a specific property by adding that property id to this list.
* Hosts SHOULD NOT add properties to this list which are not
* present in `PROP_UNSOL_UPDATE_LIST`. If such properties are added,
* the NCP ignores the unsupported properties.
*/
UNSOL_UPDATE_FILTER = 4104,
/** Format: `A(I)`
* Type: Read-Only
* Required capability: `CAP_UNSOL_UPDATE_FILTER`
*
* Contains a list of properties which are capable of generating
* unsolicited value updates. This list can be used when populating
* `PROP_UNSOL_UPDATE_FILTER` to disable all unsolicited property
* updates.
*
* This property is intended to effectively behave as a constant
* for a given NCP firmware.
*/
UNSOL_UPDATE_LIST = 4105,
/** Format: `b` */
PHY_ENABLED = 32,
/** Format: `C` */
PHY_CHAN = 33,
/** Format: `A(C)` */
PHY_CHAN_SUPPORTED = 34,
/** kHz Format: `L` */
PHY_FREQ = 35,
/** dBm Format: `c` */
PHY_CCA_THRESHOLD = 36,
/** Format: `c` */
PHY_TX_POWER = 37,
/** dBm Format: `c` */
PHY_RSSI = 38,
/** dBm Format: `c` */
PHY_RX_SENSITIVITY = 39,
/** Format: `b` */
PHY_PCAP_ENABLED = 40,
/** Format: `A(C)` */
PHY_CHAN_PREFERRED = 41,
/** dBm Format: `c` */
PHY_FEM_LNA_GAIN = 42,
/** Format: `Cc`
*
* First byte is the channel then the max transmit power, write-only.
*/
PHY_CHAN_MAX_POWER = 43,
/** Format: `S`
*
* The ascii representation of the ISO 3166 alpha-2 code.
*/
PHY_REGION_CODE = 44,
/** Format: `A(Csd)` - Insert/Set
*
* The `Insert` command on the property inserts a calibration power entry to the calibrated power table.
* The `Set` command on the property with empty payload clears the calibrated power table.
*
* Structure Parameters:
* `C`: Channel.
* `s`: Actual power in 0.01 dBm.
* `d`: Raw power setting.
*/
PHY_CALIBRATED_POWER = 45,
/** Format: `t(Cs)` - Write only
*
* Structure Parameters:
* `C`: Channel.
* `s`: Target power in 0.01 dBm.
*/
PHY_CHAN_TARGET_POWER = 46,
/** Format: `b`
*
* Indicates if jamming detection is enabled or disabled. Set to true
* to enable jamming detection.
*/
JAM_DETECT_ENABLE = 4608,
/** Format: `b` (Read-Only)
*
* Set to true if radio jamming is detected. Set to false otherwise.
*
* When jamming detection is enabled, changes to the value of this
* property are emitted asynchronously via `CMD_PROP_VALUE_IS`.
*/
JAM_DETECTED = 4609,
/** Format: `c`
* Units: dBm
*
* This parameter describes the threshold RSSI level (measured in
* dBm) above which the jamming detection will consider the
* channel blocked.
*/
JAM_DETECT_RSSI_THRESHOLD = 4610,
/** Format: `C`
* Units: Seconds (1-63)
*
* This parameter describes the window period for signal jamming
* detection.
*/
JAM_DETECT_WINDOW = 4611,
/** Format: `C`
* Units: Seconds (1-63)
*
* This parameter describes the number of aggregate seconds within
* the detection window where the RSSI must be above
* `PROP_JAM_DETECT_RSSI_THRESHOLD` to trigger detection.
*
* The behavior of the jamming detection feature when `PROP_JAM_DETECT_BUSY`
* is larger than `PROP_JAM_DETECT_WINDOW` is undefined.
*/
JAM_DETECT_BUSY = 4612,
/** Format: `X` (read-only)
*
* This value provides information about current state of jamming detection
* module for monitoring/debugging purpose. It returns a 64-bit value where
* each bit corresponds to one second interval starting with bit 0 for the
* most recent interval and bit 63 for the oldest intervals (63 sec earlier).
* The bit is set to 1 if the jamming detection module observed/detected
* high signal level during the corresponding one second interval.
*/
JAM_DETECT_HISTORY_BITMAP = 4613,
/** Format: `L` (read-only)
* Units: Milliseconds
*
* Required capability: SPINEL_CAP_CHANNEL_MONITOR
*
* If channel monitoring is enabled and active, every sample interval, a
* zero-duration Energy Scan is performed, collecting a single RSSI sample
* per channel. The RSSI samples are compared with a pre-specified RSSI
* threshold.
*/
CHANNEL_MONITOR_SAMPLE_INTERVAL = 4614,
/** Format: `c` (read-only)
* Units: dBm
*
* Required capability: SPINEL_CAP_CHANNEL_MONITOR
*
* This value specifies the threshold used by channel monitoring module.
* Channel monitoring maintains the average rate of RSSI samples that
* are above the threshold within (approximately) a pre-specified number
* of samples (sample window).
*/
CHANNEL_MONITOR_RSSI_THRESHOLD = 4615,
/** Format: `L` (read-only)
* Units: Number of samples
*
* Required capability: SPINEL_CAP_CHANNEL_MONITOR
*
* The averaging sample window length (in units of number of channel
* samples) used by channel monitoring module. Channel monitoring will
* sample all channels every sample interval. It maintains the average rate
* of RSSI samples that are above the RSSI threshold within (approximately)
* the sample window.
*/
CHANNEL_MONITOR_SAMPLE_WINDOW = 4616,
/** Format: `L` (read-only)
* Units: Number of samples
*
* Required capability: SPINEL_CAP_CHANNEL_MONITOR
*
* Total number of RSSI samples (per channel) taken by the channel
* monitoring module since its start (since Thread network interface
* was enabled).
*/
CHANNEL_MONITOR_SAMPLE_COUNT = 4617,
/** Format: `A(t(CU))` (read-only)
*
* Required capability: SPINEL_CAP_CHANNEL_MONITOR
*
* Data per item is:
*
* `C`: Channel
* `U`: Channel occupancy indicator
*
* The channel occupancy value represents the average rate/percentage of
* RSSI samples that were above RSSI threshold ("bad" RSSI samples) within
* (approximately) sample window latest RSSI samples.
*
* Max value of `0xffff` indicates all RSSI samples were above RSSI
* threshold (i.e. 100% of samples were "bad").
*/
CHANNEL_MONITOR_CHANNEL_OCCUPANCY = 4618,
/** Format: `i` (read-only)
*
* Data per item is:
*
* `i`: Radio Capabilities.
*/
RADIO_CAPS = 4619,
/** Format: t(LLLLLLLL)t(LLLLLLLLL)bL (Read-only)
*
* Required capability: SPINEL_CAP_RADIO_COEX
*
* The contents include two structures and two common variables, first structure corresponds to
* all transmit related coex counters, second structure provides the receive related counters.
*
* The transmit structure includes:
* 'L': NumTxRequest (The number of tx requests).
* 'L': NumTxGrantImmediate (The number of tx requests while grant was active).
* 'L': NumTxGrantWait (The number of tx requests while grant was inactive).
* 'L': NumTxGrantWaitActivated (The number of tx requests while grant was inactive that were
* ultimately granted).
* 'L': NumTxGrantWaitTimeout (The number of tx requests while grant was inactive that timed out).
* 'L': NumTxGrantDeactivatedDuringRequest (The number of tx requests that were in progress when grant was
* deactivated).
* 'L': NumTxDelayedGrant (The number of tx requests that were not granted within 50us).
* 'L': AvgTxRequestToGrantTime (The average time in usec from tx request to grant).
*
* The receive structure includes:
* 'L': NumRxRequest (The number of rx requests).
* 'L': NumRxGrantImmediate (The number of rx requests while grant was active).
* 'L': NumRxGrantWait (The number of rx requests while grant was inactive).
* 'L': NumRxGrantWaitActivated (The number of rx requests while grant was inactive that were
* ultimately granted).
* 'L': NumRxGrantWaitTimeout (The number of rx requests while grant was inactive that timed out).
* 'L': NumRxGrantDeactivatedDuringRequest (The number of rx requests that were in progress when grant was
* deactivated).
* 'L': NumRxDelayedGrant (The number of rx requests that were not granted within 50us).
* 'L': AvgRxRequestToGrantTime (The average time in usec from rx request to grant).
* 'L': NumRxGrantNone (The number of rx requests that completed without receiving grant).
*
* Two common variables:
* 'b': Stopped (Stats collection stopped due to saturation).
* 'L': NumGrantGlitch (The number of of grant glitches).
*/
RADIO_COEX_METRICS = 4620,
/** Format: `b`
*
* Required capability: SPINEL_CAP_RADIO_COEX
*
* Indicates if radio coex is enabled or disabled. Set to true to enable radio coex.
*/
RADIO_COEX_ENABLE = 4621,
/** Format: `C`
*
* Possible values are from enumeration `spinel_scan_state_t`.
*
* SCAN_STATE_IDLE
* SCAN_STATE_BEACON
* SCAN_STATE_ENERGY
* SCAN_STATE_DISCOVER
*
* Set to `SCAN_STATE_BEACON` to start an active scan.
* Beacons will be emitted from `PROP_MAC_SCAN_BEACON`.
*
* Set to `SCAN_STATE_ENERGY` to start an energy scan.
* Channel energy result will be reported by emissions
* of `PROP_MAC_ENERGY_SCAN_RESULT` (per channel).
*
* Set to `SCAN_STATE_DISCOVER` to start a Thread MLE discovery
* scan operation. Discovery scan result will be emitted from
* `PROP_MAC_SCAN_BEACON`.
*
* Value switches to `SCAN_STATE_IDLE` when scan is complete.
*/
MAC_SCAN_STATE = 48,
/** Format: `A(C)`
*
* List of channels to scan.
*/
MAC_SCAN_MASK = 49,
/** Format: `S`
* Unit: milliseconds per channel
*/
MAC_SCAN_PERIOD = 50,
/** Format `Cct(ESSc)t(iCUdd)` - Asynchronous event only
*
* Scan beacons have two embedded structures which contain
* information about the MAC layer and the NET layer. Their
* format depends on the MAC and NET layer currently in use.
* The format below is for an 802.15.4 MAC with Thread:
*
* `C`: Channel
* `c`: RSSI of the beacon
* `t`: MAC layer properties (802.15.4 layer)
* `E`: Long address
* `S`: Short address
* `S`: PAN-ID
* `c`: LQI
* NET layer properties
* `i`: Protocol Number (SPINEL_PROTOCOL_TYPE_* values)
* `C`: Flags (SPINEL_BEACON_THREAD_FLAG_* values)
* `U`: Network Name
* `d`: XPANID
* `d`: Steering data
*
* Extra parameters may be added to each of the structures
* in the future, so care should be taken to read the length
* that prepends each structure.
*/
MAC_SCAN_BEACON = 51,
/** Format: `E`
*
* The 802.15.4 long address of this node.
*/
MAC_15_4_LADDR = 52,
/** Format: `S`
*
* The 802.15.4 short address of this node.
*/
MAC_15_4_SADDR = 53,
/** Format: `S`
*
* The 802.15.4 PANID this node is associated with.
*/
MAC_15_4_PANID = 54,
/** Format: `b`
*
* Set to true to enable raw MAC frames to be emitted from
* `PROP_STREAM_RAW`.
*/
MAC_RAW_STREAM_ENABLED = 55,
/** Format: `C`
*
* Possible values are from enumeration
* `SPINEL_MAC_PROMISCUOUS_MODE_*`:
*
* `SPINEL_MAC_PROMISCUOUS_MODE_OFF`
* Normal MAC filtering is in place.
*
* `SPINEL_MAC_PROMISCUOUS_MODE_NETWORK`
* All MAC packets matching network are passed up
* the stack.
*
* `SPINEL_MAC_PROMISCUOUS_MODE_FULL`
* All decoded MAC packets are passed up the stack.
*/
MAC_PROMISCUOUS_MODE = 56,
/** Format: `Cc` - Asynchronous event only
*
* This property is emitted during energy scan operation
* per scanned channel with following format:
*
* `C`: Channel
* `c`: RSSI (in dBm)
*/
MAC_ENERGY_SCAN_RESULT = 57,
/** Format: `L`
* Unit: millisecond
* The (user-specified) data poll (802.15.4 MAC Data Request) period
* in milliseconds. Value zero means there is no user-specified
* poll period, and the network stack determines the maximum period
* based on the MLE Child Timeout.
*
* If the value is non-zero, it specifies the maximum period between
* data poll transmissions. Note that the network stack may send data
* request transmissions more frequently when expecting a control-message
* (e.g., when waiting for an MLE Child ID Response).
*/
MAC_DATA_POLL_PERIOD = 58,
/** Format: `b`
*
* Set to true to enable RxOnWhenIdle or false to disable it.
* When True, the radio is expected to stay in receive state during
* idle periods. When False, the radio is expected to switch to sleep
* state during idle periods.
*/
MAC_RX_ON_WHEN_IDLE_MODE = 59,
/** Format: `S`
*
* The 802.15.4 alternate short address.
*/
MAC_15_4_ALT_SADDR = 60,
/** Format: `XLC`
*
* Schedule a radio reception window at a specific time and duration.
*
* `X`: The receive window start time.
* `L`: The receive window duration.
* `C`: The receive channel.
*/
MAC_RX_AT = 61,
/** Format: `A(t(Ec))`
* Required capability: `CAP_MAC_ALLOWLIST`
*
* Structure Parameters:
*
* `E`: EUI64 address of node
* `c`: Optional RSSI-override value. The value 127 indicates
* that the RSSI-override feature is not enabled for this
* address. If this value is omitted when setting or
* inserting, it is assumed to be 127. This parameter is
* ignored when removing.
*/
MAC_ALLOWLIST = 4864,
/** Format: `b`
* Required capability: `CAP_MAC_ALLOWLIST`
*/
MAC_ALLOWLIST_ENABLED = 4865,
/** Format: `E`
*
* Specified by Thread. Randomly-chosen, but non-volatile EUI-64.
*/
MAC_EXTENDED_ADDR = 4866,
/** Format: `b`
* Required Capability: SPINEL_CAP_MAC_RAW or SPINEL_CAP_CONFIG_RADIO
*
* Set to true to enable radio source matching or false to disable it.
* The source match functionality is used by radios when generating
* ACKs. The short and extended address lists are used for setting
* the Frame Pending bit in the ACKs.
*/
MAC_SRC_MATCH_ENABLED = 4867,
/** Format: `A(S)`
* Required Capability: SPINEL_CAP_MAC_RAW or SPINEL_CAP_CONFIG_RADIO
*/
MAC_SRC_MATCH_SHORT_ADDRESSES = 4868,
/** Format: `A(E)`
* Required Capability: SPINEL_CAP_MAC_RAW or SPINEL_CAP_CONFIG_RADIO
*/
MAC_SRC_MATCH_EXTENDED_ADDRESSES = 4869,
/** Format: `A(t(E))`
* Required capability: `CAP_MAC_ALLOWLIST`
*
* Structure Parameters:
*
* `E`: EUI64 address of node
*/
MAC_DENYLIST = 4870,
/** Format: `b`
* Required capability: `CAP_MAC_ALLOWLIST`
*/
MAC_DENYLIST_ENABLED = 4871,
/** Format: `A(t(Ec))`
* Required capability: `CAP_MAC_ALLOWLIST`
*
* Structure Parameters:
*
* * `E`: Optional EUI64 address of node. Set default RSS if not included.
* * `c`: Fixed RSS. 127 means not set.
*/
MAC_FIXED_RSS = 4872,
/** Format: `S`
*
* This property provides the current CCA (Clear Channel Assessment) failure rate.
*
* Maximum value `0xffff` corresponding to 100% failure rate.
*/
MAC_CCA_FAILURE_RATE = 4873,
/** Format: `C`
*
* The maximum (user-specified) number of direct frame transmission retries.
*/
MAC_MAX_RETRY_NUMBER_DIRECT = 4874,
/** Format: `C`
* Required capability: `SPINEL_CAP_CONFIG_FTD`
*
* The maximum (user-specified) number of indirect frame transmission retries.
*/
MAC_MAX_RETRY_NUMBER_INDIRECT = 4875,
/** Format: `b` - Read only
*
* Returns true if there is a network state stored/saved.
*/
NET_SAVED = 64,
/** Format `b` - Read-write
*
* Network interface up/down status. Write true to bring
* interface up and false to bring interface down.
*/
NET_IF_UP = 65,
/** Format `b` - Read-write
*
* Thread stack operational status. Write true to start
* Thread stack and false to stop it.
*/
NET_STACK_UP = 66,
/** Format `C` - Read-write
*
* Possible values are from enumeration `spinel_net_role_t`
*
* SPINEL_NET_ROLE_DETACHED = 0,
* SPINEL_NET_ROLE_CHILD = 1,
* SPINEL_NET_ROLE_ROUTER = 2,
* SPINEL_NET_ROLE_LEADER = 3,
* SPINEL_NET_ROLE_DISABLED = 4,
*/
NET_ROLE = 67,
/** Format `U` - Read-write
*/
NET_NETWORK_NAME = 68,
/** Format `D` - Read-write
*/
NET_XPANID = 69,
/** Format `D` - Read-write
*/
NET_NETWORK_KEY = 70,
/** Format `L` - Read-write
*/
NET_KEY_SEQUENCE_COUNTER = 71,
/** Format `L` - Read-write
*
* The partition ID of the partition that this node is a
* member of.
*/
NET_PARTITION_ID = 72,
/** Format: `b`
* Default Value: `false`
*
* This flag is typically used for nodes that are associating with an
* existing network for the first time. If this is set to `true` before
* `PROP_NET_STACK_UP` is set to `true`, the
* creation of a new partition at association is prevented. If the node
* cannot associate with an existing partition, `PROP_LAST_STATUS` will
* emit a status that indicates why the association failed and
* `PROP_NET_STACK_UP` will automatically revert to `false`.
*
* Once associated with an existing partition, this flag automatically
* reverts to `false`.
*
* The behavior of this property being set to `true` when
* `PROP_NET_STACK_UP` is already set to `true` is undefined.
*/
NET_REQUIRE_JOIN_EXISTING = 73,
/** Format `L` - Read-write
*/
NET_KEY_SWITCH_GUARDTIME = 74,
/** Format `D` - Read-write
*/
NET_PSKC = 75,
/** Format Empty - Write only
*/
NET_LEAVE_GRACEFULLY = 76,
/** Format `6` - Read only
*/
THREAD_LEADER_ADDR = 80,
/** Format: `ESLccCCCCC` - Read only
*
* `E`: Extended address
* `S`: RLOC16
* `L`: Age (seconds since last heard from)
* `c`: Average RSS (in dBm)
* `c`: Last RSSI (in dBm)
* `C`: Link Quality In
* `C`: Link Quality Out
* `C`: Version
* `C`: CSL clock accuracy
* `C`: CSL uncertainty
*/
THREAD_PARENT = 81,
/** Format: [A(t(ESLLCCcCc)] - Read only
*
* Data per item is:
*
* `E`: Extended address
* `S`: RLOC16
* `L`: Timeout (in seconds)
* `L`: Age (in seconds)
* `L`: Network Data version
* `C`: Link Quality In
* `c`: Average RSS (in dBm)
* `C`: Mode (bit-flags)
* `c`: Last RSSI (in dBm)
*/
THREAD_CHILD_TABLE = 82,
/** Format `C` - Read only
*
* The router-id of the current leader.
*/
THREAD_LEADER_RID = 83,
/** Format `C` - Read only
*
* The leader weight of the current leader.
*/
THREAD_LEADER_WEIGHT = 84,
/** Format `C` - Read only
*
* The leader weight of this node.
*/
THREAD_LOCAL_LEADER_WEIGHT = 85,
/** Format `D` - Read only
*/
THREAD_NETWORK_DATA = 86,
/** Format `C` - Read only
*/
THREAD_NETWORK_DATA_VERSION = 87,
/** Format `D` - Read only
*/
THREAD_STABLE_NETWORK_DATA = 88,
/** Format `C` - Read only
*/
THREAD_STABLE_NETWORK_DATA_VERSION = 89,
/** Format: `A(t(6CbCbSC))`
*
* Data per item is:
*
* `6`: IPv6 Prefix
* `C`: Prefix length in bits
* `b`: Stable flag
* `C`: TLV flags (SPINEL_NET_FLAG_* definition)
* `b`: "Is defined locally" flag. Set if this network was locally
* defined. Assumed to be true for set, insert and replace. Clear if
* the on mesh network was defined by another node.
* This field is ignored for INSERT and REMOVE commands.
* `S`: The RLOC16 of the device that registered this on-mesh prefix entry.
* This value is not used and ignored when adding an on-mesh prefix.
* This field is ignored for INSERT and REMOVE commands.
* `C`: TLV flags extended (additional field for Thread 1.2 features).
*/
THREAD_ON_MESH_NETS = 90,
/** Format: [A(t(6CbCbb))]
*
* Data per item is:
*
* `6`: Route Prefix
* `C`: Prefix length in bits
* `b`: Stable flag
* `C`: Route flags (SPINEL_ROUTE_FLAG_* and SPINEL_ROUTE_PREFERENCE_* definitions)
* `b`: "Is defined locally" flag. Set if this route info was locally
* defined as part of local network data. Assumed to be true for set,
* insert and replace. Clear if the route is part of partition's network
* data.
* `b`: "Next hop is this device" flag. Set if the next hop for the
* route is this device itself (i.e., route was added by this device)
* This value is ignored when adding an external route. For any added
* route the next hop is this device.
* `S`: The RLOC16 of the device that registered this route entry.
* This value is not used and ignored when adding a route.
*/
THREAD_OFF_MESH_ROUTES = 91,
/** Format `A(S)`
*
* Array of port numbers.
*/
THREAD_ASSISTING_PORTS = 92,
/** Format `b` - Read-write
*
* Set to true before changing local net data. Set to false when finished.
* This allows changes to be aggregated into a single event.
*/
THREAD_ALLOW_LOCAL_NET_DATA_CHANGE = 93,
/** Format: `C`
*
* This property contains the value of the mode
* TLV for this node. The meaning of the bits in this
* bit-field are defined by section 4.5.2 of the Thread
* specification.
*
* The values `SPINEL_THREAD_MODE_*` defines the bit-fields
*/
THREAD_MODE = 94,
/** Format: `L`
* Unit: Seconds
*
* Used when operating in the Child role.
*/
THREAD_CHILD_TIMEOUT = 5376,
/** Format: `S`
*/
THREAD_RLOC16 = 5377,
/** Format: `C`
*/
THREAD_ROUTER_UPGRADE_THRESHOLD = 5378,
/** Format: `L`
*/
THREAD_CONTEXT_REUSE_DELAY = 5379,
/** Format: `C`
*/
THREAD_NETWORK_ID_TIMEOUT = 5380,
/** Format: `A(C)`
*
* Note that some implementations may not support CMD_GET_VALUE
* router ids, but may support CMD_REMOVE_VALUE when the node is
* a leader.
*/
THREAD_ACTIVE_ROUTER_IDS = 5381,
/** Format: `b`
*
* Allow host to directly observe all IPv6 packets received by the NCP,
* including ones sent to the RLOC16 address.
*
* Default is false.
*/
THREAD_RLOC16_DEBUG_PASSTHRU = 5382,
/** Format `b`
*
* Allows host to indicate whether or not the router role is enabled.
* If current role is a router, setting this property to `false` starts
* a re-attach process as an end-device.
*/
THREAD_ROUTER_ROLE_ENABLED = 5383,
/** Format: `C`
*/
THREAD_ROUTER_DOWNGRADE_THRESHOLD = 5384,
/** Format: `C`
*/
THREAD_ROUTER_SELECTION_JITTER = 5385,
/** Format: `C` - Write only
*
* Specifies the preferred Router Id. Upon becoming a router/leader the node
* attempts to use this Router Id. If the preferred Router Id is not set or
* if it can not be used, a randomly generated router id is picked. This
* property can be set only when the device role is either detached or
* disabled.
*/
THREAD_PREFERRED_ROUTER_ID = 5386,
/** Format: `A(t(ESLCcCbLLc))` - Read only
*
* Data per item is:
*
* `E`: Extended address
* `S`: RLOC16
* `L`: Age (in seconds)
* `C`: Link Quality In
* `c`: Average RSS (in dBm)
* `C`: Mode (bit-flags)
* `b`: `true` if neighbor is a child, `false` otherwise.
* `L`: Link Frame Counter
* `L`: MLE Frame Counter
* `c`: The last RSSI (in dBm)
*/
THREAD_NEIGHBOR_TABLE = 5387,
/** Format: `C`
*
* Specifies the maximum number of children currently allowed.
* This parameter can only be set when Thread protocol operation
* has been stopped.
*/
THREAD_CHILD_COUNT_MAX = 5388,
/** Format: `D` - Read only
*/
THREAD_LEADER_NETWORK_DATA = 5389,
/** Format: `D` - Read only
*/
THREAD_STABLE_LEADER_NETWORK_DATA = 5390,
/** Format `A(T(ULE))`
* PSKd, joiner timeout, eui64 (optional)
*
* This property is being deprecated by MESHCOP_COMMISSIONER_JOINERS.
*/
THREAD_JOINERS = 5391,
/** Format `b`
*
* Default value is `false`.
*
* This property is being deprecated by MESHCOP_COMMISSIONER_STATE.
*/
THREAD_COMMISSIONER_ENABLED = 5392,
/** Format `b`
* Required capability: `SPINEL_CAP_THREAD_TMF_PROXY`
*
* This property is deprecated.
*/
THREAD_TMF_PROXY_ENABLED = 5393,
/** Format `dSS`
* Required capability: `SPINEL_CAP_THREAD_TMF_PROXY`
*
* This property is deprecated. Please see `THREAD_UDP_FORWARD_STREAM`.
*/
THREAD_TMF_PROXY_STREAM = 5394,
/** Format `b`
*
* This property defines the Joiner Flag value in the Discovery Request TLV.
*
* Default value is `false`.
*/
THREAD_DISCOVERY_SCAN_JOINER_FLAG = 5395,
/** Format `b`
*
* Default value is `false`
*/
THREAD_DISCOVERY_SCAN_ENABLE_FILTERING = 5396,
/** Format: `S`
*
* Default value is 0xffff (Broadcast PAN) to disable PANID filtering
*/
THREAD_DISCOVERY_SCAN_PANID = 5397,
/** Format `E` - Write only
*
* Required capability: SPINEL_CAP_OOB_STEERING_DATA.
*
* Writing to this property allows to set/update the MLE
* Discovery Response steering data out of band.
*
* - All zeros to clear the steering data (indicating that
* there is no steering data).
* - All 0xFFs to set steering data/bloom filter to
* accept/allow all.
* - A specific EUI64 which is then added to current steering
* data/bloom filter.
*/
THREAD_STEERING_DATA = 5398,
/** Format: `A(t(ESCCCCCCb)` - Read only
*
* Data per item is:
*
* `E`: IEEE 802.15.4 Extended Address
* `S`: RLOC16
* `C`: Router ID
* `C`: Next hop to router
* `C`: Path cost to router
* `C`: Link Quality In
* `C`: Link Quality Out
* `C`: Age (seconds since last heard)
* `b`: Link established with Router ID or not.
*/
THREAD_ROUTER_TABLE = 5399,
/** Format: `A(t(iD))` - Read-Write
*
* This property provides access to current Thread Active Operational Dataset. A Thread device maintains the
* Operational Dataset that it has stored locally and the one currently in use by the partition to which it is
* attached. This property corresponds to the locally stored Dataset on the device.
*
* Operational Dataset consists of a set of supported properties (e.g., channel, network key, network name, PAN id,
* etc). Note that not all supported properties may be present (have a value) in a Dataset.
*
* The Dataset value is encoded as an array of structs containing pairs of property key (as `i`) followed by the
* property value (as `D`). The property value must follow the format associated with the corresponding property.
*
* On write, any unknown/unsupported property keys must be ignored.
*
* The following properties can be included in a Dataset list:
*
* DATASET_ACTIVE_TIMESTAMP
* PHY_CHAN
* PHY_CHAN_SUPPORTED (Channel Mask Page 0)
* NET_NETWORK_KEY
* NET_NETWORK_NAME
* NET_XPANID
* MAC_15_4_PANID
* IPV6_ML_PREFIX
* NET_PSKC
* DATASET_SECURITY_POLICY
*/
THREAD_ACTIVE_DATASET = 5400,
/** Format: `A(t(iD))` - Read-Write
*
* This property provide access to current locally stored Pending Operational Dataset.
*
* The formatting of this property follows the same rules as in THREAD_ACTIVE_DATASET.
*
* In addition supported properties in THREAD_ACTIVE_DATASET, the following properties can also
* be included in the Pending Dataset:
*
* DATASET_PENDING_TIMESTAMP
* DATASET_DELAY_TIMER
*/
THREAD_PENDING_DATASET = 5401,
/** Format: `A(t(iD))` - Write only
*
* The formatting of this property follows the same rules as in THREAD_ACTIVE_DATASET.
*
* This is write-only property. When written, it triggers a MGMT_ACTIVE_SET meshcop command to be sent to leader
* with the given Dataset. The spinel frame response should be a `LAST_STATUS` with the status of the transmission
* of MGMT_ACTIVE_SET command.
*
* In addition to supported properties in THREAD_ACTIVE_DATASET, the following property can be
* included in the Dataset (to allow for custom raw TLVs):
*
* DATASET_RAW_TLVS
*/
THREAD_MGMT_SET_ACTIVE_DATASET = 5402,
/** Format: `A(t(iD))` - Write only
*
* This property is similar to THREAD_PENDING_DATASET and follows the same format and rules.
*
* In addition to supported properties in THREAD_PENDING_DATASET, the following property can be
* included the Dataset (to allow for custom raw TLVs to be provided).
*
* DATASET_RAW_TLVS
*/
THREAD_MGMT_SET_PENDING_DATASET = 5403,
/** Format: `X` - No direct read or write
*
* It can only be included in one of the Dataset related properties below:
*
* THREAD_ACTIVE_DATASET
* THREAD_PENDING_DATASET
* THREAD_MGMT_SET_ACTIVE_DATASET
* THREAD_MGMT_SET_PENDING_DATASET
* THREAD_MGMT_GET_ACTIVE_DATASET
* THREAD_MGMT_GET_PENDING_DATASET
*/
DATASET_ACTIVE_TIMESTAMP = 5404,
/** Format: `X` - No direct read or write
*
* It can only be included in one of the Pending Dataset properties:
*
* THREAD_PENDING_DATASET
* THREAD_MGMT_SET_PENDING_DATASET
* THREAD_MGMT_GET_PENDING_DATASET
*/
DATASET_PENDING_TIMESTAMP = 5405,
/** Format: `L` - No direct read or write
*
* Delay timer (in ms) specifies the time renaming until Thread devices overwrite the value in the Active
* Operational Dataset with the corresponding values in the Pending Operational Dataset.
*
* It can only be included in one of the Pending Dataset properties:
*
* THREAD_PENDING_DATASET
* THREAD_MGMT_SET_PENDING_DATASET
* THREAD_MGMT_GET_PENDING_DATASET
*/
DATASET_DELAY_TIMER = 5406,
/** Format: `SD` - No direct read or write
*
* It can only be included in one of the Dataset related properties below:
*
* THREAD_ACTIVE_DATASET
* THREAD_PENDING_DATASET
* THREAD_MGMT_SET_ACTIVE_DATASET
* THREAD_MGMT_SET_PENDING_DATASET
* THREAD_MGMT_GET_ACTIVE_DATASET
* THREAD_MGMT_GET_PENDING_DATASET
*
* Content is
* `S` : Key Rotation Time (in units of hour)
* `C` : Security Policy Flags (as specified in Thread 1.1 Section 8.10.1.15)
* `C` : Optional Security Policy Flags extension (as specified in Thread 1.2 Section 8.10.1.15).
* 0xf8 is used if this field is missing.
*/
DATASET_SECURITY_POLICY = 5407,
/** Format: `D` - No direct read or write
*
* This property defines extra raw TLVs that can be added to an Operational DataSet.
*
* It can only be included in one of the following Dataset properties:
*
* THREAD_MGMT_SET_ACTIVE_DATASET
* THREAD_MGMT_SET_PENDING_DATASET
* THREAD_MGMT_GET_ACTIVE_DATASET
* THREAD_MGMT_GET_PENDING_DATASET
*/
DATASET_RAW_TLVS = 5408,
/** Format: `A(t(ESA(6)))` - Read only
*
* This property provides the list of all addresses associated with every child
* including any registered IPv6 addresses.
*
* Data per item is:
*
* `E`: Extended address of the child
* `S`: RLOC16 of the child
* `A(6)`: List of IPv6 addresses registered by the child (if any)
*/
THREAD_CHILD_TABLE_ADDRESSES = 5409,
/** Format: `A(t(ESSScc))`
* Required capability: `CAP_ERROR_RATE_TRACKING`
*
* This property provides link quality related info including
* frame and (IPv6) message error rates for all neighbors.
*
* With regards to message error rate, note that a larger (IPv6)
* message can be fragmented and sent as multiple MAC frames. The
* message transmission is considered a failure, if any of its
* fragments fail after all MAC retry attempts.
*
* Data per item is:
*
* `E`: Extended address of the neighbor
* `S`: RLOC16 of the neighbor
* `S`: Frame error rate (0 -> 0%, 0xffff -> 100%)
* `S`: Message error rate (0 -> 0%, 0xffff -> 100%)
* `c`: Average RSSI (in dBm)
* `c`: Last RSSI (in dBm)
*/
THREAD_NEIGHBOR_TABLE_ERROR_RATES = 5410,
/** Format `A(t(6SCCt(bL6)t(bSS)))
*
* This property provides Thread EID address cache table.
*
* Data per item is:
*
* `6` : Target IPv6 address
* `S` : RLOC16 of target
* `C` : Age (order of use, 0 indicates most recently used entry)
* `C` : Entry state (values are defined by enumeration `SPINEL_ADDRESS_CACHE_ENTRY_STATE_*`).
*
* `t` : Info when state is `SPINEL_ADDRESS_CACHE_ENTRY_STATE_CACHED`
* `b` : Indicates whether last transaction time and ML-EID are valid.
* `L` : Last transaction time
* `6` : Mesh-local EID
*
* `t` : Info when state is other than `SPINEL_ADDRESS_CACHE_ENTRY_STATE_CACHED`
* `b` : Indicates whether the entry can be evicted.
* `S` : Timeout in seconds
* `S` : Retry delay (applicable if in query-retry state).
*/
THREAD_ADDRESS_CACHE_TABLE = 5411,
/** Format `dS6S`
* Required capability: `SPINEL_CAP_THREAD_UDP_FORWARD`
*
* This property helps exchange UDP packets with host.
*
* `d`: UDP payload
* `S`: Remote UDP port
* `6`: Remote IPv6 address
* `S`: Local UDP port
*/
THREAD_UDP_FORWARD_STREAM = 5412,
/** Format: `A(t(iD))` - Write only
*
* The formatting of this property follows the same rules as in THREAD_MGMT_SET_ACTIVE_DATASET. This
* property further allows the sender to not include a value associated with properties in formatting of `t(iD)`,
* i.e., it should accept either a `t(iD)` or a `t(i)` encoding (in both cases indicating that the associated
* Dataset property should be requested as part of MGMT_GET command).
*
* This is write-only property. When written, it triggers a MGMT_ACTIVE_GET meshcop command to be sent to leader
* requesting the Dataset related properties from the format. The spinel frame response should be a `LAST_STATUS`
* with the status of the transmission of MGMT_ACTIVE_GET command.
*
* In addition to supported properties in THREAD_MGMT_SET_ACTIVE_DATASET, the following property can be
* optionally included in the Dataset:
*
* DATASET_DEST_ADDRESS
*/
THREAD_MGMT_GET_ACTIVE_DATASET = 5413,
/** Format: `A(t(iD))` - Write only
*
* The formatting of this property follows the same rules as in THREAD_MGMT_GET_ACTIVE_DATASET.
*
* This is write-only property. When written, it triggers a MGMT_PENDING_GET meshcop command to be sent to leader
* with the given Dataset. The spinel frame response should be a `LAST_STATUS` with the status of the transmission
* of MGMT_PENDING_GET command.
*/
THREAD_MGMT_GET_PENDING_DATASET = 5414,
/** Format: `6` - No direct read or write
*
* This property specifies the IPv6 destination when sending MGMT_GET command for either Active or Pending Dataset
* if not provided, Leader ALOC address is used as default.
*
* It can only be included in one of the MGMT_GET Dataset properties:
*
* THREAD_MGMT_GET_ACTIVE_DATASET
* THREAD_MGMT_GET_PENDING_DATASET
*/
DATASET_DEST_ADDRESS = 5415,
/** Format: `A(t(iD))` - Read only - FTD build only
*
* This property allows hos