Re: Bedeutung von if_dstaddr [was: Re: FreeBSD & ISDN & dynamic ip's]

From: J Wunsch <j(at)uriah.heep.sax.de>
Date: Fri, 1 Aug 1997 16:07:10 +0200

As Stefan Bethke wrote:

> Genau diese Frage hat sich mir vor ein paar Tagen in anderem Zusammenhang
> auch gestellt. Meine Suche in Stevens II hat mich aber zu der Erkenntnis
> gebracht, daß if_dstaddr für nichts benutzt wird, außer bei einem
> SIOCAIFADDR einen passenden Routing-Eintrag zu erzeugen (und entsprechend
> SIOCDIFADDR).

Sie wird eindeutig fürs Routing benutzt um festzustellen, wolang ein
Paket zu schicken ist. Hier ein Stück aus der Funktion
ifa_ifwithnet():

                        if (ifa->ifa_addr->sa_family != af)
                                next: continue;
                        if (ifp->if_flags & IFF_POINTOPOINT) {
                                if (ifa->ifa_dstaddr != 0
                                    && equal(addr, ifa->ifa_dstaddr))
                                        return (ifa);

Wenn das Interface also p2p ist, dann bestimmt die Adresse der
Gegenseite, ob es als Transportmedium in Frage kommt oder nicht.
(Wenn es nicht p2p ist, bestimmen lokale Adresse + Netzmaske, ob es
benutzt wird.)

Die Abfrage ifa->ifa_dstaddr != 0 ist übrigens Paranoia; der Kernel
sichert beim Konfigurieren eines p2p-Interfaces ab, daß eine derartige
Adresse vorhanden ist (EDESTADDRREQ).

-- 
cheers, J"org
joerg_wunsch@uriah.heep.sax.de -- http://www.sax.de/~joerg/ -- NIC: JW11-RIPE
Never trust an operating system you don't have sources for. ;-)
Received on Fri 01 Aug 1997 - 16:23:07 CEST

search this site