From 1ece92155dc6168787755f54baf569d7473449ea Mon Sep 17 00:00:00 2001
From: Abtin Keshavarzian Spinel Host-Controller Protocol
@@ -608,7 +610,7 @@
- February 16, 2017
+ February 28, 2017
- draft-spinel-protocol-00deac5b1
This command sets the value of several properties at once in the given order. The setting of properties stops at the first error, ignoring any later properties.
-The result of this command is generally CMD_PROP_VALUES_ARE unless (for example) a parsing error has occured (in which case CMD_PROP_VALUE_IS for PROP_LAST_STATUS would be the result). The order of the results in CMD_PROP_VALUES_ARE match the order of properties given in CMD_PROP_VALUE_SET.
+The result of this command is generally CMD_PROP_VALUES_ARE unless (for example) a parsing error has occured (in which case CMD_PROP_VALUE_IS for PROP_LAST_STATUS would be the result). The order of the results in CMD_PROP_VALUES_ARE match the order of properties given in CMD_PROP_VALUE_MULTI_SET.
Since the processing of properties to set stops at the first error, the resulting CMD_PROP_VALUES_ARE can contain fewer items than the requested number of properties to set.
Not all properties can be set using this method. As a general rule of thumb, any property that blocks when setting will fail for that individual property with STATUS_INVALID_COMMAND_FOR_PROP.
Note that each property section has two reserved ranges: a primary range (which is encoded as a single byte) and an extended range (which is encoded as two bytes). properties which are used more frequently are generally allocated from the former range.
+Note that some of the property sections have two reserved ranges: a primary range (which is encoded as a single byte) and an extended range (which is encoded as two bytes). properties which are used more frequently are generally allocated from the former range.
-
Returns true if there is a network state stored that can be restored with a call to CMD_NET_RECALL.
+Returns true if there is a network state stored/saved.
Allow the NCP to directly respond to ICMP ping requests. If this is turned on, ping request ICMP packets will not be passed to the host.
Default value is false.
++
Reading this property will cause an assert on the NCP. This is intended for testing the assert functionality of underlying platform/NCP. Assert should ideally cause the NCP to reset, but if assert is not supported or disabled boolean value of false is returned in response.
Status codes are sent from the NCP to the host via PROP_LAST_STATUS using the CMD_VALUE_IS command to indicate the return status of a previous command. As with any response, the TID field of the FLAG byte is used to correlate the response with the request.
Note that most successfully executed commands do not indicate a last status of STATUS_OK. The usual way the NCP indicates a successful command is to mirror the property change back to the host. For example, if you do a CMD_VALUE_SET on PROP_PHY_ENABLED, the NCP would indicate success by responding with a CMD_VALUE_IS for PROP_PHY_ENABLED. If the command failed, PROP_LAST_STATUS would be emitted instead.
diff --git a/doc/draft-spinel-protocol.txt b/doc/draft-spinel-protocol.txt index 34d9d247f..b721b9a18 100644 --- a/doc/draft-spinel-protocol.txt +++ b/doc/draft-spinel-protocol.txt @@ -4,11 +4,11 @@ R. Quattlebaum Nest Labs - February 16, 2017 + February 28, 2017 Spinel Host-Controller Protocol - draft-spinel-protocol-00deac5b1 + draft-spinel-protocol-860a3959 Abstract @@ -53,9 +53,9 @@ Copyright Notice -Quattlebaum Expires August 20, 2017 [Page 1] +Quattlebaum Expires September 1, 2017 [Page 1] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS @@ -109,9 +109,9 @@ Table of Contents -Quattlebaum Expires August 20, 2017 [Page 2] +Quattlebaum Expires September 1, 2017 [Page 2] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 5.2. Core Properties . . . . . . . . . . . . . . . . . . . . . 24 @@ -165,9 +165,9 @@ Quattlebaum Expires August 20, 2017 [Page 2] -Quattlebaum Expires August 20, 2017 [Page 3] +Quattlebaum Expires September 1, 2017 [Page 3] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 5.7.1. PROP 96: PROP_IPV6_LL_ADDR . . . . . . . . . . . . . 39 @@ -175,127 +175,129 @@ Quattlebaum Expires August 20, 2017 [Page 3] 5.7.3. PROP 98: PROP_IPV6_ML_PREFIX . . . . . . . . . . . . 39 5.7.4. PROP 99: PROP_IPV6_ADDRESS_TABLE . . . . . . . . . . 40 5.7.5. PROP 101: PROP_IPv6_ICMP_PING_OFFLOAD . . . . . . . . 40 + 5.8. Debug Properties . . . . . . . . . . . . . . . . . . . . 40 + 5.8.1. PROP 16384: SPINEL_PROP_DEBUG_TEST_ASSERT . . . . . . 40 6. Status Codes . . . . . . . . . . . . . . . . . . . . . . . . 40 7. Technology: Thread . . . . . . . . . . . . . . . . . . . . . 42 7.1. Thread Capabilities . . . . . . . . . . . . . . . . . . . 42 7.2. Thread Properties . . . . . . . . . . . . . . . . . . . . 42 - 7.2.1. PROP 80: PROP_THREAD_LEADER_ADDR . . . . . . . . . . 42 - 7.2.2. PROP 81: PROP_THREAD_PARENT . . . . . . . . . . . . . 42 + 7.2.1. PROP 80: PROP_THREAD_LEADER_ADDR . . . . . . . . . . 43 + 7.2.2. PROP 81: PROP_THREAD_PARENT . . . . . . . . . . . . . 43 7.2.3. PROP 82: PROP_THREAD_CHILD_TABLE . . . . . . . . . . 43 7.2.4. PROP 83: PROP_THREAD_LEADER_RID . . . . . . . . . . . 43 7.2.5. PROP 84: PROP_THREAD_LEADER_WEIGHT . . . . . . . . . 43 7.2.6. PROP 85: PROP_THREAD_LOCAL_LEADER_WEIGHT . . . . . . 43 - 7.2.7. PROP 86: PROP_THREAD_NETWORK_DATA . . . . . . . . . . 43 - 7.2.8. PROP 87: PROP_THREAD_NETWORK_DATA_VERSION . . . . . . 43 - 7.2.9. PROP 88: PROP_THREAD_STABLE_NETWORK_DATA . . . . . . 43 + 7.2.7. PROP 86: PROP_THREAD_NETWORK_DATA . . . . . . . . . . 44 + 7.2.8. PROP 87: PROP_THREAD_NETWORK_DATA_VERSION . . . . . . 44 + 7.2.9. PROP 88: PROP_THREAD_STABLE_NETWORK_DATA . . . . . . 44 7.2.10. PROP 89: PROP_THREAD_STABLE_NETWORK_DATA_VERSION . . 44 7.2.11. PROP 90: PROP_THREAD_ON_MESH_NETS . . . . . . . . . . 44 7.2.12. PROP 91: PROP_THREAD_LOCAL_ROUTES . . . . . . . . . . 44 - 7.2.13. PROP 92: PROP_THREAD_ASSISTING_PORTS . . . . . . . . 44 - 7.2.14. PROP 93: PROP_THREAD_ALLOW_LOCAL_NET_DATA_CHANGE . . 44 + 7.2.13. PROP 92: PROP_THREAD_ASSISTING_PORTS . . . . . . . . 45 + 7.2.14. PROP 93: PROP_THREAD_ALLOW_LOCAL_NET_DATA_CHANGE . . 45 7.2.15. PROP 94: PROP_THREAD_MODE . . . . . . . . . . . . . . 45 7.2.16. PROP 5376: PROP_THREAD_CHILD_TIMEOUT . . . . . . . . 45 7.2.17. PROP 5377: PROP_THREAD_RLOC16 . . . . . . . . . . . . 45 7.2.18. PROP 5378: PROP_THREAD_ROUTER_UPGRADE_THRESHOLD . . . 45 7.2.19. PROP 5379: PROP_THREAD_CONTEXT_REUSE_DELAY . . . . . 45 - 7.2.20. PROP 5380: PROP_THREAD_NETWORK_ID_TIMEOUT . . . . . . 45 - 7.2.21. PROP 5381: PROP_THREAD_ACTIVE_ROUTER_IDS . . . . . . 45 + 7.2.20. PROP 5380: PROP_THREAD_NETWORK_ID_TIMEOUT . . . . . . 46 + 7.2.21. PROP 5381: PROP_THREAD_ACTIVE_ROUTER_IDS . . . . . . 46 7.2.22. PROP 5382: PROP_THREAD_RLOC16_DEBUG_PASSTHRU . . . . 46 7.2.23. PROP 5383: PROP_THREAD_ROUTER_ROLE_ENABLED . . . . . 46 7.2.24. PROP 5384: PROP_THREAD_ROUTER_DOWNGRADE_THRESHOLD . . 46 7.2.25. PROP 5385: PROP_THREAD_ROUTER_SELECTION_JITTER . . . 46 - 7.2.26. PROP 5386: PROP_THREAD_PREFERRED_ROUTER_ID . . . . . 46 - 7.2.27. PROP 5387: PROP_THREAD_NEIGHBOR_TABLE . . . . . . . . 46 + 7.2.26. PROP 5386: PROP_THREAD_PREFERRED_ROUTER_ID . . . . . 47 + 7.2.27. PROP 5387: PROP_THREAD_NEIGHBOR_TABLE . . . . . . . . 47 7.2.28. PROP 5388: PROP_THREAD_CHILD_COUNT_MAX . . . . . . . 47 7.2.29. PROP 5389: PROP_THREAD_LEADER_NETWORK_DATA . . . . . 47 - 7.2.30. PROP 5390: PROP_THREAD_STABLE_LEADER_NETWORK_DATA . . 47 - 8. Feature: Network Save . . . . . . . . . . . . . . . . . . . . 47 + 7.2.30. PROP 5390: PROP_THREAD_STABLE_LEADER_NETWORK_DATA . . 48 + 8. Feature: Network Save . . . . . . . . . . . . . . . . . . . . 48 8.1. Commands . . . . . . . . . . . . . . . . . . . . . . . . 48 8.1.1. CMD 9: (Host->NCP) CMD_NET_SAVE . . . . . . . . . . . 48 8.1.2. CMD 10: (Host->NCP) CMD_NET_CLEAR . . . . . . . . . . 48 8.1.3. CMD 11: (Host->NCP) CMD_NET_RECALL . . . . . . . . . 49 9. Feature: Host Buffer Offload . . . . . . . . . . . . . . . . 49 - 9.1. Commands . . . . . . . . . . . . . . . . . . . . . . . . 49 - 9.1.1. CMD 12: (NCP->Host) CMD_HBO_OFFLOAD . . . . . . . . . 49 - 9.1.2. CMD 13: (NCP->Host) CMD_HBO_RECLAIM . . . . . . . . . 50 + 9.1. Commands . . . . . . . . . . . . . . . . . . . . . . . . 50 -Quattlebaum Expires August 20, 2017 [Page 4] +Quattlebaum Expires September 1, 2017 [Page 4] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 + 9.1.1. CMD 12: (NCP->Host) CMD_HBO_OFFLOAD . . . . . . . . . 50 + 9.1.2. CMD 13: (NCP->Host) CMD_HBO_RECLAIM . . . . . . . . . 50 9.1.3. CMD 14: (NCP->Host) CMD_HBO_DROP . . . . . . . . . . 50 9.1.4. CMD 15: (Host->NCP) CMD_HBO_OFFLOADED . . . . . . . . 50 9.1.5. CMD 16: (Host->NCP) CMD_HBO_RECLAIMED . . . . . . . . 50 - 9.1.6. CMD 17: (Host->NCP) CMD_HBO_DROPPED . . . . . . . . . 50 - 9.2. Properties . . . . . . . . . . . . . . . . . . . . . . . 50 - 9.2.1. PROP 10: PROP_HBO_MEM_MAX . . . . . . . . . . . . . . 50 + 9.1.6. CMD 17: (Host->NCP) CMD_HBO_DROPPED . . . . . . . . . 51 + 9.2. Properties . . . . . . . . . . . . . . . . . . . . . . . 51 + 9.2.1. PROP 10: PROP_HBO_MEM_MAX . . . . . . . . . . . . . . 51 9.2.2. PROP 11: PROP_HBO_BLOCK_MAX . . . . . . . . . . . . . 51 - 10. Feature: Jam Detection . . . . . . . . . . . . . . . . . . . 51 - 10.1. Properties . . . . . . . . . . . . . . . . . . . . . . . 51 - 10.1.1. PROP 4608: PROP_JAM_DETECT_ENABLE . . . . . . . . . 51 + 10. Feature: Jam Detection . . . . . . . . . . . . . . . . . . . 52 + 10.1. Properties . . . . . . . . . . . . . . . . . . . . . . . 52 + 10.1.1. PROP 4608: PROP_JAM_DETECT_ENABLE . . . . . . . . . 52 10.1.2. PROP 4609: PROP_JAM_DETECTED . . . . . . . . . . . . 52 - 10.1.3. PROP 4610: PROP_JAM_DETECT_RSSI_THRESHOLD . . . . . 52 - 10.1.4. PROP 4611: PROP_JAM_DETECT_WINDOW . . . . . . . . . 52 + 10.1.3. PROP 4610: PROP_JAM_DETECT_RSSI_THRESHOLD . . . . . 53 + 10.1.4. PROP 4611: PROP_JAM_DETECT_WINDOW . . . . . . . . . 53 10.1.5. PROP 4612: PROP_JAM_DETECT_BUSY . . . . . . . . . . 53 10.1.6. PROP 4613: SPINEL_PROP_JAM_DETECT_HISTORY_BITMAP . . 53 - 11. Feature: GPIO Access . . . . . . . . . . . . . . . . . . . . 53 + 11. Feature: GPIO Access . . . . . . . . . . . . . . . . . . . . 54 11.1. Properties . . . . . . . . . . . . . . . . . . . . . . . 54 11.1.1. PROP 4096: PROP_GPIO_CONFIG . . . . . . . . . . . . 54 11.1.2. PROP 4098: PROP_GPIO_STATE . . . . . . . . . . . . . 55 - 11.1.3. PROP 4099: PROP_GPIO_STATE_SET . . . . . . . . . . . 55 + 11.1.3. PROP 4099: PROP_GPIO_STATE_SET . . . . . . . . . . . 56 11.1.4. PROP 4100: PROP_GPIO_STATE_CLEAR . . . . . . . . . . 56 12. Feature: True Random Number Generation . . . . . . . . . . . 56 - 12.1. Properties . . . . . . . . . . . . . . . . . . . . . . . 56 - 12.1.1. PROP 4101: PROP_TRNG_32 . . . . . . . . . . . . . . 56 + 12.1. Properties . . . . . . . . . . . . . . . . . . . . . . . 57 + 12.1.1. PROP 4101: PROP_TRNG_32 . . . . . . . . . . . . . . 57 12.1.2. PROP 4102: PROP_TRNG_128 . . . . . . . . . . . . . . 57 - 12.1.3. PROP 4103: PROP_TRNG_RAW_32 . . . . . . . . . . . . 57 + 12.1.3. PROP 4103: PROP_TRNG_RAW_32 . . . . . . . . . . . . 58 13. Security Considerations . . . . . . . . . . . . . . . . . . . 58 13.1. Raw Application Access . . . . . . . . . . . . . . . . . 58 14.1. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 58 - Appendix A. Framing Protocol . . . . . . . . . . . . . . . . . . 58 - A.1. UART Recommendations . . . . . . . . . . . . . . . . . . 58 + Appendix A. Framing Protocol . . . . . . . . . . . . . . . . . . 59 + A.1. UART Recommendations . . . . . . . . . . . . . . . . . . 59 A.1.1. UART Bit Rate Detection . . . . . . . . . . . . . . . 59 - A.1.2. HDLC-Lite . . . . . . . . . . . . . . . . . . . . . . 59 - A.2. SPI Recommendations . . . . . . . . . . . . . . . . . . . 60 + A.1.2. HDLC-Lite . . . . . . . . . . . . . . . . . . . . . . 60 + A.2. SPI Recommendations . . . . . . . . . . . . . . . . . . . 61 A.2.1. SPI Framing Protocol . . . . . . . . . . . . . . . . 61 A.3. I^2C Recommendations . . . . . . . . . . . . . . . . . . 63 A.4. Native USB Recommendations . . . . . . . . . . . . . . . 63 Appendix B. Test Vectors . . . . . . . . . . . . . . . . . . . . 63 B.1. Test Vector: Packed Unsigned Integer . . . . . . . . . . 63 - B.2. Test Vector: Reset Command . . . . . . . . . . . . . . . 63 + B.2. Test Vector: Reset Command . . . . . . . . . . . . . . . 64 B.3. Test Vector: Reset Notification . . . . . . . . . . . . . 64 B.4. Test Vector: Scan Beacon . . . . . . . . . . . . . . . . 64 - B.5. Test Vector: Inbound IPv6 Packet . . . . . . . . . . . . 64 + B.5. Test Vector: Inbound IPv6 Packet . . . . . . . . . . . . 65 B.6. Test Vector: Outbound IPv6 Packet . . . . . . . . . . . . 65 B.7. Test Vector: Fetch list of on-mesh networks . . . . . . . 65 - B.8. Test Vector: Returned list of on-mesh networks . . . . . 65 - B.9. Test Vector: Adding an on-mesh network . . . . . . . . . 65 - B.10. Test Vector: Insertion notification of an on-mesh network 66 + B.8. Test Vector: Returned list of on-mesh networks . . . . . 66 -Quattlebaum Expires August 20, 2017 [Page 5] +Quattlebaum Expires September 1, 2017 [Page 5] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 - B.11. Test Vector: Removing a local on-mesh network . . . . . . 66 + B.9. Test Vector: Adding an on-mesh network . . . . . . . . . 66 + B.10. Test Vector: Insertion notification of an on-mesh network 66 + B.11. Test Vector: Removing a local on-mesh network . . . . . . 67 B.12. Test Vector: Removal notification of an on-mesh network . 67 Appendix C. Example Sessions . . . . . . . . . . . . . . . . . . 67 C.1. NCP Initialization . . . . . . . . . . . . . . . . . . . 67 C.2. Attaching to a network . . . . . . . . . . . . . . . . . 68 - C.3. Successfully joining a pre-existing network . . . . . . . 68 - C.4. Unsuccessfully joining a pre-existing network . . . . . . 69 - C.5. Detaching from a network . . . . . . . . . . . . . . . . 69 + C.3. Successfully joining a pre-existing network . . . . . . . 69 + C.4. Unsuccessfully joining a pre-existing network . . . . . . 70 + C.5. Detaching from a network . . . . . . . . . . . . . . . . 70 C.6. Attaching to a saved network . . . . . . . . . . . . . . 70 - C.7. NCP Software Reset . . . . . . . . . . . . . . . . . . . 70 - C.8. Adding an on-mesh prefix . . . . . . . . . . . . . . . . 70 - C.9. Entering low-power modes . . . . . . . . . . . . . . . . 70 - C.10. Sniffing raw packets . . . . . . . . . . . . . . . . . . 70 - Appendix D. Acknowledgments . . . . . . . . . . . . . . . . . . 71 + C.7. NCP Software Reset . . . . . . . . . . . . . . . . . . . 71 + C.8. Adding an on-mesh prefix . . . . . . . . . . . . . . . . 71 + C.9. Entering low-power modes . . . . . . . . . . . . . . . . 71 + C.10. Sniffing raw packets . . . . . . . . . . . . . . . . . . 71 + Appendix D. Acknowledgments . . . . . . . . . . . . . . . . . . 72 Appendix E. Glossary . . . . . . . . . . . . . . . . . . . . . . 72 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 73 @@ -331,11 +333,9 @@ Quattlebaum Expires August 20, 2017 [Page 5] - - -Quattlebaum Expires August 20, 2017 [Page 6] +Quattlebaum Expires September 1, 2017 [Page 6] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 1.1.1. Renumbering @@ -389,9 +389,9 @@ Quattlebaum Expires August 20, 2017 [Page 6] -Quattlebaum Expires August 20, 2017 [Page 7] +Quattlebaum Expires September 1, 2017 [Page 7] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 Applications aren't necessarily interested in everything that an NCP @@ -445,9 +445,9 @@ Quattlebaum Expires August 20, 2017 [Page 7] -Quattlebaum Expires August 20, 2017 [Page 8] +Quattlebaum Expires September 1, 2017 [Page 8] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 registers for peripherals. The goal is to avoid, as much as @@ -501,9 +501,9 @@ Quattlebaum Expires August 20, 2017 [Page 8] -Quattlebaum Expires August 20, 2017 [Page 9] +Quattlebaum Expires September 1, 2017 [Page 9] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 o Network name (Represented as a UTF-8 encoded string) @@ -557,9 +557,9 @@ Quattlebaum Expires August 20, 2017 [Page 9] -Quattlebaum Expires August 20, 2017 [Page 10] +Quattlebaum Expires September 1, 2017 [Page 10] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 Some of these properties also support the host send data back to the @@ -613,9 +613,9 @@ Quattlebaum Expires August 20, 2017 [Page 10] -Quattlebaum Expires August 20, 2017 [Page 11] +Quattlebaum Expires September 1, 2017 [Page 11] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 The first subinterface (0) is considered the primary subinterface and @@ -669,9 +669,9 @@ Quattlebaum Expires August 20, 2017 [Page 11] -Quattlebaum Expires August 20, 2017 [Page 12] +Quattlebaum Expires September 1, 2017 [Page 12] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 Goals: @@ -725,9 +725,9 @@ Quattlebaum Expires August 20, 2017 [Page 12] -Quattlebaum Expires August 20, 2017 [Page 13] +Quattlebaum Expires September 1, 2017 [Page 13] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 All multi-byte values are little-endian unless explicitly stated @@ -781,9 +781,9 @@ Quattlebaum Expires August 20, 2017 [Page 13] -Quattlebaum Expires August 20, 2017 [Page 14] +Quattlebaum Expires September 1, 2017 [Page 14] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 size of the buffer, and the length of the data is simply the rest of @@ -837,9 +837,9 @@ Quattlebaum Expires August 20, 2017 [Page 14] -Quattlebaum Expires August 20, 2017 [Page 15] +Quattlebaum Expires September 1, 2017 [Page 15] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 another member and use "A(6cC)". To allow for data to be added @@ -893,9 +893,9 @@ Quattlebaum Expires August 20, 2017 [Page 15] -Quattlebaum Expires August 20, 2017 [Page 16] +Quattlebaum Expires September 1, 2017 [Page 16] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 +---------+--------+-----------+ @@ -949,9 +949,9 @@ Quattlebaum Expires August 20, 2017 [Page 16] -Quattlebaum Expires August 20, 2017 [Page 17] +Quattlebaum Expires September 1, 2017 [Page 17] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 The payload for this command is the property identifier encoded in @@ -1005,9 +1005,9 @@ Quattlebaum Expires August 20, 2017 [Page 17] -Quattlebaum Expires August 20, 2017 [Page 18] +Quattlebaum Expires September 1, 2017 [Page 18] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 If an error occurs, the value of "PROP_LAST_STATUS" will be emitted @@ -1061,9 +1061,9 @@ Quattlebaum Expires August 20, 2017 [Page 18] -Quattlebaum Expires August 20, 2017 [Page 19] +Quattlebaum Expires September 1, 2017 [Page 19] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 Property value removal notification command. This command can be @@ -1117,9 +1117,9 @@ Quattlebaum Expires August 20, 2017 [Page 19] -Quattlebaum Expires August 20, 2017 [Page 20] +Quattlebaum Expires September 1, 2017 [Page 20] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 This command requires the capability "CAP_PEEK_POKE" to be present. @@ -1173,9 +1173,9 @@ Quattlebaum Expires August 20, 2017 [Page 20] -Quattlebaum Expires August 20, 2017 [Page 21] +Quattlebaum Expires September 1, 2017 [Page 21] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 +---------+--------+--------------------------+---------------------+ @@ -1201,7 +1201,7 @@ Quattlebaum Expires August 20, 2017 [Page 21] (for example) a parsing error has occured (in which case "CMD_PROP_VALUE_IS" for "PROP_LAST_STATUS" would be the result). The order of the results in "CMD_PROP_VALUES_ARE" match the order of - properties given in "CMD_PROP_VALUE_SET". + properties given in "CMD_PROP_VALUE_MULTI_SET". Since the processing of properties to set stops at the first error, the resulting "CMD_PROP_VALUES_ARE" can contain fewer items than the @@ -1229,9 +1229,9 @@ Quattlebaum Expires August 20, 2017 [Page 21] -Quattlebaum Expires August 20, 2017 [Page 22] +Quattlebaum Expires September 1, 2017 [Page 22] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 +---------+--------+---------+------------+ @@ -1285,9 +1285,9 @@ Quattlebaum Expires August 20, 2017 [Page 22] -Quattlebaum Expires August 20, 2017 [Page 23] +Quattlebaum Expires September 1, 2017 [Page 23] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 +--------+------------------------------+---------------------+ @@ -1300,12 +1300,13 @@ Quattlebaum Expires August 20, 2017 [Page 23] | Tech | 0x50 - 0x5F, 0x1500 - 0x15FF | Technology-specific | | IPv6 | 0x60 - 0x6F, 0x1600 - 0x16FF | Section 5.7 | | Stream | 0x70 - 0x7F, 0x1700 - 0x17FF | Section 5.2 | + | Debug | 0x4000 - 0x4400 | Section 5.8 | +--------+------------------------------+---------------------+ - Note that each property section has two reserved ranges: a primary - range (which is encoded as a single byte) and an extended range - (which is encoded as two bytes). properties which are used more - frequently are generally allocated from the former range. + Note that some of the property sections have two reserved ranges: a + primary range (which is encoded as a single byte) and an extended + range (which is encoded as two bytes). properties which are used + more frequently are generally allocated from the former range. 5.2. Core Properties @@ -1340,10 +1341,9 @@ Quattlebaum Expires August 20, 2017 [Page 23] - -Quattlebaum Expires August 20, 2017 [Page 24] +Quattlebaum Expires September 1, 2017 [Page 24] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 +---------+---------------+---------------+ @@ -1397,9 +1397,9 @@ Quattlebaum Expires August 20, 2017 [Page 24] -Quattlebaum Expires August 20, 2017 [Page 25] +Quattlebaum Expires September 1, 2017 [Page 25] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 STACK-NAME/STACK-VERSION[BUILD_INFO][; OTHER_INFO]; BUILD_DATE_AND_TIME @@ -1453,9 +1453,9 @@ Quattlebaum Expires August 20, 2017 [Page 25] -Quattlebaum Expires August 20, 2017 [Page 26] +Quattlebaum Expires September 1, 2017 [Page 26] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 +---------+-------+-------+-----+ @@ -1509,9 +1509,9 @@ Quattlebaum Expires August 20, 2017 [Page 26] -Quattlebaum Expires August 20, 2017 [Page 27] +Quattlebaum Expires September 1, 2017 [Page 27] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 +-----------------------+--------------------------------+ @@ -1565,9 +1565,9 @@ Quattlebaum Expires August 20, 2017 [Page 27] -Quattlebaum Expires August 20, 2017 [Page 28] +Quattlebaum Expires September 1, 2017 [Page 28] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 o 2: "POWER_STATE_STANDBY": NCP is in the lowest power state that @@ -1621,9 +1621,9 @@ Quattlebaum Expires August 20, 2017 [Page 28] -Quattlebaum Expires August 20, 2017 [Page 29] +Quattlebaum Expires September 1, 2017 [Page 29] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 5.3. Stream Properties @@ -1677,9 +1677,9 @@ Quattlebaum Expires August 20, 2017 [Page 29] -Quattlebaum Expires August 20, 2017 [Page 30] +Quattlebaum Expires September 1, 2017 [Page 30] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 If the capability "CAP_WRITABLE_RAW_STREAM" is set, then packets @@ -1733,9 +1733,9 @@ Quattlebaum Expires August 20, 2017 [Page 30] -Quattlebaum Expires August 20, 2017 [Page 31] +Quattlebaum Expires September 1, 2017 [Page 31] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 +---------+--------+------------------+-----------------------------+ @@ -1789,9 +1789,9 @@ Quattlebaum Expires August 20, 2017 [Page 31] -Quattlebaum Expires August 20, 2017 [Page 32] +Quattlebaum Expires September 1, 2017 [Page 32] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 5.3.4. PROP 114: PROP_STREAM_NET_INSECURE @@ -1845,9 +1845,9 @@ Quattlebaum Expires August 20, 2017 [Page 32] -Quattlebaum Expires August 20, 2017 [Page 33] +Quattlebaum Expires September 1, 2017 [Page 33] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 5.4.3. PROP 34: PROP_PHY_CHAN_SUPPORTED @@ -1901,9 +1901,9 @@ Quattlebaum Expires August 20, 2017 [Page 33] -Quattlebaum Expires August 20, 2017 [Page 34] +Quattlebaum Expires September 1, 2017 [Page 34] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 5.5. MAC Properties @@ -1957,9 +1957,9 @@ Quattlebaum Expires August 20, 2017 [Page 34] -Quattlebaum Expires August 20, 2017 [Page 35] +Quattlebaum Expires September 1, 2017 [Page 35] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 MAC and NET layer currently in use. The format below is for an @@ -2013,9 +2013,9 @@ Quattlebaum Expires August 20, 2017 [Page 35] -Quattlebaum Expires August 20, 2017 [Page 36] +Quattlebaum Expires September 1, 2017 [Page 36] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 5.5.8. PROP 55: PROP_MAC_RAW_STREAM_ENABLED @@ -2069,9 +2069,9 @@ Quattlebaum Expires August 20, 2017 [Page 36] -Quattlebaum Expires August 20, 2017 [Page 37] +Quattlebaum Expires September 1, 2017 [Page 37] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 5.6. NET Properties @@ -2081,8 +2081,7 @@ Quattlebaum Expires August 20, 2017 [Page 37] o Type: Read-Only o Packed-Encoding: "b" - Returns true if there is a network state stored that can be restored - with a call to "CMD_NET_RECALL". + Returns true if there is a network state stored/saved. 5.6.2. PROP 65: PROP_NET_IF_UP @@ -2125,9 +2124,10 @@ Quattlebaum Expires August 20, 2017 [Page 37] -Quattlebaum Expires August 20, 2017 [Page 38] + +Quattlebaum Expires September 1, 2017 [Page 38] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 5.6.6. PROP 69: PROP_NET_XPANID @@ -2181,9 +2181,9 @@ Quattlebaum Expires August 20, 2017 [Page 38] -Quattlebaum Expires August 20, 2017 [Page 39] +Quattlebaum Expires September 1, 2017 [Page 39] - Spinel Protocol (00deac5b1) February 2017 + Spinel Protocol (860a3959) February 2017 IPv6 Prefix + Prefix Length @@ -2211,6 +2211,19 @@ Quattlebaum Expires August 20, 2017 [Page 39] Default value is "false". +5.8. Debug Properties + +5.8.1. PROP 16384: SPINEL_PROP_DEBUG_TEST_ASSERT + + o Type: Read-Only + o Packed-Encoding: "b" + + Reading this property will cause an assert on the NCP. This is + intended for testing the assert functionality of underlying platform/ + NCP. Assert should ideally cause the NCP to reset, but if "assert" + is not supported or disabled boolean value of "false" is returned in + response. + 6. Status Codes Status codes are sent from the NCP to the host via "PROP_LAST_STATUS" @@ -2221,6 +2234,14 @@ Quattlebaum Expires August 20, 2017 [Page 39] Note that most successfully executed commands do not indicate a last status of "STATUS_OK". The usual way the NCP indicates a successful command is to mirror the property change back to the host. For + + + +Quattlebaum Expires September 1, 2017 [Page 40] + + Spinel Protocol (860a3959) February 2017 + + example, if you do a "CMD_VALUE_SET" on "PROP_PHY_ENABLED", the NCP would indicate success by responding with a "CMD_VALUE_IS" for "PROP_PHY_ENABLED". If the command failed, "PROP_LAST_STATUS" would @@ -2233,15 +2254,6 @@ Quattlebaum Expires August 20, 2017 [Page 39] reason. o 2: "STATUS_UNIMPLEMENTED": The given operation has not been implemented. - - - - -Quattlebaum Expires August 20, 2017 [Page 40] - - Spinel Protocol (00deac5b1) February 2017 - - o 3: "STATUS_INVALID_ARGUMENT": An argument to the given operation is invalid. o 4: "STATUS_INVALID_STATE" : The given operation is invalid for the @@ -2278,6 +2290,14 @@ Quattlebaum Expires August 20, 2017 [Page 40] o 22-111: RESERVED o 112-127: Reset Causes + + + +Quattlebaum Expires September 1, 2017 [Page 41] + + Spinel Protocol (860a3959) February 2017 + + * 112: "STATUS_RESET_POWER_ON" * 113: "STATUS_RESET_EXTERNAL" * 114: "STATUS_RESET_SOFTWARE" @@ -2290,14 +2310,6 @@ Quattlebaum Expires August 20, 2017 [Page 40] * 121-127: RESERVED-RESET-CODES o 128 - 15,359: UNALLOCATED o 15,360 - 16,383: Vendor-specific - - - -Quattlebaum Expires August 20, 2017 [Page 41] - - Spinel Protocol (00deac5b1) February 2017 - - o 16,384 - 1,999,999: UNALLOCATED o 2,000,000 - 2,097,151: Experimental Use Only (MUST NEVER be used in production!) @@ -2330,6 +2342,18 @@ Quattlebaum Expires August 20, 2017 [Page 41] Properties for Thread are allocated out of the "Tech" property section (see Section 5.1). + + + + + + + +Quattlebaum Expires September 1, 2017 [Page 42] + + Spinel Protocol (860a3959) February 2017 + + 7.2.1. PROP 80: PROP_THREAD_LEADER_ADDR o Type: Read-Only @@ -2346,14 +2370,6 @@ Quattlebaum Expires August 20, 2017 [Page 41] The long address and short address of the parent of this node. - - - -Quattlebaum Expires August 20, 2017 [Page 42] - - Spinel Protocol (00deac5b1) February 2017 - - 7.2.3. PROP 82: PROP_THREAD_CHILD_TABLE o Type: Read-Only @@ -2383,6 +2399,17 @@ Quattlebaum Expires August 20, 2017 [Page 42] The leader weight for this node. + + + + + + +Quattlebaum Expires September 1, 2017 [Page 43] + + Spinel Protocol (860a3959) February 2017 + + 7.2.7. PROP 86: PROP_THREAD_NETWORK_DATA o Type: Read-Only @@ -2402,14 +2429,6 @@ Quattlebaum Expires August 20, 2017 [Page 42] The local stable network data. - - - -Quattlebaum Expires August 20, 2017 [Page 43] - - Spinel Protocol (00deac5b1) February 2017 - - 7.2.10. PROP 89: PROP_THREAD_STABLE_NETWORK_DATA_VERSION o Type: Read-Only @@ -2439,6 +2458,14 @@ Quattlebaum Expires August 20, 2017 [Page 43] o "6": IPv6 Prefix o "C": Prefix length, in bits + + + +Quattlebaum Expires September 1, 2017 [Page 44] + + Spinel Protocol (860a3959) February 2017 + + o "b": Stable flag o "C": Other flags @@ -2455,17 +2482,6 @@ Quattlebaum Expires August 20, 2017 [Page 43] Set to true before changing local net data. Set to false when finished. This allows changes to be aggregated into single events. - - - - - - -Quattlebaum Expires August 20, 2017 [Page 44] - - Spinel Protocol (00deac5b1) February 2017 - - 7.2.15. PROP 94: PROP_THREAD_MODE o Type: Read-Write @@ -2497,6 +2513,15 @@ Quattlebaum Expires August 20, 2017 [Page 44] o Type: Read-Write o Packed-Encoding: "L" + + + + +Quattlebaum Expires September 1, 2017 [Page 45] + + Spinel Protocol (860a3959) February 2017 + + 7.2.20. PROP 5380: PROP_THREAD_NETWORK_ID_TIMEOUT o Type: Read-Write @@ -2513,15 +2538,6 @@ Quattlebaum Expires August 20, 2017 [Page 44] Note that some implementations may not support "CMD_GET_VALUE" router ids, but may support "CMD_REMOVE_VALUE" when the node is a leader. - - - - -Quattlebaum Expires August 20, 2017 [Page 45] - - Spinel Protocol (00deac5b1) February 2017 - - 7.2.22. PROP 5382: PROP_THREAD_RLOC16_DEBUG_PASSTHRU o Type: Read-Write @@ -2554,6 +2570,14 @@ Quattlebaum Expires August 20, 2017 [Page 45] Specifies the self imposed random delay in seconds a REED waits before registering to become an Active Router. + + + +Quattlebaum Expires September 1, 2017 [Page 46] + + Spinel Protocol (860a3959) February 2017 + + 7.2.26. PROP 5386: PROP_THREAD_PREFERRED_ROUTER_ID o Type: Write-Only @@ -2570,14 +2594,6 @@ Quattlebaum Expires August 20, 2017 [Page 45] o Type: Read-Only o Packed-Encoding: "A(T(ESLCcCbLL))" - - - -Quattlebaum Expires August 20, 2017 [Page 46] - - Spinel Protocol (00deac5b1) February 2017 - - Data per item is: o "E": Extended/long address @@ -2606,6 +2622,18 @@ Quattlebaum Expires August 20, 2017 [Page 46] The leader network data. + + + + + + + +Quattlebaum Expires September 1, 2017 [Page 47] + + Spinel Protocol (860a3959) February 2017 + + 7.2.30. PROP 5390: PROP_THREAD_STABLE_LEADER_NETWORK_DATA o Type: Read-Only @@ -2625,15 +2653,6 @@ Quattlebaum Expires August 20, 2017 [Page 46] Network clear feature allows host to erase all network credentials and state from non-volatile memory. - - - - -Quattlebaum Expires August 20, 2017 [Page 47] - - Spinel Protocol (00deac5b1) February 2017 - - 8.1. Commands 8.1.1. CMD 9: (Host->NCP) CMD_NET_SAVE @@ -2659,6 +2678,18 @@ Quattlebaum Expires August 20, 2017 [Page 47] 8.1.2. CMD 10: (Host->NCP) CMD_NET_CLEAR + + + + + + + +Quattlebaum Expires September 1, 2017 [Page 48] + + Spinel Protocol (860a3959) February 2017 + + +---------+--------+---------------+ | Octets: | 1 | 1 | +---------+--------+---------------+ @@ -2679,17 +2710,6 @@ Quattlebaum Expires August 20, 2017 [Page 47] This command is always available independent of the value of "CAP_NET_SAVE" capability. - - - - - - -Quattlebaum Expires August 20, 2017 [Page 48] - - Spinel Protocol (00deac5b1) February 2017 - - 8.1.3. CMD 11: (Host->NCP) CMD_NET_RECALL +---------+--------+----------------+ @@ -2718,6 +2738,14 @@ Quattlebaum Expires August 20, 2017 [Page 48] NCP to offload buffers to the host processor temporarily so that it can perform other operations. + + + +Quattlebaum Expires September 1, 2017 [Page 49] + + Spinel Protocol (860a3959) February 2017 + + Host buffer offload is an optional NCP capability that, when present, allows the NCP to store data buffers on the host processor that can be recalled at a later time. @@ -2736,16 +2764,6 @@ Quattlebaum Expires August 20, 2017 [Page 48] * "Priority": Critical, High, Medium, Low * "Data": Data to offload - - - - - -Quattlebaum Expires August 20, 2017 [Page 49] - - Spinel Protocol (00deac5b1) February 2017 - - 9.1.2. CMD 13: (NCP->Host) CMD_HBO_RECLAIM o Argument-Encoding: "Lb" @@ -2775,6 +2793,15 @@ Quattlebaum Expires August 20, 2017 [Page 49] * "Status": Status code for the result of the operation. * "Data": Data that was previously offloaded (if any) + + + + +Quattlebaum Expires September 1, 2017 [Page 50] + + Spinel Protocol (860a3959) February 2017 + + 9.1.6. CMD 17: (Host->NCP) CMD_HBO_DROPPED o Argument-Encoding: "Li" @@ -2795,13 +2822,6 @@ Quattlebaum Expires August 20, 2017 [Page 49] | Fields: | "PROP_HBO_MEM_MAX" | +---------+--------------------+ - - -Quattlebaum Expires August 20, 2017 [Page 50] - - Spinel Protocol (00deac5b1) February 2017 - - Describes the number of bytes that may be offloaded from the NCP to the host. Default value is zero, so this property must be set by the host to a non-zero value before the NCP will begin offloading blocks. @@ -2831,6 +2851,13 @@ Quattlebaum Expires August 20, 2017 [Page 50] This property is only available if the "CAP_HBO" capability is present in "PROP_CAPS". + + +Quattlebaum Expires September 1, 2017 [Page 51] + + Spinel Protocol (860a3959) February 2017 + + 10. Feature: Jam Detection Jamming detection is a feature that allows the NCP to report when it @@ -2849,15 +2876,6 @@ Quattlebaum Expires August 20, 2017 [Page 50] o Default Value: false o REQUIRED for "CAP_JAM_DETECT" - - - - -Quattlebaum Expires August 20, 2017 [Page 51] - - Spinel Protocol (00deac5b1) February 2017 - - +---------+--------------------------+ | Octets: | 1 | +---------+--------------------------+ @@ -2887,6 +2905,15 @@ Quattlebaum Expires August 20, 2017 [Page 51] When jamming detection is enabled, changes to the value of this property are emitted asynchronously via "CMD_PROP_VALUE_IS". + + + + +Quattlebaum Expires September 1, 2017 [Page 52] + + Spinel Protocol (860a3959) February 2017 + + This property is only available if the "CAP_JAM_DETECT" capability is present in "PROP_CAPS". @@ -2906,14 +2933,6 @@ Quattlebaum Expires August 20, 2017 [Page 51] o Type: Read-Write o Packed-Encoding: "c" o Units: Seconds (1-64) - - - -Quattlebaum Expires August 20, 2017 [Page 52] - - Spinel Protocol (00deac5b1) February 2017 - - o Default Value: Implementation-specific o RECOMMENDED for "CAP_JAM_DETECT" @@ -2943,6 +2962,14 @@ Quattlebaum Expires August 20, 2017 [Page 52] o Default Value: Implementation-specific o RECOMMENDED for "CAP_JAM_DETECT" + + + +Quattlebaum Expires September 1, 2017 [Page 53] + + Spinel Protocol (860a3959) February 2017 + + 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 @@ -2961,15 +2988,6 @@ Quattlebaum Expires August 20, 2017 [Page 52] available by examining "PROP_GPIO_CONFIG", described below. This API supports a maximum of 256 individual GPIO pins. - - - - -Quattlebaum Expires August 20, 2017 [Page 53] - - Spinel Protocol (00deac5b1) February 2017 - - Support for this feature can be determined by the presence of "CAP_GPIO". @@ -3000,6 +3018,14 @@ Quattlebaum Expires August 20, 2017 [Page 53] +---+ o "DIR": Pin direction. Clear (0) for input, set (1) for output. + + + +Quattlebaum Expires September 1, 2017 [Page 54] + + Spinel Protocol (860a3959) February 2017 + + o "PUP": Pull-up enabled flag. o "PDN"/"O/D": Flag meaning depends on pin direction: @@ -3018,14 +3044,6 @@ Quattlebaum Expires August 20, 2017 [Page 53] 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) - - - -Quattlebaum Expires August 20, 2017 [Page 54] - - Spinel Protocol (00deac5b1) February 2017 - - 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 addional GPIOs. @@ -3056,6 +3074,14 @@ Quattlebaum Expires August 20, 2017 [Page 54] an open-drain, setting the associated bit to 1 will cause the pin to enter a Hi-Z state. + + + +Quattlebaum Expires September 1, 2017 [Page 55] + + Spinel Protocol (860a3959) February 2017 + + For GPIOs which are not specified in "PROP_GPIO_CONFIG": o "CMD_PROP_VAUE_GET": The value of the associated bit is @@ -3073,15 +3099,6 @@ Quattlebaum Expires August 20, 2017 [Page 54] affecting other GPIO states. Contains a bit field identifying the output GPIOs that should have their state set to 1. - - - - -Quattlebaum Expires August 20, 2017 [Page 55] - - Spinel Protocol (00deac5b1) February 2017 - - 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. @@ -3112,6 +3129,15 @@ Quattlebaum Expires August 20, 2017 [Page 55] temperature changes, manufacturing differences across devices, or unexpected output correlations) is non-trivial without a well- designed, dedicated hardware random number generator. Implementors + + + + +Quattlebaum Expires September 1, 2017 [Page 56] + + Spinel Protocol (860a3959) February 2017 + + who have little or no experience in this area are encouraged to not advertise this capability. @@ -3129,15 +3155,6 @@ Quattlebaum Expires August 20, 2017 [Page 55] implementation-specific, the implementation must satisfy the following requirements: - - - - -Quattlebaum Expires August 20, 2017 [Page 56] - - Spinel Protocol (00deac5b1) February 2017 - - o Data representing at least 32 bits of fresh entropy (extracted from the primary entropy source) MUST be consumed by the calculation of each query. @@ -3168,6 +3185,15 @@ Quattlebaum Expires August 20, 2017 [Page 56] statistical correlation to any part of the raw data used for the calculation of any query. + + + + +Quattlebaum Expires September 1, 2017 [Page 57] + + Spinel Protocol (860a3959) February 2017 + + Support for this property is REQUIRED if "CAP_TRNG" is included in the device capabilities. @@ -3186,14 +3212,6 @@ Quattlebaum Expires August 20, 2017 [Page 56] The length of the returned buffer is implementation specific and should be expected to be non-deterministic. - - - -Quattlebaum Expires August 20, 2017 [Page 57] - - Spinel Protocol (00deac5b1) February 2017 - - Support for this property is RECOMMENDED if "CAP_TRNG" is included in the device capabilities. @@ -3224,6 +3242,14 @@ Quattlebaum Expires August 20, 2017 [Page 57] [6] http://xml2rfc.ietf.org/ + + + +Quattlebaum Expires September 1, 2017 [Page 58] + + Spinel Protocol (860a3959) February 2017 + + Appendix A. Framing Protocol Since this NCP protocol is defined independently of the physical @@ -3242,14 +3268,6 @@ A.1. UART Recommendations o Parity: None o Flow Control: Hardware - - - -Quattlebaum Expires August 20, 2017 [Page 58] - - Spinel Protocol (00deac5b1) February 2017 - - These values may be adjusted depending on the individual needs of the application or product, but some sort of flow control MUST be used. Hardware flow control is preferred over software flow control. In @@ -3281,6 +3299,13 @@ A.1.1. UART Bit Rate Detection increasing bitrates. When a valid "CMD_LAST_STATUS" response has been received, we have identified the correct bitrate. + + +Quattlebaum Expires September 1, 2017 [Page 59] + + Spinel Protocol (860a3959) February 2017 + + In order to limit the time spent hunting for the appropriate bitrate, we RECOMMEND that only the following bitrates be checked: @@ -3299,13 +3324,6 @@ A.1.2. HDLC-Lite of HDLC are omitted. This protocol was chosen because it works well with software flow control and is widely implemented. - - -Quattlebaum Expires August 20, 2017 [Page 59] - - Spinel Protocol (00deac5b1) February 2017 - - To transmit a frame with HDLC-lite, the 16-bit CRC must first be appended to the frame. The CRC function is defined to be CRC-16/ CCITT, otherwise known as the KERMIT CRC [4]. @@ -3336,6 +3354,14 @@ Quattlebaum Expires August 20, 2017 [Page 59] indicate the failure to higher levels to handle as they see fit, but MUST NOT attempt to process the deceived frame. + + + +Quattlebaum Expires September 1, 2017 [Page 60] + + Spinel Protocol (860a3959) February 2017 + + Consecutive flag octets are entirely legal and MUST NOT be treated as a framing error. Consecutive flag octets MAY be used as a way to wake up a sleeping NCP. @@ -3355,13 +3381,6 @@ A.2. SPI Recommendations o "I̅N̅T̅": (NCP-to-Host) Host Interrupt o "R̅E̅S̅": (Host-to-NCP) NCP Hardware Reset - - -Quattlebaum Expires August 20, 2017 [Page 60] - - Spinel Protocol (00deac5b1) February 2017 - - The "I̅N̅T̅" signal is used by the NCP to indicate to the host that the NCP has frames pending to send to it. When asserted, the host SHOULD initiate a SPI transaction in a timely @@ -3390,6 +3409,15 @@ A.2.1. SPI Framing Protocol +---------+-----+----------+----------+ o "HDR": The first byte is the header byte (defined below) + + + + +Quattlebaum Expires September 1, 2017 [Page 61] + + Spinel Protocol (860a3959) February 2017 + + o "RECV_LEN": The second and third bytes indicate the largest frame size that that device is ready to receive. If zero, then the other device must not send any data. (Little endian) @@ -3408,16 +3436,6 @@ A.2.1. SPI Framing Protocol o "RST": This bit is set when that device has been reset since the last time "C̅S̅" was asserted. - - - - - -Quattlebaum Expires August 20, 2017 [Page 61] - - Spinel Protocol (00deac5b1) February 2017 - - o "CRC": This bit is set when that device supports writing a 16-bit CRC at the end of the data. The CRC length is NOT included in DATA_LEN. @@ -3448,6 +3466,14 @@ Quattlebaum Expires August 20, 2017 [Page 61] This protocol can be used either unidirectionally or bidirectionally, determined by the behavior of the master and the slave. + + + +Quattlebaum Expires September 1, 2017 [Page 62] + + Spinel Protocol (860a3959) February 2017 + + If the the master notices "PATTERN" is not set correctly, the master should consider the transaction to have failed and try again after 10 milliseconds, retrying up to 200 times. After unsuccessfully trying @@ -3466,14 +3492,6 @@ Quattlebaum Expires August 20, 2017 [Page 61] the frame. If not enough bytes were clocked out for the CRC to be read, then the frame must be ignored. If enough bytes were clocked out to perform a CRC check, but the CRC check fails, then the frame - - - -Quattlebaum Expires August 20, 2017 [Page 62] - - Spinel Protocol (00deac5b1) February 2017 - - must be rejected and the "CRC_FAIL" bit on the next frame (and ONLY the next frame) MUST be set. @@ -3493,6 +3511,25 @@ Appendix B. Test Vectors B.1. Test Vector: Packed Unsigned Integer + + + + + + + + + + + + + + +Quattlebaum Expires September 1, 2017 [Page 63] + + Spinel Protocol (860a3959) February 2017 + + +---------------+-----------------------+ | Decimal Value | Packet Octet Encoding | +---------------+-----------------------+ @@ -3520,16 +3557,6 @@ B.2. Test Vector: Reset Command 80 01 - - - - - -Quattlebaum Expires August 20, 2017 [Page 63] - - Spinel Protocol (00deac5b1) February 2017 - - B.3. Test Vector: Reset Notification o IID: 0 @@ -3551,6 +3578,14 @@ B.4. Test Vector: Scan Beacon o VALUE: Structure, encoded as "CcT(ESSc.)T(iCUD.)." * CHAN: 15 + + + +Quattlebaum Expires September 1, 2017 [Page 64] + + Spinel Protocol (860a3959) February 2017 + + * RSSI: -60dBm * MAC_DATA: (0D 00 B6 40 D4 8C E9 38 F9 52 FF FF D2 04 00) @@ -3578,14 +3613,6 @@ B.5. Test Vector: Inbound IPv6 Packet [CREF5] - - - -Quattlebaum Expires August 20, 2017 [Page 64] - - Spinel Protocol (00deac5b1) February 2017 - - B.6. Test Vector: Outbound IPv6 Packet CMD_VALUE_SET(PROP_STREAM_NET) @@ -3603,6 +3630,18 @@ B.7. Test Vector: Fetch list of on-mesh networks 84 02 5A + + + + + + + +Quattlebaum Expires September 1, 2017 [Page 65] + + Spinel Protocol (860a3959) February 2017 + + B.8. Test Vector: Returned list of on-mesh networks o IID: 0 @@ -3632,16 +3671,6 @@ B.9. Test Vector: Adding an on-mesh network o PROP: 90 ("PROP_THREAD_ON_MESH_NETS") o VALUE: Structure, encoded as "6CbCb" - - - - - -Quattlebaum Expires August 20, 2017 [Page 65] - - Spinel Protocol (00deac5b1) February 2017 - - +--------------+---------------+-------------+-------------+ | IPv6 Prefix | Prefix Length | Stable Flag | Other Flags | +--------------+---------------+-------------+-------------+ @@ -3661,6 +3690,14 @@ B.10. Test Vector: Insertion notification of an on-mesh network o TID: 5 o CMD: 7 ("CMD_VALUE_INSERTED") o PROP: 90 ("PROP_THREAD_ON_MESH_NETS") + + + +Quattlebaum Expires September 1, 2017 [Page 66] + + Spinel Protocol (860a3959) February 2017 + + o VALUE: Structure, encoded as "6CbCb" +--------------+---------------+-------------+-------------+ @@ -3688,16 +3725,6 @@ B.11. Test Vector: Removing a local on-mesh network 86 05 5A 20 01 0D B8 00 03 00 00 00 00 00 00 00 00 00 00 - - - - - -Quattlebaum Expires August 20, 2017 [Page 66] - - Spinel Protocol (00deac5b1) February 2017 - - B.12. Test Vector: Removal notification of an on-mesh network o IID: 0 @@ -3719,6 +3746,14 @@ C.1. NCP Initialization Check the protocol version to see if it is supported: o CMD_VALUE_GET:PROP_PROTOCOL_VERSION + + + +Quattlebaum Expires September 1, 2017 [Page 67] + + Spinel Protocol (860a3959) February 2017 + + o CMD_VALUE_IS:PROP_PROTOCOL_VERSION Check the NCP version to see if a firmware update may be necessary: @@ -3746,14 +3781,6 @@ C.1. NCP Initialization If the NCP supports CAP_NET_SAVE, then we go ahead and recall the network: - - - -Quattlebaum Expires August 20, 2017 [Page 67] - - Spinel Protocol (00deac5b1) February 2017 - - o CMD_NET_RECALL C.2. Attaching to a network @@ -3775,6 +3802,14 @@ C.2. Attaching to a network o CMD_VALUE_IS:PROP_NET_NETWORK_NAME o CMD_VALUE_SET:PROP_NET_MASTER_KEY o CMD_VALUE_IS:PROP_NET_MASTER_KEY + + + +Quattlebaum Expires September 1, 2017 [Page 68] + + Spinel Protocol (860a3959) February 2017 + + o CMD_VALUE_SET:PROP_NET_KEY_SEQUENCE_COUNTER o CMD_VALUE_IS:PROP_NET_KEY_SEQUENCE_COUNTER o CMD_VALUE_SET:PROP_NET_KEY_SWITCH_GUARDTIME @@ -3800,16 +3835,6 @@ C.3. Successfully joining a pre-existing network [CREF11] - - - - - -Quattlebaum Expires August 20, 2017 [Page 68] - - Spinel Protocol (00deac5b1) February 2017 - - This example session is identical to the above session up to the point where we set PROP_NET_IF_UP to true. From there, the behavior changes. @@ -3832,6 +3857,15 @@ Quattlebaum Expires August 20, 2017 [Page 68] o CMD_NET_SAVE + + + + +Quattlebaum Expires September 1, 2017 [Page 69] + + Spinel Protocol (860a3959) February 2017 + + C.4. Unsuccessfully joining a pre-existing network This example session is identical to the above session up to the @@ -3855,17 +3889,6 @@ C.5. Detaching from a network TBD - - - - - - -Quattlebaum Expires August 20, 2017 [Page 69] - - Spinel Protocol (00deac5b1) February 2017 - - C.6. Attaching to a saved network [CREF12] @@ -3890,6 +3913,15 @@ C.6. Attaching to a saved network o CMD_VALUE_IS:PROP_NET_PARTITION_ID o CMD_VALUE_IS:PROP_THREAD_ON_MESH_NETS + + + + +Quattlebaum Expires September 1, 2017 [Page 70] + + Spinel Protocol (860a3959) February 2017 + + C.7. NCP Software Reset [CREF13] @@ -3915,13 +3947,6 @@ C.10. Sniffing raw packets Optionally set the channel: - - -Quattlebaum Expires August 20, 2017 [Page 70] - - Spinel Protocol (00deac5b1) February 2017 - - o CMD_VALUE_SET:PROP_PHY_CHAN:x o CMD_VALUE_IS:PROP_PHY_CHAN @@ -3945,6 +3970,14 @@ Quattlebaum Expires August 20, 2017 [Page 70] Now we will get raw 802.15.4 packets asynchronously on PROP_STREAM_RAW: + + + +Quattlebaum Expires September 1, 2017 [Page 71] + + Spinel Protocol (860a3959) February 2017 + + o CMD_VALUE_IS:PROP_STREAM_RAW:... o CMD_VALUE_IS:PROP_STREAM_RAW:... o CMD_VALUE_IS:PROP_STREAM_RAW:... @@ -3966,18 +3999,6 @@ Appendix D. Acknowledgments This document was prepared using mmark [5] by (Miek Gieben) and xml2rfc (version 2) [6]. - - - - - - - -Quattlebaum Expires August 20, 2017 [Page 71] - - Spinel Protocol (00deac5b1) February 2017 - - Appendix E. Glossary [CREF16] @@ -4004,6 +4025,15 @@ Appendix E. Glossary to the physical implementation and operation of a networking medium. + + + + +Quattlebaum Expires September 1, 2017 [Page 72] + + Spinel Protocol (860a3959) February 2017 + + Editorial Comments [CREF1] RQ: We may want to consider a license more appropriate for @@ -4026,14 +4056,6 @@ Editorial Comments [CREF6] RQ: FIXME: This test vector is incomplete. - - - -Quattlebaum Expires August 20, 2017 [Page 72] - - Spinel Protocol (00deac5b1) February 2017 - - [CREF7] RQ: FIXME: This test vector is incomplete. [CREF8] RQ: FIXME: This test vector is incomplete. @@ -4057,6 +4079,17 @@ Quattlebaum Expires August 20, 2017 [Page 72] Author's Address + + + + + + +Quattlebaum Expires September 1, 2017 [Page 73] + + Spinel Protocol (860a3959) February 2017 + + Robert S. Quattlebaum Nest Labs 3400 Hillview Ave. @@ -4085,4 +4118,27 @@ Author's Address -Quattlebaum Expires August 20, 2017 [Page 73] + + + + + + + + + + + + + + + + + + + + + + + +Quattlebaum Expires September 1, 2017 [Page 74]