From 7e78bc45336e0e3c251ed058f5bafee573336352 Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Thu, 16 May 2019 14:13:27 -0400 Subject: [PATCH] Revert "zebra: keep rtadv_sock field in zrouter for optimisation" This reverts commit 3738d700ff9aac5b7c4fed1a41dc47644488009f. --- zebra/rtadv.c | 33 +++++++++------------------------ zebra/zebra_router.h | 3 --- 2 files changed, 9 insertions(+), 27 deletions(-) diff --git a/zebra/rtadv.c b/zebra/rtadv.c index 817c65bf28..80ee112a85 100644 --- a/zebra/rtadv.c +++ b/zebra/rtadv.c @@ -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; } diff --git a/zebra/zebra_router.h b/zebra/zebra_router.h index dcbf333b1c..86422ea1ee 100644 --- a/zebra/zebra_router.h +++ b/zebra/zebra_router.h @@ -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; -- 2.39.5