]> git.proxmox.com Git - mirror_frr.git/commitdiff
Revert "zebra: When shutting down an interface immediately notify about rnh"
authorDonald Sharp <sharpd@nvidia.com>
Thu, 10 Dec 2020 15:24:47 +0000 (10:24 -0500)
committerDonald Sharp <sharpd@nvidia.com>
Sat, 12 Dec 2020 01:45:43 +0000 (20:45 -0500)
This reverts commit 0aaa722883245c2109d9856ca0656749860fc579.

zebra/connected.c
zebra/kernel_socket.c
zebra/redistribute.c
zebra/rib.h
zebra/rt_netlink.c
zebra/zapi_msg.c
zebra/zebra_rib.c

index 70ea2e38050d01dba382cb55dcc5a53d4053c44a..c885c533e6439151436fb21682755f46783111dc 100644 (file)
@@ -402,10 +402,10 @@ void connected_down(struct interface *ifp, struct connected *ifc)
         * head.
         */
        rib_delete(afi, SAFI_UNICAST, zvrf->vrf->vrf_id, ZEBRA_ROUTE_CONNECT, 0,
-                  0, &p, NULL, &nh, 0, zvrf->table_id, 0, 0, false, true);
+                  0, &p, NULL, &nh, 0, zvrf->table_id, 0, 0, false);
 
        rib_delete(afi, SAFI_MULTICAST, zvrf->vrf->vrf_id, ZEBRA_ROUTE_CONNECT,
-                  0, 0, &p, NULL, &nh, 0, zvrf->table_id, 0, 0, false, true);
+                  0, 0, &p, NULL, &nh, 0, zvrf->table_id, 0, 0, false);
 
        /* Schedule LSP forwarding entries for processing, if appropriate. */
        if (zvrf->vrf->vrf_id == VRF_DEFAULT) {
index 9d74aeca285090f995b55f1670080ca13f179514..adbdf54c1f763d640acdd7e2ea31bc9c5e424d78 100644 (file)
@@ -1107,7 +1107,7 @@ void rtm_read(struct rt_msghdr *rtm)
        if (rtm->rtm_type == RTM_CHANGE)
                rib_delete(afi, SAFI_UNICAST, VRF_DEFAULT, ZEBRA_ROUTE_KERNEL,
                           0, zebra_flags, &p, NULL, NULL, 0, RT_TABLE_MAIN, 0,
-                          0, true, false);
+                          0, true);
        if (rtm->rtm_type == RTM_GET || rtm->rtm_type == RTM_ADD
            || rtm->rtm_type == RTM_CHANGE)
                rib_add(afi, SAFI_UNICAST, VRF_DEFAULT, ZEBRA_ROUTE_KERNEL, 0,
@@ -1116,7 +1116,7 @@ void rtm_read(struct rt_msghdr *rtm)
        else
                rib_delete(afi, SAFI_UNICAST, VRF_DEFAULT, ZEBRA_ROUTE_KERNEL,
                           0, zebra_flags, &p, NULL, &nh, 0, RT_TABLE_MAIN, 0,
-                          0, true, false);
+                          0, true);
 }
 
 /* Interface function for the kernel routing table updates.  Support
index 1f075cfb4b59ff2db045abd229e433bbe9172844..370dbaa240acece56d7ba7aaea2f220a64cfec5a 100644 (file)
@@ -715,7 +715,7 @@ int zebra_del_import_table_entry(struct zebra_vrf *zvrf, struct route_node *rn,
        rib_delete(afi, SAFI_UNICAST, zvrf->vrf->vrf_id, ZEBRA_ROUTE_TABLE,
                   re->table, re->flags, &p, NULL, re->nhe->nhg.nexthop,
                   re->nhe_id, zvrf->table_id, re->metric, re->distance,
-                  false, false);
+                  false);
 
        return 0;
 }
index fe7073656cc73bf056fb79a3ec1b61918d24d006..c385d7326cefde055a8294e37ea942aa9635ed06 100644 (file)
@@ -393,7 +393,7 @@ extern void rib_delete(afi_t afi, safi_t safi, vrf_id_t vrf_id, int type,
                       struct prefix *p, struct prefix_ipv6 *src_p,
                       const struct nexthop *nh, uint32_t nhe_id,
                       uint32_t table_id, uint32_t metric, uint8_t distance,
-                      bool fromkernel, bool connected_down);
+                      bool fromkernel);
 
 extern struct route_entry *rib_match(afi_t afi, safi_t safi, vrf_id_t vrf_id,
                                     union g_addr *addr,
index f59fbae3afebb6af2c5b4c4976bd5572c463c0f2..1ff1afac938171301208962a394242263eed040b 100644 (file)
@@ -869,7 +869,7 @@ static int netlink_route_change_read_unicast(struct nlmsghdr *h, ns_id_t ns_id,
                if (nhe_id) {
                        rib_delete(afi, SAFI_UNICAST, vrf_id, proto, 0, flags,
                                   &p, &src_p, NULL, nhe_id, table, metric,
-                                  distance, true, false);
+                                  distance, true);
                } else {
                        if (!tb[RTA_MULTIPATH]) {
                                struct nexthop nh;
@@ -879,13 +879,13 @@ static int netlink_route_change_read_unicast(struct nlmsghdr *h, ns_id_t ns_id,
                                        gate, afi, vrf_id);
                                rib_delete(afi, SAFI_UNICAST, vrf_id, proto, 0,
                                           flags, &p, &src_p, &nh, 0, table,
-                                          metric, distance, true, false);
+                                          metric, distance, true);
                        } else {
                                /* XXX: need to compare the entire list of
                                 * nexthops here for NLM_F_APPEND stupidity */
                                rib_delete(afi, SAFI_UNICAST, vrf_id, proto, 0,
                                           flags, &p, &src_p, NULL, 0, table,
-                                          metric, distance, true, false);
+                                          metric, distance, true);
                        }
                }
        }
