-
-
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
Route replacement/update via smcroutectl #115
Comments
The only reason is that of the limits of the current implementation. When you reload a .conf file with SIGHUP all old routes are first removed. There's a separate issue reported for that. (For (*,G) routes you can use flush first, just FYI) I think it would be great if you could append an interface to the list of current outbound interfaces for the route without disturbing established flows/routes. |
When you say without disturbing established flows you mean other flows than the one to be updated? For static routes I imagined a behavior where smcroute would do the same as what it does today when changing input interface. For dynamic routes I imagined that smcroute flushed the old matching routes and, deleted current from list, then add the new updated route. |
I actually mean all established flows, including the one being updated. There's a bit of work involved to do that, but that's my overall goal. A static route to me is a (S,G) route, whereas (*,G) is a dynamic one since it only acts as a template and is only set in the kernel once you receive an upcall from the kernel about a new sender. This would apply to either being set via .conf file or using smcroutectl. Sorry for being unclear about this! EDIT: However, any fix to the current behavior where we cannot change the outbound interfaces without first removing a route will be accepted. |
@kylex2 Did you continue looking into this? |
Unfortunately I haven't gotten time to do this properly but I am still interested in this. |
@kylex2 Alright, that's awesome! I've laid out a rough plan for the v2.5 release in the milestone planner, and this one is included. Let me know if you need any help; limiting scope, testing, or just someone to bouncing ideas off 😃👍 |
This is great app. Thanks |
I would also like to be able to refresh the available interfaces list without flushing the old configuration, lets say I add new GRE tunnel and would like to configure it, ill need to reset the service for that. Thanks |
@schwartazi Since I'm the single maintainer, like most other Open Source projects, I cannot give any dates or forecasts. All work on SMCRoute has mostly been done on my spare time. I'd very much like to get back to completing this issue, but it's a lot of work to do still. |
Updating existing routes with smcroutectl add/rem is now possible as of 2490331. Note, only add/rem outbound interfaces is supported, anything else still needs be done either by updating the .conf file or removing an existing route. @schwartazi To meet your usecase, you have to update your .conf file, by adding a new phyint for your GRE interface, and add it to a route, followed by SIGHUP or reload. Existing flows to other outbound interfaces for that same route should now no longer be interrupted. |
The code currently supports changing the inbound interface for a route via 'smcroutectl add'. If you want to change the outbound interfaces it says the route already exists. For example if one would like to add an interface as outbound the route has to be removed first. Is there any reason for this? Can there be any side effects if smcroute allowed this? Compare this behavior to if you update the config file and send a SIGHUP then the new route would be in place.
Thanks
The text was updated successfully, but these errors were encountered: