From owner-FreeBSD-users-jp@jp.freebsd.org  Sun May  9 15:20:52 1999
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id PAA73167;
	Sun, 9 May 1999 15:20:52 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from smtp.mtci.ne.jp (smtp.mtci.ne.jp [210.231.230.8])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id PAA73162
	for <FreeBSD-users-jp@jp.freebsd.org>; Sun, 9 May 1999 15:20:52 +0900 (JST)
	(envelope-from okazaki@be.to)
Received: from acidrain (ppp19-Mobara1.mtci.ne.jp [210.172.1.221])
	by smtp.mtci.ne.jp (8.8.8/3.6W) with SMTP id PAA12289
	for <FreeBSD-users-jp@jp.freebsd.org>; Sun, 9 May 1999 15:20:49 +0900
Received: (qmail 1422 invoked from network); 9 May 1999 06:17:23 -0000
Received: from localhost (HELO acidrain.localnet) (127.0.0.1)
  by localhost with SMTP; 9 May 1999 06:17:22 -0000
Date: Sun, 09 May 1999 15:17:20 +0900
Message-ID: <14133.10352.508988.26482Z@dolphin.be.to>
From: OKAZAKI Tetsurou <okazaki@be.to>
To: FreeBSD-users-jp@jp.freebsd.org
In-Reply-To: In your message of "Sat, 08 May 1999 21:33:38 +0900"
	<19990508213338U.kunishi@aquamarine.c.oka-pu.ac.jp>
References: <14130.7624.799258.72159A@dolphin.be.to>
	<199905071532.AAA04373@us2.famille.ne.jp>
	<19990508213338U.kunishi@aquamarine.c.oka-pu.ac.jp>
User-Agent: Wanderlust/0.10.0 (Got My Mind Set On You) SEMI/1.13.4 (Terai)
 FLIM/1.12.6 (=?ISO-8859-4?Q?Family-K=F2enmae?=) Emacs/20.3 (i386--freebsd)
 MULE/4.0 (HANANOEN)
Organization: Personal.
MIME-Version: 1.0 (generated by SEMI 1.13.4 - "Terai")
Content-Type: text/plain; charset=ISO-2022-JP
Reply-To: FreeBSD-users-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+990430
X-Sequence: FreeBSD-users-jp 42096
Subject: [FreeBSD-users-jp 42096] Re: PPxP (Re: About PPP)
Errors-To: owner-FreeBSD-users-jp@jp.freebsd.org
Sender: owner-FreeBSD-users-jp@jp.freebsd.org
X-Originator: okazaki@be.to

$B2,:j$G$9!#(B

