2

Every time I call my ISP with the complaint

I don't have internet access.

, they ask me

Did you unplug the router, wait a couple of minutes and plug it in power again?

What I cannot understand is why isn't the firmware already doing that for me. It aught to be easy as pie to ping e.g. google every 60 seconds, and on failure, initiate system reset. Do this 3 times in a row, then give up and inform the user of self-diagnostics results.

Furthermore, in my experience, firmware development benefits heavily from assert() calls, peppered throughout the code. Those usually hang the device (while(1);) during development, in order to point the developers to the problem. Why not do a quick log message and then gracefully reboot, when an aseert() blows at run-time? Routers are soft-realtime machines, so some downtime in the name of fault tolerance (the user doesn't need to restart the router from the power adapter like some kind of savage) would be worthwhile.

Why is manually restarting a router still such an often needed task?

1
  • Because the author's of the firmware didn't want to do it that way. Its also the fact this troubleshooting step is often suggest by a less technical people. Its not actually required. Unless you are trying to load a custom firmware.
    – Ramhound
    Commented Feb 3, 2014 at 11:47

2 Answers 2

1

Because it's substandard hardware & software that doesn't handle all failure conditions such as voltage spikes, abrupt link failures, or memory leaks. A thoroughly tested router like one from Cisco or Juniper may never require a reboot in its lifetime unless you encounter a rare bug or update the software.

0

As often as not this is not a fault in the router per se but in the ADSL/Cable modem side.

It can happen that spikes on the line can cause the modem to go into a lock state such that communications fail. This is why your ISP asks the old chestnut of switch it off and on again. Voltage spikes on the line can be caused my many things, including lightning in the area or faulty connections in the public network. If you are getting a lot of disconnections then it sounds like a dodgy link.

Most professional grade routers will have some kind of link monitoring within them and will restart locked links. I have written such monitoring into a number of systems over the years. Most domestic grade equipment does not for the reason of cost. They are simply made cheaper - they do not have the ability for the software to pulse the reset pin of the UART or other line driver chip.

Incidentally, you only need to try to contact the next device along your route. If all the routers in the world pinged someone like Google every couple of minutes, Google would become very upset.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .