forked from openthread/openthread
-
Notifications
You must be signed in to change notification settings - Fork 0
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
Test2cancel #17
Open
bukepo
wants to merge
94
commits into
main
Choose a base branch
from
test2cancel
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Test2cancel #17
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…e it to netdata (openthread#7619) This commit fetches the NAT64 prefix on infrastructure interface and advertise it to Network Data at medium preference. - Use `getaddrinfo_a()` function to asynchronously lookup the ipv6 address of the special domain `ipv4only.arpa`. The infrastructure NAT64 prefix is extracted from the domain answer. - `mInfraIfNat64PrefixStaleTimer` is scheduled to monitor the presence and change of infrastructure NAT64 prefix. - `EvaluateNat64Prefix` evaluates whether to advertise the infrastructure prefix or the local ULA prefix or neither. When there is a new infrastructure prefix, it will withdraw the legacy one and add the new one. When the infrastructure prefix no longer exists, it will withdraw the legacy one and add the local ULA prefix. When the infrastructure prefix presents again, it will add the infrastructure prefix and withdraw the local ULA prefix. New tests are added to test the scenarios when infrastructure NAT64 prefix exists. `DNS64` on OTBR is turned on to enable `bind9` with NAT64 prefix on infrastructure interface for these tests. `bind9` is explicitly turned off when testing local ULA prefix. Since bind9 is conflict with other components like dnssd, all nat64 tests are moved under /nat64 directory and configured separately. The case that two or more BRs have same infrastructure NAT64 prefix is not covered by this commit and will be followed up later.
…ad#7977) - Updated the following deprecated APIs with their respective alternatives - `mbedtls_ssl_conf_min_version` => `mbedtls_ssl_conf_min_tls_version` - `mbedtls_ssl_conf_max_version` => `mbedtls_ssl_conf_min_tls_version` - `mbedtls_ssl_conf_sig_hashes` => `mbedtls_ssl_conf_sig_algs` - Updated the parameter data-type for `mbedtls_ssl_conf_sig_algs` (list of allowed signature algorithms) from `int` to `uint16_t` - Added macros for backward compatibility
…thread#8017) This commit adds generic helper functions: - `Min()` to get the minimum of two values, - `Max()` to get the maximum of two values, and - `Clamp()` to clamp a value to a given closed range from a minimum up to a maximum value. It also adds functions - `ClampToUint8()` and `ClampToUint16()` to clamp a `uint` value to a smaller bit-size (`uint8_t` or `uint16_t`) range.
…ad#8013) This commit adds a new struct `RaInfo` in `RoutingManager` which tracks info about emitted RA messages: Number of RAs sent, last tx time, header to use and whether the header is discovered from receiving RAs from the host itself. This helps encapsulate all related info in one data structure.
…penthread#8016) This commit updates `IsValidOmrPrefix()` to accept any ULA/GUA prefix with 64-bit length as OMR prefix.
This commit moves the code for getting the parent info from the `thread_api.cpp` to `Mle` class `GetParentInfo()` method. It also updates the `Router::Info::SetFrom()` to populate the `mVersion` and the newly added CSL related fields. This allows us to re-use the same code for both router or parent info.
This commit adds `otThreadSearchForBetterParent()` to start the process on a child to search for a better parent while staying attached to its current parent. This commit also adds a related CLI command `parent search`.
Some mDNS implementations do not respond to mDNS queries sent by `dig`.
…ead#7982) This commit increase the routing policy evaluation jitter from 1 second to 2~4 seconds to avoid adding on-link prefix when the AIL GUA prefix is unavailable for a very short duration (usually during GUA prefix renewing).
After BBR restarting, in order to receive the packets from multicast group, the devices, which have registered multicast group addresses to that BBR, needs to re-register these groups. In current logic, the default max reregistration delay is too large (1200 seconds).
…8021) This commit updates `Slaac` module to only allow prefixes with 64-bit length.
This commit adds `Mle::ParentSearch` class which encapsulates all definitions (variables, constants, and methods) related to "Parent Search" feature.
…hread#8023) This commit adds a smaller enhancement in `Ip6::HandlePayload()`. If support for TCP `OPENTHREAD_CONFIG_TCP_ENABLE` is not enabled, we exit early from this method before potentially creating a clone of the message (to free later).
…openthread#8027) This commit adds `thread/version.hpp` which defile Thread Version constants. It also changes the `mVersion` in `Neighbor` class to use `uint16_t` to track the version. This help harmonize it with the MLE Version TLV and and version in `Settings`. Due to memory alignment of existing member variables the change (from `u8` to `u16`) does not increase the memory requirement for child or router table.
The CSL accuracy is represented as two parameters: clock accuracy in ppm, and uncertainty in units of 10 microseconds. These two parameters are often used together. This commit adds a new class `CslAccuracy` encapsulating both. This new type is used in `Mac` and `Mle` methods allowing us to pass both in one object. This commit also adds `Mle::RxMessage::ReadCslClockAccuracyTlv()` to read and parse the CSL Accuracy TLV value from a given received MLE message.
This commit updates `LinkMetrics::AppendReport()` to ensure the `values.mPduCountValue` (which is a `uint32_t`) is stored in the host MCU encoding and not in big-endian encoding. This was originally added in openthread#7046 as a fix (basically saving the value in local variable in the encoding we expect to later include in the Report TLV), however openthread#8006 updates the `ReportSubTlv` methods to do the encoding change in the `Get/SetMetricsValue32()` (similar to other OT `Tlv` definitions).
…read#8035) This commit updates `Ip6::HandleExtensionHeaders()` removing `aIsOutbound` input and instead using `(aNetif == nullptr)` to determine this.
…enthread#8035) This commit updates `Ip6::HandleDatagram()` and removes the local `netif` variable and directly uses `ThreadNetif` instead. Note that the input parameter `aNetif` is either `nullptr` or points to `ThreadNetif`, and in both cases the local variable `netif` will be set to point to `ThreadNetif`.
…thread#8032) This commit updates `RouterTable::Allocate()` to use Reservoir sampling algorithm to randomly select a router ID while iterating through the list of available IDs.
This commit adds `Parent` class as a sub-class of `Router` and moves the CSL accuracy definitions in `Parent` class (from `Router`) since we need to track CSL info only for the parent and not other entries in the router table. This helps reduce the memory/RAM used by router table.
…nthread#8031) This commit harmonizes and simplifies the code related to asserting that the OT API pointer parameters are valid and not `nullptr`. `OPENTHREAD_CONFIG_ASSERT_CHECK_API_POINTER_PARAM_FOR_NULL` is added which when used performs assert check on all pointer inputs to APIs. This is either done within `AsCoreType()` when the pointer is converted to its related core type, or by a direct call to newly added macro `AssertPointerIsNotNull()`. Since enabling assert checks on every API parameter can increase code size, this config is disabled by default and it is recommended to use it during debugging only.
…rce address (openthread#8025) According to Thread Spec, PBBR should not forward a multicast packet from Thread interface to Backbone interface when the source address is Mesh-Local.
…d#7836) This commit: - implements the core logic for translating packets for NAT64, including the public APIs exposed to platform daemons. - includes changes for POSIX platform, use `OT_POSIX_NAT64_CIDR`, `OPENTHREAD_POSIX_CONFIG_NAT64_CIDR` for setting the CIDR for NAT64 during build time. - exposes `otNat64Send(otInstance *aInstance, otMessage *aMessage)` and `void otNat64SetReceiveIp4Callback(otInstance *aInstance, otNat64ReceiveIp4Callback aCallback, void *aContext)`.
…ead#8036) This commit adds a new enum `Ip6::MessageOrigin` which indicates the origin of the message: From Thread Netif or from host. In case the message is originating from host, it also indicates whether or not it is allowed to pass back the message to the host.
…read#8014) This commit updates the `RoutingManager` to allow domain prefix from Network Data to also be considered during OMR selection. In particular: - `IsValidOmrPrefix(config)` now accepts prefixes with `mDp` flag. - `OmrPrefix` now tracks whether the prefix is domain prefix. - When appending RIO in RA message, the domain prefix is always excluded (independent of whether or not it is the current favored OMR prefix). This commit also updates the `test_routing_manager` unit test to add a test case checking behavior of `RoutingManager` when a domain prefix is selected as the favored OMR.
…thread#8043) This commit addresses integer conversion warnings in `LinkMetrics`. In particular it updates `ReadTypeIdFlagsFromMessage()` to use `uint16_t` as offset value (instead of `uint8_t`).
This commit changes the definitions (member variables, constants, and methods) related to graceful detach mechanism to be `private` instead of `protected` since they are only accessed/used by the `Mle` and not by its sub-class `MleRouter`.
This commit harmonizes the constant used to indicate an "Invalid RSSI value". It defines `Radio::kInvalidRssi` which is then used in all core modules replacing `OT_RADIO_INVALID_RSSI` and similar constants in `SubMac/Mac`.
…#8100) This commit renames the method from `ReadTlv()` to `ReadTlvValue()` to emphasize that it read the TLV value only (unlike `FindTlv()` helper methods which find and read the whole TLV).
…thread#8047) We decided to rename BORDER_ROUTING_NAT64 to NAT64_BORDER_ROUTING so the flag won't be confusing since we have NAT64_TRANSLATOR which does not depends on the border routing manager.
This commit imports `Crypto` module only when it's used. This helps thread-cert tests that do not use message factory to run without having to install `Crypto` module.
…ead#8105) This commit updates `Mle::DetachGracefully()` to stop Border Router `RoutingManager`. This ensures that BR will have the chance to send a final Router Advertisement message desecrating/removing its previously advertised on-link or route prefixes.
…thread#8108) This commit updates CLI `linkmetrics query` command to allow it to be used in blocking mode (wait for response to query). This is then used in different tests to validate the `LinkMetrics` module behavior. In particular, `v1_2_test_single_probe` and `v1_2_LowPower_7_2_01_ForwardTrackingSeries` are updated to validate that the received query report message is correctly parsed.
This commit renames the variable representing the NAT64 prefix which is published in Network Data to `mPublishedNat64Prefix`.
…penthread#8111) This commit updates `DiscoverScanner` so when scan operation is finished it uses a `Tasklet` to clear the state and invoke the callback. This allows users to safely call OT APIs from the callback.
…#8115) This commit adds a new method `ScheduleRoutingPolicyEvaluation()` in `RoutingManager` which combines the logic from different related methods. This helps simplify the code. The new method accept an enum `SchduleMode` input which indicates the rule to use when determining the next policy evaluation time, e.g., schedule it immediately, or after a random delay, or after short random jitter time to reply to a received RS, etc.
This commit updates `SeriesFlags` definition to map to the public `otLinkMetricsSeriesFlags` struct and adds helper methods to convert to or set it from a `uint8_t` flags bitmask which is read or written in the TLVs.
…ead#8125) This commit updates `otSrpClientEnableAutoStartMode` documentation to describe how the preferred server is determined from Network Data entries (different Network Data entry categories, their order of preference, and how to handle when there are multiple options within the same category).
…ead#8131) This commit updates the `Srp::Server` to log the processed info in a received SRP Update message, such as host name, lease times, host addresses, all services (and sub-types) being added or removed. The info is logged before invoking the "update handler" and/or committing the info into existing data. This change can help with debugging issues.
This commit adds multiple-version support, and uses a unified configuration file to specify all the parameters.
Make sure `otTcpStopListening` is verified.
This commit adds `RsSender` class in `RoutingManager` which contains the logic related to the transmission of Router Solicitation (RS) messages to discover other routers. This class encapsulates all variables, constants, and methods related to the RS transmission mechanism(number of RS messages in a cycle, time intervals, etc).
…hange (openthread#8112) This commit updates `RoutingManager` to deprecate a previously advertised local on-link prefix when extended PAN ID gets changed. The local on-link prefix is derived from Thread network extended PAN ID. On extended PAN ID change, we continue to include the the old prefix (if it was being advertised) in the emitted RAs as PIO (with zero preferred lifetime) and continue to publish it in Network Data up to its lifetime. This ensures that any device on infrastructure link side that may be using an IPv6 address based on this old prefix can continue to communicate with the Thread mesh devices. This commit also adds a test-case in `test_routing_manager` to validate the behavior of the newly added mechanism when ext PAN ID changes while the local on-link is being advertised and also while it was being deprecated.
This ensures that `OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE` is defined in `config/srp_client.h` and can be safely used for defining `OPENTHREAD_CONFIG_SRP_CLIENT_BUFFERS_MAX_HOST_ADDRESSES`.
This commit introduces `nat64` command and 4 new subcommands (`configuredcidr`, `configuredprefix`, `mappings`, `counters`) nat64 cidr -- Get the configured CIDR for NAT64 translator. nat64 mappings -- Get the mappings of NAT64 translator. nat64 counters -- Get the packet counters and error counters of NAT64 translator. This commit also introduces related API for the above commands, and `otIp4AddressToString` & `otIp4CidrToString` for the CLI to format the IPv4 address and CIDR.
Also remove autotools build checks.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.