]> git.proxmox.com Git - mirror_frr.git/blobdiff - ripd/rip_interface.c
Merge pull request #3775 from pguibert6WIND/ospf_missing_interface_handling_2
[mirror_frr.git] / ripd / rip_interface.c
index 80561f350ba2abcf901d1873c5447f2477e80387..3a892f33b28f04fad9844089017c6822bfe8ebaa 100644 (file)
@@ -366,7 +366,7 @@ int rip_interface_down(ZAPI_CALLBACK_ARGS)
        if (IS_RIP_DEBUG_ZEBRA)
                zlog_debug(
                        "interface %s vrf %u index %d flags %llx metric %d mtu %d is down",
-                       ifp->name, ifp->vrf_id, ifp->ifindex,
+                       ifp->name, ifp->vrf->vrf_id, ifp->ifindex,
                        (unsigned long long)ifp->flags, ifp->metric, ifp->mtu);
 
        return 0;
@@ -387,7 +387,7 @@ int rip_interface_up(ZAPI_CALLBACK_ARGS)
        if (IS_RIP_DEBUG_ZEBRA)
                zlog_debug(
                        "interface %s vrf %u index %d flags %#llx metric %d mtu %d is up",
-                       ifp->name, ifp->vrf_id, ifp->ifindex,
+                       ifp->name, ifp->vrf->vrf_id, ifp->ifindex,
                        (unsigned long long)ifp->flags, ifp->metric, ifp->mtu);
 
        rip_interface_sync(ifp);
@@ -415,7 +415,7 @@ int rip_interface_add(ZAPI_CALLBACK_ARGS)
        if (IS_RIP_DEBUG_ZEBRA)
                zlog_debug(
                        "interface add %s vrf %u index %d flags %#llx metric %d mtu %d",
-                       ifp->name, ifp->vrf_id, ifp->ifindex,
+                       ifp->name, ifp->vrf->vrf_id, ifp->ifindex,
                        (unsigned long long)ifp->flags, ifp->metric, ifp->mtu);
 
        /* Check if this interface is RIP enabled or not.*/
@@ -455,7 +455,7 @@ int rip_interface_delete(ZAPI_CALLBACK_ARGS)
 
        zlog_info(
                "interface delete %s vrf %u index %d flags %#llx metric %d mtu %d",
-               ifp->name, ifp->vrf_id, ifp->ifindex,
+               ifp->name, ifp->vrf->vrf_id, ifp->ifindex,
                (unsigned long long)ifp->flags, ifp->metric, ifp->mtu);
 
        /* To support pseudo interface do not free interface structure.  */
@@ -470,17 +470,21 @@ int rip_interface_vrf_update(ZAPI_CALLBACK_ARGS)
 {
        struct interface *ifp;
        vrf_id_t new_vrf_id;
+       struct vrf *new_vrf;
 
        ifp = zebra_interface_vrf_update_read(zclient->ibuf, vrf_id,
                                              &new_vrf_id);
        if (!ifp)
                return 0;
 
+       new_vrf = vrf_lookup_by_id(new_vrf_id);
+
        if (IS_RIP_DEBUG_ZEBRA)
                zlog_debug("interface %s VRF change vrf_id %u new vrf id %u",
                           ifp->name, vrf_id, new_vrf_id);
 
-       if_update_to_new_vrf(ifp, new_vrf_id);
+       if_update_to_new_vrf(ifp, new_vrf);
+
        rip_interface_sync(ifp);
 
        return 0;
@@ -1225,7 +1229,7 @@ void rip_interface_sync(struct interface *ifp)
 {
        struct vrf *vrf;
 
-       vrf = vrf_lookup_by_id(ifp->vrf_id);
+       vrf = ifp->vrf;
        if (vrf) {
                struct rip_interface *ri;