> > SysIfOpen:No such file or dilectory
> > $B$H$$$&%a%C%;!<%8$,$G$F$-$^$7$?!#(B
> 
> $B;d$,:#$^$G7P83$7$?$H$3$m$G$O!"(B
> 
> PPxP $B%3%s%=!<%k$,(B background $B$GN)$A>e$2$k(B ppxpd $B$H$$$&%W%m%;%9$,$J$s$i(B
> $B$+$NM}M3$G=*N;$7$J$+$C$?(B($BDL>o$O(BPPxP $B%3%s%=!<%k$,=*N;$9$k$H(B ppxpd $B$b(B
> $B=*N;$9$k(B)$B>l9g$K!"(B
> $B<!$K(B ppxpd $B$,N)$A>e$,$m$&$H$7$?$H$-$K(B
> 
> $B$3$N%a%C%;!<%8$,=P$^$9!#(B

ppxpd $B$N5/F0;~$K!";HMQ$G$-$k(B tunnel device $B$,(B
$B$J$+$C$?>l9g$KI=<($5$l$k(B(?)$BMM$G$9!#(B

$B<B:]$K(B "SysIfOpen:" $B$H$$$&%(%i!<%a%C%;!<%8$r(B
$B=P$7$F$$$k$N$O(B ppxp/src/main.c $B$N(B Setups $B$H$$$&4X?t$G$9!#(B

inline static int
Setups(int argc, char *argv[], char *env[])
{
    ....
    if ((ifFd = SysIfOpen(ifName, &ifNum)) < 0) {
        perror("SysIfOpen");
        return(-1);
    }
    ....
    return(0);
}

$B$3$3$G(B SysIfOpen $B4X?t$NJV$jCM$,Ii$N>l9g$K(B "SysIfOpen:"
$B$H$$$&%a%C%;!<%8$,=P$F(B ppxpd $B$,=*N;$7$^$9!#$3$3$G(B
$B8F$S=P$7$F$$$k(B SysIfOpen $B4X?t$N<BBN$O!"(BFreeBSD $B$NMM$J(B
4.4BSD $BM3Mh$N(B OS $B$N>l9g$@$H(B OS/44BSD/netif.c $B$K$"$j$^$9!#(B

int
SysIfOpen(char *ifname, int *ifnp)
{
    int n;
    char name[IFNAMSIZ+5];

    sockFd = socket(AF_INET, SOCK_DGRAM, 0);
    for (n = 0; n < 10; n ++) {
        sprintf(name, "/dev/tun%1d", n);
        ifFd = open(name, O_RDWR);
        if (ifFd >= 0) {
            sprintf(ifname, "tun%d", n);
            *ifnp = n;
            /* NON-BLOCK mode */
            n = 1;
            ioctl(ifFd, FIONBIO, &n);
            return(ifFd);
        }
    }
    return(-1);
}

$B$D$^$j!"(BSysIfOpen $B$,Ii$NCM$rJV$9$N$O!"(B
/dev/tun0 $B$+$i(B /dev/tun9 $B$^$G$N(B
        ifFd = open(name, O_RDWR);
$B$K$9$Y$F<:GT$7$?>l9g$G$9!#(B

$B$?$H$($P!"(Bkernel $B$G(B configuration $B$7$F$$$k(B tunnel device
$B$N8D?t$,(B 1 (tun0 $B$N$_$,M-8z(B)$B$G!"(Btunnel device $B$N(B
$B%G%P%$%9%N!<%I$b(B /dev/tun0 $B0J30$O:n$i$l$F$$$J$+$C$?$H$7$^$9!#(B
tun $B%G%P%$%9$N(B open $B$OGSB>E*$K9T$o$l$k(B[tun(4)]$B$N$G!"(B
ppxpd $B$,N)$A>e$,$kA0$K2?$+B>$N%W%m%;%9$,(B tun0 $B%G%P%$%9$r(B
$B;HMQCf$G$"$C$?>l9g(B: 
	ifFd = open("/dev/tun0", O_RDWR);
$B$O<:GT$7$^$9!#$^$?!"(Btun1 $B$+$i(B tun9 $B$^$G$N%G%P%$%9%N!<%I(B
$B$OB8:_$7$J$$$N$G7k6I(B:
	ifFd = open("/dev/tun9", O_RDWR);
$B$b<:GT$7$F:G=*E*$K(B

> > SysIfOpen:No such file or dilectory

$B$H$$$&%(%i!<=PNO$K$J$k$N$@$m$&$H;W$$$^$9!#(B
# /dev/tun0 $B$r:n$C$F$$$J$+$C$?>l9g$OLdBj30(B(^^;$B$G$9(B

> ps $B$J$I$G(B ppxpd $B$N%W%m%;%9HV9f$rC5$7$F!"Ev3:%W%m%;%9$r(B kill $B$7$F$d$l$P(B
> $B@5>o$K@\B3$G$-$k$h$&$K$J$k$H;W$$$^$9!#(B

$B$^$l$K(B ps $B$N=PNO$G$b(B (ppxpd) $B$H$@$1I=<($5$l$F!"(B
kill -KILL pid $B$H$7$F$b(B ppxpd $B$N%W%m%;%9$r(B
kill $B$G$-$J$/$J$k$3$H$,$"$j$^$9!#(B
# $B$=$&$$$&>uBV$K$J$C$?;~$O$d$`$J$/(B reboot $B$7$F$^$9!#(B

-- 
$B2,:j(B $BE/O/(B
