]> git.ozlabs.org Git - ppp.git/blob - README.sol2
Added support for dynamic STREAMS re-plumbing in Solaris
[ppp.git] / README.sol2
1 This file describes the installation process for ppp-2.3 on systems
2 running Solaris 2.  The Solaris 2 and SVR4 ports share a lot of code
3 but are not identical.  The STREAMS kernel modules and driver for
4 Solaris 2 are in the svr4 directory (and use some code from the
5 modules directory).
6
7 NOTE: Although the kernel driver and modules have been designed to
8 operate correctly on SMP systems, they have not been extensively
9 tested on SMP machines.  Some users of SMP Solaris x86 systems have
10 reported system problems apparently linked to the use of previous
11 versions of this software.  I believe these problems have been fixed.
12
13
14 Installation.
15 *************
16
17 1. Run the configure script and make the user-level programs and the
18 kernel modules.
19
20         ./configure
21         make
22
23 If you wish to use gcc (or another compiler) instead of Sun's cc, edit
24 the svr4/Makedefs file and uncomment the definition of CC.  You can
25 also change the options passed to the C compiler by editing the COPTS
26 definition.
27
28 2. Install the programs and kernel modules: as root, do
29
30         make install
31
32 This installs pppd, chat and pppstats in /usr/local/bin and the kernel
33 modules in /kernel/drv and /kernel/strmod, and creates the /etc/ppp
34 directory and populates it with default configuration files.  You can
35 change the installation directories by editing svr4/Makedefs.
36
37 If your system normally has only one network interface, the default
38 Solaris 2 system startup scripts will disable IP forwarding in the IP
39 kernel module.  This will prevent the remote machine from using the
40 local machine as a gateway to access other hosts.  The solution is to
41 create an /etc/ppp/ip-up script containing something like this:
42
43         #!/bin/sh
44         /usr/sbin/ndd -set /dev/ip ip_forwarding 1
45
46 See the man page for ip(7p) for details.
47
48 Snoop support.
49 **************
50
51 This version includes support for /usr/sbin/snoop. Tests has been done
52 on both Solaris 7 and 8. Only IPv4 and IPv6 packets will be sent
53 up to streams marked as promiscuous, e.g, snoop et al.
54
55 IPv6 Support.
56 *************
57
58 This version has been tested under Solaris 8 running IPv6. As of now,
59 interoperability testing has only been done between Solaris machines
60 in terms of the IPV6 NCP. An additional command line option for the
61 pppd daemon has been added: ipv6cp-use-persistent
62
63 By default, compilation for IPv6 support is not enabled. Uncomment the
64 necessary lines in pppd/Makefile.sol2 to enable it. Once done, the
65 quickest way to get IPv6 running is to add the following somewhere
66 in the command line option:
67
68         +ipv6 ipv6cp-use-persistent
69
70 The persistent id for the link-local address was added to conform to
71 RFC 2472; such that if there's an EUI-48 available, use that to make up
72 the EUI-64. As of now, the Solaris implementation extracts the EUI-48
73 id from the Ethernet's MAC address (the ethernet interface needs to
74 be up). Future works might support other ways of obtaining a unique
75 yet persistent id, such as EEPROM serial numbers, etc.
76
77 64-bit Support.
78 ***************
79
80 This version has been tested under Solaris 7 (and Solaris 8 ) in both 
81 32- and 64-bits environments (Ultra class machines). Installing the package
82 by executing "make install" will result in additional files residing in
83 /kernel/drv/sparcv9 and /kernel/strmod/sparcv9 subdirectories.
84
85 64-bit modules and driver have been compiled and tested using Sun's cc.
86
87 Synchronous Serial Support.
88 ***************************
89
90 This version has working but limited support for the on-board synchronous HDLC 
91 interfaces. It has been tested with the /dev/se_hdlc and /dev/zsh drivers.
92 Synchronous mode was tested with a Cisco router.
93
94 There ppp daemon does not directly support controlling the serial interface.
95 It relies on the /usr/sbin/syncinit command to initialize HDLC mode and 
96 clocking.
97
98 Some bugs remain: large sized frames are not sent/received properly, and
99 may be related to the IP mtu. This
100 may be due to bugs in pppd itself, bugs in Solaris or the serial drivers. 
101 The /dev/zsh driver seems more larger and can send/receive larger frames
102 than the /dev/se_hdlc driver. There is a confirmed bug with NRZ/NRZI mode
103 in the /dev/se_hdlc driver, and Solaris patch 104596-11 is needed to correct
104 it. (However this patch seems to introduce other serial problems. If you
105 don't apply the patch, the workaround is to change the nrzi mode to yes or
106 no, whichever works)
107
108 How to start pppd with synchronous support:
109
110 #!/bin/sh
111
112 local=1.1.1.1   # your ip address here
113 baud=38400      # needed, but ignored by serial driver
114
115 # Change to the correct serial driver/port
116 #dev=/dev/zsh0
117 dev=/dev/se_hdlc0
118  
119 # Change the driver, nrzi mode, speed and clocking to match your setup
120 # This configuration is for external clocking from the DCE
121 connect="syncinit se_hdlc0 nrzi=no speed=64000 txc=rxc rxc=rxc"
122  
123 /usr/sbin/pppd $dev sync $baud novj noauth $local: connect "$connect"
124
125
126 Sample Cisco router config excerpt:
127
128 !
129 ! Cisco router setup as DCE with RS-232 DCE cable
130
131 !         
132 interface Serial0
133  ip address 1.1.1.2 255.255.255.0
134  encapsulation ppp
135  clockrate 64000
136  no nrzi-encoding
137  no shutdown
138 !         
139