About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / isdn / README.x25




Custom Search

Based on kernel version 3.15.4. Page generated on 2014-07-07 09:03 EST.

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
Hide Line Numbers
About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Information is copyright its respective author. All material is available from the Linux Kernel Source distributed under a GPL License. This page is provided as a free service by mjmwired.net.