For CI HIL purposes a reset is needed before running the test
target. The remote board didn't assign a RESET variable to perform
a reset, so it wasn't possible to call `make test` correctly.
By calling the flash script without arguments, a reset is performed.
Due to all the changes, this is basically a new version for this
example. The main benefit is the use of sock_udp but also the client
side is now more robust and reliable.
The parameters required for the PSK and ECC (e.g. keys) modes are moved
to an unique header.
The integration of TinyDTLS for RIOT has been merged into the
development branch of the official repository.
It will be officially available on the master branch in the next
release of tinyDTLS.
Other minor updates:
- Support for the RIOT's memarray
- tinydtls/sha2 is removed from the compilation for giving priority
to RIOT's sha2 functions.
They can define PSEUDOMODULES which is used to populate BASELIBS.
It means they must be processed before using BASELIBS immediate value.
This moved the processing of all `Makefile.include` before using `BASELIBS`.
It is also moved before setting `BASELIBS` in `modules.inc.mk to keep the
order logical (it would work anyway thanks to deferred variables evaluation).
This fixes the problems for `make -C tests/unittests`
Build targets were using the immediate value of '$(BASELIBS)' before it was
actually set. bindist.inc.mk should also be processed before as it is adding
`BIN_USEMODULE` to `USEMODULE`.
This fixes use before define problems for:
* `make -C examples/hello-world`
* `make -C examples/bindist`
Include order for board and cpu was
1. cpu include
2. board include
3. board common includes
4. cpu common includes
Its now changed to:
1. board include
2. board common includes
3. cpu include
4. cpu common includes
Verifications:
There are no common headers names between boards and cpus.
Except native that has a 'periph_conf.h' in cpu instead of being in board.
While the current approach for garbage collection in the 6Lo reassembly
buffer is good for best-effort handling of
*fragmented* packets and nicely RAM saving, it has the problem that
incomplete, huge datagrams can basically DoS a node, if no further
fragmented datagram is received for a while (since the packet buffer is
full and GC is not triggered).
This change adds a asynchronous GC (utilizing the existing
functionality) to the reassembly buffer, so that even if there is no new
fragmented packet received, fragments older than `RBUF_TIMEOUT` will be
removed from the reassembly buffer, freeing up the otherwise wasted
packet buffer space.