~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/networking/generic-hdlc.rst

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 .. SPDX-License-Identifier: GPL-2.0
  2 
  3 ==================
  4 Generic HDLC layer
  5 ==================
  6 
  7 Krzysztof Halasa <khc@pm.waw.pl>
  8 
  9 
 10 Generic HDLC layer currently supports:
 11 
 12 1. Frame Relay (ANSI, CCITT, Cisco and no LMI)
 13 
 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/).
 19 
 20 2. raw HDLC - either IP (IPv4) interface or Ethernet device emulation
 21 3. Cisco HDLC
 22 4. PPP
 23 5. X.25 (uses X.25 routines).
 24 
 25 Generic HDLC is a protocol driver only - it needs a low-level driver
 26 for your particular hardware.
 27 
 28 Ethernet device emulation (using HDLC or Frame-Relay PVC) is compatible
 29 with IEEE 802.1Q (VLANs) and 802.1D (Ethernet bridging).
 30 
 31 
 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:
 35 
 36         http://www.kernel.org/pub/linux/utils/net/hdlc/
 37 
 38 Compile sethdlc.c utility::
 39 
 40         gcc -O2 -Wall -o sethdlc sethdlc.c
 41 
 42 Make sure you're using a correct version of sethdlc for your kernel.
 43 
 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::
 47 
 48         sethdlc hdlc0 clock int rate 128000
 49         sethdlc hdlc0 cisco interval 10 timeout 25
 50 
 51 or::
 52 
 53         sethdlc hdlc0 rs232 clock ext
 54         sethdlc hdlc0 fr lmi ansi
 55         sethdlc hdlc0 create 99
 56         ifconfig hdlc0 up
 57         ifconfig pvc0 localIP pointopoint remoteIP
 58 
 59 In Frame Relay mode, ifconfig master hdlc device up (without assigning
 60 any IP address to it) before using pvc devices.
 61 
 62 
 63 Setting interface:
 64 
 65 * v35 | rs232 | x21 | t1 | e1
 66     - sets physical interface for a given port
 67       if the card has software-selectable interfaces
 68   loopback
 69     - activate hardware loopback (for testing only)
 70 * clock ext
 71     - both RX clock and TX clock external
 72 * clock int
 73     - both RX clock and TX clock internal
 74 * clock txint
 75     - RX clock external, TX clock internal
 76 * clock txfromrx
 77     - RX clock external, TX clock derived from RX clock
 78 * rate
 79     - sets clock rate in bps (for "int" or "txint" clock only)
 80 
 81 
 82 Setting protocol:
 83 
 84 * hdlc - sets raw HDLC (IP-only) mode
 85 
 86   nrz / nrzi / fm-mark / fm-space / manchester - sets transmission code
 87 
 88   no-parity / crc16 / crc16-pr0 (CRC16 with preset zeros) / crc32-itu
 89 
 90   crc16-itu (CRC16 with ITU-T polynomial) / crc16-itu-pr0 - sets parity
 91 
 92 * hdlc-eth - Ethernet device emulation using HDLC. Parity and encoding
 93   as above.
 94 
 95 * cisco - sets Cisco HDLC mode (IP, IPv6 and IPX supported)
 96 
 97   interval - time in seconds between keepalive packets
 98 
 99   timeout - time in seconds after last received keepalive packet before
100             we assume the link is down
101 
102 * ppp - sets synchronous PPP mode
103 
104 * x25 - sets X.25 mode
105 
106 * fr - Frame Relay mode
107 
108   lmi ansi / ccitt / cisco / none - LMI (link management) type
109 
110   dce - Frame Relay DCE (network) side LMI instead of default DTE (user).
111 
112   It has nothing to do with clocks!
113 
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
119 
120 Frame-Relay only:
121 
122 * create n | delete n - adds / deletes PVC interface with DLCI #n.
123   Newly created interface will be named pvc0, pvc1 etc.
124 
125 * create ether n | delete ether n - adds a device for Ethernet-bridged
126   frames. The device will be named pvceth0, pvceth1 etc.
127 
128 
129 
130 
131 Board-specific issues
132 ---------------------
133 
134 n2.o and c101.o need parameters to work::
135 
136         insmod n2 hw=io,irq,ram,ports[:io,irq,...]
137 
138 example::
139 
140         insmod n2 hw=0x300,10,0xD0000,01
141 
142 or::
143 
144         insmod c101 hw=irq,ram[:irq,...]
145 
146 example::
147 
148         insmod c101 hw=9,0xdc000
149 
150 If built into the kernel, these drivers need kernel (command line) parameters::
151 
152         n2.hw=io,irq,ram,ports:...
153 
154 or::
155 
156         c101.hw=irq,ram:...
157 
158 
159 
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)::
162 
163         sethdlc hdlc0 private
164 
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.
168 
169 For patches and other info look at:
170 <http://www.kernel.org/pub/linux/utils/net/hdlc/>.

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php