-
-
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
Complete VIF/MIF exhaustion on systems with many interfaces #71
Comments
A reference counter for There is a related problem in #55, in particular for non-Linux systems which need an actual IP address for the kernel to enumerate a VIF/MIF. On Linux we can enumerate using the So, my take on how to best handle this issue is to add a list of "requested routes" that do not yet have any inbound or outbound interface enumerated. Then periodically check for new interfaces (with address on non-Linux systems) and add VIFs at runtime. For each new enumerated interface we can add routes, and interfaces to existing matching routes. This would be a quite extensive change to SMCRoute, which might even affect |
Hi, |
@rene-d That's a serious issue and should be reported separately from this one. Could you please file a separate issue so I can schedule a fix for v2.4.4? |
Of course. Thanks :) |
Note to self: on FreeBSD MAXVIFS and MAXMIFS are different, 32 vs 64, so we (may) need to be able to allocate them separately. Hence, the |
@troglobit hello,thanks for your great work.Smcroute is really nice but now I encounter a problem,and the error info is: Any solutions for this error? |
Update:after using SMCroute v2.5.6,this error disappeared.Sorry to bother u~ |
On systems with many interfaces
smcrouted
will fail due to exhaustion of the VIF/MIF space. There is,per routing table, usually only 32 VIFs (IPv4) and 32 MIFs (IPv6) available in total.
smcrouted
should allocate a VIF/MIF per interface on demand instead, and also free unused VIF/MIF on removal of routes. A simple reference count per interface should be sufficient.The text was updated successfully, but these errors were encountered: