]> git.proxmox.com Git - mirror_frr.git/commit - zebra/zapi_msg.c
zebra, lib: send VRF backend to the client daemons
authorRenato Westphal <renato@opensourcerouting.org>
Sat, 19 Jan 2019 19:19:13 +0000 (17:19 -0200)
committerRenato Westphal <renato@opensourcerouting.org>
Sun, 20 Jan 2019 00:46:37 +0000 (22:46 -0200)
commitbb6b7f79bede8d849de4517de0f4b1b510871565
treef273625fcbf32a3a8beb6da0f9029fc3f6bcbd4c
parent70fc94ca1d6063b64449b0971678521c021ac916
zebra, lib: send VRF backend to the client daemons

Add a new field in the ZEBRA_CAPABILITIES zapi message specifying
the VRF backend in use.

For simplicity, make the zclient code call vrf_configure_backend()
to apply the received value automatically instead of requiring
the daemons to do that themselves in their zebra_capabilities()
callbacks.

Additionally, call zebra_vrf_update_all() only after sending the
capabilities message to the client, so that it will know which VRF
backend is in use when processing the VRF messages.

This commit fixes a couple of bugs in the "interface" CLI command and
associated northbound callbacks, which behave differently depending
on the VRF backend in use. Before this commit, the vrf_backend
variable would always be set to VRF_BACKEND_NETNS in the client
daemons, even when zebra was started without the --vrfwnetns option.
This could lead to inconsistent behavior and subtle bugs under
specific circumstances.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
lib/zclient.c
zebra/zapi_msg.c
zebra/zserv.c