[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