the right beaviour as per RFCs should be to keep retransmiting till you r=
each=20
the maximum number of retransmits.
There is in fact an route to the host (it's on the local subnet) and i th=
ink=20
this beaviour is related with the route caches...
in tcp_do_retransmit:
...
rt =3D ip_check_route(&sk->ip_route_cache, opt->srr?opt->faddr:iph->daddr=
, skb->
localroute);
...
if (rt=3D=3DNULL) /* Deep poo */
{
if(skb->sk)
{
skb->sk->err=3DENETUNREACH;
skb->sk->error_report(skb->sk);
}
}
...
The ARP field in the route cache is 0 when the route is checked ( but the=
=20
flags are RTF_UP | RTF_HOST ) . maybe that causes ip_check_route to fail
... i think this is a bit non conformant with RFCs...
if anybody has a clue on this please send me a note.
Pedro Roque ( roque@di.fc.ul.pt ) =20
=20
Faculdade de Ci=EAncias da Universidade de Lisboa =20
Departamento de Inform=E1tica =20