Linux generic HDLC layer + DAHDI » History » Version 1
roox, 01/05/2021 10:02 PM
1 | 1 | roox | {{TOC}} |
---|---|---|---|
2 | |||
3 | h1. Linux generic HDLC layer |
||
4 | |||
5 | The generic HDLC layer for Linux currently supports: |
||
6 | * Frame Relay (ANSI, CCITT, Cisco and no LMI) |
||
7 | ** Normal (routed) and Ethernet-bridged (Ethernet device emulation) interfaces can share a single PVC. |
||
8 | ** ARP support (no "InARP":https://tools.ietf.org/html/rfc2390 support in the kernel - there is an experimental InARP user-space daemon "available":https://kernel.org/pub/linux/utils/net/hdlc/. |
||
9 | * raw HDLC - either IP (IPv4) interface or Ethernet device emulation |
||
10 | * Cisco HDLC |
||
11 | * PPP |
||
12 | * X.25 (uses X.25 routines). |
||
13 | |||
14 | Generic HDLC is a protocol driver only - it needs a low-level driver for your particular hardware (e.g. DAHDI with nethdlc). |
||
15 | |||
16 | Ethernet device emulation (using HDLC or Frame-Relay PVC) is compatible with IEEE 802.1Q (VLANs) and 802.1D (Ethernet bridging). |
||
17 | |||
18 | Make sure the hdlc.ko and the hardware driver are loaded. It should create a number of "hdlc" (hdlc0 etc) network devices, one for each |
||
19 | WAN port. You'll need the "sethdlc" utility, get it from: |
||
20 | http://www.kernel.org/pub/linux/utils/net/hdlc/ |
||
21 | |||
22 | Make sure you're using a correct version of sethdlc for your kernel. |
||
23 | The current version is 4, see _GENERIC_HDLC_VERSION_ in "include/uapi/linux/hdlc/ioctl.h":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/hdlc/ioctl.h |
||
24 | |||
25 | Use sethdlc to set physical interface, HDLC mode used, and add any required PVCs if using Frame Relay. |
||
26 | Usually you want something like: |
||
27 | |||
28 | <pre> |
||
29 | sethdlc hdlc0 cisco interval 10 timeout 25 |
||
30 | # or |
||
31 | sethdlc hdlc0 fr lmi ansi |
||
32 | sethdlc hdlc0 create 99 |
||
33 | ip link set hdlc0 up |
||
34 | ip address add localIP peer remoteIP dev pvc0 |
||
35 | </pre> |
||
36 | |||
37 | In Frame Relay mode, the "master" hdlcX device has to be setup (without assigning any IP address to it) before you can use pvcX devices. |
||
38 | |||
39 | e.g. ip link set hdlc0 up |
||
40 | |||
41 | |||
42 | *Upstream documentation* |
||
43 | https://www.kernel.org/doc/Documentation/networking/generic-hdlc.txt |
||
44 | |||
45 | *Upstream of "sethdlc" and "inarpd"* |
||
46 | https://kernel.org/pub/linux/utils/net/hdlc/ |
||
47 | |||
48 | *Upstream kernel code* |
||
49 | include/linux/hdlc.h "mainline":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/linux/hdlc.h "net":https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/tree/include/include/linux/hdlc.h "net-next":https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/tree/include/uapi/include/linux/hdlc.h |
||
50 | include/uapi/linux/hdlc.h "mainline":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/hdlc.h "net":https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/tree/include/uapi/linux/hdlc.h "net-next":https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/tree/include/uapi/linux/hdlc.h |
||
51 | include/uapi/linux/hdlc/ioctl.h "mainline":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/hdlc/ioctl.h "net":https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/tree/include/uapi/linux/hdlc/ioctl.h "net-next":https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/tree/include/uapi/linux/hdlc/ioctl.h |
||
52 | drivers/net/wan/hdlc.c "mainline":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/wan/hdlc.c "net":https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/tree/drivers/net/wan/hdlc.c "net-next":https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/tree/drivers/net/wan/hdlc.c |
||
53 | drivers/net/wan/hdlc_cisco.c "mainline":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/wan/hdlc_cisco.c "net":https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/tree/drivers/net/wan/hdlc_cisco.c "net-next":https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/tree/drivers/net/wan/hdlc_cisco.c |
||
54 | drivers/net/wan/hdlc_fr.c "mainline":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/wan/hdlc_fr.c "net":https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/tree/drivers/net/wan/hdlc_fr.c "net-next":https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/tree/drivers/net/wan/hdlc_fr.c |
||
55 | drivers/net/wan/hdlc_ppp.c "mainline":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/wan/hdlc_ppp.c "net":https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/tree/drivers/net/wan/hdlc_ppp.c "net-next":https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/tree/drivers/net/wan/hdlc_ppp.c |
||
56 | drivers/net/wan/hdlc_raw.c "mainline":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/wan/hdlc_raw.c "net":https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/tree/drivers/net/wan/hdlc_raw.c "net-next":https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/tree/drivers/net/wan/hdlc_raw.c |
||
57 | drivers/net/wan/hdlc_raw.c "mainline":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/wan/hdlc_raw_eth.c "net":https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/tree/drivers/net/wan/hdlc_raw_eth.c "net-next":https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/tree/drivers/net/wan/hdlc_raw_eth.c |
||
58 | drivers/net/wan/hdlc_x25.c "mainline":https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/net/wan/hdlc_x25.c "net":https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/tree/drivers/net/wan/hdlc_x25.c "net-next":https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/tree/drivers/net/wan/hdlc_x25.c |
||
59 | |||
60 | |||
61 | h2. sethdlc |
||
62 | |||
63 | <pre> |
||
64 | # sethdlc |
||
65 | sethdlc version 1.18 |
||
66 | Copyright (C) 2000 - 2005 Krzysztof Halasa <khc@pm.waw.pl> |
||
67 | |||
68 | Usage: sethdlc INTERFACE [PHYSICAL] [clock CLOCK] [LOOPBACK] [slotmap SLOTMAP] |
||
69 | sethdlc INTERFACE [PROTOCOL] |
||
70 | sethdlc INTERFACE create | delete [ether] DLCI |
||
71 | sethdlc INTERFACE private... |
||
72 | |||
73 | PHYSICAL := v24 | v35 | x21 | e1 | t1 |
||
74 | CLOCK := int [rate RATE] | ext | txint [rate RATE] | txfromrx |
||
75 | LOOPBACK := loopback | lb |
||
76 | |||
77 | PROTOCOL := hdlc [ENCODING] [PARITY] | |
||
78 | hdlc-eth [ENCODING] [PARITY] | |
||
79 | cisco [interval val] [timeout val] | |
||
80 | fr [lmi LMI] | |
||
81 | ppp | |
||
82 | x25 |
||
83 | |||
84 | ENCODING := nrz | nrzi | fm-mark | fm-space | manchester |
||
85 | PARITY := no-parity | crc16 | crc16-pr0 | crc16-itu | crc16-itu-pr0 | crc32-itu |
||
86 | LMI := none | (ansi | ccitt | cisco) [LMI_SPEC] |
||
87 | LMI_SPEC := [dce] [t391 val] [t392 val] [n391 val] [n392 val] [n393 val] |
||
88 | </pre> |
||
89 | |||
90 | h2. inarpd |
||
91 | |||
92 | <pre> |
||
93 | # inarpd |
||
94 | inarpd version 0.17 |
||
95 | Copyright (C) 2003 Krzysztof Halasa <khc@pm.waw.pl> |
||
96 | |||
97 | Usage: inarpd [-r] [+r] [-r] [+r] [-v] interface ... |
||
98 | |||
99 | options: |
||
100 | -r = do not add host IP route for neighbours (default) |
||
101 | +r = add host IP route for neighbours |
||
102 | -v = print info messages |
||
103 | -v -v = print network packets |
||
104 | -v -v -v = print debug messages |
||
105 | </pre> |
||
106 | |||
107 | <pre> |
||
108 | # inarpd +r -v -v pvc0 |
||
109 | Searching for network interfaces... |
||
110 | Device lo has an IP peer with no local IP address |
||
111 | Device eth0 has an IP peer with no local IP address |
||
112 | Can't automatically add routes for device pvc0 with peer address |
||
113 | Interfaces: |
||
114 | pvc0 [Q922 18:51] 1.1.1.2->1.1.1.0/24 |
||
115 | Sending request on pvc0 |
||
116 | Sending 00 0F 08 00 02 04 00 08 00 00 01 01 01 02 18 51 00 00 00 00 |
||
117 | pvc0: 00 0F 08 00 02 04 00 09 00 00 01 01 01 01 18 51 01 01 01 02 |
||
118 | </pre> |
||
119 | |||
120 | h1. DAHDI |
||
121 | |||
122 | *D* igium *A* sterisk *H* ardware *D* evice *I* nterface. |
||
123 | DAHDI (formerly ZAPTEL) is a collection of open source drivers, for Linux, that are used to interface with a variety of telephony related hardware. It consists of two parts: |
||
124 | |||
125 | * DAHDI-Linux - the individual board drivers for the supported hardware. |
||
126 | * DAHDI-Tools - an assortment of userspace utilities that are used to setup and test the drivers. |
||
127 | |||
128 | upstream DAHDI kernel module (dahdi-linux) |
||
129 | http://git.asterisk.org/gitweb/?p=dahdi/linux.git;a=summary |
||
130 | http://git.asterisk.org/gitweb/?p=dahdi/linux.git;a=shortlog;h=refs/heads/master |
||
131 | next branch (development) |
||
132 | http://git.asterisk.org/gitweb/?p=dahdi/linux.git;a=shortlog;h=refs/heads/next |
||
133 | |||
134 | upstream DAHDI userspace tools (dahdi-tools) |
||
135 | http://git.asterisk.org/gitweb/?p=dahdi/tools.git;a=summary |
||
136 | http://git.asterisk.org/gitweb/?p=dahdi/tools.git;a=shortlog;h=refs/heads/master |
||
137 | next branch (development) |
||
138 | http://git.asterisk.org/gitweb/?p=dahdi/tools.git;a=shortlog;h=refs/heads/next |
||
139 | |||
140 | upstream DAHDI bugtracking |
||
141 | https://issues.asterisk.org/jira/browse/DAHLIN/ |
||
142 | https://issues.asterisk.org/jira/browse/DAHTOOL/ |
||
143 | |||
144 | DAHDI tools |
||
145 | * dahdi_cfg - Configures DAHDI kernel modules from "/etc/dahdi/system.conf":http://git.asterisk.org/gitweb/?p=dahdi/tools.git;a=blob_plain;f=system.conf.sample;hb=HEAD |
||
146 | * lsdahdi - List all DAHDI channels with their types and spans |
||
147 | * dahdi_scan - Print Configuration of DAHDI spans |
||
148 | * dahdi_hardware - Shows DAHDI hardware devices |
||
149 | * dahdi_maint - Sets DAHDI spans into maintenance mode, e.g.: loopback |
||
150 | * dahdi_test - Test if the DAHDI timer provides timely response |
||
151 | * dahdi_tool - Shows status of DAHDI interfaces (ncurses interface) |
||
152 | |||
153 | Example configuration: |
||
154 | "/etc/dahdi/system.conf":http://git.asterisk.org/gitweb/?p=dahdi/tools.git;a=blob_plain;f=system.conf.sample;hb=HEAD |
||
155 | |||
156 | h2. DAHDI nethdlc |
||
157 | |||
158 | The DAHDI nethdlc driver bundles the channels together into an hdlc network device, which in turn can be configured with sethdlc. |
||
159 | You could optionally pass the name for the network interface after the channel list. |
||
160 | |||
161 | Syntax: nethdlc=<channel list>[:interface name] |
||
162 | |||
163 | Use original names, don't use the names which have been already registered in the system e.g eth. |
||
164 | The default name for the interface is hdlcX (e.g. hdlc0). |
||
165 | |||
166 | h1. E1 Hardware |
||
167 | |||
168 | h2. osmocom icE1usb |
||
169 | |||
170 | http://shop.sysmocom.de/products/icE1usb |
||
171 | https://osmocom.org/projects/e1-t1-adapter/wiki/IcE1usb |
||
172 | |||
173 | DAHDI driver for icE1usb (written by Harald, available since Dec 2020) |
||
174 | https://osmocom.org/news/129 |
||
175 | https://osmocom.org/issues/4923 |
||
176 | https://github.com/osmocom/dahdi-linux/tree/laforge/icE1usb |
||
177 | https://news.ycombinator.com/item?id=25556911 |
||
178 | for now (01/01/2021) it does *not* work with the prebuild picoRISCV firmware |
||
179 | http://ftp.osmocom.org/binaries/icE1usb/firmware/all/ |
||
180 | firmware build from osmo-e1-hardware (laforge/usb-hdr) works fine |
||
181 | http://cgit.osmocom.org/osmo-e1-hardware/log/?h=laforge/usb-hdr |
||
182 | |||
183 | <pre> |
||
184 | # lsusb |
||
185 | Bus 002 Device 009: ID 1d50:6145 OpenMoko, Inc. icE1usb |
||
186 | </pre> |
||
187 | |||
188 | <pre> |
||
189 | /etc/dahdi/system.conf |
||
190 | --------------------------- |
||
191 | span = 1,1,0,ccs,hdb3,crc4 |
||
192 | nethdlc = 1-31 |
||
193 | --------------------------- |
||
194 | |||
195 | # modprobe icE1usb |
||
196 | # modprobe dahdi |
||
197 | |||
198 | # dahdi_cfg -vv |
||
199 | DAHDI Tools Version - 3.1.0 |
||
200 | |||
201 | DAHDI Version: 3.1.0-28-g9ee58bb |
||
202 | Echo Canceller(s):· |
||
203 | Configuration |
||
204 | ====================== |
||
205 | |||
206 | SPAN 1: CCS/HDB3 Build-out: 0 db (CSU)/0-133 feet (DSX-1) |
||
207 | |||
208 | Channel map: |
||
209 | |||
210 | Channel 01: Network HDLC (Default) (Echo Canceler: none) (Slaves: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31) |
||
211 | |||
212 | 31 channels to configure. |
||
213 | |||
214 | Changing signalling on channel 1 from Unused to Network HDLC |
||
215 | Setting echocan for channel 1 to none |
||
216 | Changing signalling on channel 2 from Unused to Slave channel |
||
217 | Changing master of channel 2 from 2 to 1 |
||
218 | Setting echocan for channel 2 to none |
||
219 | ... |
||
220 | Changing signalling on channel 31 from Unused to Slave channel |
||
221 | Changing master of channel 31 from 31 to 1 |
||
222 | Setting echocan for channel 31 to none |
||
223 | |||
224 | # dmesg: |
||
225 | usb 2-2: new full-speed USB device number 10 using xhci_hcd |
||
226 | usb 2-2: config 1 interface 0 altsetting 0 endpoint 0x83 has invalid wMaxPacketSize 0 |
||
227 | usb 2-2: New USB device found, idVendor=1d50, idProduct=6145, bcdDevice= 0.03 |
||
228 | usb 2-2: New USB device strings: Mfr=2, Product=3, SerialNumber=1 |
||
229 | usb 2-2: Product: icE1usb |
||
230 | usb 2-2: Manufacturer: osmocom |
||
231 | usb 2-2: SerialNumber: dc697407e76e1722 |
||
232 | ... |
||
233 | dahdi: Version: 3.1.0-28-g9ee58bbM |
||
234 | dahdi: Telephony Interface Registered on major 196 |
||
235 | icE1usb 2-2:1.0: entering ice1usb_probe |
||
236 | icE1usb 2-2:1.0: Maximum FTS: 12 |
||
237 | icE1usb 2-2:1.1: entering ice1usb_probe |
||
238 | icE1usb 2-2:1.1: Unsupported Interface Class/SubClass fe/01 |
||
239 | usbcore: registered new interface driver icE1usb |
||
240 | icE1usb 2-2:1.0: entering e1u_d_spanconfig |
||
241 | icE1usb 2-2:1.0: configured channel 1 (icE1usb/1/0/1) sigtype 1920 |
||
242 | icE1usb 2-2:1.0: configured channel 2 (icE1usb/1/0/2) sigtype 1920 |
||
243 | ... |
||
244 | icE1usb 2-2:1.0: configured channel 30 (icE1usb/1/0/30) sigtype 1920 |
||
245 | icE1usb 2-2:1.0: configured channel 31 (icE1usb/1/0/31) sigtype 1920 |
||
246 | icE1usb 2-2:1.0: entering e1u_d_startup |
||
247 | icE1usb 2-2:1.0: entering ice1usb_set_altif(1) |
||
248 | </pre> |
||
249 | |||
250 | h2. Digium Wildcard TE110P T1/E1 |
||
251 | |||
252 | TE110 is a half-length, half-height (low-profile) PCI 2.1 single-span E1/T1/J1 PRI/PRA software-configurable digital telephony card for terminating high-capacity digital lines through a computer. The product was replaced by TE12x-series in 2007 by the "vendor":https://wiki.asterisk.org/wiki/display/DAHDI/DAHDI+compatible+hardware and is not longer sold. Even the driver (wcte11xp) was "dropped":http://git.asterisk.org/gitweb/?p=dahdi/linux.git;a=commit;h=3697450317a7bd60bfa7031aad250085928d5c47 from DAHDI upstream. |
||
253 | However the wcte11xp driver was "restored":https://github.com/osmocom/dahdi-linux/commit/e840bc3ea1933168bb9fae68d1a4c6bd647ea821 and "adapted":https://github.com/osmocom/dahdi-linux/commit/ca7765aab49d7bc02689a068078e372cda3a7a5f to DAHDI API changes in the osmocom "fork":https://github.com/osmocom/dahdi-linux of dahdi/linux. |
||
254 | |||
255 | <pre> |
||
256 | # lspci |
||
257 | 04:00.0 Network controller: Tiger Jet Network Inc. Tiger3XX Modem/ISDN interface |
||
258 | </pre> |
||
259 | |||
260 | <pre> |
||
261 | /etc/dahdi/system.conf |
||
262 | --------------------------- |
||
263 | span = 1,1,0,ccs,hdb3,crc4 |
||
264 | nethdlc = 1-31 |
||
265 | --------------------------- |
||
266 | |||
267 | # modprobe wcte11xp |
||
268 | # modprobe dahdi |
||
269 | |||
270 | # dahdi_cfg -vv |
||
271 | DAHDI Tools Version - 3.1.0 |
||
272 | |||
273 | DAHDI Version: 3.1.0-28-g9ee58bb |
||
274 | Echo Canceller(s):· |
||
275 | Configuration |
||
276 | ====================== |
||
277 | |||
278 | SPAN 1: CCS/HDB3 Build-out: 0 db (CSU)/0-133 feet (DSX-1) |
||
279 | |||
280 | Channel map: |
||
281 | |||
282 | Channel 01: Network HDLC (Default) (Echo Canceler: none) (Slaves: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31) |
||
283 | |||
284 | 31 channels to configure. |
||
285 | |||
286 | Changing signalling on channel 1 from Unused to Network HDLC |
||
287 | Setting echocan for channel 1 to none |
||
288 | Changing signalling on channel 2 from Unused to Slave channel |
||
289 | Changing master of channel 2 from 2 to 1 |
||
290 | Setting echocan for channel 2 to none |
||
291 | ... |
||
292 | Changing signalling on channel 31 from Unused to Slave channel |
||
293 | Changing master of channel 31 from 31 to 1 |
||
294 | Setting echocan for channel 31 to none |
||
295 | |||
296 | # dmesg: |
||
297 | dahdi: Version: 3.1.0-28-g9ee58bb |
||
298 | dahdi: Telephony Interface Registered on major 196 |
||
299 | FALC version: 00000000 |
||
300 | TE110P: Setting up global serial parameters for E1 FALC V1.2 |
||
301 | TE110P: Successfully initialized serial bus for card |
||
302 | Found a Wildcard: Digium Wildcard TE110P T1/E1 |
||
303 | TE110P: Span configured for CCS/HDB3/CRC4 |
||
304 | Calling startup (flags is 4099) |
||
305 | </pre> |
||
306 | |||
307 | h2. Cisco 1841 Router |
||
308 | |||
309 | Cisco 1841 with IOS version 12.4(24)T6 and C1841-ADVENTERPRISEK9-M features) |
||
310 | |||
311 | <pre> |
||
312 | R1# show version | include IOS |
||
313 | Cisco IOS Software, 1841 Software (C1841-ADVENTERPRISEK9-M), Version 12.4(24)T6, RELEASE SOFTWARE (fc2) |
||
314 | |||
315 | R1# show inventory |
||
316 | NAME: "chassis", DESCR: "1841 chassis" |
||
317 | PID: CISCO1841 , VID: V03 , SN: FCZ1034111U |
||
318 | |||
319 | NAME: "WIC 0", DESCR: "Two port E1 voice interface daughtercard" |
||
320 | PID: VWIC-2MFT-E1= , VID: 1.0, SN: 35150839 |
||
321 | |||
322 | </pre> |
||
323 | |||
324 | h1. Example setup |
||
325 | |||
326 | h2. HDLC RAW back to back: DAHDI nethdlc to DAHDI nethdlc |
||
327 | |||
328 | <pre> |
||
329 | hammer thinkpad |
||
330 | +----------------------+ +----------------------+ |
||
331 | | Linux .1| hdlc0 hdlc0 |.2 Linux | |
||
332 | | DAHDI with nethdlc | <------------------> | DAHDI with nethdlc | |
||
333 | | Digium TE110P T1/E1 | HDLC RAW | osmocom icE1usb | |
||
334 | +----------------------+ +----------------------+ |
||
335 | |||
336 | hammer: 10.0.0.1/32 |
||
337 | thinkpad: 10.0.0.2/32 |
||
338 | </pre> |
||
339 | |||
340 | h3. HDLC RAW sideA wcte11xp |
||
341 | |||
342 | #hammer |
||
343 | |||
344 | <pre> |
||
345 | /etc/dahdi/system.conf |
||
346 | --------------------------- |
||
347 | span = 1,1,0,ccs,hdb3,crc4 |
||
348 | nethdlc = 1-31 |
||
349 | --------------------------- |
||
350 | |||
351 | modprobe wcte11xp |
||
352 | modprobe dahdi |
||
353 | modprobe hdlc |
||
354 | modprobe hdlc_raw |
||
355 | |||
356 | dahdi_cfg -vv |
||
357 | |||
358 | sethdlc hdlc0 hdlc |
||
359 | ip link set hdlc0 up |
||
360 | ip address add 10.0.0.1 peer 10.0.0.2 dev hdlc0 |
||
361 | </pre> |
||
362 | |||
363 | * DAHDI nethdlc config |
||
364 | ** enable CRC4 checking |
||
365 | ** set ccs framing (needed for E1) |
||
366 | ** set hdb3 coding (needed for E1) |
||
367 | ** use channels 1-31 (all available channels in a E1 line) |
||
368 | * load the required kernel modules |
||
369 | * *_dahdi_cfg_* creates and initializes the hdlc0 interface |
||
370 | * set hdlc0 interface to use |
||
371 | ** use rawhdlc encapsulation |
||
372 | ** set nrz coding |
||
373 | ** set crc16-itu (CRC16 with ITU-T polynomial) parity |
||
374 | * bring up interfaces |
||
375 | * setup p-t-p ip address |
||
376 | |||
377 | h3. HDLC RAW sideB osmocom icE1usb |
||
378 | |||
379 | #thinkpad |
||
380 | |||
381 | <pre> |
||
382 | /etc/dahdi/system.conf |
||
383 | --------------------------- |
||
384 | span = 1,1,0,ccs,hdb3,crc4 |
||
385 | nethdlc = 1-31 |
||
386 | --------------------------- |
||
387 | |||
388 | modprobe icE1usb |
||
389 | modprobe dahdi |
||
390 | modprobe hdlc |
||
391 | modprobe hdlc_raw |
||
392 | |||
393 | dahdi_cfg -vv |
||
394 | |||
395 | sethdlc hdlc0 hdlc |
||
396 | ip link set hdlc0 up |
||
397 | ip address add 10.0.0.2 peer 10.0.0.1 dev hdlc0 |
||
398 | </pre> |
||
399 | |||
400 | <pre> |
||
401 | # dmesg: |
||
402 | ------------------------------------ |
||
403 | hdlc0: Carrier detected |
||
404 | ------------------------------------ |
||
405 | |||
406 | # sethdlc hdlc0 |
||
407 | hdlc0: protocol hdlc nrz crc16-itu |
||
408 | |||
409 | # ip address show |
||
410 | 17: hdlc0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 50 |
||
411 | link/rawhdlc· |
||
412 | inet 10.0.0.2 peer 10.0.0.1/32 scope global hdlc0 |
||
413 | valid_lft forever preferred_lft forever |
||
414 | |||
415 | # ping -c 3 10.0.0.1 |
||
416 | PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data. |
||
417 | 64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=35.7 ms |
||
418 | 64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=33.8 ms |
||
419 | 64 bytes from 10.0.0.1: icmp_seq=3 ttl=64 time=35.9 ms |
||
420 | |||
421 | --- 10.0.0.1 ping statistics --- |
||
422 | 3 packets transmitted, 3 received, 0% packet loss, time 2004ms |
||
423 | rtt min/avg/max/mdev = 33.820/35.115/35.866/0.919 ms |
||
424 | </pre> |
||
425 | |||
426 | Cleanup |
||
427 | <pre> |
||
428 | ip link set hdlc0 down |
||
429 | rmmod wcte11xp icE1usb dahdi hdlc_raw hdlc |
||
430 | </pre> |
||
431 | |||
432 | h2. HDLC Cisco back to back: DAHDI nethdlc to DAHDI nethdlc |
||
433 | |||
434 | <pre> |
||
435 | hammer thinkpad |
||
436 | +----------------------+ +----------------------+ |
||
437 | | Linux .1| hdlc0 hdlc0 |.2 Linux | |
||
438 | | DAHDI with nethdlc | <------------------> | DAHDI with nethdlc | |
||
439 | | Digium TE110P T1/E1 | HDLC Cisco | osmocom icE1usb | |
||
440 | +----------------------+ +----------------------+ |
||
441 | |||
442 | hammer: 10.0.0.1/32 |
||
443 | thinkpad: 10.0.0.2/32 |
||
444 | |||
445 | </pre> |
||
446 | |||
447 | h3. Cisco HDLC sideA wcte11xp |
||
448 | |||
449 | #hammer |
||
450 | |||
451 | <pre> |
||
452 | /etc/dahdi/system.conf |
||
453 | --------------------------- |
||
454 | span = 1,1,0,ccs,hdb3,crc4 |
||
455 | nethdlc = 1-31 |
||
456 | --------------------------- |
||
457 | |||
458 | modprobe wcte11xp |
||
459 | modprobe dahdi |
||
460 | modprobe hdlc |
||
461 | modprobe hdlc_cisco |
||
462 | |||
463 | dahdi_cfg -vv |
||
464 | |||
465 | sethdlc hdlc0 cisco |
||
466 | ip link set hdlc0 up |
||
467 | ip address add 10.0.0.1 peer 10.0.0.2 dev hdlc0 |
||
468 | </pre> |
||
469 | |||
470 | * DAHDI nethdlc config |
||
471 | ** enable CRC4 checking |
||
472 | ** set ccs framing (needed for E1) |
||
473 | ** set hdb3 coding (needed for E1) |
||
474 | ** use channels 1-31 (all available channels in a E1 line) |
||
475 | * load the required kernel modules |
||
476 | * *_dahdi_cfg_* creates and initializes the hdlc0 interface |
||
477 | * set hdlc0 interface |
||
478 | ** set Cisco HDLC mode |
||
479 | ** set interval (default: 10) - time in seconds between keepalive packets |
||
480 | ** set timeout (default: 25) - time in seconds after last received keepalive packet before we assume the link is down |
||
481 | * bring up interface |
||
482 | * setup p-t-p ip address |
||
483 | |||
484 | h3. Cisco HDLC sideB osmocom icE1usb |
||
485 | |||
486 | #thinkpad |
||
487 | |||
488 | <pre> |
||
489 | /etc/dahdi/system.conf |
||
490 | --------------------------- |
||
491 | span = 1,1,0,ccs,hdb3,crc4 |
||
492 | nethdlc = 1-31 |
||
493 | --------------------------- |
||
494 | |||
495 | modprobe icE1usb |
||
496 | modprobe dahdi |
||
497 | modprobe hdlc |
||
498 | modprobe hdlc_cisco |
||
499 | |||
500 | dahdi_cfg -vv |
||
501 | |||
502 | sethdlc hdlc0 cisco |
||
503 | ip link set hdlc0 up |
||
504 | ip address add 10.0.0.2 peer 10.0.0.1 dev hdlc0 |
||
505 | </pre> |
||
506 | |||
507 | <pre> |
||
508 | # dmesg: |
||
509 | ---------------------------------------- |
||
510 | hdlc0: Carrier detected |
||
511 | hdlc0: Link up (peer uptime 1d2h54m42s) |
||
512 | ---------------------------------------- |
||
513 | |||
514 | # sethdlc hdlc0 |
||
515 | hdlc0: protocol cisco interval 10 timeout 25 |
||
516 | |||
517 | # ip address show |
||
518 | 18: hdlc0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 50 |
||
519 | link/hdlc |
||
520 | inet 10.0.0.2 peer 10.0.0.1/32 scope global hdlc0 |
||
521 | valid_lft forever preferred_lft forever |
||
522 | |||
523 | # ping -c 3 10.0.0.1 |
||
524 | PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data. |
||
525 | 64 Bytes von 10.0.0.1: icmp_seq=1 ttl=64 Zeit=40.2 ms |
||
526 | 64 Bytes von 10.0.0.1: icmp_seq=2 ttl=64 Zeit=38.8 ms |
||
527 | 64 Bytes von 10.0.0.1: icmp_seq=3 ttl=64 Zeit=36.8 ms |
||
528 | |||
529 | --- 10.0.0.1 ping statistics --- |
||
530 | 3 Pakete übertragen, 3 empfangen, 0% packet loss, time 2003ms |
||
531 | rtt min/avg/max/mdev = 36.772/38.597/40.229/1.417 ms |
||
532 | |||
533 | |||
534 | # tcpdump -ihdlc0 -e -n |
||
535 | tcpdump: verbose output suppressed, use -v or -vv for full protocol decode |
||
536 | listening on hdlc0, link-type C_HDLC (Cisco HDLC), capture size 262144 bytes |
||
537 | 14:22:22.338819 bcast, ethertype Reverse ARP (0x8035), length 22: SLARP (length: 18), keepalive: mineseen=0x00000018, yourseen=0x0000000e, reliability=0xffff, link uptime=1d2h56m55s |
||
538 | 14:22:28.571549 bcast, ethertype Reverse ARP (0x8035), length 22: SLARP (length: 18), keepalive: mineseen=0x0000000f, yourseen=0x00000018, reliability=0xffff, link uptime=0d21h56m48s |
||
539 | 14:22:32.578778 bcast, ethertype Reverse ARP (0x8035), length 22: SLARP (length: 18), keepalive: mineseen=0x00000019, yourseen=0x0000000f, reliability=0xffff, link uptime=1d2h57m6s |
||
540 | 14:22:33.527342 unicast, ethertype IPv4 (0x0800), length 88: 10.0.0.2 > 10.0.0.1: ICMP echo request, id 21, seq 1, length 64 |
||
541 | 14:22:33.567532 unicast, ethertype IPv4 (0x0800), length 88: 10.0.0.1 > 10.0.0.2: ICMP echo reply, id 21, seq 1, length 64 |
||
542 | 14:22:34.528739 unicast, ethertype IPv4 (0x0800), length 88: 10.0.0.2 > 10.0.0.1: ICMP echo request, id 21, seq 2, length 64 |
||
543 | 14:22:34.567501 unicast, ethertype IPv4 (0x0800), length 88: 10.0.0.1 > 10.0.0.2: ICMP echo reply, id 21, seq 2, length 64 |
||
544 | 14:22:35.530793 unicast, ethertype IPv4 (0x0800), length 88: 10.0.0.2 > 10.0.0.1: ICMP echo request, id 21, seq 3, length 64 |
||
545 | 14:22:35.567512 unicast, ethertype IPv4 (0x0800), length 88: 10.0.0.1 > 10.0.0.2: ICMP echo reply, id 21, seq 3, length 64 |
||
546 | ^C |
||
547 | 9 packets captured |
||
548 | 9 packets received by filter |
||
549 | 0 packets dropped by kernel |
||
550 | </pre> |
||
551 | |||
552 | Cleanup |
||
553 | <pre> |
||
554 | ip link set hdlc0 down |
||
555 | rmmod wcte11xp icE1usb dahdi hdlc_cisco hdlc |
||
556 | </pre> |
||
557 | |||
558 | h2. HDLC PPP back to back: DAHDI nethdlc to DAHDI nethdlc |
||
559 | |||
560 | <pre> |
||
561 | hammer thinkpad |
||
562 | +----------------------+ +----------------------+ |
||
563 | | Linux .1| hdlc0 hdlc0 |.2 Linux | |
||
564 | | DAHDI with nethdlc | <------------------> | DAHDI with nethdlc | |
||
565 | | Digium TE110P T1/E1 | HDLC PPP | osmocom icE1usb | |
||
566 | +----------------------+ +----------------------+ |
||
567 | |||
568 | hammer: 10.0.0.1/32 |
||
569 | thinkpad: 10.0.0.2/32 |
||
570 | </pre> |
||
571 | |||
572 | |||
573 | h3. HDLC PPP sideA wcte11xp |
||
574 | |||
575 | #hammer |
||
576 | |||
577 | <pre> |
||
578 | /etc/dahdi/system.conf |
||
579 | --------------------------- |
||
580 | span = 1,1,0,ccs,hdb3,crc4 |
||
581 | nethdlc = 1-31 |
||
582 | --------------------------- |
||
583 | |||
584 | modprobe wcte11xp |
||
585 | modprobe dahdi |
||
586 | modprobe hdlc |
||
587 | modprobe hdlc_ppp |
||
588 | |||
589 | dahdi_cfg -vv |
||
590 | |||
591 | sethdlc hdlc0 hdlc |
||
592 | ip link set hdlc0 up |
||
593 | ip address add 10.0.0.1 peer 10.0.0.2 dev hdlc0 |
||
594 | </pre> |
||
595 | |||
596 | * DAHDI nethdlc config |
||
597 | ** enable CRC4 checking |
||
598 | ** set ccs framing (needed for E1) |
||
599 | ** set hdb3 coding (needed for E1) |
||
600 | ** use channels 1-31 (all available channels in a E1 line) |
||
601 | * load the required kernel modules |
||
602 | * *_dahdi_cfg_* creates and initializes the hdlc0 interface |
||
603 | * set hdlc0 interface to use |
||
604 | ** use ppp encapsulation |
||
605 | * bring up interfaces |
||
606 | * setup p-t-p ip address |
||
607 | |||
608 | h3. HDLC PPP sideB osmocom icE1usb |
||
609 | |||
610 | #thinkpad |
||
611 | |||
612 | <pre> |
||
613 | /etc/dahdi/system.conf |
||
614 | --------------------------- |
||
615 | span = 1,1,0,ccs,hdb3,crc4 |
||
616 | nethdlc = 1-31 |
||
617 | --------------------------- |
||
618 | |||
619 | modprobe icE1usb |
||
620 | modprobe dahdi |
||
621 | modprobe hdlc |
||
622 | modprobe hdlc_ppp |
||
623 | |||
624 | dahdi_cfg -vv |
||
625 | |||
626 | sethdlc hdlc0 hdlc |
||
627 | ip link set hdlc0 up |
||
628 | ip address add 10.0.0.2 peer 10.0.0.1 dev hdlc0 |
||
629 | </pre> |
||
630 | |||
631 | <pre> |
||
632 | # dmesg: |
||
633 | ------------------------------------ |
||
634 | hdlc0: Carrier detected |
||
635 | hdlc0: LCP up |
||
636 | hdlc0: IPCP up |
||
637 | hdlc0: IPV6CP up |
||
638 | ------------------------------------ |
||
639 | |||
640 | # sethdlc hdlc0 |
||
641 | hdlc0: protocol ppp |
||
642 | |||
643 | # ip address show |
||
644 | 19: hdlc0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 50 |
||
645 | link/ppp |
||
646 | inet 10.0.0.2 peer 10.0.0.1/32 scope global hdlc0 |
||
647 | valid_lft forever preferred_lft forever |
||
648 | |||
649 | |||
650 | # ping -c 3 10.0.0.1 |
||
651 | PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data. |
||
652 | 64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=35.7 ms |
||
653 | 64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=33.8 ms |
||
654 | 64 bytes from 10.0.0.1: icmp_seq=3 ttl=64 time=35.9 ms |
||
655 | |||
656 | --- 10.0.0.1 ping statistics --- |
||
657 | 3 packets transmitted, 3 received, 0% packet loss, time 2004ms |
||
658 | rtt min/avg/max/mdev = 33.820/35.115/35.866/0.919 ms |
||
659 | </pre> |
||
660 | |||
661 | Cleanup |
||
662 | <pre> |
||
663 | ip link set hdlc0 down |
||
664 | rmmod wcte11xp icE1usb dahdi hdlc_ppp hdlc |
||
665 | </pre> |
||
666 | |||
667 | h2. Frame Relay back to back: DAHDI nethdlc to DAHDI nethdlc |
||
668 | |||
669 | <pre> |
||
670 | hammer thinkpad |
||
671 | +----------------------+ +----------------------+ |
||
672 | | | hdlc0 hdlc0 | | |
||
673 | | Linux | pvc0 (HDLC 101) pvc0 | Linux | |
||
674 | | DAHDI with nethdlc | pvc1 (HDLC 102) pvc1 | DAHDI with nethdlc | |
||
675 | | Digium TE110P T1/E1 | <------------------> | osmocom icE1usb | |
||
676 | | | Frame Relay | | |
||
677 | +----------------------+ +----------------------+ |
||
678 | |||
679 | pvc0 (DLCI 101) pvc1 (DLCI 102) |
||
680 | hammer: 172.16.101.1 172.16.102.1 |
||
681 | thinkpad: 172.16.101.2 172.16.102.2 |
||
682 | </pre> |
||
683 | |||
684 | Example with 2 DLCI's and LMI (ANSI) enabled. |
||
685 | For FR-back to back connections we need to setup the same DLCI's on both sides. |
||
686 | |||
687 | h3. Frame Relay (DCE side) wcte11xp |
||
688 | |||
689 | #hammer |
||
690 | |||
691 | <pre> |
||
692 | /etc/dahdi/system.conf |
||
693 | --------------------------- |
||
694 | span = 1,1,0,ccs,hdb3,crc4 |
||
695 | nethdlc = 1-31 |
||
696 | --------------------------- |
||
697 | |||
698 | modprobe wcte11xp |
||
699 | modprobe dahdi |
||
700 | modprobe hdlc_fr |
||
701 | |||
702 | dahdi_cfg -vv |
||
703 | |||
704 | sethdlc hdlc0 fr lmi ansi dce |
||
705 | sethdlc hdlc0 create 101 |
||
706 | sethdlc hdlc0 create 102 |
||
707 | ip link set hdlc0 up |
||
708 | ip link set pvc0 up |
||
709 | ip link set pvc1 up |
||
710 | ip address add 172.16.101.1 peer 172.16.101.2 dev pvc0 |
||
711 | ip address add 172.16.102.1 peer 172.16.102.2 dev pvc1 |
||
712 | </pre> |
||
713 | |||
714 | * DAHDI nethdlc config |
||
715 | ** enable CRC4 checking |
||
716 | ** set ccs framing (needed for E1) |
||
717 | ** set hdb3 coding (needed for E1) |
||
718 | ** use channels 1-31 (all available channels in a E1 line) |
||
719 | * load the required kernel modules |
||
720 | * *_dahdi_cfg_* creates and initializes the hdlc0 interface |
||
721 | * set hdlc0 interface to use |
||
722 | ** use frame-relay encapsulation |
||
723 | ** use LMI (Local Management Interface) type ANSI |
||
724 | ** be the DTE (Data Terminal Equipment) side of the FR-network |
||
725 | * bring up up all the interfaces |
||
726 | * setup p-t-p ip addresses |
||
727 | |||
728 | h3. Frame Relay (DTE side) osmocom icE1usb |
||
729 | |||
730 | #thinkpad |
||
731 | |||
732 | <pre> |
||
733 | /etc/dahdi/system.conf |
||
734 | --------------------------- |
||
735 | span = 1,1,0,ccs,hdb3,crc4 |
||
736 | nethdlc = 1-31 |
||
737 | --------------------------- |
||
738 | |||
739 | modprobe icE1usb |
||
740 | modprobe dahdi |
||
741 | modprobe hdlc_fr |
||
742 | |||
743 | dahdi_cfg -vv |
||
744 | |||
745 | sethdlc hdlc0 fr lmi ansi |
||
746 | sethdlc hdlc0 create 101 |
||
747 | sethdlc hdlc0 create 102 |
||
748 | ip link set hdlc0 up |
||
749 | ip link set pvc0 up |
||
750 | ip link set pvc1 up |
||
751 | ip address add 172.16.101.2 peer 172.16.101.1 dev pvc0 |
||
752 | ip address add 172.16.102.2 peer 172.16.102.1 dev pvc1 |
||
753 | </pre> |
||
754 | |||
755 | <pre> |
||
756 | # dmesg: |
||
757 | ------------------------------------ |
||
758 | hdlc0: Carrier detected |
||
759 | hdlc0: Link reliable |
||
760 | hdlc0: DLCI 101 [] new inactive |
||
761 | hdlc0: DLCI 102 [] new inactive |
||
762 | hdlc0: DLCI 101 [pvc0] active |
||
763 | hdlc0: DLCI 102 [pvc1] active |
||
764 | ------------------------------------ |
||
765 | |||
766 | # sethdlc hdlc0 |
||
767 | hdlc0: protocol fr lmi ansi t391 10 t392 15 n391 6 n392 3 n393 4 |
||
768 | # sethdlc pvc0 |
||
769 | pvc0: Frame-Relay PVC: DLCI 101, master device hdlc0 |
||
770 | # sethdlc pvc1 |
||
771 | pvc1: Frame-Relay PVC: DLCI 102, master device hdlc0 |
||
772 | |||
773 | # ip address show |
||
774 | 8: hdlc0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 50 |
||
775 | link/frad |
||
776 | 15: pvc0: <POINTOPOINT,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 |
||
777 | link/dlci 00:65 peer 18:51 |
||
778 | inet 172.16.101.2 peer 172.16.101.1/32 scope global pvc0 |
||
779 | valid_lft forever preferred_lft forever |
||
780 | 16: pvc1: <POINTOPOINT,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 |
||
781 | link/dlci 00:66 peer 18:61 |
||
782 | inet 172.16.102.2 peer 172.16.102.1/32 scope global pvc1 |
||
783 | valid_lft forever preferred_lft forever |
||
784 | </pre> |
||
785 | |||
786 | * *_ip address show_* shows the DLCI (in hex) for the pvcX interfaces |
||
787 | ** pvc0: link/dlci 00:65 (DLCI 101) |
||
788 | ** pvc1: link/dlci 00:66 (DLCI 102) |
||
789 | |||
790 | |||
791 | Debugging |
||
792 | <pre> |
||
793 | sethdlc hdlc0 |
||
794 | sethdlc pvc0 |
||
795 | tcpdump -ihdlc0 -n |
||
796 | tcpdump -ipvc0 -n |
||
797 | ip monitor all |
||
798 | </pre> |
||
799 | |||
800 | Cleanup |
||
801 | <pre> |
||
802 | ip link set pvc0 down |
||
803 | ip link set pvc1 down |
||
804 | sethdlc hdlc0 delete 101 |
||
805 | sethdlc hdlc0 delete 102 |
||
806 | ip link set hdlc0 down |
||
807 | rmmod wcte11xp icE1usb dahdi hdlc_fr |
||
808 | </pre> |
||
809 | |||
810 | h2. HDLC Cisco back to back: Cisco IOS to DAHDI nethdlc |
||
811 | |||
812 | <pre> |
||
813 | R1 hammer |
||
814 | +----------------------+ +----------------------+ |
||
815 | | Cisco 1841 .1| Serial0/0/0:1 hdlc0 |.2 Linux | |
||
816 | | VWIC-2MFT-E1= | <------------------> | DAHDI with nethdlc | |
||
817 | | | HDLC Cisco | Digium TE110P T1/E1 | |
||
818 | +----------------------+ +----------------------+ |
||
819 | |||
820 | cisco: 10.0.0.1/32 |
||
821 | hammer: 10.0.0.2/32 |
||
822 | </pre> |
||
823 | |||
824 | h3. HDLC Cisco sideA - Cisco 1841 with VWIC-2MFT-E1= |
||
825 | |||
826 | #R1 |
||
827 | |||
828 | <pre> |
||
829 | R1# conf t |
||
830 | R1(config)# controller E1 0/0/0 |
||
831 | R1(config-controller)# clock source internal |
||
832 | R1(config-controller)# channel-group 1 timeslots 1-31 speed 64 |
||
833 | R1(config-controller)# exit |
||
834 | R1(config)# exit |
||
835 | |||
836 | R1# conf t |
||
837 | R1(config)# interface Serial0/0/0:1 |
||
838 | R1(config-if)# ip address 10.0.0.1 255.255.255.0 |
||
839 | R1(config-if)# no shutdown |
||
840 | R1(config-if)# exit |
||
841 | R1(config)# exit |
||
842 | </pre> |
||
843 | |||
844 | * configure E1 controller interface "controller E1 0/0/0" |
||
845 | ** *_clock source internal_* specifies that the interface will clock its transmitted data from its internal clock. |
||
846 | ** build channel-group 1 (span) by using timeslots "1-31"; this creates a new serial interface: "Serial0/0/0:<channel-group>" |
||
847 | * configure serial interface "Serial 0/0/0:1" |
||
848 | ** Cisco uses "Cisco HDLC" encapsulation by default on all serial p-t-p interfaces |
||
849 | ** setup ip address |
||
850 | </pre> |
||
851 | |||
852 | <pre> |
||
853 | R1# show logging |
||
854 | ... cable plugged |
||
855 | *Jan 4 17:00:13.548: %CONTROLLER-5-UPDOWN: Controller E1 0/0/0, changed state to up |
||
856 | *Jan 4 17:00:15.548: %LINK-3-UPDOWN: Interface Serial0/0/0:1, changed state to up |
||
857 | ... cable unplugged |
||
858 | *Jan 4 20:47:24.047: %CONTROLLER-5-UPDOWN: Controller E1 0/0/0, changed state to down (LOS detected) |
||
859 | *Jan 4 20:47:26.047: %LINK-3-UPDOWN: Interface Serial0/0/0:1, changed state to down |
||
860 | *Jan 4 20:47:27.047: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/0/0:1, changed state to down |
||
861 | |||
862 | R1# show controllers E1 0/0/0 brief |
||
863 | E1 0/0/0 is up. |
||
864 | Applique type is Channelized E1 - balanced |
||
865 | No alarms detected. |
||
866 | alarm-trigger is not set |
||
867 | Version info Firmware: 20090113, FPGA: 20, spm_count = 0 |
||
868 | Framing is CRC4, Line Code is HDB3, Clock Source is Internal. |
||
869 | Data in current interval (365 seconds elapsed): |
||
870 | 0 Line Code Violations, 0 Path Code Violations |
||
871 | 0 Slip Secs, 0 Fr Loss Secs, 0 Line Err Secs, 0 Degraded Mins |
||
872 | 0 Errored Secs, 0 Bursty Err Secs, 0 Severely Err Secs, 0 Unavail Secs |
||
873 | Total Data (last 24 hours) |
||
874 | 3454 Line Code Violations, 6259 Path Code Violations, |
||
875 | 2 Slip Secs, 2 Fr Loss Secs, 3 Line Err Secs, 0 Degraded Mins, |
||
876 | 1 Errored Secs, 0 Bursty Err Secs, 4 Severely Err Secs, 66931 Unavail Secs |
||
877 | |||
878 | R1# show interfaces Serial0/0/0:1 |
||
879 | Serial0/0/0:1 is up, line protocol is up |
||
880 | Hardware is GT96K Serial |
||
881 | Internet address is 10.0.0.1/30 |
||
882 | MTU 1500 bytes, BW 1984 Kbit/sec, DLY 20000 usec, |
||
883 | reliability 255/255, txload 1/255, rxload 1/255 |
||
884 | Encapsulation HDLC, loopback not set |
||
885 | Keepalive set (10 sec) |
||
886 | CRC checking enabled |
||
887 | Last input 00:00:04, output 00:00:03, output hang never |
||
888 | Last clearing of "show interface" counters 03:55:15 |
||
889 | Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0 |
||
890 | Queueing strategy: weighted fair |
||
891 | Output queue: 0/1000/64/0 (size/max total/threshold/drops) |
||
892 | Conversations 0/1/256 (active/max active/max total) |
||
893 | Reserved Conversations 0/0 (allocated/max allocated) |
||
894 | Available Bandwidth 1488 kilobits/sec |
||
895 | 5 minute input rate 0 bits/sec, 0 packets/sec |
||
896 | 5 minute output rate 0 bits/sec, 0 packets/sec |
||
897 | 1312 packets input, 28996 bytes, 0 no buffer |
||
898 | Received 1310 broadcasts, 0 runts, 1 giants, 0 throttles |
||
899 | 40 input errors, 4 CRC, 1 frame, 1 overrun, 0 ignored, 33 abort |
||
900 | 1640 packets output, 108646 bytes, 0 underruns |
||
901 | 0 output errors, 0 collisions, 6 interface resets |
||
902 | 0 unknown protocol drops |
||
903 | 0 output buffer failures, 0 output buffers swapped out |
||
904 | 2 carrier transitions |
||
905 | Timeslot(s) Used:1-31, SCC: 0, Transmitter delay is 0 flags |
||
906 | |||
907 | R1# debug serial interface |
||
908 | Serial network interface debugging is on |
||
909 | *Jan 4 20:43:32.695: Serial0/0/0:1: HDLC myseq 1339, mineseen 1338, yourseen 1308, line up |
||
910 | *Jan 4 20:43:42.695: Serial0/0/0:1: HDLC myseq 1340, mineseen 1340*, yourseen 1309, line up |
||
911 | *Jan 4 20:43:52.695: Serial0/0/0:1: HDLC myseq 1341, mineseen 1341*, yourseen 1310, line up |
||
912 | </pre> |
||
913 | |||
914 | Debug |
||
915 | <pre> |
||
916 | R1# show controllers E1 0/0/0 |
||
917 | R1# show controllers E1 0/0/0 brief |
||
918 | R1# show interfaces Serial0/0/0:1 |
||
919 | R1# show interfaces Serial0/0/0:1 summary |
||
920 | R1# show ip interface brief |
||
921 | ! |
||
922 | R2# debug serial interface |
||
923 | R2# debug ip packet |
||
924 | R2# debug arp |
||
925 | R2# show debug |
||
926 | R2# terminal monitor |
||
927 | R2# no debug all |
||
928 | </pre> |
||
929 | |||
930 | h3. HDLC Cisco sideB osmocom icE1usb |
||
931 | |||
932 | #hammer |
||
933 | |||
934 | <pre> |
||
935 | /etc/dahdi/system.conf |
||
936 | --------------------------- |
||
937 | span = 1,1,0,ccs,hdb3,crc4 |
||
938 | nethdlc = 1-31 |
||
939 | --------------------------- |
||
940 | |||
941 | modprobe icE1usb |
||
942 | modprobe dahdi |
||
943 | modprobe hdlc |
||
944 | modprobe hdlc_cisco |
||
945 | |||
946 | dahdi_cfg -vv |
||
947 | |||
948 | sethdlc hdlc0 cisco |
||
949 | ip link set hdlc0 up |
||
950 | ip address add 10.0.0.2 peer 10.0.0.1 dev hdlc0 |
||
951 | </pre> |
||
952 | |||
953 | <pre> |
||
954 | # dmesg: |
||
955 | ---------------------------------------- |
||
956 | hdlc0: Carrier detected |
||
957 | hdlc0: Link up (peer uptime 1d2h54m42s) |
||
958 | ---------------------------------------- |
||
959 | |||
960 | # sethdlc hdlc0 |
||
961 | hdlc0: protocol cisco interval 10 timeout 25 |
||
962 | |||
963 | # ip address show |
||
964 | 18: hdlc0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 50 |
||
965 | link/hdlc |
||
966 | inet 10.0.0.2 peer 10.0.0.1/32 scope global hdlc0 |
||
967 | valid_lft forever preferred_lft forever |
||
968 | |||
969 | # tcpdump -ihdlc0 -e -n |
||
970 | tcpdump: verbose output suppressed, use -v or -vv for full protocol decode |
||
971 | listening on hdlc0, link-type C_HDLC (Cisco HDLC), capture size 262144 bytes |
||
972 | 21:29:12.168888 bcast, ethertype Reverse ARP (0x8035), length 24: SLARP (length: 20), keepalive: mineseen=0x00000041, yourseen=0x0000003f, reliability=0xffff, link uptime=9d15h23m8s |
||
973 | 21:29:13.021980 bcast, ethertype Reverse ARP (0x8035), length 22: SLARP (length: 18), keepalive: mineseen=0x00000040, yourseen=0x00000041, reliability=0xffff, link uptime=1d5h5m22s |
||
974 | 21:29:19.656778 unicast, ethertype IPv4 (0x0800), length 88: 10.0.0.2 > 10.0.0.1: ICMP echo request, id 14, seq 1, length 64 |
||
975 | 21:29:19.660809 unicast, ethertype IPv4 (0x0800), length 88: 10.0.0.1 > 10.0.0.2: ICMP echo reply, id 14, seq 1, length 64 |
||
976 | 21:29:20.658004 unicast, ethertype IPv4 (0x0800), length 88: 10.0.0.2 > 10.0.0.1: ICMP echo request, id 14, seq 2, length 64 |
||
977 | 21:29:20.661663 unicast, ethertype IPv4 (0x0800), length 88: 10.0.0.1 > 10.0.0.2: ICMP echo reply, id 14, seq 2, length 64 |
||
978 | 21:29:21.659821 unicast, ethertype IPv4 (0x0800), length 88: 10.0.0.2 > 10.0.0.1: ICMP echo request, id 14, seq 3, length 64 |
||
979 | 21:29:21.663519 unicast, ethertype IPv4 (0x0800), length 88: 10.0.0.1 > 10.0.0.2: ICMP echo reply, id 14, seq 3, length 64 |
||
980 | 21:29:22.167445 bcast, ethertype Reverse ARP (0x8035), length 24: SLARP (length: 20), keepalive: mineseen=0x00000042, yourseen=0x00000040, reliability=0xffff, link uptime=9d15h23m18s |
||
981 | 21:29:23.261982 bcast, ethertype Reverse ARP (0x8035), length 22: SLARP (length: 18), keepalive: mineseen=0x00000041, yourseen=0x00000042, reliability=0xffff, link uptime=1d5h5m32s |
||
982 | ^C |
||
983 | 10 packets captured |
||
984 | 10 packets received by filter |
||
985 | 0 packets dropped by kernel |
||
986 | </pre> |
||
987 | |||
988 | Cleanup |
||
989 | <pre> |
||
990 | ip link set hdlc0 down |
||
991 | rmmod wcte11xp icE1usb dahdi hdlc_cisco hdlc |
||
992 | </pre> |