Subject: NBP lookup problems with Linux

From: Andy Norman <[email-masked]>
Date: Tue, 1 Jul 1997 09:20:37 +0100

It seems that more people are running into this problem.

The symptoms of this problem are that you can't "see" Macs and printers
that are connected to a remote Linux AppleTalk router (by remote I mean a
router that you are not directly connected to).

The problem is with NBP lookups on remote zones (i.e. zones two routers
away). This prevents you from seeing devices on the other side of a Linux
AppleTalk router if there are two routers between you and the Macs you are
trying to see (the local router doesn't need to be a Linux one, only the
remote).

I am hoping the patch will be rolled into 2.0.31

The basic problem is that the Linux kernel code wasn't correctly converting
the NBP lookup packets into NBP broadcast requests before passing them onto
the target network.

I think this description is mostly right, I sure Mike will let us know if
it isn't.

Mike Freeman and Alan Cox came up with this correct patch after I
identified the problem and created my own ugly hack.

If you need the patch here it is. This probably won't patch cleanly in this
form (word et al), but it is very easy to apply by hand):

25a26
>  *		Alan Cox/Mike Freeman/Andy Norman :	Possible fix to NBP
>problems
155c156,157
< 		     ||to->sat_addr.s_node == ATADDR_BCAST ))
---
> 		     ||to->sat_addr.s_node == ATADDR_BCAST
> 			||to->sat_addr.s_node == ATADDR_ANYNODE ))
512,513c514,517
< 		if((node==ATADDR_BCAST || iface->address.s_node==node)
< 			&& iface->address.s_net==net &&
!(iface->status&ATIF_PROBE))
---
> 		if((node==ATADDR_BCAST || node==ATADDR_ANYNODE
> 			|| iface->address.s_node==node)
> 				&& iface->address.s_net==net
> 					&& !(iface->status&ATIF_PROBE))

--
Andy Norman  Datamonitor Group IT Co-ordinator
[email-masked] [email-masked]
http://www.datamonitor.com  Tel: 0171 316 0792
Mobile: 0966 148131         Fax: 0171 316 0002

---

From: Andy Norman <[email-masked]>
Date: Tue, 1 Jul 1997 10:37:39 +0100

At 11:04 am +0200 on 1/7/97, Patrik Schindler wrote:

> Sorry for my stupid question, but to what file should it be applied?

Not a stupid question at all, just me being stupid...

The file in question is:

/usr/src/linux/net/appletalk/ddp.c