Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Openthread upmerge to 4ed44bc #126

Merged
merged 40 commits into from
Dec 7, 2023
Merged

Conversation

canisLupus1313
Copy link
Contributor

No description provided.

zwx1995esp and others added 30 commits November 24, 2023 09:07
Missing a header file included in the file `exit_code.h`, and
'otLogCritPlat' will not be declared. If using the function
`SuccessOrDie` with only inlcude the file
`src/lib/platform/exit_code.h`, it will have a compiling error
`'otLogCritPlat' was not declared in this scope`.
…esses (#9634)

This commit updates `SelectSourceAddress()` to ensure that
non-deprecated addresses are always preferred over deprecated ones.
When iterating over addresses, the best option is tracked in
`bestAddr`. If the new address is not preferred and the currently
selected `bestAddr` is, the new address is skipped to ensure that it
is not picked.
Flag was undefined when TCP is not enabled.
This commit contains smaller enhancements in `MlrManager`:
- Use shorter names for variables and methods
- Avoid the use of normal `enum` name as a namespace
- Use core type `Ip6::Address` instead of `otIp6Address`
…(#9650)

Bumps [step-security/harden-runner](https://github.com/step-security/harden-runner) from 2.6.0 to 2.6.1.
- [Release notes](https://github.com/step-security/harden-runner/releases)
- [Commits](step-security/harden-runner@1b05615...eb238b5)

---
updated-dependencies:
- dependency-name: step-security/harden-runner
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This commit fixes the unused private variable kKeyCalibratedPower
error when OPENTHREAD_CONFIG_PLATFORM_POWER_CALIBRATION_ENABLE isn't
enabled.
Add missing `.GetValue()` for getting values from `TimerMicro`

Add testing with OT_CSL_RECEIVER_LOCAL_TIME_SYNC enabled

Signed-off-by: Maciej Baczmanski <[email protected]>
…ks.py` (#9648)

There was a check `self.assertNotEqual(br1_external_routes,
br2_external_routes)` that verifies the external route entries of BR1
and BR2 are different, based on the fact that their external route
prefixes (in /64) were different. However, today we're using generic
external routes like `fc00::/7` so the external route entries will be
the same when BR1 and BR2 have the same RLOC16.

I updated the test case to verify that the devices have expected
external route entries respectively.
When InfraIf is down and we received a RA from the host interface, we
may trigger the EvaluateRoutingPolicy unexpectly.

This might happen when infra if and uplink are separate interfaces.

This commit fixes this by adding Start and Stop to `PdPrefixManager`
to start / stop handling RA messages.
This commit simplifies the handling of Dataset TLVs that need to be
securely stored when the `PLATFORM_KEY_REFERENCES_ENABLE` feature is
enabled. Two new methods are added to the `Dataset` class:

- `SaveTlvInSecureStorageAndClearValue()` which  saves the value of a
  given TLV type in secure storage and clears the TLV value by
  setting all value bytes to zero.

- `ReadTlvFromSecureStorage()` which reads the TLV value back from
  secure storage and updates it in the `Dataset`.

These methods are used by `DatasetLocal` to manage the set of TLVs
that need to be securely stored defined by a constant array of
`SecurelyStoredTlv` entries. Each entry provides the TLV type
along with the associated `Crypto::Storage::KeyRef` to use for
active or pending Dataset.
A compiling issue occurred (based on gcc 9.4.0) beacuse the
multiplication of different enum types. So it is a good idea to define
the `kUsPerMs` as `constexpr` constants instead of `enum`.
This feature allows the RCP to support multiple host stacks on different PANs
by making use of the spinel Interface ID.

Created unit tests for testing multipan feature with multiple ot-instance
support.

Based on Si-Labs PR #8914 by @parag-silabs, but a little different approach.
Instead of handling everything by a single sub-mac instance, multiple
OpenThread instances are created on RCP side that map to different IID.
Thanks to this there are separate data kept for each interface. Platform
is able to determine interface by ot instance pointer passed as an argument
to most of the API functions.
Tx/scan queue was removed as it is possible to request transmission in
parallel, it is up to the platform to decide if it should fail or queue
second tx or it has two radios available.

NOTE:
Platform needs to provide different otRadioFrame of each instance and
the processing needs to take into account the instance being used.

Signed-off-by: Marek Porwisz <[email protected]>
…ation (#9654)

This commit adds `otBorderRoutingDhcp6PdGetState()` function
declaration in `border_routing.h` which was already implemented in
`border_routing_api.cpp` file.
This commit refactors the code to unify the concept of 'Infrastructure
network interface' (which is for border routing) and 'backbone network
interface' (which is for backbone router). From now on they will both
be referred as 'infrastructure network interface'. In general border
routing and backbone router should be using the same infrastructure
network interface so I made this change.

This commit removes the `posix/platform/backbone.cpp` source file and
put its functionality in `posix/platform/infra_if.cpp`. Previously
`backbone.cpp` maintained its own variables `gBackboneNetifName` and
`gBackboneNetifIndex` which are redundant compared to the ones
maintained at `infra_if.cpp`. I removed these variables and changed
the references to use `otSysGetInfraNetifName` and
`otSysGetInfraNetifIndex` accordingly.
This commit contains smaller change in `bbr_local` module:
- `LogDomainPrefix()` and `LogService()` methods are updated to use
  newly added `Action` enumeration.
- `HandleDomainPrefixUpdate()` is simplfied to pass the event
  directly to `mDomainPrefixCallback`.
- `SetState()` is updated so we we first remove ALOC/multicast
  addresses based on the previous state before adding/updating any
  addresses  based on the new state.
- Some methods/variables are renamed (e.g., use shorter name).
…lv` (#9661)

This commit introduces template methods `ReadValueAs<>()` and
`WriteValueAs<>()` in `Tlv` class for handling simple TLV types
(single value and uint value). These methods are employed to simplify
the handling of `MeshCoP::Tlv` in `Dataset`. Specifically, the
following TLVs are simplified:

- `PanIdTlv`
- `ExtendedPanIdTlv`
- `PskcTlv`
- `NetworkKeyTlv`
- `MeshLocalPrefixTlv`
- `ActiveTimestampTlv`
- `PendingTimestampTlv`
- `DelayTimerTlv`
- `NetworkKeySequenceTlv`
- `JoinerUdpPortTlv`

These enhance the code by reducing repeated boilerplate code for the
these simple TLVs.
…9642)

This commit updates the `AutoAddress` mode in `Srp::Client` to
exclude any deprecated (non-preferred) address when registering
host addresses.

It also updates `test_srp_auto_host_address` to validate the new
behavior.
This commit introduces two new methods, `ContainsTlv()` and its
template variant `Contains<TlvType>()`, in the `Dataset` class. These
methods enable checking whether a specified TLV type exists among the
Dataset's TLVs.
…IT` (#9663)

This commit updates  `unittest` job in `toranj.yml` workflow to
validate `ncp` builds (with `OT_OPERATIONAL_DATASET_AUTO_INIT`
feature enabled).
…a (#9665)

This commit adds a check when returning Link Metrics data collected by
the Link Metrics manager so that only subjects in 'active' or 'renew'
state will return the data. This is to avoid showing N/A results for
neighbors that don't support being a Link Metrics Subject. Based on
current implementation, a 'Subject' object is created when the device
is trying to register a Link Metrics probing at its neighbor. If the
neighbor device doesn't support being a Subject, the device won't get
a LinkMetricsManagement response. During this period (before timeout),
the 'Subject' object is in 'kConfiguring' state. So it's unnecessary
to return any value for Subject in such states.
…ry (#9670)

This commit updates the `test-603-channel-announce-recovery` test to
verify router node channel recovery (following channel change) in
addition to child recovery.
Clang Compilers warns about ignoring return values.

This commit does not change the existing behavior.

Ignoring errors in `processNat64StateChange` should be safe, and we
may work under downgraded experience.

Ignoring errors in `nat64Init` should be safe like the outter if.
This commit adds different flavors of `WriteTlv()` including template
version as `Write<SimpleTlvType>()`. These methods write or update a
TLV in `Dataset`. The new methods replace the previous `SetTlv()`
methods. This new approach introduces type safety checks during
compilation, guaranteeing the use of the correct value type for each
TLV. For instance, `Write<PanIdTlv>()` only accepts `uint16_t` value,
while `Write<NetworkKeyTlv>()` only accepts `NetworkKey` value. This
commit also renames the previous `GetTlv()` to `FindTlv()`.
`CCM` has been replaced with `Ccm` to follow the naming style
conversion for constants and variable names.
abtink and others added 10 commits December 1, 2023 10:14
This commit enhances the SRP client to track registered addresses when
auto host address mode is enabled. A new field `mSrpRegistered` is
added to `Ip6::Netif::UnicastAddress` to track whether the address is
registered by the SRP client.

This optimization ensures that the SRP client only performs
registration when there is a change to the list of addresses that
need to be registered, preventing unnecessary re-registration and
reduces communication overhead, e.g., when a deprecating
non-preferred address which is not registered by SRP client is timed
out and removed.
…674)

This commit introduces `IsValid()` and `SetChannelAndPage()` methods
to `Mle::ChannelTlvValue`, enabling its use as value of
`MeshCoP::ChannelTlv`.
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4.7.0 to 4.7.1.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](actions/setup-python@61a6322...65d7f2d)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Allow out-of-tree compilation of vendor specific changes to the host
side of spinel.  By setting `OT_SPINEL_VENDOR_HOOK_SOURCE_DIR`,
`OT_SPINEL_VENDOR_HOOK_SOURCE` and `OT_SPINEL_VENDOR_HOOK_HEADER`, the
corresponding compile flags
`OPENTHREAD_SPINEL_CONFIG_ENABLE_VENDOR_HOOK` and
`OPENTHREAD_SPINEL_CONFIG_VENDOR_HOOK_HEADER` get set which force the
use of the `VendorRadioSpinel` class instead of the regular
`RadioSpinel` in `src/Posix/platform/radio`.
This commit introduces first implementation of Bluetooth based
comissioning for thread devices.

Co-authored-by: Arnulf Rupp <[email protected]>
Co-authored-by: Piotr Jasinski <[email protected]>
Add error handling to PBKDF2 generate key function.
The PBKDF2 functions may fail and the error should be handled by the
caller of the function.
Remove PSA mbedtls hybrid setup of the PBKDF2 function.
With Mbed TLS 3.5.0 release this function is now supported by PSA
implementation.
…()` (#9672)

When we are switching to another infra netif via
`otBorderRoutingInit()`, we may want to read the state of the new
infra netif via `otSysInfraIfIsRunning()`.
@rlubos rlubos merged commit 4ed44bc into zephyrproject-rtos:main Dec 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.