mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-10-29 04:28:03 +00:00
Currently when one interface changes its VRF, zebra will send these messages to
all daemons in *order*:
1) `ZEBRA_INTERFACE_DELETE` ( notify them delete from old VRF )
2) `ZEBRA_INTERFACE_VRF_UPDATE` ( notify them move from old to new VRF )
3) `ZEBRA_INTERFACE_ADD` ( notify them added into new VRF )
When daemons deal with `VRF_UPDATE`, they use
`zebra_interface_vrf_update_read()->if_lookup_by_name()`
to check the interface exist or not in old VRF. This check will always return
*NULL* because `DELETE` ( deleted from old VRF ) is already done, so can't
find this interface in old VRF.
Send `VRF_UPDATE` is redundant and unuseful. `DELETE` and `ADD` are enough,
they will deal with RB tree, so don't send this `VRF_UPDATE` message when
vrf changes.
Since all daemons have good mechanism to deal with changing vrf, and don't
use this `VRF_UPDATE` mechanism. So, it is safe to completely remove
all the code with `VRF_UPDATE`.
Signed-off-by: anlan_cs <anlan_cs@tom.com>
|
||
|---|---|---|
| .. | ||
| .gitignore | ||
| Makefile | ||
| ripng_cli.c | ||
| ripng_debug.c | ||
| ripng_debug.h | ||
| ripng_interface.c | ||
| ripng_main.c | ||
| ripng_nb_config.c | ||
| ripng_nb_rpcs.c | ||
| ripng_nb_state.c | ||
| ripng_nb.c | ||
| ripng_nb.h | ||
| ripng_nexthop.c | ||
| ripng_nexthop.h | ||
| ripng_offset.c | ||
| ripng_peer.c | ||
| ripng_route.c | ||
| ripng_route.h | ||
| ripng_routemap.c | ||
| ripng_zebra.c | ||
| ripngd.c | ||
| ripngd.h | ||
| subdir.am | ||