Blame view

Documentation/networking/generic-hdlc.txt 4.28 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
2
  Generic HDLC layer
  Krzysztof Halasa <khc@pm.waw.pl>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
3
4
5
  
  
  Generic HDLC layer currently supports:
e022c2f07   Krzysztof Hałasa   WAN: new synchron...
6
  1. Frame Relay (ANSI, CCITT, Cisco and no LMI)
b3dd65f95   Krzysztof Halasa   [PATCH] Generic H...
7
8
9
10
11
     - Normal (routed) and Ethernet-bridged (Ethernet device emulation)
       interfaces can share a single PVC.
     - ARP support (no InARP support in the kernel - there is an
       experimental InARP user-space daemon available on:
       http://www.kernel.org/pub/linux/utils/net/hdlc/).
e022c2f07   Krzysztof Hałasa   WAN: new synchron...
12
13
14
  2. raw HDLC - either IP (IPv4) interface or Ethernet device emulation
  3. Cisco HDLC
  4. PPP
b3dd65f95   Krzysztof Halasa   [PATCH] Generic H...
15
16
17
18
  5. X.25 (uses X.25 routines).
  
  Generic HDLC is a protocol driver only - it needs a low-level driver
  for your particular hardware.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
19
20
21
22
23
24
25
26
  
  Ethernet device emulation (using HDLC or Frame-Relay PVC) is compatible
  with IEEE 802.1Q (VLANs) and 802.1D (Ethernet bridging).
  
  
  Make sure the hdlc.o and the hardware driver are loaded. It should
  create a number of "hdlc" (hdlc0 etc) network devices, one for each
  WAN port. You'll need the "sethdlc" utility, get it from:
b3dd65f95   Krzysztof Halasa   [PATCH] Generic H...
27
  	http://www.kernel.org/pub/linux/utils/net/hdlc/
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
  
  Compile sethdlc.c utility:
  	gcc -O2 -Wall -o sethdlc sethdlc.c
  Make sure you're using a correct version of sethdlc for your kernel.
  
  Use sethdlc to set physical interface, clock rate, HDLC mode used,
  and add any required PVCs if using Frame Relay.
  Usually you want something like:
  
  	sethdlc hdlc0 clock int rate 128000
  	sethdlc hdlc0 cisco interval 10 timeout 25
  or
  	sethdlc hdlc0 rs232 clock ext
  	sethdlc hdlc0 fr lmi ansi
  	sethdlc hdlc0 create 99
  	ifconfig hdlc0 up
  	ifconfig pvc0 localIP pointopoint remoteIP
  
  In Frame Relay mode, ifconfig master hdlc device up (without assigning
  any IP address to it) before using pvc devices.
  
  
  Setting interface:
  
  * v35 | rs232 | x21 | t1 | e1 - sets physical interface for a given port
                                  if the card has software-selectable interfaces
    loopback - activate hardware loopback (for testing only)
b3dd65f95   Krzysztof Halasa   [PATCH] Generic H...
55
56
57
58
59
  * clock ext - both RX clock and TX clock external
  * clock int - both RX clock and TX clock internal
  * clock txint - RX clock external, TX clock internal
  * clock txfromrx - RX clock external, TX clock derived from RX clock
  * rate - sets clock rate in bps (for "int" or "txint" clock only)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
  
  Setting protocol:
  
  * hdlc - sets raw HDLC (IP-only) mode
    nrz / nrzi / fm-mark / fm-space / manchester - sets transmission code
    no-parity / crc16 / crc16-pr0 (CRC16 with preset zeros) / crc32-itu
    crc16-itu (CRC16 with ITU-T polynomial) / crc16-itu-pr0 - sets parity
  
  * hdlc-eth - Ethernet device emulation using HDLC. Parity and encoding
    as above.
  
  * cisco - sets Cisco HDLC mode (IP, IPv6 and IPX supported)
    interval - time in seconds between keepalive packets
    timeout - time in seconds after last received keepalive packet before
              we assume the link is down
  
  * ppp - sets synchronous PPP mode
  
  * x25 - sets X.25 mode
  
  * fr - Frame Relay mode
b3dd65f95   Krzysztof Halasa   [PATCH] Generic H...
81
    lmi ansi / ccitt / cisco / none - LMI (link management) type
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
    dce - Frame Relay DCE (network) side LMI instead of default DTE (user).
    It has nothing to do with clocks!
    t391 - link integrity verification polling timer (in seconds) - user
    t392 - polling verification timer (in seconds) - network
    n391 - full status polling counter - user
    n392 - error threshold - both user and network
    n393 - monitored events count - both user and network
  
  Frame-Relay only:
  * create n | delete n - adds / deletes PVC interface with DLCI #n.
    Newly created interface will be named pvc0, pvc1 etc.
  
  * create ether n | delete ether n - adds a device for Ethernet-bridged
    frames. The device will be named pvceth0, pvceth1 etc.
  
  
  
  
  Board-specific issues
  ---------------------
  
  n2.o and c101.o need parameters to work:
  
  	insmod n2 hw=io,irq,ram,ports[:io,irq,...]
  example:
  	insmod n2 hw=0x300,10,0xD0000,01
  
  or
  	insmod c101 hw=irq,ram[:irq,...]
  example:
  	insmod c101 hw=9,0xdc000
  
  If built into the kernel, these drivers need kernel (command line) parameters:
  	n2.hw=io,irq,ram,ports:...
  or
  	c101.hw=irq,ram:...
b3dd65f95   Krzysztof Halasa   [PATCH] Generic H...
118
119
  If you have a problem with N2, C101 or PLX200SYN card, you can issue the
  "private" command to see port's packet descriptor rings (in kernel logs):
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
120
121
  
  	sethdlc hdlc0 private
b3dd65f95   Krzysztof Halasa   [PATCH] Generic H...
122
  The hardware driver has to be build with #define DEBUG_RINGS.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
123
124
  Attaching this info to bug reports would be helpful. Anyway, let me know
  if you have problems using this.
b3dd65f95   Krzysztof Halasa   [PATCH] Generic H...
125
126
  For patches and other info look at:
  <http://www.kernel.org/pub/linux/utils/net/hdlc/>.