1 .. SPDX-License-Identifier: GPL-2.0
7 Krzysztof Halasa <khc@pm.waw.pl>
10 Generic HDLC layer currently supports:
12 1. Frame Relay (ANSI, CCITT, Cisco and no LMI)
14 - Normal (routed) and Ethernet-bridged (Ethernet device emulation)
15 interfaces can share a single PVC.
16 - ARP support (no InARP support in the kernel - there is an
17 experimental InARP user-space daemon available on:
18 http://www.kernel.org/pub/linux/utils/net/hdlc/).
20 2. raw HDLC - either IP (IPv4) interface or Ethernet device emulation
23 5. X.25 (uses X.25 routines).
25 Generic HDLC is a protocol driver only - it needs a low-level driver
26 for your particular hardware.
28 Ethernet device emulation (using HDLC or Frame-Relay PVC) is compatible
29 with IEEE 802.1Q (VLANs) and 802.1D (Ethernet bridging).
32 Make sure the hdlc.o and the hardware driver are loaded. It should
33 create a number of "hdlc" (hdlc0 etc) network devices, one for each
34 WAN port. You'll need the "sethdlc" utility, get it from:
36 http://www.kernel.org/pub/linux/utils/net/hdlc/
38 Compile sethdlc.c utility::
40 gcc -O2 -Wall -o sethdlc sethdlc.c
42 Make sure you're using a correct version of sethdlc for your kernel.
44 Use sethdlc to set physical interface, clock rate, HDLC mode used,
45 and add any required PVCs if using Frame Relay.
46 Usually you want something like::
48 sethdlc hdlc0 clock int rate 128000
49 sethdlc hdlc0 cisco interval 10 timeout 25
53 sethdlc hdlc0 rs232 clock ext
54 sethdlc hdlc0 fr lmi ansi
55 sethdlc hdlc0 create 99
57 ifconfig pvc0 localIP pointopoint remoteIP
59 In Frame Relay mode, ifconfig master hdlc device up (without assigning
60 any IP address to it) before using pvc devices.
65 * v35 | rs232 | x21 | t1 | e1
66 - sets physical interface for a given port
67 if the card has software-selectable interfaces
69 - activate hardware loopback (for testing only)
71 - both RX clock and TX clock external
73 - both RX clock and TX clock internal
75 - RX clock external, TX clock internal
77 - RX clock external, TX clock derived from RX clock
79 - sets clock rate in bps (for "int" or "txint" clock only)
84 * hdlc - sets raw HDLC (IP-only) mode
86 nrz / nrzi / fm-mark / fm-space / manchester - sets transmission code
88 no-parity / crc16 / crc16-pr0 (CRC16 with preset zeros) / crc32-itu
90 crc16-itu (CRC16 with ITU-T polynomial) / crc16-itu-pr0 - sets parity
92 * hdlc-eth - Ethernet device emulation using HDLC. Parity and encoding
95 * cisco - sets Cisco HDLC mode (IP, IPv6 and IPX supported)
97 interval - time in seconds between keepalive packets
99 timeout - time in seconds after last received keepalive packet before
100 we assume the link is down
102 * ppp - sets synchronous PPP mode
104 * x25 - sets X.25 mode
106 * fr - Frame Relay mode
108 lmi ansi / ccitt / cisco / none - LMI (link management) type
110 dce - Frame Relay DCE (network) side LMI instead of default DTE (user).
112 It has nothing to do with clocks!
114 - t391 - link integrity verification polling timer (in seconds) - user
115 - t392 - polling verification timer (in seconds) - network
116 - n391 - full status polling counter - user
117 - n392 - error threshold - both user and network
118 - n393 - monitored events count - both user and network
122 * create n | delete n - adds / deletes PVC interface with DLCI #n.
123 Newly created interface will be named pvc0, pvc1 etc.
125 * create ether n | delete ether n - adds a device for Ethernet-bridged
126 frames. The device will be named pvceth0, pvceth1 etc.
131 Board-specific issues
132 ---------------------
134 n2.o and c101.o need parameters to work::
136 insmod n2 hw=io,irq,ram,ports[:io,irq,...]
140 insmod n2 hw=0x300,10,0xD0000,01
144 insmod c101 hw=irq,ram[:irq,...]
148 insmod c101 hw=9,0xdc000
150 If built into the kernel, these drivers need kernel (command line) parameters::
152 n2.hw=io,irq,ram,ports:...
160 If you have a problem with N2, C101 or PLX200SYN card, you can issue the
161 "private" command to see port's packet descriptor rings (in kernel logs)::
163 sethdlc hdlc0 private
165 The hardware driver has to be build with #define DEBUG_RINGS.
166 Attaching this info to bug reports would be helpful. Anyway, let me know
167 if you have problems using this.
169 For patches and other info look at:
170 <http://www.kernel.org/pub/linux/utils/net/hdlc/>.