[comp.protocols.appletalk] Rutgers CAP/ethertalk configuration

dyer@spdcc.COM (Steve Dyer) (11/10/90)

Configuration: Sun SLC w/local disk running SunOS 4.1 and RU-CAP 2.0
with the enet packet filter installed in the running /vmunix.
/etc/atalk.local contains the single line: "enet0 spdcc-etalk 1025".
There is a single MacIIfx (an eventual Aufs client) running ethertalk
phase one on the same ethernet.  No appletalk routers involved.  CAP
entries in /etc/services (no YP) have been added.

I manually start aarpd and atis.  Atistest times out and asks if
atis is running.  Atlook just returns after looking for =:=@*.
Aufs reports that SrvrRegister fails.  Running debugging on the
atis daemon doesn't tell me too much--it seems to receive and drop
on the floor a ddpRTMP request packet which the Mac sends on reboot
or network restart.  I guess that's an indication that the ethernet
filter is at least returning SOME data.

This is about as absolutely a vanilla ethertalk CAP build that I can imagine.
I just ran Configure and gen.makes, and used all the default settings.
It's not clear to me why it shouldn't be working.  Has anyone tried
this successfully?  Do you have any words of wisdom to offer?

-- 
Steve Dyer
dyer@ursa-major.spdcc.com aka {ima,harvard,rayssd,linus,m2c}!spdcc!dyer
dyer@arktouros.mit.edu, dyer@hstbme.mit.edu

dyer@spdcc.COM (Steve Dyer) (11/10/90)

In article <4836@spdcc.SPDCC.COM> dyer@ursa-major.spdcc.com (Steve Dyer) writes:
>I manually start aarpd and atis.  Atistest times out and asks if
>atis is running.  Atlook just returns after looking for =:=@*.
>Aufs reports that SrvrRegister fails.

After digging around in the guts of the code, it seems that nis_node and
nis_net are not getting initialized when ethertalk support using
/etc/cap.ether.shared is used.  When it isn't used, nis_node and nis_net
are initialized from this_node and this_net.  Patching this seemed to get
me past this hurdle (i.e. I could run lwsrv.)

This seems like a rather egregious bug that anyone who tried to bring
up CAP/ethertalk would hit immediately.

-- 
Steve Dyer
dyer@ursa-major.spdcc.com aka {ima,harvard,rayssd,linus,m2c}!spdcc!dyer
dyer@arktouros.mit.edu, dyer@hstbme.mit.edu

hedrick@athos.rutgers.edu (Charles Hedrick) (11/13/90)

nis_node and nis_net are set correctly if you let atis figure out the
network number by listening to RTMP broadcasts from the bridges.
Sounds like insufficient testing of the code for running on networks
without bridges.  The reason it might work in a simple test is that
nis_node and nis_net are mapped into locations in
/etc/cap.ether.shared.  Suppose the code was debugged on a network
that has bridges.  They would have gotten correctly set.  If we
shifted to a configuration that didn't listen to RTMP, but didn't zero
/etc/cap.ether.shared, the correct values would have remained in the
file from the other configuration.  Thus the fact that they didn't get
set would not show up.  We're planning a new release of CAP/ethertalk
anyway, to fix various reliability issues that we discovered over some
period of use.  This sounds easy enough to fix.

brad@CAYMAN.COM (11/18/90)

>> nis_node and nis_net are set correctly if you let atis figure out the
>> network number by listening to RTMP broadcasts from the bridges.
>> Sounds like insufficient testing of the code for running on networks
>> without bridges.  The reason it might work in a simple test is that

Sorry if this is old; running ecap, it does not seem work if there are
no bridges (nis_node is never set)

I have a simple fix for this (and I think the diff below is right, but don't
quote me)

andros% diff atis.c atis.c~
50d49
< #include "../lib/cap/ethertalk/sharedpage.h"
113d111
< u_char *sharedpage;
403,404d400
< 
<     nis_node = this_node;
andros% 


-brad