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

gluon-mesh-babel: Reduce load in respondd #1799

Closed
wants to merge 4 commits into from

Conversation

christf
Copy link
Member

@christf christf commented Aug 23, 2019

This reduces the load by:

  • querying the default route using netlink instead of parsing it from babel
  • instead of dump, use monitor and a separate thread to obtain the babel neighbours
  • resolve TODO in a different PR this on is meant to fix a problem: include traffic stats for all mesh interfaces

@christf christf added the 3. topic: babel Topic: Babel Layer 3 Routing label Aug 23, 2019
@rotanid rotanid added the 0. type: enhancement The changeset is an enhancement label Aug 23, 2019
@rotanid rotanid requested a review from neocturne August 23, 2019 18:28
@rotanid rotanid added this to the 2019.2 milestone Sep 16, 2019
@rotanid
Copy link
Member

rotanid commented Sep 29, 2019

i just noticed that this PR contains parts that are not directly related to "reduce load", maybe you can split this apart and get parts merged faster and also reduce this PR's size?

@christf
Copy link
Member Author

christf commented Oct 16, 2019

@t-8ch thank you for your review. Were all of your comments considered as intended?

@christf christf force-pushed the loadfix branch 2 times, most recently from fdbd254 to 5edb435 Compare October 30, 2019 21:42
@christf
Copy link
Member Author

christf commented Nov 1, 2019

unfortunately libjson-c 0.13 is not yet in relevant gluon versions for a while. only 0.13 includes json_object_deep_copy(). Because of this I introduced a fallback that should work with 0.12. Testing is in progress.

@christf christf force-pushed the loadfix branch 2 times, most recently from aaf6935 to 811e295 Compare November 24, 2019 01:41
@christf christf force-pushed the loadfix branch 2 times, most recently from 672ca0e to e222c64 Compare January 2, 2020 13:47
@rotanid rotanid added the 2. status: merge conflict The merge has a conflict and needs rebasing label Jan 17, 2020
@rotanid
Copy link
Member

rotanid commented Jan 17, 2020

this needs a rebase now @christf
... and somehow it's still missing a review with C+Gluon skills after that :(

* open babel socket in its own event loop, allowing to monitor instead of dump
* keep state from monitor in json object, providing that to clients on
  network on demand
* do not parse babel routes, instead use netlink to obtain nexthop

babeld still does not support limiting the data on the socket by object. When
that is merged, the load can be further reduced by limiting to neighbour
changes with a small change.
This can be reverted after updating the package feed to something newer
than 080ba31eec2ff4c165ce5a1bb9d434ddd91bdb6b from 2019-04-30 and should
be in the upcoming openwrt release after 19.07
…abel

After refactoring the respondd module to work with a separate thread,
handle_neighbour() is different in those two programs. A common
implemenation thus is impossible and the structure is removed.
…en unable to allocate memory for neighbour json

We don't need a thread parsing babeld if there is not enough memory to store the results. Print an error message in this case andcontinue without neighbour information in respondd data
@christf
Copy link
Member Author

christf commented Jan 20, 2020

rebase is done.

@christf christf added 2. status: waiting-on-review Awaiting review from the assignee but also interested parties. and removed 2. status: merge conflict The merge has a conflict and needs rebasing labels Jan 20, 2020
@mweinelt mweinelt modified the milestones: 2020.1, 2020.2 Mar 8, 2020
@neocturne
Copy link
Member

See christf/libbabelhelper#9 for current progress on libbabelhelper cleanup.

@mweinelt mweinelt mentioned this pull request Apr 11, 2020
2 tasks
@mweinelt mweinelt modified the milestones: 2020.2, 2020.3 May 2, 2020
@neocturne neocturne added 2. status: blocked Marked as blocked because it's waiting on something and removed 2. status: waiting-on-review Awaiting review from the assignee but also interested parties. labels May 28, 2020
@rotanid rotanid removed this from the 2020.3 milestone Nov 8, 2020
@rotanid rotanid added the 2. status: merge conflict The merge has a conflict and needs rebasing label Dec 18, 2022
@rotanid
Copy link
Member

rotanid commented Dec 18, 2022

@christf needs rebase?

@AiyionPrime AiyionPrime added the 2. status: waiting-on-author Waiting on some action from the author label Feb 21, 2023
@blocktrron
Copy link
Member

Closed because of #3105

@blocktrron blocktrron closed this Jan 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0. type: enhancement The changeset is an enhancement 2. status: blocked Marked as blocked because it's waiting on something 2. status: merge conflict The merge has a conflict and needs rebasing 2. status: waiting-on-author Waiting on some action from the author 3. topic: babel Topic: Babel Layer 3 Routing
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants