X.25 Protocols

X.25 Frequently Asked Questions

Document ID: 18327

Updated: Dec 12, 2007



X.25 is an International Telecommunication Union-Telecommunication Standardization Sector (ITU-T) protocol standard for WAN communication that defines how user devices and network devices establish and maintain connections. X.25 is more commonly seen on networks prone to error. This document discusses some of the frequently asked questions regarding X.25

Q. Can I create an X.25 map in Annex G?

A. Annex G supports only X.25 routing and packet assembler/disassembler (PAD) calls. The same is true of Connection-Mode Network Service (CMNS) and X.25 over TCP (XOT). You can forward an RFC1536 X.25 call, but you cannot originate it over an Annex G data-link connection identifier (DLCI).

In order to carry both IP and X.25 traffic over a Frame Relay interface, you need to either use two DLCIs or carry the X.25 traffic via XOT on a DLCI that supports IP, rather than an Annex G DLCI. For more information refer to the Annex G (X.25 over Frame Relay) documentation. Also see Configuring X.25 over Frame Relay (Annex G) (documentation for Cisco® IOS Software Release 12.2).

Q. Since when has AODI been supported?

A. Always on Dynamic ISDN (AODI) has been supported since Cisco IOS Software Release 11.3(3)T. For more information, refer to Always On/Dynamic ISDN (AO/DI).

Q. What is the purpose of the X.25 hold-queue command ?

A. The X.25 hold-queue command is used to specify the maximum number of packets to hold per virtual circuit (VC) before attempting to create another virtual circuit (SVC). If another VC cannot be created, the packets are dropped. See the X.25 Command Reference (Cisco IOS Software Release 12.2) for more information. To create another VC, you need the command x25 nvc X where X is the number of VCs that can be open concurrently towards the same destination.

Q. What is the purpose of the hold-queue command?

A. The hold-queue <length> {in/out} command is a low-level command that controls how many received buffers can be outstanding in the router. A driver will refuse to accept new data once it has exceeded the interface input limit, which can only be cured once some of the received packets in the router have been disposed of. This command should not be confused with the X25 hold-queue command and is not linked to Link Access Procedure Balanced (LAPB) and X.25, beyond the fact that LAPB monitors the status of the input limit and issues a receiver not ready (RNR) when the service can no longer receive I-frames. See the Cisco IOS Interface Command Reference (Cisco IOS Software Release 12.2) for more information.

Q. Why is my input-queue increasing with the X.25 protocol?

A. The reason for an increasing input-queue can be because the interface has too much traffic to handle, especially when those packets are destined for the router itself, for example Simple Network Management Protocol (SNMP). When using X.25 to transport IP, you need to fragment the IP datagram into several X.25 packets.

For example, an IP datagram could be fragmented into five X.25 packets. Each of those X.25 packets is fitted with an M-bit, except the last one. On the remote Cisco router you need to wait for the last packet to reconstruct the original IP datagram. In our example above, the first four packets (the ones with M-bit) need to be queued. These are queued in the input-queue of the interface. This only happens if the call is terminated on the router (for example, if it is terminated with x25 map).

If a lot of calls are terminated on the router, (such as IP and Qualified Logical Link Control [QLLC]) the input-queue may grow, because all VCs are sending M-bit packets. This can have a negative side effect, because the router sends an RNR on Layer 2 when the input-queue has reached the maximum. You can tune the input-queue using the hold-queue x in command.

Q. Does Cisco support GAP from DEC in CMNS ?

A. Cisco does not support GAP. GAP is a proprietary DEC protocol that transports X.25 from VAX over a DECnet network-services protocol (NSP) link to the X.25 gateway that extracts the X.25 information and forwards it to the X.25 network. To obtain similar functionality with Cisco IOS software, use Connection-Mode Network Service (CMNS) (also referred to as CONS in DEC terms). The CMNS uses X.25 over Logical Link Control, type 2 (LLC2) , which can be achieved on VAX with DECnet PhV and P.S.I. version 5 or later.

Q. How are window and packet size handled in local acknowledgment?

A. First, attempt to negotiate a consistent packet size for the call. If you cannot do so (one reason being that packet size negotiation is disabled) and local acknowledgment is enabled, then handle segmentation and reassembly for the circuit according to the X.25 recommendations.

In the example below, serial 1 is configured for 128 and serial 0 is configured for 256:

3d22h: Serial1: X.25 I D1 Data (131) 8 lci 1024 M PS 5 PR 4 
!--- Two packets of 128 incoming.
     3d22h: Serial1: X.25 I D1 Data (131) 8 lci 1024 M PS 6 PR 4 
     3d22h: Serial0: X.25 O D1 Data (259) 8 lci 1024 M PS 5 PR 4 
