NAME

plip - networking via the standard PC parallel port

SYNOPSIS

options PLIP
#options PLIP_NO_INCOLL # might help if not working otherwise
lpt0 at isa? port 0x378 irq 7
lpt1 at isa? port 0x278 irq 5
lpt2 at isa? port 0x3bc irq 5

DESCRIPTION

The plip network interface shows up as plip0 when using lpt0, as plip1 when using lpt1 and plip2 when using lpt2.

A parallel port can not drive a plip interface when configured without an irq. The port can be used to drive other devices when the corresponding plip interface is configured down.

The plip interface simulates Ethernet on a parallel cable with special wiring (see below), known as a parallel LapLink cable widely available from PC shops.

Its acronym is derived from SLIP and means Parallel IP Protocol, which, in fact, is wrong: it can handle any protocol available on Ethernet, not just IP.

Although a plip connection always is point-to-point, the interface is configured like every standard Ethernet interface and uses ARP to find its neighbor. This is inefficient, but provides interoperability with other operating systems.

INTEROPERABILITY

plip uses the Crynwr protocol defined by Russel Nelson. This makes it interoperable with the DOS packet driver PLIP.COM and Linux (make sure to configure the interface to use ARP when connecting to a Linux system.)

WIRING

The following describes the connection of two male 25 pin sub-D connectors which fit into standard PC parallel ports (no, PC's don't use Centronics connectors).
INIT(16)
INIT(16)
SLCTIN(17)
SLCTIN(17)
GROUND(25)
GROUND(25)
D0(2)
ERROR(15)
D1(3)
SLCT(13)
D2(4)
PAPOUT(12)
D3(5)
ACK(10)
D4(6)
BUSY(11)

Additional grounds are 18, 19, 20, 21, 22, 23 and 24. Do not connect D5(7), D6(8), D7(9), STROBE(1) and FEED(14).

SEE ALSO

ifconfig(8), pppd(8), slip(8)

AUTHORS

Matthias Pfaller wrote the original NetBSD/pc532 version.

Martin Husemann ported it to the NetBSD/i386.

BUGS

The driver uses a hard-coded network soft interrupt, which is the only thing that makes it i386 architecture dependent. As soon as generic soft interrupt allocation is available, this should be changed, which would make the driver machine independent (but still dependent on the ISA parallel port architecture).

The protocol is too much overhead, a bidirectional input/output routine switchable to a well-designed network line discipline with on-line compression would be far superior.

There are some parallel ports which can use all 8 data bits for input and output, you can make up a parallel handshake protocol and a cable with different wiring to get an 8 bit clean (instead of 4 bit now) data path out of this. This is currently not supported.

There is apparently work on the way (the parbus) which will integrate this and other parallel-port devices (zip drives e.a.) more smoothly.

HINTS

Go buy a pocket Ethernet adaptor or a PCMCIA Ethernet adaptor and write a driver for it. It has much better throughput, lower load and a less coupled system between client and server.