MirBSD manpage: plip(4)
PLIP(4) BSD Programmer's Manual (i386) PLIP(4)
plip - networking via the standard PC parallel port
option PLIP # Ethernet over parallel port
lpt0 at isa? port 0x378 irq 7 # standard PC parallel ports
lpt1 at isa? port 0x278 irq 5
lpt2 at isa? port 0x3bc # Hercules cards don't have an IRQ
The plip network interface shows up as plip0 when using lpt0, as plip1
when using lpt1, and as 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" (formerly) 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 neighbour. This is inefficient but provides interoperability with
other operating systems.
Set the link2 flag on the interface if it is not working. Please report
back if it helps for you.
plip uses the (Linux-compatible) Crynwr protocol (CLPIP, Crynwr line-
printer IP) defined by Russel Nelson <nelson@crynwr.com>. This makes it
interoperable with the (formerly GPL-licenced, now Public Domain) packet
driver "PLIP.COM" available from http://www.crynwr.com/drivers/plip.zip
for MS-DOS, as well as Linux 1.3 (make sure to configure the interface to
use ARP when connecting to a Linux system) and up.
The following describes the connection of two male 25 pin Sub-D connec-
tors which fit into standard PC parallel ports (not to be confused with
Centronics connectors, which fit into dot-matrix printers of that time).
In Linux, this is known as a "Parallel Transfer Mode 0 Cable".
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
STROBE(1), D5(7), D6(8), D7(9), and FEED/AUTOFD(14). Linux suggests to
not connect INIT(16) either. FreeBSD recently suggests to not connect
both INIT(16) and SLCTIN(17).
ifconfig(8), pppd(8), slip(8)
Matthias Pfaller wrote the original NetBSD pc532 version.
Martin Husemann ported it to the NetBSD i386 .
Thorsten Glaser first ported the port of the NetBSD i386 version for
OpenBSD by Pablo Ruiz Garcia to MirBSD, then re-did the port using a
newer NetBSD source version for MirBSD #7.
The plip driver has not yet been successfully tested on MirBSD.
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. FreeBSD does this, but it makes it im-
possible to communicate with MS-DOS and Linux boxen.
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 the current 4 bit)
data path out of this. In Linux, this is known as a "Parallel Transfer
Mode 1 Cable". 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.
The plip driver is said to currently be unable to drive a protocol other
than IPv4.
Go buy a pocket Ethernet adaptor or a PCMCIA Ethernet adapter and write a
driver for it. It has much better throughput, lower load, and a less cou-
pled system between client and server.
MirBSD #10-current September 2, 2016 1