PPP over Ethernet for IRIX

From Higher Intellect Wiki
Jump to: navigation, search

Finding a PPPoE Implementation that Works!

Believe it or not, there actually is an IRIX PPPoE implementation out there that works. Check out article that I posted to comp.sys.sgi.apps about it.

My Broken Implementation

This is a seriously preliminary, pre-alpha implementation of PPP over Ethernet (RFC 2516) for IRIX. It doesn't completely work. It may crash your machine. It may mung your data. It is hard to install. I take no responsibility for its use or misuse. You have been warned.

Nevertheless, I'd appreciate it if people could give this a try and let me know how well it works. I no longer use a provider that implements PPPoE so it's doubtful that I'll do much more with this. If somebody could convert it to a STREAMS module, which will hopefully fix most of its current problems, that would be great!

The binary found here has been compiled using EGCS 1.1.2 on an R4400 Indigo running IRIX 6.5.3f. It may or may not work on other configurations. I would be very surprised if it ran under 6.2. You can also grab the source if you like.

Brief install instructions:

remote Any pppoe,e Any
  • Make an entry in /etc/ppp.conf similar to the following:
remote -recv_pap -recv_chap add_route out sync send_name=YOUR_USERID_HERE
send_passwd=YOUR_PASSWORD_HERE send_pap mtu=1400 -mp -pcomp -acomp -vj_comp
-vj_compslot -ccp -tx_predictor1 -tx_bsd -rx_predictor1 -rx_bsd

Replace YOUR_USERID_HERE and YOUR_PASSWORD_HERE with the appropriate values. Note that many Access Concentrators seem to expect the user ID to be of the form blah@yourisp.bla. Experiment to see what works.

  • Run pppoed as root. It will print a line telling you the PTY that it wants to use for communication with the PPP software.
  • Make an entry in /etc/uucp/Devices similar to the following:
pppoe ttyq2 - Any direct\

Replace ttyq2 with the PTY name that pppoed displayed.

  • Run the ppp software like so (as root, of course)
ppp -dd -r remote

This will print a reasonable amount of debugging info so that you can track what's going on. Add more 'd's (eg. -ddd) or remove them to get the amount of debugging info you desire. pppoed will also print the name of the Access Concentrator that it is using. This information likely won't be of much use to you but it's vaguely interesting.

You should now be able to perform a "netstat -in" and verify the PPP interface's IP address. Similarly "netstat -rn" should show a default route to the Access Concentrator. In order to get DNS working correctly you will have to make appropriate changes to /etc/resolv.conf.

Things To Watch Out For

There are some gotchas that you should be aware of:

  • It is slow. Don't expect to reach anything approaching the bandwidth of your connection. This is caused by the surly user space implementation and some cheesy memcpy()ing that I've done.
  • Output (ie. from your machine to the outside world) has some problems. It seems that the PPP driver wants to transmit packets that are larger than the link's MTU. You will likely be OK with telnet and web browsing and other simple stuff but FTPing out of your machine will almost surely not work.
  • The PPP software may stop LCP negotiation, not being able to agree on an MTU. If that happens try editing /var/sysgen/master.d/bsd to include the line
int maxethermtu = 1400;

and regenerate a kernel using autoconfig -f.

  • The protocol is incompletely implemented--some tags are not handled properly. While this shouldn't be that hard to fix I didn't have the energy to do it myself.

Share your opinion