]> git.proxmox.com Git - mirror_frr.git/blobdiff - bfdd/ptm_adapter.c
Revert "Ospf missing interface handling 2"
[mirror_frr.git] / bfdd / ptm_adapter.c
index a634d923d25c9e32f3a2b4e7c6daffa2f5f95785..3e2ace6ea630a95598150799c158be5e185a4730 100644 (file)
@@ -572,10 +572,7 @@ static void bfdd_sessions_enable_interface(struct interface *ifp)
 {
        struct bfd_session_observer *bso;
        struct bfd_session *bs;
-       struct vrf *vrf = ifp->vrf;
-
-       if (!vrf)
-               return;
+       struct vrf *vrf;
 
        TAILQ_FOREACH(bso, &bglobal.bg_obslist, bso_entry) {
                bs = bso->bso_bs;
@@ -584,6 +581,9 @@ static void bfdd_sessions_enable_interface(struct interface *ifp)
                /* Interface name mismatch. */
                if (strcmp(ifp->name, bs->key.ifname))
                        continue;
+               vrf = vrf_lookup_by_id(ifp->vrf_id);
+               if (!vrf)
+                       continue;
                if (bs->key.vrfname[0] &&
                    strcmp(vrf->name, bs->key.vrfname))
                        continue;
@@ -698,14 +698,13 @@ static int bfdd_interface_update(ZAPI_CALLBACK_ARGS)
 static int bfdd_interface_vrf_update(ZAPI_CALLBACK_ARGS)
 {
        struct interface *ifp;
-       struct vrf *nvrf;
        vrf_id_t nvrfid;
 
        ifp = zebra_interface_vrf_update_read(zclient->ibuf, vrf_id, &nvrfid);
        if (ifp == NULL)
                return 0;
-       nvrf = vrf_lookup_by_id(nvrfid);
-       if_update_to_new_vrf(ifp, nvrf);
+
+       if_update_to_new_vrf(ifp, nvrfid);
 
        return 0;
 }