Configuring X.25 link through Cisco IP network

From Try-AS/400
Jump to navigation Jump to search

Sometimes, older, donated hardware comes without LAN I/O-adapters. Sometimes it has serial communication I/O-adapters, though. This article points out how to network two AS/400's with the help of (older) Cisco hard- and software through the X.25 protocol, and XOT. This example does not make use of switched virtual circuits (SVC), but permanent virtual circuits (PVC).

Motivation

Cisco 1005, disassembled for de-dusting power connector replacement

I wanted my 9401-P03 to be optically present on my desk instead in a dusty corner. The dusty corner had a Cisco 2513 nearby for SDLC network integration, but the new place just has Ethernet. So, another router was needed. Because this machine already generates considerable noise, a fanless router was desired.

First try was with a very old 1005. But even with the latest IOS release 12.0(28d), that model doesn't support SDLC encapsulation on its serial interface. Hence I decided to switch to a common protocol both machines understand: X.25, or Frame Relay. Using Frame Relay was not feasible, because OS/400 supports Frame Relay only with certain cabling options and IO-Adapters I don't have. Hence I chose X.25 as the last common denominator for RS-232/V.24.

Sadly, the 1005 makes the connection fail as soon as actual transfers are attempted. I tested line speeds down to 9600 bps without success. For fault isolation, I grabbed an old Cisco 1601-R, and copied over the configuration. Connection was working at the first try with 9600 bps. I increased the line speed to 64 Kbps — the same speed the 2612 connected to the other Machine showed was possible without problems. Most notable benefit to use X.25 compared to a direct SLDC link is that serial speeds up to 64 Kbps are allowed and apparently possible, instead of just 19200 bps with SDLC.

Requirements

6152 Adapter, located in a P02
2609 Adapter socket, located in a P03
2609 Plug with heavy cable
2609 Breakout-Brick — note that the Cisco cable is plugged directly which is wrong, and only shown for illustration purposes.
  • Two AS/400 machines, complete and functioning
    • QAUTOCFG system variable switched to on
    • Local serial port with required breakouts, such as a #2609, #2652, #2720, etc.
    • Matching IBM V.24 Modem Cable[1]

Note! It is of utmost importance to keep in mind that the AS/400 serial ports have sense pins, to know which kind of cable is attached. If you plug in just an ordinary PC serial cable, you’ll eventually find the succinct message in the QSYSOPR message queue, that a cable could not be found. Therefore the requirement of an IBM V.24 Modem Cable, or a self made cable, or adapter, providing the necessary sense pin connectivity. For this reason, you'll need to plug the DB-25F socket connector of the Cisco cable to the modem cable, and not directly to the AS/400’s port.

  • Cisco 16xx, 26xx or similar router model with T-Type serial interface (card),
    • Cisco CAB-232 FC,
    • Router LAN ports configured so they can reach each other via IP.

The basic network topology is symmetric. Both AS/400s are connected to their respective Cisco routers through their serial port, and both Cisco routers are connected to each other with some LAN technology, presumably Ethernet.

Fiona → Cisco 1601-R (192.168.1.97) → Cisco 2612 (192.168.1.5) → Nibbler

Configuration

Assumption is that the routers already have a basic configuration applied.

After plugging everything together like pointed out above, obtain the resource names of the serial ports. Type wrkhdwrsc *cmn to get a list of communication hardware, and associated ports. Example:

Resource        Type  Text
CMB01           917B  Combined function IOP
  LIN01         2609  Comm Adapter
    LIN011      2609  V.24 Port
    LIN012      2609  V.24 Port

Note! OS/400 V3 seems to not designate ports as CMN, but as LIN with three digits. Newer releases designate ports on an adapter as CMN.

After you have created the line description, run dsplind x25line to find the generated Exchange-ID.

Here is a table to help configuring what, where, and in which order.

Configuration Cisco 1601-R (192.168.1.97) Cisco 2612 (192.168.1.5)
Cisco IOS
x25 routing
interface Serial0
 description Fiona LIN011
 encapsulation x25 dce
 x25 modulo 128
 x25 ltc 100
 x25 pvc 6 xot 192.168.1.5 interface Serial 0/1 pvc 5 packetsize 512 512
 clockrate 64000
interface Ethernet0
 ip address 192.168.1.97 255.255.255.0
x25 routing
interface Serial0/1
 description Nibbler CMN01
 encapsulation x25 dce
 load-interval 60
 x25 modulo 128
 x25 ltc 100
 x25 pvc 5 xot 192.168.1.97 interface Serial 0 pvc 6 packetsize 512 512
 clock rate 64000
interface FastEthernet1/0
 ip address 192.168.1.5 255.255.255.0
  Fiona (V3R2) Nibbler (V4R5)
