]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
The proxy arp entries could not be added into the system over the
authorqingli <qingli@FreeBSD.org>
Wed, 30 Dec 2009 21:35:34 +0000 (21:35 +0000)
committerqingli <qingli@FreeBSD.org>
Wed, 30 Dec 2009 21:35:34 +0000 (21:35 +0000)
commited965a92bc17f25c5049fbd529d10a9e94f8a3a7
tree8e2dcb46479d9e8deaedba15ff39e4bf06edf8c9
parent05e668091314a2bdc6f8d36ac2e8abf4c424a09a
The proxy arp entries could not be added into the system over the
IFF_POINTOPOINT link types. The reason was due to the routing
entry returned from the kernel covering the remote end is of an
interface type that does not support ARP. This patch fixes this
problem by providing a hint to the kernel routing code, which
indicates the prefix route instead of the PPP host route should
be returned to the caller. Since a host route to the local end
point is also added into the routing table, and there could be
multiple such instantiations due to multiple PPP links can be
created with the same local end IP address, this patch also fixes
the loopback route installation failure problem observed prior to
this patch. The reference count of loopback route to local end would
be either incremented or decremented. The first instantiation would
create the entry and the last removal would delete the route entry.

MFC after: 5 days
sys/net/if_llatbl.c
sys/net/if_llatbl.h
sys/net/if_var.h
sys/net/route.c
sys/net/route.h
sys/net/rtsock.c
sys/netinet/in.c
sys/netinet6/in6.c
usr.sbin/arp/arp.c