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...
Show replies by date