I found and patched an error in the network driver for UNIBUS ethernet
controllers
DEUNA/DELUA in 2.11BSD for PDP-11.
Error reproduction:
--------------------------
Build 2.11 BSD with ethernet/TCP/IP support over DEUNA/DELUA controller.
Configure the network.
Boot up 2.11 BSD, switch to multiuser mode.
Wait for 15 Minutes, until all ARP caches in the system are aged out.
Try to ping the PDP-11 from a network node, which is NOT listed anywhere
in the
PDP-11's network configuration files. Ping will fail.
Important: since arp requests are also arp responses, do not ping the
test node from your
PDP-11. The test node may not be contacted by the PDP-11!
Before testing, verify on the test node that the PDP-11 is unkown. The
command "arp -a" must not display the PDP-11 yet.
You can clean the test node's arp cache by executing "arp -d *".
This can also be reproduced in SimH,
for example with the installation downloadable at
/www.ak6dn.com/PDP-11/2.11BSD/
Error explanation:
--------------------
The DEUNA/DELUA does not answer ARP requests, so other network nodes
can not get the PDP-11's ethernet MACID and can not send anything to it.
The DEUNA/DELUA does not answer ARP because it does not receive ethernet
broadcast packets
(those addressed to MACID FF:FF:FF:FF:FF:FF).
And it is not receiving broadcasts, because the DELUA driver in
/sys/pdpif/if_de.c
did not set up the DELUA's packet filter to receive FF:FF:FF:FF:FF:FF.
Error patch
---------------
In /sys/pdpif/if_de.c , the DEUNA/DELUA must be programmed to receive
ethernet broadcast pakets.
The good way would be to explicitly add MACID FF:FF:FF:FF:FF:FF to the
filter.
The fast and dirty way was to program the DELUA to receive ALL multicasts,
by setting one more bit in the mode register:
In /sys/pdpif/if_de.c, change line
ds->ds_pcbb.pcbb2 = MOD_TPAD|MOD_HDX;
into
ds->ds_pcbb.pcbb2 = MOD_TPAD|MOD_HDX|MOD_ENAL;
Status
-----------------------------
This is a major bug, as it prevents the PDP-11 under 2.11BSD to run as a
server.
It's hard to believe that it is still there.
In the typical quick "boot up and ping someone" test, it is almost
invisible.
The bug is not present in the DELQA driver "if_qe.c".
I did posted already to alt.sys.pdp11 newsgroup.
The error has been acknowledeged by one other user.
In the BSD patch archive, this bug seems not to be addressed.
regards
Joerg Hoppe
_______________________________________________
TUHS mailing list
TUHS(a)minnie.tuhs.org
https://minnie.tuhs.org/mailman/listinfo/tuhs