-
-
Notifications
You must be signed in to change notification settings - Fork 64
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # 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: