Announcing TCP/IP for RSX-11M-PLUS

Johnny Billquist bqt at
Fri Jun 12 12:10:30 CDT 2015

Argh. And no matter how much you test things, there is always something 
you might miss.
If anyone already downloaded the new dist, please pick the new version I 
just cut.
There is an error in the generated IPINS command file when using DHCP, 
which cause it to not work right.


On 2015-06-12 17:21, Johnny Billquist wrote:
> Aw, chucks.
> After reading the other day about someone who was talking about VMS and
> the wish for DHCP, I actually decided that it was time that BQTCP/IP
> also got DHCP.
> So, without further ado - I cut a new release. One bugfix for a bug in
> the TCP state machine, which could get stuck, but otherwise the big
> reason is that DHCP is now implemented.
> Read the documentation, or ask me questions. The IPGEN procedure will
> create installation files for use with DHCP, but if you are upgrading
> from a previous version, you might want to make comparisons with the new
> command files, and merge any new stuff in, if you want to use DHCP.
> If you don't care about DHCP, then nothing needs to change in the
> current configs.
> DHCP tries to be clever, and handle some different options, but there
> are parts that I do not use myself, that I have not tested, or sometimes
> implemented. In such cases you might see some messages on the console.
> Pass such information on to me, and I can improve things.
> DHCP is written in PDP-11 C. If you do not have that compiler, you will
> not be able to recompile the code. Sources are provided, along with a
> binary that runs, and do not depend on any shared libraries.
> The DHCP code also makes use of some functions and interfaces to the IP
> stack and the interface drivers that others might find useful to
> reference to if they are interested in doing low level stuff with
> TCP/IP. (Such as reading/writing interface configs and routing tables.)
> As usual, the distribution is available from:
> The documentation is also available through ftp on Madame, or also at
> I hope people will find this latest release useful, and my next project
> right now is telnet (this time really...).
>       Johnny
> On 2015-06-08 19:03, Johnny Billquist wrote:
>> About three months since I last announced anything. There have been
>> various development since, and I figured I should encourage people who
>> are using BQTCP/IP for RSX to upgrade to the latest release.
>> A short list of changes:
>> ICMP:
>> . ICMP packets accidentally lost the source IP address informaton when
>>     returning information to a program. - Fixed.
>> TCP:
>> . User timers on TCP sockets could erroneously stop. - Fixed.
>> . User timers now reset on completed reads, so that you do
>>     not get a timeout if you are constantly completing reads.
>> . Sockets in Fin-Wait-2 could sometimes get stuck in that state.
>>     - Fixed.
>> . If a TCP session got an RST, it could get into a bad state. - Fixed.
>> . Added the ability to send URGENT data in TCP. (Receive ignores any
>>     URGENT flags.)
>> . Added a special I/O function to read from TCP without formatting.
>> DNS:
>> . Improved stability of DNS client daemon code.
>> FTP:
>> . FTP client and server performance improved.
>> . FTP server logging added.
>> . Improvements in FTP server and client for handling files with implicit
>>     CFLF.
>> . Implemented primitive handling of Unix file paths implemented in FTP
>>     server. This allows most web browsers to access FTP repositories
>>     under RSX.
>> I also did some performance testing using FTP.
>> FTP from a modern Unix system of BQTCP.DSK in binary mode to both RSX
>> and 2.11BSD, running under simh on the same physical machine:
>> 2.11BSD: 210s
>> RSX: 141s
>>   From RSX (E11) to the same machines:
>> 2.11BSD: 240s
>> RSX: 137s
>> I honestly do not know why transfer from RSX to 2.11BSD took longer than
>> from Unix, but transfer from RSX to RSX was faster compared to Unix to
>> RSX. I would have expected both to be slower or faster. But the numbers
>> are interesting, and show that the RSX TCP implementation is doing
>> fairly well, even through it goes through the DECnet ethernet driver, as
>> compared to 2.11BSD which runs TCP/IP more "native".
>> As usual, the distribution is available from:
>> The documentation is also available through ftp on Madame, or also at
>> I hope people will find this latest release useful, and my next project
>> right now is telnet.
>>       Johnny
>> On 2015-01-16 04:47, Johnny Billquist wrote:
>>> There have been lots of positive comments, and obviously some people
>>> have even tested using the software.
>>> Of course, a bug was also found. A really weird corner case with
>>> severely loading the network stack and having a socket in listen state
>>> programatically could trigger a corruption of kernel memory.
>>> So I've cut a new release with the bug fixed.
>>> While I'm at it I also realize that I forgot to mention that included in
>>> the distribution is also a simple IRC client as well as a simple IRC
>>> robot.
>>> I've also taken a little time to slightly improve the documentation, and
>>> the documentation is now also available directly by ftp from
>>> Madame.Update.UU.SE, so you do not need to get the whole distribution
>>> and unpack it to just read something.
>>> So - same as before. Disk image and tape image are available at
>>> Madame.Update.UU.SE. Use anonymous ftp.
>>> Disk image is also available at
>>> The disk image is a virtual RL02 disk. Can be used with any emulator, or
>>> also directly inside RSX if you have virtual devices available.
>>> Happy hacking.
>>>       Johnny
>>> On 2015-01-14 00:40, Johnny Billquist wrote:
>>>> Well, it's been a long time project, but I'm happy to finally announce a
>>>> more public initial release of TCP/IP for RSX-11M-PLUS.
>>>> This is the result of over 20 years of development. Needless to say,
>>>> I've been doing a lot of things over the years, and this code have been
>>>> through four reimplementations over the years.
>>>> What I now release is something that I believe is a nice and useful
>>>> piece of software. I am aware of the fact that most people do not use
>>>> these machines any longer, but if someone actually wants to talk to me
>>>> about support for this or other RSX software, let me know.
>>>> Also, feel free to spread this information to anyone who might be
>>>> interested, anywhere.
>>>> So - what is in this release?
>>>> It is a complete implementation of ARP, IP, UDP, and TCP for
>>>> RSX-11M-PLUS. It has been tested on RSX-11M-PLUS V4.6, but should work
>>>> on any V4 release. There might be some small tweaks or fixes required,
>>>> but nothing major.
>>>> It do require a system with split I/D-space, or else at least the TCP
>>>> part will not fit.
>>>> For Unibus machines, it should be possible to run without any additional
>>>> software except what is in a base RSX distribution.
>>>> For Q-bus machines, DECnet is required for ethernet networking.
>>>> The TCP/IP stack can co-exist with DECnet.
>>>> Some utilities also utilize RMS for file access.
>>>> A bunch of tools, utilities and libraries are also included. These
>>>> include:
>>>> . IFCONFIG network configuration tool.
>>>> . NETSTAT network information tool.
>>>> . PING
>>>> . DNS client
>>>> . FTP daemon
>>>> . FTP client
>>>> . HTTP server
>>>> . TELNET client (rudimentary)
>>>> . TFTP client
>>>> . TFTP server
>>>> . INET server that can do SINK, ECHO, DAYTIME, QUOTE, and IDENT
>>>> . NTP client
>>>> . LPR client that sits in the queue manager (rudimentary)
>>>> . FORTRAN-77 library
>>>> . BASIC+2 library
>>>> . PDP-11 C library
>>>> The implementation fulfills most of the requirements put forth in RFC
>>>> 1122. There are a few limitations because of restrictions in the PDP-11,
>>>> but none of them should really cause any problems.
>>>> Documentation is still on the thin side, but example configs are also
>>>> provided, along with installation scripts.
>>>> A bunch of test programs and example programs are also included, as well
>>>> as the sources of all tools and libraries.
>>>> The TCP/IP stack itself only comes in binary form.
>>>> All tools are also included precompiled in the distribution, so an
>>>> installation only have to build the stack itself for your system, and
>>>> then you should be ready to go.
>>>> The API only have a slight resemblance to the Unix sockets API. However,
>>>> if someone sits down to write code to use TCP/IP under RSX, I'm sure
>>>> they will discover that it is extremely easy to use the libraries, or
>>>> the basic functions.
>>>> The TCP/IP implementation is mostly written as device drivers. This also
>>>> have some other interesting implications, such as it is possible to
>>>> access TCP as a normal file. You can, for instance do something similar
>>>> to the Unix netcat command by issuing the MCR command:
>>>>   > PIP TI:=TC:"";4711
>>>> which would open a connection to, on port 4711, and any data
>>>> sent from that machine will be shown on the terminal.
>>>> The resources used by TCP/IP are modest. A memory area (size selectable
>>>> at generation/startup) is used internally. The amount of memory in the
>>>> private pool limits the amount of data that can be buffered. Normal pool
>>>> is used in a small quantity for each TCP port that is open.
>>>> People are welcome to play around with this, and make improvements.
>>>> Contributions of code is most welcome.
>>>> There are still lots of things to do. The programs marked as rudimentary
>>>> should be rewritten.
>>>> The most obvious thing still missing is a telnet daemon, which probably
>>>> is my next step.
>>>> However, the reason for now announcing the release is that it can
>>>> finally be distributed natively from an RSX host.
>>>> The main locations to download the TCP/IP for RSX are:
>>>> Madame.Update.UU.SE (anonymous ftp).
>>>> This is one of my development systems for this software. It runs under
>>>> E11, and if things are down, I blame E11. :-)
>>>> When connected, you are already in the right directory. There is both an
>>>> RL02 disk image there, which can be downloaded by anyone. If you happen
>>>> to have an RSX system which you are conneting from, you can also try
>>>> getting the BQTCP.TAP tape image. Such an image will not transport
>>>> cleanly to a non-RSX system, however. Sorry.
>>>> ftp.Update.UU.SE (anonymous ftp) - /pub/pdp11/rsx/tcpip
>>>> The disk image is normally duplicated to as well, so
>>>> the same file can be found there.
>>>> I hope some people will find this useful/amusing. :-)
>>>>       Johnny Billquist
>> _______________________________________________
>> Simh mailing list
>> Simh at

More information about the cctalk mailing list