Here is my idea: script could detect when users are not making any traffic, performing the upgrade reboot at that time, if upgrade files are available. How can this be done with scripting?
And Lets say script always sees traffic passing. In this case, upgrade should be triggered by the lowest amount of traffic in 24 hours with the concition that time is between 03:30 and 04:30 in the morning while everyone is sleeping.
If you have clients that make business traffic at those hours, you should probably not upgrade at all or have a second link to redirect the traffic or sync the router downtime with their work downtime.
on the other hand, many gamers are crazy, and they play even at 5am =) and you know that it’s better to disconnect 5 web-surfers than 1 online game player )))
In my experience the online gaming pattern is a continous connection on a high udp port combined with a contonuous tcp connection. Sometimes the case with XBOX360 is different - ports 53 80 443. Maybe our script can trigger at 04:30 and automatically extract information from torch wheter there is such a pattern currently active
there is elegant solution to your dispute - in contract add a point that one time eg. on monday 4AM will be maintenance for 1 hour (or other time you prefer) you need it - you use it, you dont need it, leave routers running. Customers will know what and when to expect (well that is from my point of view as a customer)