Integrating LAN-less Machines into a local Token Ring
Sometimes, older, donated hardware comes without LAN I/O-Adapters. Sometimes these have serial communication I/O-Adapters, and Twinax, though. This article points out how to integrate such Hardware into a local Token Ring Network with the help of older Cisco Hardware.
This description is based on a proved to work setup. Surely, there are further ideas to explore, such as Bridging the Ring to Ethernet for SNA communications, or eliminate the Ring altogether by replacing it with just a Virtual-TokenRing interface on the Cisco Router.
Requirements
- AS/400, complete and functioning
- Local serial port with required breakouts, such as a #2609, or a #2652
- IBM V.24 Modem Cable[1]
- QAUTOCFG system variable switched to on
- Cisco 2612 or similar Router model with Token Ring Support, running IOS 12.3(26) or newer IOS with the Desktop Featureset (BINO3S3).[2]
- Cisco WIC-1T multi-functional serial port
- Cisco CAB-232 FC
- Other AS/400, complete and functioning, attached to a Token Ring
- QAUTOCFG system variable switched to on
Note! It is of utmost importance to make you aware that the AS/400 serial ports have sense pins, to sense which kind of cable is attached. If you plug in just an ordinary PC serial cable, you'll 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 providing the necessary sense pin connectivity. For this reason, you'll need to plug the DB-25S socket connector of the Cisco Cable to the Modem cable, and not directly to the AS/400's port.
SDLC Configuration on AS/400
- After plugging everything together like pointed out above, the serial-only machine is to be configured. 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.
- Next, the Controller description (equivalent to a PU definition in VTAM) to the peer system is to be created. This needs to be done before the line description, because the it is referenced there.
CRTCTLAPPC CTLD(OTHERHOST) LINKTYPE(*SDLC) MAXFRAME(1033) RMTCPNAME(*ANY) STNADR(C0) NODETYPE(*CALC) TMSGRPNBR(*CALC) AUTODLTDEV(*NO) CMNRCYLMT(10 1)[3]
- Armed with this, a line description is to be created, and the controller decription referenced:
CRTLINSDLC LIND(SDLCLIN) RSRCNAME(LIN011) NRZI(*NO) CTLD(OTHERHOST) LINESPEED(19200)[4] MAXFRAME(1033) DUPLEX(*FULL) LINKSPEED(19200) CTL(OTHERHOST) CMNRCYLMT(10 1)
- I suggest to run WRKCTLD and manually set the SWTDSC (press F11) to *NO. Otherwise, you'll get a log of unneeded messages about torn down connections.
- Because auto configuration is enabled, the device description (equivalent to a LU definition in VTAM) for the peer system will be created automatically at the first connection.
Configuration on the Cisco Router
Assumption is that the Router has already a basic configuration applied. This includes the Token Ring Interface.
source-bridge ring-group 512 dlsw local-peer ! interface Serial0/0 bandwidth 19 no ip address encapsulation sdlc load-interval 60 clock rate 19200 sdlc role prim-xid-poll sdlc vmac 0004.acad.5900 sdlc T1 300 sdlc N1 16472 sdlc N2 7 sdlc address C0 sdlc partner 0004.acad.50d5 C0 sdlc line-speed 19200 sdlc simultaneous full-datmode sdlc dlsw C0 hold-queue 128 out no shutdown ! interface TokenRing0/0 […] source-bridge 59 1 512 source-bridge spanning
Notes
sdlc vmac
is the virtual MAC address the SDLC AS/400 is assigned on the Token Ring. The last Byte must be 00, while IOS sets the last byte to the SDLC address being given later.sdlc address
must be the same value as the STNADR parameter in the controller description.sdlc partner
creates an association from the already existing AS/400's MAC address on the Token Ring to the SDLC address of the SDLC-AS/400.- The
source-bridge
statement in the physical Token Ring interface gives the attached Ring the number 59, designates it to the source bridge 1, and bridges traffic to the virtual ring (group) 512. - It's not yet 100 % clear if the following configuration statements are required:
source-bridge ring-group
dlsw local-peer
sdlc T1
sdlc N1
sdlc N2
sdlc simultaneous full-datmode
source-bridge spanning
Initiation, and Function Verification
- On the SDLC-AS/400 vary on line and controller descriptions:
VRYCFG CFGOBJ(SDLCLIN) CFGTYPE(*LIN) STATUS(*ON)
- After a brief pause, the Cisco Console should show that the serial port goes up:[5]
%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 SDLC-AS/400, looking into the QSYSOPR-Message Queue should show that the line has been varied on, and a connection to the controller OTHERHOST has been established through SDLCLIN.
- On the Cisco Router, you should see output of
show line ser0/0
similar to the following:
Serial0/0 is up, line protocol is up Hardware is PowerQUICC Serial MTU 1500 bytes, BW 19 Kbit, DLY 20000 usec, reliability 255/255, txload 1/255, rxload 1/255 Encapsulation SDLC, loopback not set Router link station role: PRIMARY (DCE) Router link station metrics: slow-poll not configured T1 (reply time out) 300 milliseconds N1 (max frame size) 16472 bits N2 (retry count) 7 poll-pause-timer 10 milliseconds poll-limit-value 1 k (windowsize) 7 modulo 8 sdlc vmac: 0004.ACAD.59-- sdlc addr C0 state is CONNECT cls_state is CLS_IN_SESSION VS 5, VR 6, Remote VR 5, Current retransmit count 0 Hold queue: 0/200 IFRAMEs 1109/1325 TESTs 0/0 XIDs 2258/19, DMs 0/0 FRMRs 0/1 RNRs 1/0 SNRMs 10/0 DISC/RDs 3/1 REJs 0/0 Poll: clear, Poll count: 0, ready for poll, chain: C0/C0 Last input never, output 00:00:00, output hang never Last clearing of "show interface" counters 1d17h Input queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0 Queueing strategy: fifo Output queue: 0/128 (size/max) 1 minute input rate 0 bits/sec, 49 packets/sec 1 minute output rate 0 bits/sec, 49 packets/sec 7467200 packets input, 15548792 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 21 giants, 0 throttles 21 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort 7468810 packets output, 15116960 bytes, 0 underruns 0 output errors, 0 collisions, 26 interface resets 0 output buffer failures, 0 output buffers swapped out 10 carrier transitions DCD=up DSR=up DTR=up RTS=up CTS=up
- On the Cisco Router, you should see output of
show dlsw local-circuit
similar to the following:
key mac-addr sap state port rif 2197187452 0004.acad.59c0 04 CONNECTED Se0/0 --no rif-- PCEP: 82AB8B88 UCEP: 82F66B7C 0004.acad.50d5 04 CONNECTED To0/0 0600.2001.03B0 PCEP: 82F511AC UCEP: 82F66B7C
- On the Token Ring attached AS/400, you should see the SDLC-Attached AS/400 in
WRKAPPNSTS OPTION(*LOC)
.
Configuration Corrections
The APPC Controller on the Token Ring Attached machine has been created with default values. This includes MAXFRAME being set to the default for Token Ring, aka 16393. This will result in connection instabilities, if not corrected.
- On the SDLC-AS/400 vary off line and controller descriptions:
VRYCFG CFGOBJ(SDLCLIN) CFGTYPE(*LIN) STATUS(*OFF)
- On the Token Ring-AS/400 vary off the controller description:
VRYCFG CFGOBJ(SDLCAS) CFGTYPE(*CTL) STATUS(*OFF)[6]
- Change configuration to better matching parameters:
CHGCTLAPPC CTLD(FIONA) MAXFRAME(1033) INLCNN(*ANS) NODETYPE(*CALC) AUTODLTDEV(*NO) CMNRCYLMT(10 1) CTLOWN(*USER)
- I suggest to run WRKCTLD and manually set the SWTDSC (press F11) to *NO. Otherwise, you'll get a log of unneeded messages about torn down connections.
- Vary on configuration objects on botch AS/400, starting with the Token Ring machine.
VRYCFG CFGOBJ(SDLCAS) CFGTYPE(*CTL) STATUS(*ON) VRYCFG CFGOBJ(SDLCLIN) CFGTYPE(*LIN) STATUS(*ON)
You now should be able to enjoy a stable, albeit slow connection to your SDLC-Connected AS/400, with each and every service running over SNA.
Possible Errors
It is important that each and every involved configuration components is set to a maximum frame size of 1033, or less:
- SDLC Line Description on the serial AS/400,
- Controller Description for the APPN peer on the serial AS/400,
- Controller Description for the APPN peer on the Token Ring AS/400.
Failing to adhere will lead to connection errors. Cisco IOS Debugging helps to find the culprit:
%PQUICC-1-TOOBIG: PQUICC(0/0), packet too big, packet size was 2059 bytes SDLC Reset, Serial0/0 D2 CONNECT: N2 Expired (iframe(s) resent > N2)
Weblinks
- DLSw+ Translation Between SDLC and Token Ring Media Example, Cisco.com
- RS-232 Timing Signals, Wikipedia
- Serial Cable CAB-232FC, Cisco.com
- AS/400 Service Functions, SY44-5902-03[7]
Footnotes
- ↑ If the machine was attached to a modem in earlier times, and you obtained all the cables, all requirements are satisfied.
- ↑ Older versions might also work.
- ↑ Note that this is an example configuration for integrating a new machine into an existing APPN network. Thus, CTLD, and RMTCPNAME might not match the Token Ring AS/400's settings.
- ↑ Depending on I/O-Adapter and machine model, this might parameter limited to higher or lower values.
- ↑ If you're connected remotely, make sure you've set
term moni
. - ↑ The name of the controller description depends on the name of the SDLC machine.
- ↑ 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.
Acknowledgements
Thanks to Ben Huntsman, Alexander Huemer, and Herman val Kleef for hints and nudges to the right direction.