On Mon, Aug 18, 2003 at 04:19:11AM -0700, David S. Miller wrote:
> On Mon, 18 Aug 2003 12:13:12 +0300
> > 1. makes eth_header_cache_update also update the source MAC in
> > hh_cache.
> > 2. adds a NETDEV_CHANGEADDR notifier in net/core/neighbour.c
> > that walks through all the neighbour entries and updates
> > the hh_cache's for all the neighbour entries related to
> > given device.
> I would suggest to fix this by instead flushing the hh
> entries (just like neigh_destroy() does).
This may be a dumb question, but how do I do that?
If I set them to neigh_blackhole, like neigh_destroy() does,
e.g. already running gets -ENETDOWN. That's now true and it's
not nice. I'm having trouble seeing how to "disable" the
neighbour entry, so it won't be used again.
If I use neigh_suspect() in an attempt to mark the entry as
"expired", I see traffic using the "old" MAC as source after a
while. Apparently, it gets confirmed and then the old MAC
is used again.
> This way, we don't have to fix up every single header cache
> implementation, that's painful :(
I agree with that, though I am only interested in ethernet ;)