This is an open-source Unix device driver for PCI-bus wide-area network interface cards. It sends and receives packets in HDLC frames over synchronous circuits. A computer plus
UNIX plus some LMC cards makes an
open wide-area network router.
The
lmc driver works with FreeBSD, NetBSD, OpenBSD, BSD/OS, and Linux OSs. It has been tested on i386 (SMP 32-bit little-end), PowerPC (32-bit big-end), Alpha (64-bit little-end), and Sparc (64-bit big-end) architectures.
The
lmc driver works with the following cards:
LMC5200
HSSI—High Speed Serial Interface,
EIA612/613, 50-pin connector,
0 to 52 Mb/s, DTE only.
LMC5245
T3, 2xBNC conns, 75 ohm
C-Parity or M13 Framing,
DSX-3 up to 910 ft.
LMC1000
SSI—Synchronous Serial Interface,
V.35, X.21, EIA449, EIA530(A), EIA232,
0 to 10 Mb/s, DTE or DCE.
LMC1200
T1/E1, RJ45 conn, 100 or 120 ohms,
T1-B8ZS-ESF, T1-AMI-SF, E1-HDB3-many,
DSX-1 up to 1500 ft; CSU up to 6 Kft.
LMC cards contain a high-performance
PCI interface, an
HDLC function and either integrated
modems (T1, T3) or
modem interfaces (HSSI and SSI).
PCI
The PCI interface is a DEC 21140A Tulip Fast Ethernet chip. This chip has an efficient PCI implementation with scatter/gather DMA, and can run at 100 Mb/s full duplex (twice as fast as needed here).
HDLC
The HDLC functions (ISO-3309: flags, bit-stuffing, CRC) are implemented in a Field Programmable Gate Array (FPGA) which talks to the Ethernet chip through a Media Independent Interface (MII). The hardware in the FPGA translates between Ethernet packets and HDLC frames on-the-fly; think of it as a WAN PHY chip for Ethernet.
Modem
The modem chips are the main differences between cards. HSSI cards use ECL10K chips to implement the EIA-612/613 interface. T3 cards use a TranSwitch TXC-03401 framer chip. SSI cards use Linear Technology LTC1343 modem interface chips. T1 cards use a BrookTree/Conexant/Mindspeed Bt8370 framer and line interface chip.
Line protocol stacks exist above device drivers and below internet protocol stacks. They typically encapsulate packets in HDLC frames and deal with higher-level issues like protocol multiplexing and security. The driver is compatible with several line protocol stacks:
SPPP
sppp(4) implements Synchronous-PPP and Cisco-HDLC in the kernel.
RawIP
The null line protocol, built into the driver, sends and receives raw IPv4 and IPv6 packets in HDLC frames with no extra bytes of overhead and no state at the end points.