[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Source-Route on local ring
Gilbert Ramirez Jr. writes:
> Thanks for the explanation of how tr_add_rif_info works. The oltr driver
> uses a function called tr_type_trans2(), which is similar to
> tr_type_trans(). They needed another function because they handle the SNAP
> trllc differently than ibmtr. In oltr's tr_type_trans2(), I saw these
> lines:
>
> if(trh->saddr[0] & TR_RII)
> tr_add_rif_info(trh, dev);
>
> because one would logically thing that you only need to add rif into to the
> table if the packet is source-routed. Armed with your explanation, I boldly
> remarked out the conditional so that tr_type_trans2() always calls
> tr_add_rif_info(), just as tr_type_trans() does. That fixed my problem. My
> router is now in my RIF table:
>
> eth0 6C:00:19:C9:0E:8D 59993 local
I ftp'd the olicom driver yesterday and am going to take a closer look
at it. Apparently it doesn't work with IPX, which might be related to
the way it handles 802.2/SNAP. (Which wouldn't surprise me since the
way Linux t-r handles 802.2/SNAP is kinda brain-damaged anyway and
definitely _not_ implemented in a straightforward manner.)
> BTW, I have my Linux box on a large network, with a lot of source-routed
> SNA. I had to increase the RIF_TABLE_SIZE in net/802/tr.c. I doubled it to
> 64. This is even with my patch to only call tr_add_rif_info for packets
> that are not PACKET_OTHERHOST.
>
> `wc -l /proc/net/tr_rif`
> 39 /proc/net/tr_rif
It's effectively implemented as a hash with a linear probe. Increasing
the table size might improve lookup time somewhat but it won't affect
the functionality.
> thanks for the information!
>
> --gilbert
> --
> Gilbert Ramirez Voice: +1 210 358 4032
> Technical Services Fax: +1 210 358 1122
> University Health System San Antonio, Texas, USA