!--- One packet of 256 outgoing on other interface.
     3d22h: Serial1: X.25 O D1 RR (3) 8 lci 1024 PR 7 
     3d22h: Serial1: X.25 I D1 Data (131) 8 lci 1024 M PS 7 PR 4 
     3d22h: Serial0: X.25 I D1 RR (3) 8 lci 1024 PR 6 
     3d22h: Serial1: X.25 I D1 Data (131) 8 lci 1024 M PS 0 PR 4 
     3d22h: Serial0: X.25 O D1 Data (259) 8 lci 1024 M PS 6 PR 4 
     3d22h: Serial1: X.25 O D1 RR (3) 8 lci 1024 PR 1 
     3d22h: Serial1: X.25 I D1 Data (131) 8 lci 1024 M PS 1 PR 4 
     3d22h: Serial0: X.25 I D1 RR (3) 8 lci 1024 PR 7 
     3d22h: Serial1: X.25 I D1 Data (131) 8 lci 1024 M PS 2 PR 4 
     3d22h: Serial0: X.25 O D1 Data (259) 8 lci 1024 M PS 7 PR 4

Q. Are hunt-groups supported?

A. Yes, hunt-groups and X.25 load-balancing are supported. This feature was introduced in Cisco IOS Software Release 12.0(3)T. Refer to Configuring X.25 Load Balancing for more details.

Q. Does Cisco support X.75?

A. The ITU-T (formerly CCITT) defined the X.75 standard (packet-switched signaling system between public networks providing data transmission services) to support interconnection of X.25 public data networks. Cisco does not implement this.

A protocol stack that carries an asynchronous character stream over an LAPB session over an ISDN B-channel is also called X.75, although the only similarity it has to X.75 is the use of LAPB as the link layer protocol (which X.75 shares with X.25). Cisco calls this LAPB Terminal Adapter (LAPB-TA), and this is supported. Refer to ISDN LAPB-TA for more information.

Q. Which X.25 version is supported by Cisco?

A. The Cisco IOS software has always supported X.25 version 1984, and this is still the case in Cisco IOS Software Release 12.2. Prior to Cisco IOS Software Release 11.3, when configuring DDN or BFE encapsulation, the version used was 1980. If the encapsulation was X.25, the version used was 1984, with the addition of version 1988 for the throughput values.

Q. Why did my translation stop working after an upgrade to Cisco IOS Software Release 12.0?

A. In Cisco IOS Software Releases 11.2 and earlier, translation calls with non-standard protocol identifiers (PIDs) were incorrectly accepted. The destination address matched the first translation entry that did not specify Call User Data (CUD).

This translation is more accurate in Cisco IOS Software Release 12.0. The PID should be referred to as PAD (0x01000000) and the CUD data should be empty (the translation occurs if PAD is 0x01000000, but not if the data field of the CUD contains data). The translation line should match this value. This is necessary because the PID refers to how an application handles the incoming call. In our case, translation is always a PAD function. If the router receives an incoming call with an incorrect PID, it refuses the call because, on the remote host, the application is not referring to a PAD function.

There are several workarounds for accepting incoming calls that do not refer to a PAD. The most common is the x25 default-pad command. Do not assume that an incoming call with PID 0xC0000000 can be handled error free to the PAD application of the router. Both systems refer to different ways of handling the call. This can work, but on some occasions the X3 parameters will not be exchanged, leading to unreadable character displayed on the terminal or the call being torn down.

For a PID problem, if a call is received with PID 0x01000F00, try using cud \001.* in the translation command (001 this is the octal value). Please note the drawbacks of using this configuration, as explained above.

For a CUD data portion, try translation. That is, translate X.25 10 cud .* tcp This accepts all PAD calls (with PID 0x01000000) whatever the data portion is.

Refer to Configuring Protocol Translation and Virtual Asynchronous Devices for more information.

Q. In X.25 routing, what comes first ?

A. For incoming calls the map table has priority over the route table. If a matching map PAD entry is found, it is applied exclusively and the route table is not consulted. The route table is consulted only after a no matching map entry is found.

For outgoing calls, a configured map on the interface cannot be routed. All other calls, internal PADs or switched calls can be submitted to the routing table. The first available match is always used.

Q. Does XOT in Cisco IOS Software Release 11.2 work with release 11.3 or later ?

A. In Cisco IOS Software Release 11.3 and later, when the router requests a call clear it expects a clear confirmation, which is the default behavior end to end. On Cisco IOS Software Release 11.2, the behavior to call clear request is different. Making Cisco IOS Software Release 11.2 send a clear confirm requires a hidden command xot-confirm-svc-reset at the global level. In addition to the above command, service tcp keepalive-in and service tcp keepalive-out and xot-keepalive commands should be enabled in both Cisco IOS Software Release 11.2 and 11.3 routers. This cleans up any single ended SVCs and TCP sessions.

