Building a 100% virtual SNA network on your desk!

So I have been fighting the Mainframe thing for a while (see part1/part2) and getting nowhere. I couldn’t shake the feeling that it was working, but something on the mainframe side was broken. I just don’t know enough about MVS/VTAM on the host side. Although I have setup and deployed quite a few cisco routers in production doing remote ring groups, translational bridges, and the like, a DLSw connection to SDLC was something I’d never done as I’d always had direct token-ring access to the FrontEndProcessor.

On suspicion that I’ve been talking to the mainframe the whole time is that in the packet trace from Microsoft SNA server I’d see the string UNSUPPORTED FUNCTION in the capture.

Microsoft SNA Server

The LU goes online, but there just isn’t anything to be displayed. Traffic is constantly flowing but it’s always the same, a blank dead screen.

On a fluke I had spotted a copy of Attachmate Extra! 4.20 on eBay for $10. I was able to get someone to get it for me, and fence me a copy of the disks. Configuring Extra isn’t too involved, just set the terminal to type 4, and using the same block/destination address as all the others:

LU #3, and Model 4!

With the usual restricted I-Frame (MTU), and I turned everything on feature wise (it didn’t matter)

I had fired up both OS/2 & NT and with the same empty screen showing nothing. Next I loaded up Extra on Windows 95, and got this:

Unsupported Function
Unsupported Function

Well that was unexpected!

The 3705’s on Hercules can be connected to direclty, so I try c3270 and get this:

Wait, so my suspicion was right?!

I reset the mainframe, and then was greeted with the cat!


So what was wrong?!? I’m still not so sure, but turning off the debug on DLSw, let me see that both OS/2 AND Windows NT crash out SNASOL with an abend code of U0020.


I’m sure it means something to someone, but not to me. So this is one of those ‘dont do that if it hurts’ type things.

Since I had used Windows 95, as I figured it had more robust networking support than Windows 3.1

Setting up Windows 95 was a minor challenge as Extra! 4 is a Win16 application, and it’s DLC/802.2 support requires you to knock down the 32bit networking support to instead use the 16bit networking drivers. This is what let Extra! attach to it. Of course the following updates/files are needed for Windows 95 on Qemu:

the AMD PCnet driver is built in, so it works the best. Again, I have Dynamips & Qemu using the Microsoft Loopback as their common network, so I can do packet captures, and they both can communicate on the network.

So, of course the other question is, does it work with physical hardware?!

And YES it does!

If anything, using a terminal emulator that doesn’t crash out the host makes it seem all too easy. While I’ve seen SDLC PCI cards on ebay they are rather expensive, and does the ISA card really add anything that you could get over the LAN? Honestly no. Back in the day it really was just what you could get a hold of, and of course logically (virtually) setting stuff up made the 802.2 stuff all the easier to do, instead of leased lines, physical v35 cables, and all that other fun stuff.

With everything said & done, if you want to experience some pseudo fake SNA, go virtual. It’s far more portable, less cables involved, plus it’s self-contained making it more of a conversation piece.

All the hard work is being done by IOS, and it’s functionality like this is why cisco had established itself as king of the multiprotocol networking world. But everything is TCP/IP these days, and Cisco doesn’t commend the same enterprise place as it had once before, making this whole thing a middle point relic of the past. It’s far too new for real FEP/DLC networking, but everything now is TN32720 (telnet 3270).

I guess as a tip for people who buy physical routers is that those super expensive PCMCIA flash cards aren’t needed as long as you have enough RAM. One cool feature of the cisco routers is that the power on bootrom loads up a ‘boot’ version of IOS that is either also burned on ROM, or it’s also in FLASH. You have to remember it was super expensive back then so it may be only a few megabytes of space. The boot IOS can’t route or do anything too useful but it can load the proper IOS from various network sources into memory. My 7200 has one that supports FTP, so I could just drop IOS onto an anonymous ftp server at home.

I guess my ‘old man yells at the clouds’ is that I’ve had to deal with some bug in a remote site where the router didn’t have enough flash to store the image, and the Ethernet cards were too new for the boot IOS to drive, but we had an async card that did work, so I rebooted it to load production IOS over a T1. This one didn’t support FTP, rather it was TFTP, and it took about an hour to load. During that much time I didn’t have console access so I was getting ready to drive the 5 hours to the site, when I barely got onto the highway when I got the call that my ‘fix’ had worked and that the site was online. YAY.

I hope this has helped someone.

4 thoughts on “Building a 100% virtual SNA network on your desk!

  1. Is there any way to play with this stuff if you had say….. TN3270 access to a real zSeries? I once thought about actually trying to connect a real 3278 to a session, but abandoned the idea when I found out you needed a 3174 terminal controller….that usually only had a Token Ring interface AND required a set of special configuration disks.

    I see there are open source options now, but that would be a ton of effect just to say “Hey that’s neat”! Plus the keyboard jawas have pillaged all the 3270s!

    • well if I had access to a real mainframe I’d see about a DSLW link out of that to a cisco router, to complete the SNA link if I wanted to keep as much of this as possible.

      real 390’s have networking options and worst case would have a Front End Processor for full LU6.2 style access, or the newer OS’s have TCP/IP but I’m not all that interested in boring TCP/IP as I started this insane thing to get some real (fake) SNA.

  2. Do you know if there is a way to have a hercules/hyperion network in a complete rootless environment? I’m experimenting with it in a cluster where I don’t even have “unshare” (and indeed no root access whatsoever), so there appears to be no way of simulating a tap device, but maybe there is a trick of faking it via loading something with LD_LIBRARY_PATH? Or setting SLiRP via c3270?

    Indeed I tried to run it in a nested emulation first (hercules under qemu), and it sort of works, but the emulation overhead is dramatic, IPL takes some hours making the construct actually not usable.

    • I would try manually linking it. I haven’t tried it specifically, but for SDL after building it, I’ve been able to statically link stuff just by adding all the objects. You can also build static libraries out of the objects and link with those if that is any easier . Assuming there is no startup special inits on load.

      The pcap stuff can get involved though if going cross platform.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.