[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