summaryrefslogtreecommitdiff
path: root/lib/pid_output.c
diff options
context:
space:
mode:
authorsudhanshukumar22 <sudhanshu.kumar@broadcom.com>2020-11-12 04:37:30 -0800
committersudhanshukumar22 <sudhanshu.kumar@broadcom.com>2021-02-01 08:33:13 -0800
commit75d26fb3138a015a61919d9291f8791f519fdc0b (patch)
tree4205ba15bfbda99a5ea4ca1b9dead2f61e7da8c4 /lib/pid_output.c
parent79ea62839faf16a2de4ab366d7d6b340f68e58ee (diff)
zebra: treat vrf add for existing vrf as update
Description: When we get a new vrf add and vrf with same name, but different vrf-id already exists in the database, we should treat vrf add as update. This happens mostly when there are lots of vrf and other configuration being replayed. There may be a stale vrf delete followed by new vrf add. This can cause timing race condition where vrf delete could be missed and further same vrf add would get rejected instead of treating last arrived vrf add as update. Treat vrf add for existing vrf as update. Implicitly disable this VRF to cleanup routes and other functions as part of vrf disable. Update vrf_id for the vrf and update vrf_id tree. Re-enable VRF so that all routes are freshly installed. Above 3 steps are mandatory since it can happen that with config reload stale routes which are installed in vrf-1 table might contain routes from older vrf-0 table which might have got deleted due to missing vrf-0 in new configuration. Signed-off-by: sudhanshukumar22 <sudhanshu.kumar@broadcom.com>
Diffstat (limited to 'lib/pid_output.c')
0 files changed, 0 insertions, 0 deletions