-
-
Notifications
You must be signed in to change notification settings - Fork 64
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
Retry until network interfaces become available. #55
Comments
Reasonable feature request, except that it would require quite a bit of refactoring to achieve. If someone submits a pull request I can have a look at it, but at the moment this is not something I have time to work on, unfortunately. Background: when a multicast routing daemon starts it registers with the UNIX kernel to get a multicast routing socket. To set up multicast routes in the kernel it also needs to register virtual interfaces, or VIFs, based on actual interfaces. VIFs can basically be any interface that has the MULTICAST flag set, so they don't have to be up yet or anything only exist and not change their Now, What I think would be neat to have in SMCRoute is a way to re-enumerate VIFs at runtime if an interface is added or removed. This would be tricky though and in most cases it's easier to just restart SMCRoute, however, in some cases it is crucial to not get any interruptions in established multicast streams. Also, having a startup delay in SMCRoute can help with other use-cases as well. So even if the above gets implemented I see no reason to remove the new |
Sure, having |
We periodically refresh our cache of interfaces, in case an interface did not have an address at startup/SIGHUP. On refresh we currently don't want to add new interfaces (see GitHub issue #55), only refresh the address of existing ones so we can retry failed IGMP joins. Signed-off-by: Joachim Nilsson <[email protected]>
The latest couple of releases have slightly improved configuration handling. On systems like Linux and FreeBSD, where interfaces can be "enumerated" to VIFs using ifindex, everything can be set up before an interface gets an IP address. Routing only commences when the kernel has an IP address (in a matching address family) for the given interfaces to a multicast route. As of v2.5 (soon to be released) this applies also to joining of multicast groups on FreeBSD. SMCRoute now uses the However, detecting new interfaces at runtime, probed or added after SMCRoute has started is not supported and still someone to provide a patch for. In cases of startup behavior we still recommend the startup delay |
During boot, network interfaces could be temporarily unavailable.
After boot, network interfaces can randomly go down and up.
On OpenWrt, during boot,
wlan0
goes up lately because it has to establish a connection with another wireless router./etc/smcroute.conf
tries to bind towlan0
during boot and gives up instantly after a failure.It is desirable for smcroute to retry for a while or for ever whenever network interfaces specified in
/etc/smcroute.conf
seem to be down during boot or after boot.With this, smcroute doesn't need
-t SEC
option and doesn't need to care about the order of programs started during boot.The text was updated successfully, but these errors were encountered: