Understanding plipconfig: A Historical Perspective

plipconfig is a legacy utility used to fine-tune timing parameters for the Parallel Line Internet Protocol (PLIP), a protocol that allowed two computers to communicate over a parallel port connection. Part of the net-tools package, plipconfig was a specialized tool in the early days of Linux networking. PLIP itself implements the Crynwr parallel port transfer standard and was particularly useful for connecting machines that lacked Ethernet hardware. While rarely used today due to the availability of faster alternatives like USB and Ethernet, both PLIP and plipconfig remain part of the Linux kernel and net-tools, respectively. In this article, we explore the historical context of plipconfig and PLIP, their components, and how they were used.

Table of Contents#

  1. What is plipconfig?
  2. Components of plipconfig
  3. Historical Usage
  4. Security Considerations
  5. Historical Maintenance Practices
  6. Historical Example Usage
  7. Alternatives and Legacy
  8. References

What is plipconfig?#

plipconfig is a utility from the net-tools package that enables fine-tuning of timing parameters for the Parallel Line Internet Protocol (PLIP). PLIP is a protocol that transports IP packets over a parallel port connection, implementing the Crynwr parallel port transfer standard originally devised by Russ Nelson. plipconfig adjusts the nibble wait and trigger wait values to optimize PLIP performance based on hardware, cable length, and CPU speed.

It is important to note that plipconfig only handles timing parameters. IP address assignment and network configuration for PLIP interfaces are handled by tools like ifconfig or ip. While PLIP is rarely used in modern setups due to faster alternatives like USB and Ethernet, plipconfig is still part of net-tools and remains available in distributions that ship the package. The tool is most useful in IRQ-less mode scenarios, where the trigger timeout may need to be increased to prevent timeouts during polling-based operation.

Components of plipconfig#

Nibble Wait (nibble)#

The nibble wait value specifies the timeout in microseconds for the handshake response during a data transfer. The default value is 3000 microseconds (3 milliseconds). Lowering this value can improve transfer speed, but values that are too low may cause excess CPU usage, poor interrupt response time (resulting in serial ports dropping characters), or dropped PLIP packets.

Trigger Wait (trigger)#

The trigger wait value specifies the time in microseconds that the PLIP protocol waits for a trigger signal before timing out. The default value is 500 microseconds (0.5 milliseconds). In IRQ-less mode—where the PLIP driver polls the parallel port instead of responding to interrupts—the trigger timeout on the receiving side may need to be increased to approximately 10,000 microseconds to prevent frequent timeouts. The man page also notes that changing the PLIP MTU can affect speed.

Historical Usage#

Initial Setup#

  • Configure PLIP Interface with ifconfig/ip: Before using plipconfig, users would first set up the PLIP interface using tools like ifconfig or ip to assign IP addresses and configure basic network settings. For example: ifconfig plip0 192.168.1.1 pointopoint 192.168.1.2.
  • Connect a Null-Printer Cable: PLIP required a LapLink (null-printer) cable connecting the parallel ports of two machines. This cable transfers data four bits at a time (in nibbles) using data bit outputs connected to status bit inputs.
  • Check Parallel Port Compatibility: Users would ensure that the parallel ports on both computers were functioning correctly. Bi-directional parallel ports enabled faster byte-wide transfers (Mode 1), while standard unidirectional printer ports used the slower nibble-based mode (Mode 0).

Tuning (Historical)#

  • Check Current PLIP Timing Parameters: Users would first check the current timing settings using plipconfig with just the interface name (e.g., sudo plipconfig plip0).
  • Adjust Nibble Wait Value: If needed, users would lower the nibble wait value to improve transfer speed. The man page warns that values which are too low may cause excess CPU usage or dropped packets.
  • Adjust Trigger Wait Value: Similarly, the trigger wait value could be adjusted. In IRQ-less mode (where no interrupt is configured for the parallel port), the trigger timeout often needed to be increased to around 10,000 microseconds on the receiving machine to prevent timeouts between polls.
  • Consider Long Cable Runs: The man page notes that the default parameters will be too fast mainly when using very long cables, as the parallel port was not designed for driving long cable runs.

Security Considerations#

PLIP connections are direct point-to-point links with no built-in encryption or authentication. When PLIP was in use, several precautions were recommended:

  • Limit Physical Access: Since PLIP relies on a physical parallel port cable, restricting access to the machines and the cable itself was the primary security measure.
  • Apply Firewall Rules: Firewall rules (using iptables or similar) were applied to the PLIP interface to block unauthorized network traffic.
  • Minimize Exposed Services: Only necessary services were allowed to listen on the PLIP interface to reduce the attack surface.

Historical Maintenance Practices#

When PLIP was actively used, regular monitoring helped ensure reliable operation:

  • Check Interface Status: Use ifconfig plip0 (or ip link show plip0) to inspect the interface for errors, dropped packets, or abnormal behavior.
  • Review System Logs: Kernel messages related to PLIP timeouts or parallel port issues would appear in system logs (e.g., dmesg or /var/log/syslog).
  • Test Connectivity: Simple ping commands over the PLIP link verified that the connection was functioning and that timing parameters were appropriate.

Historical Example Usage#

Step 1: Check Current PLIP Timing Parameters#

sudo plipconfig plip0

Historically, this command would display the current timing parameters for the plip0 interface, including the nibble wait and trigger wait values.

Step 2: Adjust Nibble Wait Value#

sudo plipconfig plip0 nibble 2000

Historically, this would set the nibble wait value to 2000 units (lower than the default 3000). This could potentially improve performance on compatible hardware.

Step 3: Adjust Trigger Wait Value#

sudo plipconfig plip0 trigger 400

Historically, this would set the trigger wait value to 400 units (lower than the default 500). Both parameters could be adjusted together as needed.

Step 4: Verify Changes#

sudo plipconfig plip0

Historically, this command would be used again to confirm that the timing parameter changes had been applied successfully.

Alternatives and Legacy#

PLIP and plipconfig served a specific niche in an era when Ethernet adapters were expensive or unavailable. Today, several technologies have replaced PLIP for direct computer-to-computer connections:

  • USB host-to-host bridges: Provide faster transfer rates and simpler setup.
  • Ethernet crossover cables: Offer standard, high-speed point-to-point networking.
  • Wi-Fi Direct and Bluetooth: Enable wireless peer-to-peer communication.
  • Serial Line Internet Protocol (SLIP): An analogous protocol for serial ports, though also largely obsolete.

Despite being rarely used, the PLIP driver remains in the Linux kernel, and plipconfig is still part of the net-tools package. The net-tools project continues to receive maintenance, with commits as recent as 2026.

References#