1 |
1275 |
phoenix |
|
2 |
|
|
X.25 support within isdn4linux
|
3 |
|
|
==============================
|
4 |
|
|
|
5 |
|
|
This is alpha/beta test code. Use it completely at your own risk.
|
6 |
|
|
As new versions appear, the stuff described here might suddenly change
|
7 |
|
|
or become invalid without notice.
|
8 |
|
|
|
9 |
|
|
Keep in mind:
|
10 |
|
|
|
11 |
|
|
You are using several new parts of the 2.2.x kernel series which
|
12 |
|
|
have not been tested in a large scale. Therefore, you might encounter
|
13 |
|
|
more bugs as usual.
|
14 |
|
|
|
15 |
|
|
- If you connect to an X.25 neighbour not operated by yourself, ASK the
|
16 |
|
|
other side first. Be prepared that bugs in the protocol implementation
|
17 |
|
|
might result in problems.
|
18 |
|
|
|
19 |
|
|
- This implementation has never wiped out my whole hard disk yet. But as
|
20 |
|
|
this is experimental code, don't blame me if that happened to you.
|
21 |
|
|
Backing up important data will never harm.
|
22 |
|
|
|
23 |
|
|
- Monitor your isdn connections while using this software. This should
|
24 |
|
|
prevent you from undesired phone bills in case of driver problems.
|
25 |
|
|
|
26 |
|
|
|
27 |
|
|
|
28 |
|
|
|
29 |
|
|
How to configure the kernel
|
30 |
|
|
===========================
|
31 |
|
|
|
32 |
|
|
The ITU-T (former CCITT) X.25 network protocol layer has been implemented
|
33 |
|
|
in the Linux source tree since version 2.1.16. The isdn subsystem might be
|
34 |
|
|
useful to run X.25 on top of ISDN. If you want to try it, select
|
35 |
|
|
|
36 |
|
|
"CCITT X.25 Packet Layer"
|
37 |
|
|
|
38 |
|
|
from the networking options as well as
|
39 |
|
|
|
40 |
|
|
"ISDN Support" and "X.25 PLP on Top of ISDN"
|
41 |
|
|
|
42 |
|
|
from the ISDN subsystem options when you configure your kernel for
|
43 |
|
|
compilation. You currently also need to enable
|
44 |
|
|
"Prompt for development and/or incomplete code/drivers" from the
|
45 |
|
|
"Code maturity level options" menu. For the x25trace utility to work
|
46 |
|
|
you also need to enable "Packet socket".
|
47 |
|
|
|
48 |
|
|
For local testing it is also recommended to enable the isdnloop driver
|
49 |
|
|
from the isdn subsystem's configuration menu.
|
50 |
|
|
|
51 |
|
|
For testing, it is recommended that all isdn drivers and the X.25 PLP
|
52 |
|
|
protocol are compiled as loadable modules. Like this, you can recover
|
53 |
|
|
from certain errors by simply unloading and reloading the modules.
|
54 |
|
|
|
55 |
|
|
|
56 |
|
|
|
57 |
|
|
What's it for? How to use it?
|
58 |
|
|
=============================
|
59 |
|
|
|
60 |
|
|
X.25 on top of isdn might be useful with two different scenarios:
|
61 |
|
|
|
62 |
|
|
- You might want to access a public X.25 data network from your Linux box.
|
63 |
|
|
You can use i4l if you were physically connected to the X.25 switch
|
64 |
|
|
by an ISDN B-channel (leased line as well as dial up connection should
|
65 |
|
|
work).
|
66 |
|
|
|
67 |
|
|
This corresponds to ITU-T recommendation X.31 Case A (circuit-mode
|
68 |
|
|
access to PSPDN [packet switched public data network]).
|
69 |
|
|
|
70 |
|
|
NOTE: X.31 also covers a Case B (access to PSPDN via virtual
|
71 |
|
|
circuit / packet mode service). The latter mode (which in theory
|
72 |
|
|
also allows using the D-channel) is not supported by isdn4linux.
|
73 |
|
|
It should however be possible to establish such packet mode connections
|
74 |
|
|
with certain active isdn cards provided that the firmware supports X.31
|
75 |
|
|
and the driver exports this functionality to the user. Currently,
|
76 |
|
|
the AVM B1 driver is the only driver which does so. (It should be
|
77 |
|
|
possible to access D-channel X.31 with active AVM cards using the
|
78 |
|
|
CAPI interface of the AVM-B1 driver).
|
79 |
|
|
|
80 |
|
|
- Or you might want to operate certain ISDN teleservices on your linux
|
81 |
|
|
box. A lot of those teleservices run on top of the ISO-8208
|
82 |
|
|
(DTE-DTE mode) network layer protocol. ISO-8208 is essentially the
|
83 |
|
|
same as ITU-T X.25.
|
84 |
|
|
|
85 |
|
|
Popular candidates of such teleservices are EUROfile transfer or any
|
86 |
|
|
teleservice applying ITU-T recommendation T.90.
|
87 |
|
|
|
88 |
|
|
To use the X.25 protocol on top of isdn, just create an isdn network
|
89 |
|
|
interface as usual, configure your own and/or peer's ISDN numbers,
|
90 |
|
|
and choose x25iface encapsulation by
|
91 |
|
|
|
92 |
|
|
isdnctrl encap x25iface.
|
93 |
|
|
|
94 |
|
|
Once encap is set like this, the device can be used by the X.25 packet layer.
|
95 |
|
|
|
96 |
|
|
All the stuff needed for X.25 is implemented inside the isdn link
|
97 |
|
|
level (mainly isdn_net.c and some new source files). Thus, it should
|
98 |
|
|
work with every existing HL driver. I was able to successfully open X.25
|
99 |
|
|
connections on top of the isdnloop driver and the hisax driver.
|
100 |
|
|
"x25iface"-encapsulation bypasses demand dialing. Dialing will be
|
101 |
|
|
initiated when the upper (X.25 packet) layer requests the lapb datalink to
|
102 |
|
|
be established. But hangup timeout is still active. Whenever a hangup
|
103 |
|
|
occurs, all existing X.25 connections on that link will be cleared
|
104 |
|
|
It is recommended to use sufficiently large hangup-timeouts for the
|
105 |
|
|
isdn interfaces.
|
106 |
|
|
|
107 |
|
|
|
108 |
|
|
In order to set up a conforming protocol stack you also need to
|
109 |
|
|
specify the proper l2_prot parameter:
|
110 |
|
|
|
111 |
|
|
To operate in ISO-8208 X.25 DTE-DTE mode, use
|
112 |
|
|
|
113 |
|
|
isdnctrl l2_prot x75i
|
114 |
|
|
|
115 |
|
|
To access an X.25 network switch via isdn (your linux box is the DTE), use
|
116 |
|
|
|
117 |
|
|
isdnctrl l2_prot x25dte
|
118 |
|
|
|
119 |
|
|
To mimic an X.25 network switch (DCE side of the connection), use
|
120 |
|
|
|
121 |
|
|
isdnctrl l2_prot x25dce
|
122 |
|
|
|
123 |
|
|
However, x25dte or x25dce is currently not supported by any real HL
|
124 |
|
|
level driver. The main difference between x75i and x25dte/dce is that
|
125 |
|
|
x25d[tc]e uses fixed lap_b addresses. With x75i, the side which
|
126 |
|
|
initiates the isdn connection uses the DTE's lap_b address while the
|
127 |
|
|
called side used the DCE's lap_b address. Thus, l2_prot x75i might
|
128 |
|
|
probably work if you access a public X.25 network as long as the
|
129 |
|
|
corresponding isdn connection is set up by you. At least one test
|
130 |
|
|
was successful to connect via isdn4linux to an X.25 switch using this
|
131 |
|
|
trick. At the switch side, a terminal adapter X.21 was used to connect
|
132 |
|
|
it to the isdn.
|
133 |
|
|
|
134 |
|
|
|
135 |
|
|
How to set up a test installation?
|
136 |
|
|
==================================
|
137 |
|
|
|
138 |
|
|
To test X.25 on top of isdn, you need to get
|
139 |
|
|
|
140 |
|
|
- a recent version of the "isdnctrl" program that supports setting the new
|
141 |
|
|
X.25 specific parameters.
|
142 |
|
|
|
143 |
|
|
- the x25-utils-2.X package from
|
144 |
|
|
ftp://ftp.hes.iki.fi/pub/ham/linux/ax25/x25utils-*
|
145 |
|
|
(don't confuse the x25-utils with the ax25-utils)
|
146 |
|
|
|
147 |
|
|
- an application program that uses linux PF_X25 sockets (some are
|
148 |
|
|
contained in the x25-util package).
|
149 |
|
|
|
150 |
|
|
Before compiling the user level utilities make sure that the compiler/
|
151 |
|
|
preprocessor will fetch the proper kernel header files of this kernel
|
152 |
|
|
source tree. Either make /usr/include/linux a symbolic link pointing to
|
153 |
|
|
this kernel's include/linux directory or set the appropriate compiler flags.
|
154 |
|
|
|
155 |
|
|
When all drivers and interfaces are loaded and configured you need to
|
156 |
|
|
ifconfig the network interfaces up and add X.25-routes to them. Use
|
157 |
|
|
the usual ifconfig tool.
|
158 |
|
|
|
159 |
|
|
ifconfig up
|
160 |
|
|
|
161 |
|
|
But a special x25route tool (distributed with the x25-util package)
|
162 |
|
|
is needed to set up X.25 routes. I.e.
|
163 |
|
|
|
164 |
|
|
x25route add 01
|
165 |
|
|
|
166 |
|
|
will cause all x.25 connections to the destination X.25-address
|
167 |
|
|
"01" to be routed to your created isdn network interface.
|
168 |
|
|
|
169 |
|
|
There are currently no real X.25 applications available. However, for
|
170 |
|
|
tests, the x25-utils package contains a modified version of telnet
|
171 |
|
|
and telnetd that uses X.25 sockets instead of tcp/ip sockets. You can
|
172 |
|
|
use those for your first tests. Furthermore, you might check
|
173 |
|
|
ftp://ftp.hamburg.pop.de/pub/LOCAL/linux/i4l-eft/ which contains some
|
174 |
|
|
alpha-test implementation ("eftp4linux") of the EUROfile transfer
|
175 |
|
|
protocol.
|
176 |
|
|
|
177 |
|
|
The scripts distributed with the eftp4linux test releases might also
|
178 |
|
|
provide useful examples for setting up X.25 on top of isdn.
|
179 |
|
|
|
180 |
|
|
The x25-utility package also contains an x25trace tool that can be
|
181 |
|
|
used to monitor X.25 packets received by the network interfaces.
|
182 |
|
|
The /proc/net/x25* files also contain useful information.
|
183 |
|
|
|
184 |
|
|
- Henner
|