[HECnet] LAT

Johnny Billquist bqt at softjar.se
Fri Dec 17 08:39:06 PST 2021


Jeez. After a lot of pain, and still not entirely good, I can at least 
report some good things about LAT with regards to Linux and RSX.

As I mentioned before, there is some kind of a problem between the Linux 
latd and RSX LAT server. Using llogin to login on RSX systems, the 
terminal hangs after a while, and there is also some memory leak causing 
RSX to eventually become non-functional.


The Linux latd code is horribly weird and ever after digging through it 
for days, it still does things I cannot explain. But there is definitely 
one bug in there, which is that it does not count credits when receiving 
data_b slots. That means the sender can run out of credits, while the 
Linux latd thinks the remote still have credits, and will not extend 
more. The "funny" thing is that Linux latd do count the credits when 
sending data_b slots. So I'd say that is a very obvious error in Linux 
latd (also - LAT documentation clearly states that data_b slots counts 
against credits). I've fixed this, and that solved the hanging problem 
towards RSX. I'm honestly surprised if this has not been a problem 
anywhere else, as it's the same for any kind of system. Either other 
systems are not sending data_b slots, or else there are bugs on more sides.

I can provide the patch for this problem, but I wonder if anyone still 
"owns" that software, to whom I should send this...

Second, Linux latd sends attention slots with a stop code of 0x40. This 
is, according to the LAT documentation, as well as RSX code, an 
undefined value. Not sure where the Linux latd got that value from.

Third, Linux latd is broken when it comes to tracking and dealing with 
ACKs. This one I have not been able to figure out/understand. I can see 
on the wire that it's sending packets with a lower ACK number than the 
previous packet it sent out. Looking at the code, as well as trying to 
understand this in general seems crazy. It should not be possible for 
this to happen, but it does.

Fortunately, it is on a stop message, for which RSX isn't happy about 
for other reasons anyway, so it don't matter. But I still thing it's 
totally crazy.


Now, with all that said, I have also had to find and fix a couple of 
bugs in the RSX LAT code, which also is a little difficult to penetrate. 
Seems DEC can't really have tested this code that much, and whoever 
wrote it wasn't careful.

Fixed version of the LAT bits have been included in the latest BQTCP 
distribution. If you install the RSX patches, LAT will be fixed.

There are actually two problems I found in there.
1. If a circuit is closed down, and there is currently a transmit in 
progress, that transmit then becomes a lost buffer upon completion (this 
is the original RSX error I saw and mentioned before). This is clearly a 
case of timing issues, which I guess whoever wrote the code just didn't 
think about, or test carefully.

2. Slot attention messages with a valid stop code cause the system to 
crash. This is really weird. Because Linux latd was using an undefined 
value in the attention message, things worked just fine, but if I 
corrected that, RSX crashed. Which suggests that all terminal servers 
and other LAT software is in fact also using this wrong value in the 
attention message. Fixing this was just required saving and restoring a 
couple of registers at the right place. Again, this can't have been 
tested at all. Possibly the person writing the code thought he tested it 
by using DECservers or whatever, but if they actually were sending the 
wrong code, all looked good, but things did not get executed the way it 
should.


Finally, Linux latd sends a circuit stop message that RSX do not like at 
all. The reason being that RSX at that point have already deleted the 
circuit, so it becomes a stop message for a circuit that does not exist. 
This will cause the illegal message counter to count, but nothing worse 
than that.

I should break out a DECserver and compare to that. But I figure I 
should let people know about what I've been up to lately, which might 
also be interesting for others in here...

   Johnny

-- 
Johnny Billquist                  || "I'm on a bus
                                   ||  on a psychedelic trip
email: bqt at softjar.se             ||  Reading murder books
pdp is alive!                     ||  tryin' to stay hip" - B. Idol


More information about the Hecnet-list mailing list