index f2ff8d53f29bd0f815fce62784945f8639a79d47..90c6a24e7b6621d3bfb535cd2443394f1b590387 100644 (file)
@@ -2080,7 +2080,7 @@ static void zread_route_del(ZAPI_HANDLER_ARGS)
 
        rib_delete(afi, api.safi, zvrf_id(zvrf), api.type, api.instance,
                   api.flags, &api.prefix, src_p, NULL, 0, table_id, api.metric,
-                  api.distance, false, false);
+                  api.distance, false);
 
        /* Stats */
        switch (api.prefix.family) {
index 0aea0b6cfa4e600ee719b04596f474a974075fbd..f4be9a850499dbed4c2a1ffa4290b63de40f473a 100644 (file)
@@ -3088,7 +3088,7 @@ void rib_delete(afi_t afi, safi_t safi, vrf_id_t vrf_id, int type,
                unsigned short instance, uint32_t flags, struct prefix *p,
                struct prefix_ipv6 *src_p, const struct nexthop *nh,
                uint32_t nhe_id, uint32_t table_id, uint32_t metric,
-               uint8_t distance, bool fromkernel, bool connected_down)
+               uint8_t distance, bool fromkernel)
 {
        struct route_table *table;
        struct route_node *rn;
@@ -3294,19 +3294,6 @@ void rib_delete(afi_t afi, safi_t safi, vrf_id_t vrf_id, int type,
                rib_delnode(rn, same);
        }
 
-       /*
-        * This is to force an immediate re-eval of this particular
-        * node via nexthop tracking.  Why?  Because there are scenarios
-        * where the interface is flapping and the normal queuing methodology
-        * will cause down/up events to very very rarely be combined into
-        * a non-event from nexthop tracking perspective.  Leading
-        * to some fun timing situations with upper level routing protocol
-        * trying to and failing to install routes during this blip.  Especially
-        * when zebra is under load.
-        */
-       if (connected_down)
-               zebra_rib_evaluate_rn_nexthops(rn,
-                                              zebra_router_get_next_sequence());
        route_unlock_node(rn);
        return;
 }