Re: Move fib_alias out of fib_hash.c
From: Robert Olsson <hidden>
Date: 2004-09-29 21:30:48
David S. Miller writes: > You cannot find the longest matching prefix and just use that. > > Rather, you must iterate through all matching prefixes in the > table from longest to shortest, trying fib_semantic_match() on > each one until it says OK. You're right we have to match semantics then first after that return longest prefix to comply w. current matching. > This makes using a new algorithm very non-trivial. Yes and will take resources compared to simple longest prefix. > Probably what you should do is keep an array on the function > stack, recording shorter prefix entries you see on your walk > down to the longest matching prefix. Then you process the array > one entry at a time back to the root, trying fib_semantic_match() > on each one. We have backtracking as we search to leaves and as leaves does not always has a matching prefix. So we have to look into how semantics match can be done here instead and backtrack until we got a semantics match. Was about to test w. ipv6 to start with due to ipv4 complexity. Anyway ipv4 fib-code is cleaner now. Cheers. --ro