-
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
[netdata] new feature to optimize published routes when netdata gets full #8395
Closed
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
Size Report of OpenThread
|
abtink
force-pushed
the
netdata/action-on-full
branch
2 times, most recently
from
November 15, 2022 18:24
af6925f
to
afaf261
Compare
kghost
reviewed
Nov 17, 2022
abtink
force-pushed
the
netdata/action-on-full
branch
2 times, most recently
from
November 29, 2022 01:19
3e91ffb
to
55cf282
Compare
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## main #8395 +/- ##
=======================================
Coverage 85.06% 85.06%
=======================================
Files 518 518
Lines 72191 72191
=======================================
Hits 61410 61410
Misses 10781 10781 |
abtink
force-pushed
the
netdata/action-on-full
branch
from
November 29, 2022 02:56
55cf282
to
1807698
Compare
abtink
force-pushed
the
netdata/action-on-full
branch
2 times, most recently
from
November 29, 2022 23:42
89eda7e
to
435310c
Compare
23 tasks
This commit adds a new mechanism to detect when Network Data (local or leader) gets full and signals by invoking a callback which can be set with a newly added OT API. New method is added in `NetworkData::Leader` to determine whether registering local Network Data into the current Leader data can be successful or if it may lead to Network Data getting full. This is determined by device emulating the leader behavior and registering the local Network Data into a clone of the current leader's Network Data.
…full This commit adds a new feature in `NetworkData::Publisher` to monitor when Network Data gets full and optimize published external routes entries and replace them with a set of compact (shorter length) prefixes. `OPENTHREAD_CONFIG_NETDATA_PUBLISHER_OPTIMIZE_ROUTES_ON_FULL_NETDATA` controls this feature and by default it is enabled when device is configured as BR (i.e., `BORDER_ROUTING`/`RoutingManager` is enabled). The compact prefix list is determined using the following algorithm: - The initial "compact prefix length" is set to 48. - All route prefixes (excluding `::/0`) are shortened to the "compact prefix length" if they are longer. - All repeating prefixes are removed. - Any prefix that is contained within another shorter prefix is removed. - If the new set can not still fit in Network Data, the "compact prefix length" is shortened to 10 and then to 7. Once in optimized mode, `Publisher` will periodically check if it can again go back to normal mode by trying to publish all routes and checking if network data gets full. The default period is set to 4 hours (with a jitter of 15 minutes). This commit adds a test-case in `test_network_data` to validate the behavior of newly added mechanism.
abtink
force-pushed
the
netdata/action-on-full
branch
from
February 25, 2023 18:17
435310c
to
38f1e0d
Compare
Closing this PR in favor of new solution in |
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 adds a new feature in
NetworkData::Publisher
to monitorwhen Network Data gets full and optimize published external routes
entries and replace them with a set of compact (shorter length)
prefixes.
OPENTHREAD_CONFIG_NETDATA_PUBLISHER_OPTIMIZE_ROUTES_ON_FULL_NETDATA
controls this feature and by default it is enabled when device is
configured as BR (i.e.,
BORDER_ROUTING
/RoutingManager
isenabled).
The compact prefix list is determined using the following algorithm:
::/0
) are shortened to the "compactprefix length" if they are longer.
length" is shortened to 10 and then to 7.
Once in optimized mode,
Publisher
will periodically check if it canagain go back to normal mode by trying to publish all routes and
checking if network data gets full. The default period is set to 4
hours (with a jitter of 15 minutes).
This commit adds a test-case in
test_network_data
to validate thebehavior of newly added mechanism.