-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
[routing-manager] learn and copy M
& O
flags from discovered routers
#9607
Merged
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
23 tasks
Size Report of OpenThread
|
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## main #9607 +/- ##
==========================================
+ Coverage 85.76% 85.82% +0.05%
==========================================
Files 559 555 -4
Lines 74082 73496 -586
==========================================
- Hits 63538 63075 -463
+ Misses 10544 10421 -123
|
cb526f4
to
651ffcd
Compare
jwhui
reviewed
Nov 20, 2023
This commit implements a mechanism in `RoutingManager` to learn the Managed Address Config `M` and Other Config `O` flags in received RA message from discovered routers on the infrastructure link and copy the same flags in the emitted RA message from BR. If any discovered router on the infrastructure that is not itself a stub router (i.e., does not include the Stub Router flag) includes the `M` or `O` flags, the same flag are included in the emitted RA message. If a discovered router has failed to respond to the maximum number of NS probe attempts, we consider it as offline and ignore its flags. This commit also adds a detailed test case in `test_routing_manager` to validate the newly added mechanism.
f5f89d4
to
72bcfc1
Compare
jwhui
approved these changes
Nov 21, 2023
wgtdkp
pushed a commit
to wgtdkp/openthread
that referenced
this pull request
Jan 16, 2024
* github/main: [meshcop-tlvs] update name style in `DiscoveryResponseTlv` (openthread#9671) [dataset] introduce `WriteTlv()` methods (openthread#9664) [posix] fix a few compiler warnings around nat64 (openthread#9666) [test] update `channel-announce-recovery` test to check router recovery (openthread#9670) [link-metrics] add Subject status check when getting link metrics data (openthread#9665) [github-actions] cover NCP build with `OT_OPERATIONAL_DATASET_AUTO_INIT` (openthread#9663) [dataset] introduce `ContainsTlv()` method (openthread#9663) [srp-client] exclude non-preferred addresses in `AutoAddress` mode (openthread#9642) [tlvs] add `ReadValueAs()` & `WriteValueAs()` to simplify `MeshCop::Tlv` (openthread#9661) [bbr-local] smaller enhancements (openthread#9657) [spinel] fix multipan rcp enable config (openthread#9659) [cli] add Doxygen for SRP server (openthread#9653) [posix] unify the infra netif and backbone netif (openthread#9638) [border-router] add missing `otBorderRoutingDhcp6PdGetState()` declaration (openthread#9654) [dataset-updater] fix possible use of uninitialized `Timestamp` (openthread#9658) [spinel] add support for multiple spinel interfaces (openthread#9360) [spinel] fix compiling issue of enum multiplication (openthread#9649) [dataset] simplify saving/reading of TLVs in/from secure storage (openthread#9626) [dhcp6-pd] stop `PrefixManager` when `RoutingManager` is stopped (openthread#9608) [tests] fix the check of external routes in `test_multi_thread_networks.py` (openthread#9648) [csl] fix `TimerMicro::GetNow()` call in `sub_mac.cpp` (openthread#9639) [posix] fix unused private variables (openthread#9644) github-actions: bump step-security/harden-runner from 2.6.0 to 2.6.1 (openthread#9650) [mlr] use shorter variable/method names (openthread#9635) [config] define `OPENTHREAD_CONFIG_TLS_UPDATE` in all cases (openthread#9630) [ip6] update Ip6::SelectSourceAddress() to prefer non-deprecated addresses (openthread#9634) [mlr-manager] define `AddressArray` which uses `Array<Ip6::Address>` (openthread#9633) [typo] fix error message of link metrics option dependency (openthread#9646) [platform] fix compiling issue when use `SuccessOrDie` (openthread#9640) [continuous-integration] fix bootstrap issue for ot-commissioner (openthread#9643) [docs] update Code of Conduct to Contributor Covenant v2.1 (openthread#9627) [spinel] expose RestoreProperties as a public method within RadioSpinel (openthread#9501) [cli] make linkmetrics cli as a separate module (openthread#9619) [message] add API functions to enable multicast looping of a message (openthread#9524) [simulation] SIGHUP when parent dies (openthread#9624) [routing-manager] learn and copy `M` & `O` flags from discovered routers (openthread#9607) [cli] add Doxygen tags to SRP commands (openthread#9615) [lint] explicitly initialize failedAddresses (openthread#9622) [routing-manager] new API to get list of discovered routers (openthread#9601) [posix] clear SPI tx buffer after usage (openthread#9567) github-actions: bump actions/upload-artifact from 3.1.2 to 3.1.3 (openthread#9625) [encoding] avoid the use of `using` for `Big/LittleEndian` functions (openthread#9621) [num-limits] add `kBitsPerByte`, `BitSizeOf()`, and `BytesForBitSize()` (openthread#9618) [core] add missing platform function for `OT_PLATFORM_KEY_REF` (openthread#9620) [dns] support longer key length in `otDnsTxtEntryIterator` (openthread#9616) [test] define all unit tests in `ot` namespace (openthread#9617) [joiner-router] enhance & fix appending TLVs to Joiner Entrust msg (openthread#9614) [posix] more robust netlink message handler (openthread#9613) [mle] add `ChannelTlvValue` to use in `ChannelTlv` & `CslChannelTlv` (openthread#9612) [cli] remove extra line in `trel peers` docs in `README.md` (openthread#9611) [mle] remove `MleRouter` class definition under `MTD` build (openthread#9610) [mle] fix responding to "Child Update Request" from non-parent device (openthread#9609) [cli] adding set ipv4 CIDR for NAT64 in README (openthread#9511) [test] ensure to `FinalizeTest()` in `TestProcessPlatfromGeneratedNd()` (openthread#9606) [radio] add `OT_RADIO_CAPS_RX_ON_WHEN_IDLE` capability (openthread#9554) (openthread#9554) [mle] define `IsRouterIdValid()` helper in `mle_types.hpp` (openthread#9598) github-actions: bump docker/setup-buildx-action from 2.9.1 to 3.0.0 (openthread#9600) [test] address occasional failure of `test_routing_manager` (openthread#9603) [toranj] update config header to use `OT_LOG_LEVEL_INFO` (openthread#9595) [routing-manager] check `mIsRunning` in `ScheduleRoutingPolicyEvaluation()` (openthread#9594) [multi-radio] perform tag duplication check for first fragment (openthread#9590) [routing-manager] use `Heap::Array` for `OnMeshPrefixArray` (openthread#9592) [cli] TCP readme corrections (openthread#9593) [posix] allow OT process to run when infra netif gets lost (openthread#9583) [slaac] simplify adding/removing addresses and other enhancements (openthread#9579) [csl] add `OPENTHREAD_CONFIG_MAC_CSL_RECEIVER_LOCAL_TIME_SYNC` option (openthread#9568) (openthread#9568) [docs] TCP Commands - add Doxygen tags (openthread#9578) [dataset] returns OT_ERROR_REJECTED when MGMT_SET is rejected by leader (openthread#9582) github-actions: bump ossf/scorecard-action from 2.2.0 to 2.3.1 (openthread#9584) [build] move `radio_spinel.cpp` to new lib `openthread-radio-spinel` (openthread#9530) [netdata] simplify `Leader` class (openthread#9563) [mac] validate received ack frame PSDU in `ProcessEnhAckSecurity()` (openthread#9565) github-actions: bump github/codeql-action from 2.22.3 to 2.22.5 (openthread#9571) [api] add API to reset to bootloader mode (openthread#9523) [core] define `core/instance` folder for `instance` modules (openthread#9561) [posix] fix uninitialized pointer read (openthread#9562) [log] add `otLogGenerateNextHexDumpLine()` to generate hex dump (openthread#9555) [posix] add `otSysSetInfraNetif` API (openthread#9528) [mle] add `TxMessage::AppendSteeringData()` (openthread#9559) [posix] addressing coverity warning: resource leak (openthread#9472) [mac] update the cached supported channel mask when the region code changes (openthread#9418) [docs] added xrefs from UDP CLI to UDP Concepts Guide (openthread#9558) [ip6] log checksum error from `Checksum::VerifyMessageChecksum()` (openthread#9556) [nedata] add API to retrieve Commissioning Dataset (openthread#9551) github-actions: bump actions/checkout from 4.1.0 to 4.1.1 (openthread#9557) [netdata] simplify and update `HandleTmf<kUriCommissionerSet>()` (openthread#9550) [netdata] resign active commissioner on NetData restore on leader (openthread#9549) [tests] fix verification in `test_routing_manager.cpp` (openthread#9548) [udp] remove `aIpProto` from `Ip6::Udp::SendDatagram()` (openthread#9547) ... Change-Id: I4623d2a0bcba3f1880071d9efd91ca6d2bb6ad1b
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.
This commit implements a mechanism in
RoutingManager
to learn the Managed Address Config (M
) and Other Config (O
) flags in received RA message from discovered routers on the infrastructure link and copy the same flags in the emitted RAmessage from BR.
If any discovered router on the infrastructure that is not itself a stub router (i.e., does not include the Stub Router flag) includes the
M
orO
flags, the same flag are included in the emitted RA message. If a discovered router has failed to respond to the maximum number of NS probe attempts, we consider it as offline and ignore its flags.This commit also adds a detailed test case in
test_routing_manager
to validate the newly added mechanism.The PR currently contains the commit from [routing-manager] new API to get list of discovered routers #9601 (please check and review the last commit on this PR. thanks).