Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Jun 2000 21:24:25 +0100
From:      Brian Somers <brian@Awfulhak.org>
To:        Poul-Henning Kamp <phk@critter.freebsd.dk>
Cc:        Brian Somers <brian@Awfulhak.org>, "Matthew N. Dodd" <winter@jurai.net>, Terry Lambert <tlambert@primenet.com>, arch@FreeBSD.ORG, brian@hak.lan.awfulhak.org
Subject:   Re: Software detection of link integrity 
Message-ID:  <200006202024.VAA66394@hak.lan.Awfulhak.org>
In-Reply-To: Message from Poul-Henning Kamp <phk@critter.freebsd.dk>  of "Tue, 20 Jun 2000 22:02:32 %2B0200." <55570.961531352@critter.freebsd.dk> 

next in thread | previous in thread | raw e-mail | index | archive | help
> In message <200006201950.UAA65946@hak.lan.Awfulhak.org>, Brian Somers writes:
> >> On Tue, 20 Jun 2000, Terry Lambert wrote:
> >> > Would this be a useful thing to build into ifconfig?
> >> 
> >> Ideally, network drivers shouldn't set the IFF_UP flag until the link is
> >> actually up.
> >
> >Unless of course the driver (or something behind it) wants to bring 
> >the link up on demand.
> 
> We actually have major suckage in this corner.  I have tried to
> edge towards more intelligent behaviour:
> 
> Look at if_up(), if_route() and IFF_SMART.
> 
> Basically the idea is that an "IFF_SMART" interface will fiddle
> the up/down-ness of individual protocols as makes sense.  
> 
> I did this entirely for sppp, but it applies fully to any other
> interface: an ethernet should remain configured but remove the
> routes if the cable is unplugged.

No, I think the aim here is to keep the routes but to adjust them so 
that they're via an interface rather than an IP number, something 
like:

default            tun0               UGSc       11      503     tun0
127.0.0.1          127.0.0.1          UH          0    12837      lo0
172.16/24          link#1             UC          0        0      de0 =>
172.16.0.1         0:0:c0:ff:e9:ce    UHLW        5     7360      lo0
172.16.0.5         0:0:c0:b5:ca:ae    UHLW        8   587157      de0    895
172.16.0.6         0:a0:24:4b:1f:51   UHLW        0     7840      de0    862
tun0               172.16.0.1         UH         11       63     tun0
172.16.0.9         0:0:c0:ff:e9:ce    UHLS2       0        0      de0
172.16.0.10        link#1             UHLW        2      184      de0 =>
172.16.0.12        0:0:f4:5e:60:a9    UHLW        2    92225      de0    424
172.16.0.13        8:0:20:b:bf:72     UHLW        1    12455      de0    344
172.16.0.255       ff:ff:ff:ff:ff:ff  UHLWb       2      711      de0
172.17/24          172.16.0.12        UGSc        0     3290      de0
194.242.139.171/32 212.140.212.135    UGSc        1        0     tun1
194.242.139.172/32 212.140.212.135    UGSc        0        0     tun1
212.140.212.135    62.7.116.163       UH          3        0     tun1

Where tun0's transport has disappeared, we want to be able to do a 
connect() to say freefall, resulting in a sort of loose binding to 
the tun0 interface rather than an IP number, and a packet going out 
to the tun0 interface saying "please fix my source address quickly".

I haven't looked at the SMART stuff, but I guess that'll find some 
way to assign numbers to the interface and adjust the outgoing 
packet(s) along with any semi-bound socket(s).

Deleting routes would defeat the functionality IMHO.

I *think* Julian introduced code that will do this - so that you can 
creating route entries that contain sockaddr_dl's rather than 
sockaddr_in's, but I also *think* that's as far as it went.

> --
> Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
> phk@FreeBSD.ORG         | TCP/IP since RFC 956
> FreeBSD coreteam member | BSD since 4.3-tahoe    
> Never attribute to malice what can adequately be explained by incompetence.

-- 
Brian <brian@Awfulhak.org>                        <brian@[uk.]FreeBSD.org>
      <http://www.Awfulhak.org>;                   <brian@[uk.]OpenBSD.org>
Don't _EVER_ lose your sense of humour !




To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200006202024.VAA66394>