Serial resource LIN011 CMN01
Line description crtlinx25 lind(x25line) rsrcname(lin011) lglchle((006 *pvc)) netadr(00000000000000) cnninit(*remote) interface(*rs232v24) linespeed(64000) dftpktsize(512) modulus(128) adrinsert(*no) netctl(nibbler) linkspeed(64000) cmnrcylmt(1 10) crtlinx25 lind(x25line) rsrcname(cmn01) lglchle((005 *pvc)) netadr(00000000000000) cnninit(*remote) interface(*rs232v24) linespeed(64000) dftpktsize(512) modulus(128) adrinsert(*no) netctl(fiona) linkspeed(64000) cmnrcylmt(1 10)
Exchange-ID 05608945 05641700
Controller description crtctlappc ctld(nibbler) linktype(*x25) line(x25line) maxframe(512) rmtcpname(nibbler) exchid(05641700) netlvl(1984) lglchid(006) nodetype(*calc) tmsgrpnbr(*calc) autodltdev(*no) cnnrcylmt(10 1) crtctlappc ctld(fiona) linktype(*x25) line(x25line) maxframe(512) rmtcpname(fiona) exchid(05608945) netlvl(1984) lglchid(005) nodetype(*calc) tmsgrpnbr(*calc) autodltdev(*no) cnnrcylmt(10 1)

Notes

  • If you change the serial encapsulation value, all X.25 related configuration is discarded!
  • The PVC-ID for Cisco IOS is a decimal value, and for OS/400, it's a hex value!
  • You can use the same PVC on both sides.

Proven to work:

  • Cisco 2612 with added WIC-1T, and image C2600-BINO3S3, Version 12.3(26)
  • Cisco 1601-R, and image C1600-BNR2SY, Version 12.3(26)

When one side is powered down, the other side frequently posts error messages to the qsysopr message queue and problem reporting facility.

Initiation, and function verification

Turn on debugging on the Cisco routers:

term moni
debug x25

Run wrkcfgsts *lin x25line and use the interactive screen to vary on the line on both sides. You should see the lines coming up.

%LINK-3-UPDOWN: Interface Serial0/0, changed state to up
%LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/0, changed state to up

On the Cisco Router(s), you should see output of show int ser0/1 similar to the following:

Serial0/1 is up, line protocol is up 
  Hardware is PowerQUICC Serial
  Description: Nibbler CMN01
  MTU 1500 bytes, BW 19200 Kbit, DLY 20000 usec, 
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation X25, loopback not set
  X.25 DCE, version 1984, address <none>, state R1, modulo 128, timer 0
      Defaults: idle VC timeout 0
        cisco encapsulation
        input/output window sizes 2/2, packet sizes 128/128
      Timers: T10 60, T11 180, T12 60, T13 60
      Channels: Incoming-only none, Two-way 100-1024, Outgoing-only none
      RESTARTs 32/0 CALLs 0+0/0+0/0+0 DIAGs 34/0
  LAPB DCE, state CONNECT, modulo 8, k 7, N1 12056, N2 20
      T1 3000, T2 0, interface outage (partial T3) 0, T4 0
      VS 6, VR 4, tx NR 4, Remote VR 6, Retransmissions 0
      Queues: U/S frames 0, I frames 0, unack. 0, reTx 0
      IFRAMEs 1664/1953 RNRs 0/0 REJs 0/0 SABM/Es 55/0 FRMRs 0/0 DISCs 0/24
  Last input never, output 00:50:34, output hang never
  Last clearing of "show interface" counters 23:57:07
  Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0
  Queueing strategy: fifo
  Output queue: 0/40 (size/max)
  1 minute input rate 0 bits/sec, 0 packets/sec
  1 minute output rate 0 bits/sec, 0 packets/sec
     3654 packets input, 76438 bytes, 0 no buffer
     Received 0 broadcasts, 0 runts, 0 giants, 0 throttles
     29 input errors, 0 CRC, 29 frame, 0 overrun, 0 ignored, 0 abort
     3526 packets output, 81439 bytes, 0 underruns
     0 output errors, 0 collisions, 917 interface resets
     0 output buffer failures, 0 output buffers swapped out
     51 carrier transitions
     DCD=up  DSR=up  DTR=up  RTS=up  CTS=up

See also

Weblinks

Footnotes

  1. If the machine was attached to a modem in earlier times, and you obtained all the cables, all requirements are satisfied.
  2. Very old documentation linked intentionally. Note: The configuration option tunnel was renamed to xot in newer IOS releases.
  3. PDF page 245, Table 51, bottom line on that page displays the cable-id connected pins. See also the notes on the top of the next page.