Q. Does XOT support commands that I can configure on my serial interface?

A. Currently the XOT does not allow any command like x25 default-pad, because there is no interface to do this on. However, xot profile will be supported in a later release. The current target is Cisco IOS Software Release 12.2-7.T.

Q. How can I reroute the X.25 map configured on my serial interface?

A. You cannot reroute the X.25 call that an x25 map command wants to originate. However, X.25 Remote Failure Detection is an interesting feature for detecting remote failure - for example, where a second router can be targeted to bring up an X.25 map.

Q. What is the maximum speed for X.25?

A. X.25 is supported up to 2 MB. You may be able to run at higher speed but, if attempting this, consider the process power needed to handle 4095 VCs at a speed of , say, 34 MB. This would have a negative effect, so it is recommended that you retain a speed of 2 MB.

Q. Can I use the X.25 protocol over ISDN?

A. Yes, X.25 encapsulation is supported on ISDN. X.25 can be configured in either physical or dialer mode. For more information on configuring X.25 on the physical mode, refer to Configuring X.25. For more information on configuring X.25 on the dialer mode, refer to Dynamic Multiple Encapsulations for Dial-In over ISDN. For more information on configuring X.25 on the d-channel, refer to Configuring X.25 on ISDN.

Q. Does Cisco support close user-groups?

A. Yes. For more information, refer to Configuring X.25 Closed User Groups.

Q. What is special about the x25 encapsulation ietf command?

A. Choosing Internet Engineering Task Force (IETF) makes the encapsulation compliant with RFC 1356

Q. Is priority-queuing supported on X.25?

A. Priority queuing and custom queuing are supported for X.25 interfaces as of Cisco IOS Software Release 11.3. This example puts a Routing Information Protocol (RIP) packet in the high priority queue.

interface Serial0 
     description Connection to Packet Handler ph3.F007 port 11 
     ip address 
     no ip directed-broadcast 
     encapsulation x25 
     no ip mroute-cache 
     x25 map ip 22222 packetsize 128 128 
     x25 map ip 33333 packetsize 128 128 
     x25 map ip 44444 packetsize 128 128 
     priority-group 2 
     priority-list 2 protocol ip high udp rip 
     priority-list 2 protocol ip low

For more information on priority-queueing, refer to Configuring Priority Queueing . For more information on custom-queueing, refer to Configuring Custom Queueing.

Q. Is compression supported on X.25?

A. Yes, compression can be used on X.25. For example:

interface Serial3/0:2 
     ip address 
     encapsulation x25 
     x25 address 3101 
     x25 map ip 3210 broadcast compress

You need one dictionary per X.25 VC, since the dictionary is reset when the M bit=0 is received, and you can receive interleaved X.25 fragments with the Mbit=1 on multiple VCs. As a result the memory needed is 24 kB * number of VCs for the compression.

Note: The compression algorithm is reset at the beginning of each X.25 packet. This means that payload compression is more efficient when large packets are used.

Q. Where can I find the clear and diagnostics information?

A. Note that not all clear and diagnostics are standard. Most X.25 constructors, or X.25 hosts apply their own diagnostic. If this is the case, refer to the appropriate documentation. For information on the standard diagnostics, refer to X.25 Cause and Diagnostic Codes.

Q. Where can I find the regular expression?

A. Regular expression is a good tool for making different decisions on an X.25 route. The regular-expression can be found in the Regular Expressions documentation.

Q. How are IP addresses translated for Defense Data Network (DDN) and Blacker Front End (BFE)?

A. Refer to X.25 DDN encapsulation and X.25 BFE encapsulation.

Q. How do I determine the correct T1 value ?

A. The retransmission timer (T1) determines how long a sent frame can remain unacknowledged. To find a suitable value of T1, find the maximum X.25 packet length (such as 128, 256, 1024) and multiply that by eight to get a number of bits. Then divide by the speed of the line in Kbps. This gives the transmission time in milliseconds. The time of transmission of the packet to the nearest switch is the minimum for the LAPB T1 value. Use a "security" factor of three or four to get a T1 value avoiding useless retransmissions.

For a 19.2 kbps line and 128 byte packets, this leads to a value of 200 ms. Check the information provided by the X.25 network supplier who usually advises a value.

Do not use ping to evaluate the transmission time. This gives you the time across the whole network, and not on the link to which the timer applies.

Q. Does X.25 support failover?

A. Yes, failover is supported with X.25. The x25 fail-over command was introduced in Cisco IOS Software Release 12.1(1)T.

Q. What is protocol translation and where can I find more information on the protocol translation feature?

A. The Protocol Translation feature provides transparent protocol translation between systems running different protocols. More information on the protocol translation feature is available at Configuring Protocol Translation and Virtual Asynchronous Devices.

Related Information

Updated: Dec 12, 2007
Document ID: 18327