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

Hittner, David T (IS) david.hittner at ngc.com
Fri Sep 4 09:41:18 EDT 2009


Well, you have succeeded in contacting an author.

I concur with your logic (condition #2) and accept your proof (comparison of SIMH with a real PDP-11/44).

The fault lies with the design of the eth_filter() function, which does not have an input condition to specifically enable broadcast packet reception. That function was designed for use with the DEQNA/DELQA controllers, which has a different model to enable broadcast packet filtering, and the DEUNA/DELUA just used the existing design. 

Looks like I need to add a broadcast input parameter to eth_filter(), and modify all of the network controllers to use the new design. I'll double-check the broadcast packet behavior for all the network controllers while I'm at it.

You can quickly hack in the correct behavior for your use by adding the following unconditional line to the end of the non-promiscuous destination filter construction in eth_filter().

      sprintf(&buf[strlen(buf)], "%s(ether broadcast)", (*buf) ? " or " : "");

Thanks for the bug report.
Dave Hittner


> -----Original Message-----
> From: simh-bounces at trailing-edge.com [mailto:simh-bounces at trailing-
> edge.com] On Behalf Of Jörg Hoppe
> Sent: Thursday, September 03, 2009 3:07 PM
> To: simh at trailing-edge.com
> Subject: [Simh] Discussion about pdp11_xu.c/sim_ether.c: PDP-11
> DEUNA/DELUA does not received broadcast packets
> 
> 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.
> 
> 
> _______________________________________________
> Simh mailing list
> Simh at trailing-edge.com
> http://mailman.trailing-edge.com/mailman/listinfo/simh



More information about the Simh mailing list