- To: mail-tcp-group
- Subject: NETROM query
- From: brian@ucsd.Edu (Brian Kantor)
- Date: 26 Feb 91 03:37:45 GMT
Standard net/rom (and Dan Frank's version in NOS, as far as I know)
does not handle link failures in a graceful way. In fact, it pukes.
The silicon version of net/rom will not recover from a failed route.
It will knock down the entire virtual circuit should any hop fail; it
does not attempt to reroute. I suspect that's because there's no room
for the code in the ROM, but maybe it's a real design decision.
I believe that the right thing to in net/rom (or any similar AX.25
router) is to purge all routes depending on the failed link and attempt
to re-route. If there is no alternate route in the current node, you
clear back the circuit one hop previous with a code indicating that
rerouting is required, finally returning a circuit failure only if no
alternate route can be found as far back as the originating node.
Since nr builds its routing tables from broadcasts it receives, there
is no way to verify that a received route broadcast is really an
operational two-way path. I suggest that any node hearing a routes
broadcast should immediately attempt to establish a level-2 connection
to the node making the broadcast, and if that level-2 connection should
fail (or fail to be established) then all routes dependent upon that
link should be purged.
With those two (admittedly large, but invisible to the user) changes to
the nr routing scheme, it'd be a more robust protocol.