What is this? ------------- This is a kernel space implementation of PPPoATM as described by RFC-2364. The kernel patch adds stuff from the atm-0.64 package and the PPPoATM additions done by Mitchell Blank. Support for the Efficient Speedstream 3010 ATM NIC is also added as are Cristophe Lizzi's updates for sparc64 and misc fixes I made. The pppd patch adds the necessary changes to ppp-2.3.11 to support PPPoATM natively. Why would I need this? ---------------------- You need this package if your ISP offers an ADSL based package that uses ATM and is based on PPP over ATM. Note that some ADSL solutions use PPP over ethernet or CLIP based ATM, in this case you have no need for the additions in this package. Installing ---------- In this section I will assume that you know how to use 'patch' and rebuild pppd and the Linux kernel. If not, consult the necessary HOWTO's or man pages. 1) Patch your kernel (2.3.39 currently) with the atmppp patch located where you found this README. 2) Reconfigure the kernel and select support for ATM in the "Network Options" section. Select support for PPP and PPP over ATM in the "Network Devices" section and choose the appropriate ATM device driver. 3) Rebuild the kernel and modules, install, and boot it. 4) Grab ppp-2.3.11, apply pppoatm-pppd patch, configure, compile, and install. Configuring ----------- Your /etc/ppp/options should contain something like this: user "user@isp" defaultroute name siemens vci 101 nobsdcomp nodeflate nopcomp novj novjccomp noipdefault noaccomp -am Make sure that the user is correct and /etc/ppp/pap-secrets (or chap-secrets) has a correct user / password entry. The 'vci' option instructs pppd to communicate over VCI 101, contact your ISP to find out which VCI you have to use. The 'name' entry is what my ADSL modem calls itself, you need this if you are running with CHAP. Omit it at first, then look at your log when pppd complains about not finding the CHAP secret pppd[533]: No CHAP secret found for authenticating us to siemens then put that name entry in your options file and in you chap-secrets server entry. New pppd options ---------------- I have added some new options to pppd that are useful wrt PPPoATM. pppoa_accept - used with proxarp to make pppd wait for an incoming connection. vci - As explained above, the VCI used for communicating with the ADSL box. llc_encaps - Use LLC encapsulation instead of VC multiplexing for sending PPPoATM data. Running ------- Make sure that the ATM NIC driver is loaded and has found your device. For the Speedstream adapter this looks something like this: [axboe@x86 axboe]$ dmesg lanai: In lanai_dev_open() lanai: PCI says board_id=0, board_rev=1 lanai: about to reset board lanai: register says board_id=0, board_rev=1 lanai(itf 0): *NOT* reading EEPROM lanai: testing SRAM lanai: clearing SRAM lanai: allocated service buffer at 0xC736C000, size 4096(2) lanai(itf 0): LOCD changed from off to on lanai(itf 0): LED changed from off to on lanai(itf 0): rev.0, base=0xc8042000, irq=9 (00-00-00-00-00-00) lanai(itf 0): LANAIHB, serialno=0(0x0), board_rev=1 Now run pppd, specifying atm0 as the device [root@x86 axboe]# pppd atm0 and it should connect to your ISP and setup IP addresses, etc. That is it! Your logs should contain something like this: Jan 21 02:33:35 burns pppd[668]: pppd 2.3.11 started by axboe, uid 500 Jan 21 02:33:35 burns pppd[668]: Communicating over ATM 0.0.101 Jan 21 02:33:35 burns pppd[668]: Using interface ppp0 Jan 21 02:33:35 burns pppd[668]: Connect: ppp0 <--> atm0 Jan 21 02:33:35 burns pppd[668]: local IP address aaa.bbb.ccc.ddd Jan 21 02:33:35 burns pppd[668]: remote IP address eee.fff.ggg.hhh I suggest that you write a little script that brings the ATM interface up at boot and connects automatically, since most of us would probably like the internet connection to stay up at all times. It doesn't work --------------- Ok, go over your settings and make sure that they are correct. This mainly means is the VCI good and are you using the correct encapsulation type. I have verified that it works with a ForeRunnerLE 25 and a Speedstream 3010 (the latter seems to be very popular with ISP's). You can also try the small pppoa.c sample here, it sends a valid PPP configure request to a client and reads back the response. A correct run should be similar to this: [axboe@x86 pppd]$ ./pppoa connecting on vci 0.0.101 Sending Configure-Request - sent 24 bytes c0 21 01 01 00 11 05 06 00 cd 3c a2 07 02 08 02 0d 03 06 00 00 00 00 00 Reading reply - recv 17 bytes c0 21 01 01 00 0f 03 05 c2 23 05 05 06 36 2b b4 34 The actual output from the modem may vary of course, what matters is that you receive a response! The sample expects the ATM interface to be 0 and the other end to listen to (vpi.vci) 0.101, so you might have to change that depending on your setup (there are two defines at the top of the file). Acknowledgements ---------------- Big thanks to Mitchell Blank for writing the Speedstream driver, initial PPPoATM kernel support, and for answering a lot of my stupid questions. The pppd changes were inspired by the PPPoE work done by Michal Ostrowski (found at http://www.math.uwaterloo.ca/~mostrows/). Jens Axboe , 20000121