diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
commit | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (patch) | |
tree | 0bba044c4ce775e45a88a51686b5d9f90697ea9d /Documentation/isdn/README.x25 |
Linux-2.6.12-rc2v2.6.12-rc2
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.
Let it rip!
Diffstat (limited to 'Documentation/isdn/README.x25')
-rw-r--r-- | Documentation/isdn/README.x25 | 184 |
1 files changed, 184 insertions, 0 deletions
diff --git a/Documentation/isdn/README.x25 b/Documentation/isdn/README.x25 new file mode 100644 index 000000000000..e561a77c4e22 --- /dev/null +++ b/Documentation/isdn/README.x25 | |||
@@ -0,0 +1,184 @@ | |||
1 | |||
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 <iface-name> 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 <iface-name> x75i | ||
114 | |||
115 | To access an X.25 network switch via isdn (your linux box is the DTE), use | ||
116 | |||
117 | isdnctrl l2_prot <iface-name> x25dte | ||
118 | |||
119 | To mimic an X.25 network switch (DCE side of the connection), use | ||
120 | |||
121 | isdnctrl l2_prot <iface-name> 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 <iface-name> 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 <iface-name> | ||
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 | ||