Integrating LAN-less Machines into a local Token Ring

From Try-AS/400
Revision as of 18:16, 21 January 2022 by PoC (talk | contribs) (Thanks!)
Jump to navigation Jump to search

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

Network Plan
6152 Adapter, located in a P02
2609 Adapter socket, located in a P03
2609 Plug with heavy cable
2609 Breakout-Brick
  • 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

Footnotes

  1. If the machine was attached to a modem in earlier times, and you obtained all the cables, all requirements are satisfied.
  2. Older versions might also work.
  3. 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.
  4. Depending on I/O-Adapter and machine model, this might parameter limited to higher or lower values.
  5. If you're connected remotely, make sure you've set term moni.
  6. The name of the controller description depends on the name of the SDLC machine.
  7. 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 rght directions.