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