* Improve ping reliability by making it fully async. Eliminate 5_1_07 from XFAIL list.
* Some non-core changes: readd missing StreamSocket class, improve handling of command.
This commit makes two changes in how the child info is encoded in
the getter of property `THREAD_CHILD_TABLE`. First, the child mode
flags (e.g., `RxOnWhenIdle`) are sent as a single uint8_t bitmask.
Second, the child id is no longer included in the response (as it
can be derived from Rloc16).
This commit refines the documentation of the Spinel NCP protocol. What
was previously a single markdown-based document has now been broken
into multiple files which can be edited independently. These files can
then be compiled into a final document in either XML, HTML, or
plaintext formats. The [`mmark`](https://github.com/miekg/mmark) tool is
used for compiling the source documentation into a single XML file and
[`xml2rfc`](https://xml2rfc.tools.ietf.org/) is used to convert from
the XML to the final desired format.
Note that the building of the protocol documents is handled
independently from the normal OpenThread build. The spinel protocol
document source files are intentionally excluded from the build
system, since there is no value in including them. Copies of the final
compiled documents are included to ensure that they are distributed
with any release archives.
This commit is focused on introducing this new strucutre to the protocol
document. The document itself is a work in progress and may contain
errors or require revisions, hence the `draft-` prefix in the filenames.
This commit is related to issue #492, "☂ Spinel NCP Protocol
Standardization".
* Update default "CACHE_ENTRIES" and "MAX_CHILDREN" to support required minimum children.
* Update Cert_5_1_07_MaxChildCount.py due to maximum children number change.
* ncp: Added spinel-cli and initial travis CI test suite integration.
This PR adds a command line tool, named spinel-cli, that converts ot-cli shell commands (as documented in https://github.com/openthread/openthread/blob/master/src/cli/README.md) to spinel NCP commands (as documented in https://github.com/openthread/openthread/blob/master/src/ncp/PROTOCOL.md).
Also added is a patch to node.py that provides a way to run the existing continuous integration certification test suite against an NCP build rather than a CLI build (by prefacing the command to start the test with the environment variable setting NODE_TYPE=ncp-sim):
cd tests/scripts/thread-cert
NODE_TYPE=ncp-sim top_builddir=../../.. python Cert_5_1_02_ChildAddressTimeout.py
The power of this tool is three fold:
1) As a path to add testing of the NCP in simulation to continuous integration
2) As a path to automated testing of testbeds running NCP firmware on hardware
3) As a simple debugging tool for NCP builds of OpenThread
openthread$ cd tools/spinel-cli/
spinel-cli$ ./spinel-cli.py
Opening pipe to ../../examples/apps/ncp/ot-ncp 1
spinel-cli > help
Available commands (type help <name> for more information):
============================================================
channel extaddr mode route
child extpanid netdataregister router
childtimeout h networkidtimeout routerupgradethreshold
clear help networkname scan
contextreusedelay history panid state
counter ifconfig ping thread
debug ipaddr prefix v
debug-term keysequence q version
eidcache leaderdata quit whitelist
enabled leaderweight releaserouterid
exit masterkey rloc16
spinel-cli > version
OPENTHREAD/gd4d4e9d-dirty; Aug 11 2016 14:40:44
Done
spinel-cli > thread start
Done
spinel-cli > state
leader
Done
spinel-cli >
The tool provides three ways to connect to an NCP image:
1) pipe to stdin/stdout of a command line tool (default): -p ./ot-ncp
2) serial connection to a hardware device: -u /dev/ttyUSB0
3) socket connection to the port of a helper tool such as ncp-spi-driver: -s 1234
spinel-cli$ ./spinel-cli.py --help
Options:
-h, --help show this help message and exit
-u UART, --uart=UART
-p PIPE, --pipe=PIPE
-s SOCKET, --socket=SOCKET
-n NODEID, --nodeid=NODEID
-q, --quiet
-v, --verbose
* update poll data period to 15s to keep consistent with other vendors.
* fix return value of isOpenThreadRunning().
* set ROUTER_UPGRADE_THRESHOLD to 32 for Leader/Router to support maximum active routers in network.
* do not send server data ntf proactively if prefx configured before starting openthread stack.