This moves all settings of timeout to one place. Also changes the
default timeout to 10 seconds, can probably solve the occasional
timeout when dataset commit active.
This commit ignores unknown TLVs when parsing a message and continues
to parse the rest parts of the message.
An unknown TLV can cause the simulator to drop the whole packet, which
could lead to packet parsing issues. For example, if a Child ID
Response message is dropped, the dissector will fail to add the Short
Address and Extended Address to the Device Descriptors, causing
subsequent secure packets unable to be decrypted.
This commit tries to reduce expects fails in GitHub actions:
- wait_for only sends command when it's not empty
- increases the default expect timeout from 1s to 3s.
This makes expect run all cli-*.exp and posix-*.exp tests in RCP mode.
New scripts should use the function spawn_node in _common.exp to spawn
new processes. This is compatible with both simulation mode and RCP
mode.
According to PEP8, constants should be written in all capital letters.
This commit capitalizes these constants:
- thread_cert.TestCase.topology
- thread_cert.TestCase.support_ncp
This puts the scripts setting up Thread networks into separate files
so that they can be reused by multiple test scripts. After this we can
split the tests in cli-2-nodes.exp into multiple files without having
to repeat codes in each file.
This adds expect tests for testing the pcap receiving function of
promiscuous mode. Also makes otLinkSetPromiscuous be called before
otLinkSetPcapCallback so that the callback won't be set when
promiscuous mode fails to start.
In Thread 1.2, it is possible to receive an IEEE 802.15.4-2015
packet. Per specification, receiver should acknowledge this packet
with an IEEE 802.15.4-2015 ACK(Enh-ACK). This Enh-ACK can include
header IE with it and requires security enabled bit in FCF be set to
true. It is impractical for the host to generate the Enh-ACK and send
to RCP for transmission within AIFS time(192us). So RCP should prepare
the Enh-ACK by itself, which requires it to fill in the frame counter
and do the encryption/authentication.
This commit tries to address the need of filling auxiliary frame
counter in RCP by including the following changes:
- Move frame counter related functions from MAC layer to SubMac layer,
which is mirrored in RCP.
- Set mMacFrameCounter to RCP using newly added spinel properties.
- RCP reports last used frame counter to host in TxDone and RxDone.
- Add a simulation test for reset verification.
This adds test cases for child command. Also moves ping tests with 2
nodes to cli-2-nodes.exp, future tests requiring 2 nodes will be
placed in this file.
This commit fixes the problem that `whitelist` is not enabled in
commissioning test cases which results in false pass of `Cert_8_2_01`
and `Cert_8_2_02`.
Without this commit, `Cert_8_2_01` and `Cert_8_2_02` will fail if we
turn on `whitelist`, because we now use random extaddress for
discovery requests.
This commit introduces a few enhancements:
- In NCP architecture forward the IPv6 fragments instead of the full
reassembled IPv6 packet (which in the default configuration can't be
forwarder due to SPINEL limitations). Without this fix the
fragmentation does not work if Thread device wants to send more than
MTU data through the Border Router (to the IPv6 address of NCP).
- Use OPENTHREAD_CONFIG_IP6_MAX_ASSEMBLED_DATAGRAM only for the
receiving path. For transmitting path, relay on the message buffers
pool. This is especially important for some of the use-cases we
have, and also reduce a need for regenerating OpenThread libraries.
- In case receiving IPv6 packet is bigger than supported
OPENTHREAD_CONFIG_IP6_MAX_ASSEMBLED_DATAGRAM, exit before trying to
allocate the next message buffer.
This commit fixes key_id_mode handling and added exception handling
when key_id_mode is 0.
According to IEEE Std 802.15.4-2015, when Key Id Mode is 0x00:
Key is determined implicitly from the originator and recipient(s)
of the frame, as indicated in the frame header.
Our test scripts cannot handle such packets. If we leave key_id_mode =
0 case unhandled, we would get some exceptions that may cause
developers to think that something is wrong. However dropping packets
in this case is a normal behavior.
This commit adds a max power table for POSIX platform, which can
customize the max allowed transmit power of each channel with the
command line argument --max-power-table.
This commit includes
[Y] add `OPENTHREAD_CONFIG_DUA_ENABLE` option for DUA feature
[Y] generate DUA via SLAAC
[Y] update test script to verify communication via DUA
- Update all test cases to inherit thread_cert.TestCase and update
topologies accordingly. The topologies should all be correct because
they are automatically generated, not hand written.
- Use default Thread version: 1.1
- Cleanup node tmp files in tmp directory according to the current
PORT_OFFSET in setUp. This is required by
test_reed_address_solicit_rejected.py and test_coap_observe.py since
they define multiple test functions in one TestCase.
- Removed call to set_extaddr64 because it's not necessary and causing
failures.
Currently, a REED which expects to become Router soon does not send
any SVR_DATA.ntf. This commit handles rejecting ADDR_SOL.rsp to allow
REED to send SVR_DATA.ntf after it is rejected.