NAME
lp — printer port Internet Protocol driverSYNOPSIS
ifconfig |
plip0
myaddress hisaddress
[-link0]
device ppbus device plip device ppc |
DESCRIPTION
The lp driver allows a PC parallel printer port to be used as a point-to-point network interface between two similarly configured systems. Data is transferred 4 bits at a time, using the printer status lines for input: hence there is no requirement for special bidirectional hardware and any standard AT-compatible printer port with working interrupts may be used. During the boot process, for each plip device which is probed and has an interrupt assigned, a corresponding network device is created. Configuring an lp device with ifconfig(8) causes the corresponding parallel port bus to be reserved for PLIP until the network interface is configured 'down'. The communication protocol is selected by the link0 flag:- -link0
- (default) Use FreeBSD mode (LPIP). This is the simpler of the two modes and therefore slightly more efficient.
- link0
- Use Crynwr/Linux compatible mode (CLPIP). This mode has a simulated Ethernet packet header, and is easier to interface to other types of equipment.
Cable Connections
The cable connecting the two parallel ports should be wired as follows:Pin Pin Description 2 15 Data0 -> ERROR* 3 13 Data1 -> SLCT 4 12 Data2 -> PE 5 10 Data3 -> ACK* 6 11 Data4 -> BUSY 15 2 ERROR* -> Data0 13 3 SLCT -> Data1 12 4 PE -> Data2 10 5 ACK* -> Data3 11 6 BUSY -> Data4 18-25 18-25 Ground
FreeBSD LPIP mode
The signal lines are used as follows:- Data0 (Pin 2)
- Data out, bit 0.
- Data1 (Pin 3)
- Data out, bit 1.
- Data2 (Pin 4)
- Data out, bit 2.
- Data3 (Pin 5)
- Handshake out.
- Data4 (Pin 6)
- Data out, bit 3.
- ERROR* (pin 15)
- Data in, bit 0.
- SLCT (pin 13)
- Data in, bit 1.
- PE (pin 12)
- Data in, bit 2.
- BUSY (pin 11)
- Data in, bit 3.
- ACK* (pin 10)
- Handshake in.
Crynwr/Linux CLPIP mode
The signal lines are used as follows:- Data0 (Pin 2)
- Data out, bit 0.
- Data1 (Pin 3)
- Data out, bit 1.
- Data2 (Pin 4)
- Data out, bit 2.
- Data3 (Pin 5)
- Data out, bit 3.
- Data4 (Pin 6)
- Handshake out.
- ERROR* (pin 15)
- Data in, bit 0.
- SLCT (pin 13)
- Data in, bit 1.
- PE (pin 12)
- Data in, bit 2.
- ACK* (pin 10)
- Data in, bit 3.
- BUSY (pin 11)
- Handshake in.
Length (least significant byte) Length (most significant byte) 12 bytes of supposed MAC addresses (ignored by FreeBSD). Fixed byte 0x08 Fixed byte 0x00 <IP datagram> Checksum byte.
SEE ALSO
ppbus(4), ppc(4), ifconfig(8)BUGS
Busy-waiting loops are used while handshaking bytes, (and worse still when waiting for the receiving system to respond to an interrupt for the start of a packet). Hence a fast system talking to a slow one will consume excessive amounts of CPU. This is unavoidable in the case of CLPIP mode due to the choice of handshake lines; it could theoretically be improved in the case of LPIP mode. Polling timeouts are controlled by counting loop iterations rather than timers, and so are dependent on CPU speed. This is somewhat stabilised by the need to perform (slow) ISA bus cycles to actually read the port.March 4, 1996 | Debian |