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

ffh-check-connection: initial commit #9

Closed
wants to merge 1 commit into from

Conversation

CodeFetch
Copy link

This commit adds a new package which can be used for scheduled
connectivity checks.

@mweinelt mweinelt added the needs: license Packages need to specify their license through SPDX IDs label Jun 8, 2021
@CodeFetch CodeFetch force-pushed the check-connection branch 3 times, most recently from 3fa4b74 to a5c92a5 Compare June 8, 2021 20:40
@CodeFetch
Copy link
Author

@mweinelt Maybe it makes more sense to add the LICENSE file of Gluon into the base directory of this repository as the Gluon license (whatever it is) has no clear SPDX identifier.

@CodeFetch CodeFetch force-pushed the check-connection branch 2 times, most recently from da41369 to 284f435 Compare June 8, 2021 21:22
This commit adds a new package which can be used for scheduled
connectivity checks.
@rotanid
Copy link
Member

rotanid commented Jun 10, 2021

is this a newer version of freifunk-gluon/gluon#1930 ?
what's your reasoning to not go with core idea freifunk-gluon/gluon#2228 ? do you intend to have your solution only in place until 2228 is implemented?

in any case, possible to merge here in community repo, maybe @lemoer wants to do it, he could endorse it as another person from ffh and has the rights to merge.

@rotanid rotanid removed the needs: license Packages need to specify their license through SPDX IDs label Jun 10, 2021
@CodeFetch
Copy link
Author

@rotanid Yes, it's almost the same as #1930. Actually the code in #1930 worked out of the box besides a missing tonumber. I lost interest in #1930, because I didn't get any feedback on my basic question: Is this the way we want to handle it?

I don't go with the idea in freifunk-gluon/gluon#2228, because we had the same discussion 2 years ago for the offline-ssid package. At that time it was decided that check-connection should use ICMP ping, because of the following reasons:

  • it should allow to be configured with global ping targets so that even a connectivity failure in the backbone would be detected
  • it should be completely mesh-protocol agnostic
  • it should be a generic approach for doing connectivity checks (to also use it in e.g. scheduled-domain-switch, wifi-fallback-autoupdater etc.)

Now in freifunk-gluon/gluon#2228 the same discussion was started again, but they seem to have forgotten all the initial goals and are now building something over-engineered which does not fulfill the purposes.

The reason they want to do it differently seems to be that ICMP pings are costly?! But that is not true at all. Doing a ping once a minute with a bigger collection of servers (e.g. from Freifunk communities) is negligible from a resource view. Ping was designed to do pings and batctl is not mesh-protocol-agnostic and is more costly. I felt they only did #2228, because they don't like me or something, because it does not make sense. I can't respond to #2228, because they blocked me from discussion there...

@CodeFetch
Copy link
Author

I converted this to a draft as some people feel that pinging global hosts has a too high cost. While I do not agree about the cost I see the possibility to limit these pings by:

  • In a first step only letting nodes with VPN connection do the ping check and adding a respondd provider to inform other nodes
  • In the second step even further limiting the ping checks (in case of multiple nodes with VPN connections) by electing a leader using the RAFT protocol to do the ping check

For the second step I've outlined an idea a while ago to semantically segment the mesh network with a daemon called meshrealmd which uses RAFT to elect leaders for segments . That will take a while...

@AiyionPrime
Copy link
Member

gluon/2245 was merged yesterday; it may make sense to take a look at it;
you might find opportunities to reduce some codebase of yours.

@mkg20001
Copy link
Member

Close? Update?

@maurerle
Copy link
Member

It is now more than 3 years ago that this was active.

Use of /var/gluon/state/has_default_gw4 as a connectivity check is currently used in ffac-autoupdater-wifi-fallback and ffac-ssid-changer.
So I am closing this PR now.

@maurerle maurerle closed this Aug 31, 2024
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.

6 participants