Linux <-> Apple Laser 16/600 [TCP problems??]

Mikael Abrahamsson (swmike@uplift.sparta.lu.se)
Thu, 8 Aug 1996 17:10:42 +0200 (MET DST)


We have run a setup of a linux 1.2.13 machine and an Apple 16/600
Laserprinter (postscript) for almost a year now, but when I upgraded to
2.0.x I suddenly got problems.

The symptoms is that smaller printjobs works fine (up to like 10-20k) but
larger ones gets stuck. This actually makes the printer hang as well in
some kind of state, the "processing"-led is flashing, and does until you
reset the printer. We worked around it by letting a Solaris 2.5-machine be
a printerspooler for the linux machine, and that works just fine. I have
tried both the old Slackware 2.3 lpd, and the lpd that came with RedHat
3.0.3 (which the machine currently is running, plus linux 2.0.10)

I've tried at least half of the kernels in the 2.0.x series, and they all
have the same problem. My guess is that the Apple laser does something
weird, but is there a way to work around it? Below is a tcpdump of the
process:

16:44:02.470543 godis.ipro.se.1023 > laser.ipro.se.printer: S 913878847:913878847(0) win 512 <mss 1460>
16:44:02.480543 laser.ipro.se.printer > godis.ipro.se.1023: S 4542465:4542465(0) ack 913878848 win 4380 <mss 1460> (DF)
16:44:02.480543 godis.ipro.se.1023 > laser.ipro.se.printer: . ack 1 win 31744
16:44:02.480543 godis.ipro.se.1023 > laser.ipro.se.printer: P 1:7(6) ack 1 win 31744 (DF)
16:44:02.480543 laser.ipro.se.printer > godis.ipro.se.1023: . ack 7 win 4374 (DF)
16:44:02.490543 laser.ipro.se.printer > godis.ipro.se.1023: P 1:2(1) ack 7 win 4380 (DF)
16:44:02.490543 godis.ipro.se.1023 > laser.ipro.se.printer: P 7:29(22) ack 2 win 31744 (DF)
16:44:02.500543 laser.ipro.se.printer > godis.ipro.se.1023: . ack 29 win 4358 (DF)
16:44:02.510543 laser.ipro.se.printer > godis.ipro.se.1023: P 2:3(1) ack 29 win 4380 (DF)
16:44:02.520543 godis.ipro.se.1023 > laser.ipro.se.printer: P 29:1053(1024) ack 3 win 31744 (DF)
16:44:02.520543 godis.ipro.se.1023 > laser.ipro.se.printer: P 1053:2513(1460) ack 3 win 31744 (DF)
16:44:02.530543 laser.ipro.se.printer > godis.ipro.se.1023: . ack 2513 win 1896 (DF)
16:44:02.530543 godis.ipro.se.1023 > laser.ipro.se.printer: P 2513:3973(1460) ack 3 win 31744
16:44:02.540543 laser.ipro.se.printer > godis.ipro.se.1023: . ack 3973 win 436 (DF)
16:44:02.740543 godis.ipro.se.1023 > laser.ipro.se.printer: P 3973:4409(436) ack 3 win 31744
16:44:02.740543 laser.ipro.se.printer > godis.ipro.se.1023: . ack 4409 win 0 (DF)
16:44:03.040543 laser.ipro.se.printer > godis.ipro.se.1023: . ack 4409 win 0 (DF)
16:44:03.440543 godis.ipro.se.1023 > laser.ipro.se.printer: . ack 3 win 31744
16:44:03.440543 laser.ipro.se.printer > godis.ipro.se.1023: . ack 4409 win 0 (DF)
16:44:04.030543 laser.ipro.se.printer > godis.ipro.se.1023: . ack 4409 win 0 (DF)
16:44:04.830543 godis.ipro.se.1023 > laser.ipro.se.printer: . ack 3 win 31744
16:44:04.830543 laser.ipro.se.printer > godis.ipro.se.1023: . ack 4409 win 0 (DF)
16:44:05.960543 laser.ipro.se.printer > godis.ipro.se.1023: . ack 4409 win 0 (DF)
16:44:07.560543 godis.ipro.se.1023 > laser.ipro.se.printer: . ack 3 win 31744
16:44:07.560543 laser.ipro.se.printer > godis.ipro.se.1023: . ack 4409 win 0 (DF)
16:44:08.170543 laser.ipro.se.printer > godis.ipro.se.1023: . ack 4409 win 2920 (DF)
16:44:08.170543 godis.ipro.se.1023 > laser.ipro.se.printer: P 3973:5433(1460) ack 3 win 31744
16:44:08.170543 godis.ipro.se.1023 > laser.ipro.se.printer: P 5433:6893(1460) ack 3 win 31744
16:44:08.250543 laser.ipro.se.printer > godis.ipro.se.1023: . ack 4409 win 2920 (DF)
16:44:08.370543 godis.ipro.se.1023 > laser.ipro.se.printer: P 3973:5433(1460) ack 3 win 31744
16:44:08.380543 laser.ipro.se.printer > godis.ipro.se.1023: . ack 4409 win 2920 (DF)
16:44:08.770543 godis.ipro.se.1023 > laser.ipro.se.printer: P 3973:5433(1460) ack 3 win 31744
16:44:08.780543 laser.ipro.se.printer > godis.ipro.se.1023: . ack 4409 win 2920 (DF)
16:44:09.570543 godis.ipro.se.1023 > laser.ipro.se.printer: P 3973:5433(1460) ack 3 win 31744
16:44:09.570543 laser.ipro.se.printer > godis.ipro.se.1023: . ack 4409 win 2920 (DF)
16:44:11.170543 godis.ipro.se.1023 > laser.ipro.se.printer: P 3973:5433(1460) ack 3 win 31744
16:44:11.180543 laser.ipro.se.printer > godis.ipro.se.1023: . ack 4409 win 2920 (DF)
16:44:13.390543 laser.ipro.se.printer > godis.ipro.se.1023: . ack 4409 win 2920 (DF)
16:44:14.370543 godis.ipro.se.1023 > laser.ipro.se.printer: P 3973:5433(1460) ack 3 win 31744
16:44:14.380543 laser.ipro.se.printer > godis.ipro.se.1023: . ack 4409 win 2920 (DF)
16:44:18.830543 laser.ipro.se.printer > godis.ipro.se.1023: . ack 4409 win 2920 (DF)
16:44:20.770543 godis.ipro.se.1023 > laser.ipro.se.printer: P 3973:5433(1460) ack 3 win 31744
16:44:20.780543 laser.ipro.se.printer > godis.ipro.se.1023: . ack 4409 win 2920 (DF)
16:44:29.610543 laser.ipro.se.printer > godis.ipro.se.1023: . ack 4409 win 2920 (DF)
16:44:33.570543 godis.ipro.se.1023 > laser.ipro.se.printer: P 3973:5433(1460) ack 3 win 31744
16:44:33.580543 laser.ipro.se.printer > godis.ipro.se.1023: . ack 4409 win 2920 (DF)

This is a netstat of when it's "stuck"

Proto Recv-Q Send-Q Local Address Foreign Address (State) User
tcp 0 47744 godis.ipro.se:1023 laser.ipro.se:printer ESTABLISHED root

It always prints about 45-50kb, then stops.

I wrote this to the comp.os.linux.networking newsgroup about 1-2 weeks
ago, but got no reaction at all about it.

I also have a tcpdump of what the solaris machine does with the printer,
but that file is 31kb large, so I thought I shouldnt include it here. I
can send it to anyone on request though.

PS. The file I tried to print in this example was a 137k sized .ps file.

-----
Mikael Abrahamsson
email: swmike@df.lth.se | Member of People's Front Against WWW
Student vid Institutionen f|r Informatik vid Lunds Universitet, Sweden.