Subject: Re: if_detach handling styles
To: Bill Sommerfeld <sommerfeld@orchard.arlington.ma.us>
From: None <itojun@iijlab.net>
List: tech-net
Date: 02/02/2000 23:47:55
>> (switched to tech-net)
>> Not sure if it is real problem, but shouldn't we better flush inp_route
>> on tcp_usrreq(PRU_PURGEADDR) and other occasions?
>What are the ramifications of this? if it would cause connections to
>break on the next retransmit, no -- if you reinsert/reconfigure the
>interface before TCP gives up (and get the same address..), you should
>be able to continue.
it won't break any of existing communications. we need to inform
inpcb to obtain fresh route so that they are happy across interface
removal.
inp_route caches the previously-used outgoing route for an inpcb.
if interface gets deleted, each of inpcb will need to refresh
cached route. For example:
- you have two interfaces (ne0 and tlp0)
- default route is pointing toward nexthop on ne0
- 10.1.1.0/24 is pointing toward nexthop on tlp0
- you are doing tcp with 10.1.1.1 (yes, toward tlp0)
you have a route pointing toward tlp0 cached into inpcb.
when tlp0 gets removed, inpcb for the tcp connection needs to get
a fresh one.
itojun