mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-07 13:13:08 +00:00
lib: fix creation of pre-provisioned VRFs
If we configure a VRF that doesn't match any device in the kernel, we'll fall in the first case of the vrf_get() function. In this function, a vrf structure is callocated and it's vrf_id is never set explicitly, which means it's set to zero (the vrf-id of the default VRF). When this happens, commands like "router-id A.B.C.D vrf ..." will act on the default VRF and not on the pre-provisioned VRF. To fix this, always set the vrf_id of pre-provisioned VRFs to VRF_UNKNOWN. Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
This commit is contained in:
parent
f30c50b992
commit
60f1637a8b
@ -124,6 +124,7 @@ vrf_get (vrf_id_t vrf_id, const char *name)
|
|||||||
zlog_debug ("VRF(%u) %s is created.",
|
zlog_debug ("VRF(%u) %s is created.",
|
||||||
vrf_id, (name) ? name : "(NULL)");
|
vrf_id, (name) ? name : "(NULL)");
|
||||||
strcpy (vrf->name, name);
|
strcpy (vrf->name, name);
|
||||||
|
vrf->vrf_id = VRF_UNKNOWN;
|
||||||
listnode_add_sort (vrf_list, vrf);
|
listnode_add_sort (vrf_list, vrf);
|
||||||
if_init (&vrf->iflist);
|
if_init (&vrf->iflist);
|
||||||
QOBJ_REG (vrf, vrf);
|
QOBJ_REG (vrf, vrf);
|
||||||
|
Loading…
Reference in New Issue
Block a user