Em Wed, Feb 28, 2001 at 06:44:20PM +0000, Petr Vandrovec escreveu: > On 28 Feb 01 at 12:27, Arnaldo Carvalho de Melo wrote: > > > humm, just read the doc and the code, I have to disagree, lets see: > > > > when we get into the '/* That aren't in the list */' we know that the > > current network has not seen this packet, otherwise we would already have > > the packet droped in '/* Dump packet if already seen this net */', oh, yes, > > we delay putting the if_netnum in the packet, but when it hits ipxitf_send > > we do it, before sending it to the wire, so when we get this packet again our > > netnum is in the packet and get discarded by /* Dump packet if already seen > > this net */, do you see any flaw in this explanation? > > But code in ac4 puts there (in ipxitf_send) number of sending interface, > not receiving. /me checks > When NetBIOS propagation packet is first sent to network, it does not > contain any travelled numbers. > When frame is received by router, it verifies that network number on > which received this packet is not in the list already - if all > implementations are correct, this is never true. Maybe we could even > print 'node .... does not follow IPX netbios routing rules correctly'. > Of course only few times... > > Then network number on which packet was received is put into packet. > > Then for all connected interfaces verify that their numbers are not already > in packet - if it is, frame already visited that network. If it is not, > send it here. > > > Your code does two last steps in reverse order, and puts sending, not > receiving frame number, into packet... this is a confusion caused by the CB thing for shared skbs, I'll try to clarify, but now lemme get back to reading the code > > > Either store intrfc->if_netnum into packet before loop with '/* That aren't > > > in the list */', or do explicit check for ifcs != intrfc. But storing number > > > before looks better - code in ipxrtr_route_skb() does not know receiving > > > interface anyway, and you want same number in all copies. > > > > > > I hope that I missed something obvious. If not, then peoples in larger > > > networks should add some '&& 0' into pprop code to disable it. > > > > Humm, maybe this should be a compile time option? From what I've seen this > > code is even still listed as non supported in include/net/ipx.h, look: > > sysctl. I'd like to have two options: disable routing at all, and disable > pprop routing. I'll do it > > #define IPX_TYPE_PPROP 0x14 /* complicated flood fill brdcast > > [Not supported] */ > > It is supported, unfortunately using 'old' netbios packet propagation > logic. There is also 'new' logic (but probably not available as > specification), which uses cache for last few netbios packets, and if > same packet was already seen, it ignores it. 'old' logic has bad > (x^3, where x is number of such routers) behavior when more than one > netbios aware router exist between two networks (this is case when more > than one frame is bound on each box). > > > that it reflects the algorithm in the IPX Router specification more > > clearly. And I'll set up a Netware 3.12 server in my home lab, I think and > > old 386 with 10 MB and 80 MB of disk space is enough. Hey, my home lab is > > getting bigger and bigger 8) > > Get VMware ;-) You won't notice couple of 8MB NW3.11 on dual PIII/800 with > 256MB of RAM... :) yes, Í'm looking at Jeff Dike's UML 8) - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org