]> git.proxmox.com Git - mirror_frr.git/commit
Zebra: Fix ignoring status for VRF device
authorvivek <vivek@cumulusnetworks.com>
Mon, 22 Feb 2016 05:33:46 +0000 (05:33 +0000)
committervivek <vivek@cumulusnetworks.com>
Mon, 22 Feb 2016 05:33:46 +0000 (05:33 +0000)
commite786b6015e51953fde6404cfa18a4e879a8d7cac
tree8d481ae37383abdb10940da11021b4467335fd32
parent3e66be2ee6db028d808a304586e0b24d5374914e
Zebra: Fix ignoring status for VRF device

The earlier change to ignore status for VRF device was not quite perfect. As
defect CM-9437 illustrates, there are situations when Quagga may get a VRF
member interface (that refers to the VRF id of the VRF device) before it gets
the VRF device itself. The code has some logic to handle this, creating a
VRF structure which is partly initialized. The initialization is completed
with some additional incorrect status processing when the VRF is learnt. The
fix done earlier completely ignored the VRF message treating it as a status
change because the VRF is already present, but this left the VRF structure
not fully initialized in Quagga. The fix is to do some additional checks
to handle this scenario.

Fixes: 3e66be2ee6db028d808a304586e0b24d5374914e
Ticket: CM-9437
Reviewed By: None
Testing Done: Reproduced problem, verified fix.
zebra/rt_netlink.c