Index of /pub/linux/kernel/people/axboe/PPPoATM/2.3.39

      Name                   Last modified       Size  Description

[DIR] Parent Directory 16-Jan-2001 18:02 0k [   ] CHANGES 21-Jan-2000 03:22 1k [   ] atmppp-2.3.39-2.diff...21-Jan-2000 03:22 48k [   ] atmppp-2.3.39-2.diff...21-Jan-2000 03:22 1k [   ] atmppp-2.3.39-2.diff.gz21-Jan-2000 03:22 55k [   ] atmppp-2.3.39-2.diff...21-Jan-2000 03:22 1k [DIR] old/ 10-Oct-2000 08:46 0k [   ] pppoa.c 21-Jan-2000 03:22 2k [   ] pppoatm-pppd-2.3.11-2..21-Jan-2000 03:22 5k [   ] pppoatm-pppd-2.3.11-2..21-Jan-2000 03:22 1k [   ] pppoatm-pppd-2.3.11-2..21-Jan-2000 03:22 5k [   ] pppoatm-pppd-2.3.11-2..21-Jan-2000 03:22 1k

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.


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
3) Rebuild the kernel and modules, install, and boot it.
4) Grab ppp-2.3.11, apply pppoatm-pppd patch, configure, compile,
   and install.


Your /etc/ppp/options should contain something like this:

user "user@isp"
name siemens
vci 101
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
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.


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).


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

Jens Axboe <>, 20000121