[Simh] Discussion about pdp11_xu.c/sim_ether.c: PDP-11 DEUNA/DELUA does not received broadcast packets

Jörg Hoppe j_hoppe at t-online.de
Thu Sep 3 15:06:45 EDT 2009


Hi,

while working with TCP/IP under 2.11BSD unix, I found that the 
DEUNUA/DELUA network driver in source pdp11_xu.c apparently is not 
receiving ethernet broadcast packets sent to MACID FF:FF:FF:FF:FF:FF.

I'd like to get in touch with one of the authors of pdp11_xu.c and/or 
sim_ether.c to fix this.

Meanwhile, I'll dump some technically details about what I've found.


What DEUNA/DELUA must receive:
------------------------------------------
DEC's manual EK-DEUNA-UG-001 "DEUNA User's Guide (1983)", on page, 1-8, 
says:
"The DEUNA accepts only packets with a destination address that matches 
one of the following types of address:
1. The physical address of the station
2. The broadcast address for all stations
3. On of ten multicast group addresses the user may assign to the DEUNA, 
when desired
4. Any multicast address, when desired
5. All addresses, when desired"

Conditions 2. means that MACID FF:FF:FF:FF:FF:FF must be received 
unconditionally, but SimH's DEUNA is filtering out this address. 
Application software can still setup SimH's DEUNA to receive 
FF:FF:FF:FF:FF:FF with feature 3 or 4 or 5, but 2.11BSD isn't using none 
of these.
This causes malfunctions in the ARP protocol under 2.11BSD.
ARP is used to translate TCP/IP addresses to physical MACID's on the 
local net. An ARP request is sent to all nodes by using the broadcast 
address, only the network node with the queried TCP/IP address answers 
with its MACID.


The error can be reproduced this way:


ARP error reproduction under 2.11BSD:
------------------------------------------------

Startup the 2.11BSD installation downloadable at
/www.ak6dn.com/PDP-11/2.11BSD/.

- 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 *".


The 2.11BSD ARP error is an DEUNA broadcast error:
-------------------------------------------------------------
Things get very clear if network traffic is monitored with tcpdump or 
WireShark.
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.


History:
---------
I posted about this already in alt.sys.pdp11 and to the Unix 
Preservation Society mailing list thus at minnie.tuhs.org, since I first 
believed this to be a bug in the 2.11BSD DEUNA network drivers 
(/sys/pdpif/if_de.c). But finally I and another community member 
compared SimH's behaviour with physical DEUNAs under PDP-11/44 running 
the same 2.11BSD installation. Result: The physical systems behaved 
correctly, only SimH was showing problems.





More information about the Simh mailing list