[Olsr-dev] Bug in edge detection

Hannes Gredler (spam-protected)
Thu Sep 6 19:03:02 CEST 2007


On Thu, Sep 06, 2007 at 05:25:07PM +0200, Bernd Petrovitsch wrote:
| On Thu, 2007-09-06 at 17:08 +0200, Hannes Gredler wrote:
| [...]
| > i have recently stumbled on a interesting problem that causes
| > quite some inefficiency wrt malloc churn() and SPF calculations.
| > 
| > it happens is when a TC message gets striped over two (or more) IP packets.
| > this is typically for a TC message at the MTU boundary of a OLSR packet.
| 
| Hmm, what's in the RFC about this?
| 
| [...]
| > patchset producing the debug output above is at
| > http://gredler.at/download/olsrd/inplace-spf-1.diff.gz
| > 
| > any smart thoughts for a fix ? -
| 
| Without time and without looking into code, only the generic ones:
| 
| On the sender side: Don't send half TC packets.

hmmm not really an option ... what to do if the neighbor set > 1500 bytes.
just because of massive neighbors ?
 
| On the receiver side (which shouldn't be necessary with the above):
| Wait with the TC packet processing until we are sure that it is
| complete, e.g.
| if the next is already seen or some timeout.

what about this:

rather than deleting the edge we tweak T_time to an expired value (now_times -1).

if the neighbor set gets found when processing further packets then T_time
gets overwritten, otherwise it will get deleted when prcessing eventloop
next time.

/hannes




More information about the Olsr-dev mailing list