]> git.puffer.fish Git - matthieu/frr.git/commitdiff
Revert "zebra: keep rtadv_sock field in zrouter for optimisation"
authorDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 16 May 2019 18:13:27 +0000 (14:13 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 16 May 2019 18:13:27 +0000 (14:13 -0400)
This reverts commit 3738d700ff9aac5b7c4fed1a41dc47644488009f.

zebra/rtadv.c
zebra/zebra_router.h

index 817c65bf28730d9ccad04f12f54ddd2baaacbf3d..80ee112a85ae554b75ed9a70423920ccb4a06f41 100644 (file)
@@ -85,13 +85,6 @@ static void rtadv_event(struct zebra_vrf *, enum rtadv_event, int);
 static int if_join_all_router(int, struct interface *);
 static int if_leave_all_router(int, struct interface *);
 
-static int rtadv_get_socket(struct zebra_vrf *zvrf)
-{
-       if (zvrf->rtadv.sock >= 0)
-               return zvrf->rtadv.sock;
-       return zrouter.rtadv_sock;
-}
-
 static int rtadv_increment_received(struct zebra_vrf *zvrf, ifindex_t *ifindex)
 {
        int ret = -1;
@@ -506,7 +499,7 @@ static int rtadv_timer(struct thread *thread)
                                                        "Fast RA Rexmit on interface %s",
                                                        ifp->name);
 
-                                       rtadv_send_packet(rtadv_get_socket(zvrf),
+                                       rtadv_send_packet(zvrf->rtadv.sock,
                                                          ifp);
                                } else {
                                        zif->rtadv.AdvIntervalTimer -= period;
@@ -520,8 +513,8 @@ static int rtadv_timer(struct thread *thread)
                                                        zif->rtadv
                                                                .MaxRtrAdvInterval;
                                                rtadv_send_packet(
-                                                         rtadv_get_socket(zvrf),
-                                                         ifp);
+                                                       zvrf->rtadv.sock,
+                                                       ifp);
                                        }
                                }
                        }
@@ -535,7 +528,7 @@ static void rtadv_process_solicit(struct interface *ifp)
        struct zebra_vrf *zvrf = vrf_info_lookup(ifp->vrf_id);
 
        assert(zvrf);
-       rtadv_send_packet(rtadv_get_socket(zvrf), ifp);
+       rtadv_send_packet(zvrf->rtadv.sock, ifp);
 }
 
 /*
@@ -891,7 +884,7 @@ static void ipv6_nd_suppress_ra_set(struct interface *ifp,
                        zif->rtadv.AdvIntervalTimer = 0;
                        zvrf->rtadv.adv_if_count--;
 
-                       if_leave_all_router(rtadv_get_socket(zvrf), ifp);
+                       if_leave_all_router(zvrf->rtadv.sock, ifp);
 
                        if (zvrf->rtadv.adv_if_count == 0)
                                rtadv_event(zvrf, RTADV_STOP, 0);
@@ -910,11 +903,11 @@ static void ipv6_nd_suppress_ra_set(struct interface *ifp,
                                        RTADV_NUM_FAST_REXMITS;
                        }
 
-                       if_join_all_router(rtadv_get_socket(zvrf), ifp);
+                       if_join_all_router(zvrf->rtadv.sock, ifp);
 
                        if (zvrf->rtadv.adv_if_count == 1)
                                rtadv_event(zvrf, RTADV_START,
-                                           rtadv_get_socket(zvrf));
+                                           zvrf->rtadv.sock);
                }
        }
 }
@@ -2147,13 +2140,7 @@ static void rtadv_event(struct zebra_vrf *zvrf, enum rtadv_event event, int val)
 
 void rtadv_init(struct zebra_vrf *zvrf)
 {
-       if (vrf_is_backend_netns()) {
-               zvrf->rtadv.sock = rtadv_make_socket(zvrf->zns->ns_id);
-               zrouter.rtadv_sock = -1;
-       } else if (!zrouter.rtadv_sock) {
-               zvrf->rtadv.sock = -1;
-               zrouter.rtadv_sock = rtadv_make_socket(zvrf->zns->ns_id);
-       }
+       zvrf->rtadv.sock = rtadv_make_socket(zvrf->zns->ns_id);
 }
 
 void rtadv_terminate(struct zebra_vrf *zvrf)
@@ -2162,10 +2149,8 @@ void rtadv_terminate(struct zebra_vrf *zvrf)
        if (zvrf->rtadv.sock >= 0) {
                close(zvrf->rtadv.sock);
                zvrf->rtadv.sock = -1;
-       } else if (zrouter.rtadv_sock >= 0) {
-               close(zrouter.rtadv_sock);
-               zrouter.rtadv_sock = -1;
        }
+
        zvrf->rtadv.adv_if_count = 0;
        zvrf->rtadv.adv_msec_if_count = 0;
 }
index dcbf333b1c124d1aa857c26cf54c4d9c975b7da7..86422ea1eed52ae3301320f04a2d9a996b9a9c25 100644 (file)
@@ -82,9 +82,6 @@ struct zebra_router {
 
        struct hash *iptable_hash;
 
-       /* used if vrf backend is not network namespace */
-       int rtadv_sock;
-
        /* A sequence number used for tracking routes */
        _Atomic uint32_t sequence_num;