[HECnet] DECnet on KLH10

Mark Abene phiber at phiber.com
Sat Sep 13 20:27:35 PDT 2008


I admit, the fact that LAT "just works" is very puzzling to me.
Enabling debugging on dpni20 isn't very helpful, as I don't see evidence
of anything failing.   The thing just doesn't transmit any DECnet traffic
over ethernet.   I can SET HOST to my own machine, so I know at least in
principle the protocol is up, however only locally.


Johnny Billquist wrote:
One important detail you left out Mark, is that LAT traffic is working
fine from your klh10 machine.
Do you see any of those multicast addresses? Otherwise I think that's a
red herring.

Since LAT works, we can really narrow things down quite a lot.

      Johnny

Mark Abene skrev:
So, as for my problem with Johnny's bridge, I discovered the write(2) to
bridge 0 was failing because I was compiling and linking to an outdated
libpcap.   That was easily remedied and now I have DECnet traffic on my
bridged-tap.   Yay.   However, the problem I detailed below is still
plaguing me, and still after digging through klh10 source it remains a
mystery.   Apparently the DECnet multicast addresses are maintained in
the emulated pdp10's memory, in a table called MCAT.   This occurs in the
dpni20's function eth_mcatset() which calls osn_ifmcset() in osdnet.c.
Strangely, it thinks it's succeeding, and though the multicast addresses
don't appear in "netstat -ani", a "vmstat -m | grep ether_multi" shows
the in-use counter is incrementing each time, including when I add them
manually with mtest.   I highly suspect that the dpni20 driver is getting
confused somewhere, since with the bridged-tap setup it maintains an
internal "10-side" IP and MAC address which is not visible to the OS's
interface table, and only manifests in the ARP table.   Presently,
klh10's "enaddr" command-line utility stopped giving errors on adding
the requisite multicast addresses, but ether_multi is *not* incremented,
and the warning enaddr: No EN addr in iftab for "tap0" is given, telling
me that nothing is really happening.   This is telling, since enaddr
exercises the same functions in osdnet.c that the emulator itself uses.
As a test I think I may try setting the dedicated interface to a real
ethernet instead of the virtual tap, to see if I can resolve the
multicast issues.   At the moment this seems to be the show stopper.

Mark


Mark Abene wrote:
I wanted to be doing a netstat -ani, (-g only shows multicast for
ipv4/6), but the result is the same.   None of the DECnet multicast
addresses are being added, most notably (and absolutely necessary) are:

ab:0:0:3:0:0 - type 6003 - for DECnet Phase IV end node Hello packets
from each host, and
ab:0:0:4:0:0 - type 6003 - for DECnet Phase IV router Hello packets from
the router.

I've tried adding these with both enaddr from KLH10 and FreeBSD's
built-in "mtest", but both return errors.   This seems to be a
FreeBSD-specific problem which so far I'm unable to find the reason for.

Mark


Mark Abene wrote:
Mark Abene wrote:
I've actually made a new discovery... looking at "netstat -g", I'm
seeing that none of the multicast addresses exist that DECnet uses and
requires!   This would explain why I don't see any DECnet traffic at
all.
I compiled KLH10's enaddr utility in an attempt to add the multicast
addresses manually, and I get failures for all attempts...
"SIOCADDMULTI failed - Can't assign requested address".   My server's
kernel wasn't built with multicast routing enabled, which is not a
default.   I'm wondering if this is the cause of the error.   I'm
going to
do some further testing.

Regards
Mark
Well I was mistaken about the multicast routing, that's only for doing
DVMRP with mrouted (MBONE, etc).   Local LAN multicast should work "out
of the box" on FreeBSD.   Still trying to track down why this is
failing,
since it's my primary candidate for DECnet not working...



More information about the Hecnet-list mailing list