Subject: icmp redirects
To: None <tech-net@netbsd.org>
From: Andrew Brown <atatat@atatdot.net>
List: tech-net
Date: 04/17/2000 17:34:31
i see routes in my routing table like this:

...
206.22.3.10        198.67.1.3         UGHD        0    46447      -  ne0
...

which looks like

% route -nv get 206.22.3.10
u: inet 206.22.3.10; u: link ; RTM_GET: Report Metrics: len 112, pid: 0, seq 1, errno 0, flags:<UP,GATEWAY,HOST,STATIC>
locks:  inits: 
sockaddrs: <DST,IFP>
 206.22.3.10 
   route to: 206.22.3.10
destination: 206.22.3.10
    gateway: 198.67.1.3
  interface: ne0
      flags: <UP,GATEWAY,HOST,DYNAMIC,DONE>
 recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire
       0         0         0      2172       219         0         0         0 

locks:  inits: 
sockaddrs: <DST,GATEWAY,IFP,IFA>
 206.22.3.10 198.67.1.3 ne0:0.40.f6.34.3e.bd 198.67.1.13

which are obviously a result of my machine sending packets to the
default gateway and then being told that a better gateway exists.
the problem is that the expire field is set to 0.

when i changed this, so that the gateway to 206.22.3.0/24 was another
machine, the netbsd box doesn't pick up the change until i actually
physically remove the route.  which i guess makes sense, since there's
no way for it to discover the new route, and no way for the route to
time out.

but i thought it should time out.  i breezed through all the rfcs i
could find on icmp and host requirements and anything else that seemed
related, but i couldn't find anything anywhere that said it should
time out.  so i guess it's right that it doesn't.

but why?  dynamic routes like that seem like the kind of thing that
should time out, simply because they're called "dynamic routes".

-- 
|-----< "CODE WARRIOR" >-----|
codewarrior@daemon.org             * "ah!  i see you have the internet
twofsonet@graffiti.com (Andrew Brown)                that goes *ping*!"
andrew@crossbar.com       * "information is power -- share the wealth."