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>
zlog_debug ("VRF(%u) %s is created.",
vrf_id, (name) ? name : "(NULL)");
strcpy (vrf->name, name);
+ vrf->vrf_id = VRF_UNKNOWN;
listnode_add_sort (vrf_list, vrf);
if_init (&vrf->iflist);
QOBJ_REG (vrf, vrf);