1 Nov 2004 01:07
[quagga-dev 1748] Re: alignment faults in ospfd LSA processing on sparc64
Greg Troxel <gdt <at> ir.bbn.com>
2004-11-01 00:07:48 GMT
2004-11-01 00:07:48 GMT
> OK - we will have a look. I assume that means length can be not > multiple of 4, but that the space is ROUNDUP4(len). I dont follow the distinction.. A) It is an error for the length of an opaque lsa to be other than a multiple of 4. In our case, the ospf daemon should reject as erroneous attempts to publish LSAs with length n s.t n%4 != 0. B) Opaque LSAs may be any length. When an LSA is placed in an ls-upd packet, the actual length is placed in the length field, and then the length rounded up to 4 ((n+3) & ~0x3) is used as the offset to the start of the next lsa in the packet. Hmm, is that an interface bug? If A, yes. If B, implementation for not rounding up. > But I found that code _assumed_ alignment and didn't check. i386 > disease (where you get away with such things)! Yes, true. Though, you were doing unusual stuff I guess ;) - I've not seen any alignment faults on the Alpha here yet (normal OSPF, not very busy though) (nor would I expect to see any). I can certainly believe that for normal stuff there will be no alignment faults. My sparc64 box ran for over a year before having trouble; it had never been presented with a non-aligned LSA [1]. [1] Previously, all LSAs had either been members of NATO or the Warsaw(Continue reading)
But I'm not surprised by the speedup, the old code used to make a
write system call for every line of output, that was very
inefficient.
-Andy
RSS Feed