Editing the header may be the better approach if you have a few hundred
hhs already inserted (this was the issue i was faced with when VRRP was
failing over when i was playing with it). I tried to flush the cache but
it took longer to recover it.
The patch posted may not be the better way to do this. It should be per
neighbour table owner - at the moment only ARP and ndisc really care
Heres an old patch i have circa 2.4.2 that i have been sitting on
planning to convert it to latest kernels; the ndisc portion is missing;
If this is found agreeable Tommi you can clean it up and bring it to par
with latest kernel
On Mon, 2003-08-18 at 07:19, David S. Miller wrote:
> On Mon, 18 Aug 2003 12:13:12 +0300
> Tommi Virtanen <tv@xxxxxxxxxx> wrote:
> > Here's a patch that
> > 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.
> > 3. adds neighbour_init() to allow registration of said notifier.
> I would suggest to fix this by instead flushing the hh
> entries (just like neigh_destroy() does).
> This way, we don't have to fix up every single header cache
> implementation, that's painful :(
Description: Text document