Commit Graph

110 Commits

Author SHA1 Message Date
Simon Lin 04a6a9b925 [scripts] add 1.2 build test without additional features (#5425) 2020-08-24 11:26:41 -07:00
Simon Lin c73320ff3e [mlr] add MulticastListenersTable on BBR (#5292)
This commit adds the Multicast Listener Table for BBR:

- Implements Multicast Listener Table on BBR
  - Adds registered MAs to MulticastListenerTable
  - Reject when the table is full or the multicast address is invalid
    and return failed status
  - Respond with unsuccessful status along with failed addresses
  - Expire Listeners from MulticastListenerTable per second (using
    MinHeap for better performance)
- MLR enhancement
  - Re-register only failed multicast addresses (used to register all
    registering multicast addresses)
- Reference Device only APIs
  - Some APIs are defined for reference devices and tests.
- Add tests
  - Add unit test: test_multicast_listener_table.cpp (runs for 1.2-bbr
    only)
  - Add functional tests
2020-08-21 08:40:58 -07:00
Yakun Xu d6fb9de9f3 [cmake] support setting log level (#5433) 2020-08-20 10:37:54 -07:00
Jiacheng Guo 00d88427d3 [cmake] allow set extension sources in cmake (#5419) 2020-08-20 10:11:23 -07:00
Moandor e865281ddc [github-action] fix coverage uploading for expects (#5423)
This commit changes the coverage data uploading for expects job so
that it only uploads data for one build at a time, to make coverage
more stable.
2020-08-19 08:47:29 -07:00
Li Cao 7db8c6815c [low-power] add csl feature for Thread 1.2 (#4557)
This commit implements the CSL feature in Thread 1.2.

- Add macro definitions for low power to control the compiling of
  source code.

- Add data and methods for running CSL in Mac and SubMac. This mainly
  includes setting CSL parameters, starting/stopping CSL, and the
  timer handling process.

- Add otPlatTimeGetAPI and implementation.

- Add CSL transmission implementation. CSL transmission is a new kind
  of transmission, the related definition and implementaion for the
  whole transmitting process is added.

- Add calling of start/stop CSL in certain cases.

- Implement CSL synchronization maintainence. If a CSL cordinator
  didn't get a frame containing CSL IE for CSLTimeout, the CSL
  receiver is regarded as de-synchronized.

- Add Cli interface for using CSL.

- Implement enhanced Ack with IE. The original code can only generate
  auto ack for Imm-Ack. As CSL requires CSL IE included in enhanced
  ack. This PR implements it.

- Add basic functional test for CSL transmission. More tests
  corresponding to test plan would be added later.
2020-08-18 10:55:33 -07:00
kangping 0e11f8bd9b [posix] fix typo in error handling on macOS (#5394) 2020-08-15 16:46:10 -07:00
Simon Lin d7a025cb91 [pretty] shfmt only git files (#5395) 2020-08-14 22:17:45 -07:00
Yakun Xu 8370395c47 [cli] remove multiple servers support (#5387) 2020-08-14 22:15:32 -07:00
Michael Spang a24737a2ad [build] update GN build file for OpenThread (#5358)
Add the CLI & configuration to the build file.
2020-08-12 10:27:52 -07:00
Li Cao 7dc3b2696a [github-action] change the way to upload coverage report (#5375) 2020-08-11 21:30:47 -07:00
Yakun Xu 644e0a30f7 [test] only check include/openthread for API version (#5370) 2020-08-11 10:18:25 -07:00
Simon Lin d7343c877b [style] change python yapf column_limit to 119 (#5339) 2020-08-06 21:40:24 -07:00
Simon Lin 36926a610a [tests] add build test for OT_ASSERT=OFF (#5333)
This commit adds a build test without OT_ASSERT to catch compile issues.
- Add cmake option: OT_ASSERT=ON
- Add build test with OT_ASSERT=OFF
- Fixes 2 compile errors.
2020-08-05 21:29:28 -07:00
Rongli Sun 82e7e32bb5 [dua] dua registration and re-registration (#5276)
- registration workflow framework
- registration and reregistration
- registration and reregistration on behalf of children
- add pseudo response status for test/certification purpose
- add unit test
2020-07-30 14:10:22 -07:00
Simon Lin 00f3043a06 [mlr] send MLR.req for local multicast addresses (#5248)
This commit includes:

- Adding compile configurations necessary for MLR features
- Adding source/header files necessary for MLR features
- Send MLR.req for local MAs on ThreadNetif
  - At most one MLR.req is outstanding
  - Reregistration according to PBBR configuration
  - Renewing periods according to PBBR configuration
- BBRs receive MLR.req with minimal processing and send MLR.rsp
- Add a test to verify that MLR.req is sent for local MAs.
2020-07-22 08:38:05 -07:00
Yakun Xu 4886b53b5c [github-action] remove unused apt source lists (#5237)
These sources break easily, removing them so that apt-get update
doesn't fail.
2020-07-15 10:48:23 -07:00
Yakun Xu bd3332810a [script] use real time when run expect tests (#5130) 2020-07-15 10:47:29 -07:00
Yakun Xu 36533b01e1 [script] fix unbound variable in macOS (#5210) 2020-07-08 10:44:44 -07:00
Moandor d164146010 [test] print debug info when expect tests fail (#5181)
This stores debug logs from expect and prints them if a test fails to
enable easier debugging.
2020-07-03 09:29:54 -07:00
Moandor 68e66bc633 [continuous-integration] add SPI build check (#5165)
Enables NCP SPI in build checks. Also fixes some build errors in SPI code.
2020-06-30 22:52:31 -07:00
Jonathan Hui 6930dd3603 [bootstrap] update bootstrap user messages (#5161)
- Indicate that pretty tools are primarily used for code contributions.

- Change to bash.
2020-06-30 08:47:01 -07:00
Moandor 5acad30791 [test] include CLI tests in RCP mode (#5159)
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.
2020-06-30 08:40:46 -07:00
Yakun Xu bd078f1b30 [test] fix multiple extra options (#5158) 2020-06-29 09:04:01 -07:00
Yakun Xu 8248c3d9df [posix] use real time signal for microsecond timer (#5122) 2020-06-19 16:12:55 -07:00
Simon Lin a3860d6036 [size-report] retry multiple times (#5111) 2020-06-18 14:48:25 -07:00
Simon Lin 9488d4bc48 [settings] fix DUA logging (#5095) 2020-06-15 21:29:50 -07:00
Jeff Bumgardner 79c564fc6e [docs] add English source for the Thread Primer (#5088) 2020-06-15 11:41:55 -07:00
Marvin ROGER 8856ce132d [bootstrap] add missing newlib on Ubuntu >= 20.04 (#5100) 2020-06-15 11:15:30 -07:00
Simon Lin 9aadfd0cdf [script] install shellcheck in bootstrap (#5067) 2020-06-11 18:26:18 -07:00
Yakun Xu 82053cc9db [tests] add dns client tests (#5049) 2020-06-04 13:24:43 -07:00
Yaoxing Shan f0d07ae6d3 [bootstrap] remove PPA on Ubuntu 20.04 and later (#5009) 2020-06-02 21:17:15 -07:00
Yakun Xu aa19e77ac7 [continuous-integration] add version number check (#5034) 2020-06-02 13:37:42 -07:00
Yakun Xu ba0b896b20 [continuous-integration] use apt-get instead of apt (#5032)
This commit changes apt to apt-get for the WARNING in build logs:

WARNING: apt does not have a stable CLI interface. Use with caution in
scripts.
2020-06-01 17:03:33 -07:00
Yakun Xu f8f75d6d05 [posix] clean up for radio url (#5027)
* fix max-power-table documentation
* rename `baudrate` to `uart-baudrate`, `arg` to `forkpty-arg`
* update command line enumeration
* update README
* remove trailing argument from node.py
2020-06-01 08:13:46 -07:00
Jiacheng Guo 115616c6bf [posix] add radio url (#4935)
Radio url provides a unified interface for users to specify the radio
peripheral device and arguments to the OpenThread core stack.
2020-05-29 17:34:29 -07:00
Rongli Sun 46305be082 [script] echo RADIO_PTY properly (#5023) 2020-05-29 10:40:00 -07:00
Zhanglong Xia c5aff31327 [cmake] add a cmake build script to build OpenThread (#4969)
This commit adds a bash script to compile the platform that supports
cmake.

Usage examples:
    ./script/cmake-build cc1352
    ./script/cmake-build posix -DOT_MAC_FILTER=ON
2020-05-29 08:33:50 -07:00
Yakun Xu 5e65833d72 [ot-ctl] fix reset in non-interactive mode (#5011)
* set close on exec
* explicitly close socket on reset
* enhance ot-ctl to exit on peer close
* added test for the change
2020-05-28 10:31:16 -07:00
Yakun Xu 50cfda10b1 [script] install shfmt (#4989)
This commit installs shfmt in script/bootstrap.
2020-05-27 16:12:22 -07:00
rob-the-dude 657b4cb291 [cli] add command for getting the network interface name and index (#4985)
* add a CLI command for getting the network interface name and index

On some platform (mostly BSDs), we do not have the option to specify
the tunnel name, although most of those platforms do have a way to dynamically
obtain a unique interface name if desired.  Add a CLI command -- only enabled
on platforms that have PLATFORM_NETIF enabled -- that will return the
name of the tunnel interface, as well as it's index.  Both are useful in doing
automated tests on non-Linux systems.

* remove OPENTHREAD_CONFIG_PLATFORM_NETIF_ENABLE from the "check" scripts

This option really only applies to the POSIX "management" applications
(ot-daemon, ot-ctl), and not to the core radio or simulation component
builds (ot-cli, etc).

My other change adds a command ("netif") that is only useful when the
netif code is enabled, and that only happens when the netif code is linked,
which is only in those "management" utilities.  Turning this setting off
allows the tests to pass, with no impact to the functionality previously
tested.  But if this setting remains on, then my new code creates a
dependency that cannot be resolved outside the management applications.
2020-05-21 21:58:29 -07:00
Simon Lin bdfafb437e [github-actions] add test to verify OTNS works (#4847) 2020-05-20 20:34:19 -07:00
Moandor 93c55f5837 [continuous-integration] remove git clean in scripts (#4988)
This removes the use of `git clean` in scripts to prevent accidental
loss of work.
2020-05-20 17:55:50 -07:00
Jonathan Hui dd0fa0d34c [shell] resolve shellcheck warnings (#4966) 2020-05-19 13:04:42 -07:00
Jonathan Hui cb9b353fb3 [scripts] apply shfmt changes (#4966) 2020-05-19 13:04:42 -07:00
Jonathan Hui 916023b6e7 [pretty] add support for shell (#4966) 2020-05-19 13:04:42 -07:00
Jonathan Hui 132ba9d3fb [continuous-integration] add build checks for jn5189 and k32w061 (#4968) 2020-05-18 09:36:00 -07:00
Jintao Lin 2afbc59293 [mac] put transmission AES-CCM* to SubMac layer (#4919)
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 transmission security/authentication by including the
following changes,

- Move Key ID mode 1 AES-CCM* related functions from MAC layer to
  SubMac layer, which is mirrored in RCP.

- Distribute the MAC key and MAC key ID to RCP in posix app using
  newly added spinel properties.

- Make it possible for radio(either in radio driver or hardware) to do
  transmission AES-CCM* if the platform supports by adding radio
  capability OT_RADIO_CAPS_TRANSMIT_SEC.

- Enable this for RCP mode on simulation platform.
2020-05-13 10:15:39 -07:00
Li Cao cd9558ca91 [mac-frame] add util functions to generate ack (#4884)
This commit adds mac frame util functions to generate acks (both Imm
and Enh acks) from a received frame. These funtions are utils APIs for
platforms which don't provide ack generation.

This commit also introduces compile options for CSL to control the CSL
IE related part.
2020-05-12 22:20:03 -07:00
Moandor b4a5df49e6 [continuous-integration] enable most features on build check (#4946) 2020-05-11 16:45:38 -07:00