Git Product home page Git Product logo

Comments (3)

jech avatar jech commented on August 28, 2024

So what you are saying is that there's a sysctl that tells the kernel to disobey the routing table? I don't see how we could possibly avoid routing loops if the kernel is not obeying the routing table.

We might wan to add an option to honor the linkdown route attribute or one to ignore routes any interfaces that are linkdown.

Does the link-detect option do what you want? If you find it useful, we might make it into a per-interface option.

from babeld.

DanielG avatar DanielG commented on August 28, 2024

from babeld.

jech avatar jech commented on August 28, 2024

I'd say babeld's model of how the Linux routing table works is incomplete :)

The role of the routing daemon is not to model the Linux routing table. It's role is to construct a routing table and instruct the kernel to forward packets according to that routing table. If the kernel is configured to ignore the routing daemon's instructions, then routing is going to break.

I belive (but haven't checked) the kernel will send route change netlink events when routes become ignored, the linkdown (RTNH_F_LINKDOWN) should be set in those. So it ought to be easy for babeld to react to routes becoming ignored in this way.

I'm not opposed to accepting a (tested!) patch that does that. However, I think we should simply document that babeld is not compatible with ignore_routes_with_linkdown, and that people should be using link-detect instead.

(As a side note, the reason why link-detect is not the default is that it's unreliable on WiFi hardware. I think it might be an improvement to make it into a per-interface option, and to enable it automatically when the interface is known to support it reliably. But that's a different matter.)

Closing this issue, please feel free to reopen it if you think there's anything actionable about it.

from babeld.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.