Hi, we (openwisp.it) are an open source wireless ISP using openvpn's tap devices to bridge access points with our main servers.
We recently ran into a problem with openvpn's internal routing table getting filled up by "old and stale" routes. Some routes are kept for months (till the vpn gets restarted). This and the --max-routes-per-client option makes the internal routing table fill up and never let newer clients add new internal routes. Since we were unable to find a way to clean stale routes by reading the manpages, we began exploring openvpn's code to create a patch that would clean old and inactive routes. The patch is working but, by looking through code, we found some reference to MULTI_ROUTE_AGEABLE and ageable_ttl_secs in the multi_route_defined method (multi.h). Are those in any way meant to clean, in any way (maybe yet to implement), aged routes? We tried using multi_route_defined to keep track of such routes without success. Should we keep trying with MULTI_ROUTE_AGEABLE or find other ways (we implemented the patch by using a dedicated timer that triggers a function that does something similar to what happens on teardown)? We are currently patching OpenVPN 2.1.0 Regards, Matteo Latini