mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-08 12:49:18 +00:00
Merge pull request #3772 from pguibert6WIND/vrf_backend_unknown
Vrf backend unknown
This commit is contained in:
commit
c9146c85a0
6
lib/if.c
6
lib/if.c
@ -396,6 +396,7 @@ struct interface *if_get_by_name(const char *name, vrf_id_t vrf_id)
|
||||
struct interface *ifp;
|
||||
|
||||
switch (vrf_get_backend()) {
|
||||
case VRF_BACKEND_UNKNOWN:
|
||||
case VRF_BACKEND_NETNS:
|
||||
ifp = if_lookup_by_name(name, vrf_id);
|
||||
if (ifp)
|
||||
@ -1279,6 +1280,11 @@ static int lib_interface_create(enum nb_event event,
|
||||
vrf->name);
|
||||
return NB_ERR_VALIDATION;
|
||||
}
|
||||
|
||||
/* if VRF is netns or not yet known - init for instance
|
||||
* then assumption is that passed config is exact
|
||||
* then the user intent was not to use an other iface
|
||||
*/
|
||||
if (vrf_get_backend() == VRF_BACKEND_VRF_LITE) {
|
||||
ifp = if_lookup_by_name_all_vrf(ifname);
|
||||
if (ifp && ifp->vrf_id != vrf->vrf_id) {
|
||||
|
@ -56,6 +56,7 @@ struct vrf_id_head vrfs_by_id = RB_INITIALIZER(&vrfs_by_id);
|
||||
struct vrf_name_head vrfs_by_name = RB_INITIALIZER(&vrfs_by_name);
|
||||
|
||||
static int vrf_backend;
|
||||
static int vrf_backend_configured;
|
||||
static struct zebra_privs_t *vrf_daemon_privs;
|
||||
static char vrf_default_name[VRF_NAMSIZ] = VRF_DEFAULT_NAME_INTERNAL;
|
||||
|
||||
@ -613,12 +614,15 @@ int vrf_is_backend_netns(void)
|
||||
|
||||
int vrf_get_backend(void)
|
||||
{
|
||||
if (!vrf_backend_configured)
|
||||
return VRF_BACKEND_UNKNOWN;
|
||||
return vrf_backend;
|
||||
}
|
||||
|
||||
void vrf_configure_backend(int vrf_backend_netns)
|
||||
{
|
||||
vrf_backend = vrf_backend_netns;
|
||||
vrf_backend_configured = 1;
|
||||
}
|
||||
|
||||
int vrf_handler_create(struct vty *vty, const char *vrfname,
|
||||
|
Loading…
Reference in New Issue
Block a user