[comp.unix.questions] Summary of SLIP problems

root@nardacdc002.arpa (02/06/90)

Fellow Net people,

		I had some problems installing SLIP (Serial Line IP) on our SUN
3/260 running SUN OS 3.5 a few days ago. Thanks to this users group I have since
resolved the problem and SLIP is available to our users. Here is a summary of
problems encountered and solutions to the problems:

Apparently there are quite a few implementations of SLIP out there on the
net. The TORONTO implementation (slip-3.x.tar.Z from neat.ai.toronton.edu) did 
not work on this machine for some reason. The README file was not clear, at
least to me, and when I relinked the Kernel my machine would not boot up. I
will attempt to install this implementation again and summarize results.

	I ftp'd another implementation from mimsy.umd.edu (128.8.128.8) and this
one worked.  Here is a summary of steps to take when installing SLIP 
(Serial Line IP):

Step 1:
In our machine I had to add the line "/sys/if_sl.c optional sl device-driver"
in the file /usr/sys/conf/files. In SUN OS 3.5 the "files" file has an entry 
that reads "sys/tty_sl.c optional sl device-driver". I had to delete this line 
since I added the if_sl.c" line into files. 

Note: 
Step 2:

Add the line "pseudo-device   sl2" in the config file (YOUR_KERNEL_NAME)
in /usr/sys/conf 

Step 3:
Remove the directory called /usr/sys/YOUR_KERNEL_NAME.
Perform a "touch" on ALL c-files under /sys to get if_sl.c
compiled.

Step 4:
Go to your /usr/sys/conf directory and run "config YOUR_KERNEL_NAME". This will
create a new /usr/sys/YOUR_KERNEL_NAME directory.

Step 5:
Go back to /usr/sys/YOUR_KERNEL_NAME directory and perform a "make".
This will relink your Kernel file and make a new vmunix for your machine.

If your Kernel was built correctly do the following:
	Copy your old vmunix to vmunix.old (cp /vmunix /vmunix.old).

	Copy /usr/sys/YOUR_KERNEL_NAME/vmunix to the root directory
	(cp /usr/sys/YOUR_KERNEL_NAME/vmunix /vmunix).

If your Kernel comes back with the message:

		undefined:
			 _if_detach
See my NOTE at the end and go back to Step 5.

Step 6: 
Reboot your system with the new Kernel.

Step 7:
Once your system is up and running compile the slattach.c program 
( cc slattach.c -o slattach).

Step 8:
run slattach.
(i.e. slattach TTYNAME SOURCE-NAME DESTINATION-NAME [BAUDRATE]) 

That's it! Again I will attempt to get the Toronto implementation to work but I make no promises. Hope this helps!



NOTE:
Mark Weiser provided this code and I added it at the end of if_sl.c. Once I 
added it the Kernel relinked correctly.
Thanks Mark!

From: Mark Weiser <mark@arisia.Xerox.COM>
To: lclaudio@wnyosi2.arpa
Subject: if_detach
Status: R

/*
 *	This code normally lives at the end of /sys/net/route.c.  This file
 *  is not intended to be compilable as is.  It may make sense, if you
 *  install this code, to stick the following line in ioctl.h:
 *    #define SIOCIFDETACH    _IOW(i, 23, struct ifreq)
/*
/*
 * Detach an interface from the
 * list of "active" interfaces.
 */
if_detach(ifp)
        struct ifnet *ifp;
{
        register struct ifnet *p = ifnet;
        int s = splimp();        
 
        if (p == ifp)
                ifnet = p->if_next;
        else
                while (p)
                        if (p->if_next == ifp) {
                                p->if_next = ifp->if_next;
                                break;
                        } else
                                p = p->if_next;
        splx(s);
        return;
}

Special thanks to the following people:

Bjorn Breidegard
Dept. of Computer Engineering
Lund University
Sweden

Email: bjorn@dit.lth.se

	
Mark Weiser
From: Mark Weiser <mark@arisia.Xerox.COM>