> >>> Could you please test the following single patch on top of 1.18.4? > >>> https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/700 > >>> > >> > >> I ran through a couple of test cases and this appear to be doing the right > >> thing. Thanks. > >> > > > > Thanks for testing, will merge and backport to 1.18.x > > > > It does occur to me that, udev rules not being the most robust things (In my > experience anyway), that there could be conditions where devices being > reported > are not quite ready, leading to certain race conditions, or at least the > occasional, in this case, still deciding to use PPP. > > This is circumstantial speculation on my part of course, but it fits with > what I've seen. You'll have to comment on the exact behavior. >
The udev rules themselves are robust. The problem may be the time required by the module to expose the ports in the system, and the time required by the module to actually reply anything in those ports. Those two last things are handled by timeouts in ModemManager, and if there are race conditions leading to falling back to PPP, the things to fix would be those timeouts usually. The issue we've seen here has been a bad interpretation of how the udev rules are written, and on top of that, the fact that for openwrt we have a custom rules parser that is far from perfect. A solution to solve all this would be to fully avoid using udev rules, and provide our own setup rules for both udev and non-udev systems. The own setup could be equivalent to what we already do with the custom parser, just specifying which are the very specific types of matches we support, for example. If someone wants to work cleaning that up let me know :) -- Aleksander https://aleksander.es