diff options
author | Pravin B Shelar <pshelar@nicira.com> | 2014-11-26 11:27:05 -0800 |
---|---|---|
committer | Pravin B Shelar <pshelar@nicira.com> | 2014-12-01 14:43:32 -0800 |
commit | b772066ffd066d59d9ebce092f6665150723d2ad (patch) | |
tree | 61f3f8be3aece40c287e396c71483442b19c2c43 /lib/route-table.c | |
parent | 36fd4f214f9ba74aaf0e5fb3e4ba271b946a1550 (diff) | |
download | openvswitch-b772066ffd066d59d9ebce092f6665150723d2ad.tar.gz |
route-table: Remove Unregister.
Since dpif registering for routing table at initialization
there is no need to unregister it. Following patch removes
support for turning routing table notifications on and off.
Due to this change OVS always listens for these
notifications.
Reported-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Acked-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Diffstat (limited to 'lib/route-table.c')
-rw-r--r-- | lib/route-table.c | 55 |
1 files changed, 11 insertions, 44 deletions
diff --git a/lib/route-table.c b/lib/route-table.c index 63a9bd363..a1bc887c3 100644 --- a/lib/route-table.c +++ b/lib/route-table.c @@ -61,7 +61,6 @@ static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(5, 20); * every time route_table_reset() is called. */ static uint64_t rt_change_seq; -static unsigned int register_count = 0; static struct nln *nln = NULL; static struct route_table_msg rtmsg; static struct nln_notifier *route_notifier = NULL; @@ -76,7 +75,6 @@ static void route_table_change(const struct route_table_msg *, void *); static void route_map_clear(void); static void name_table_init(void); -static void name_table_uninit(void); static void name_table_change(const struct rtnetlink_link_change *, void *); uint64_t @@ -88,49 +86,24 @@ route_table_get_change_seq(void) /* Users of the route_table module should register themselves with this * function before making any other route_table function calls. */ void -route_table_register(void) +route_table_init(void) OVS_EXCLUDED(route_table_mutex) { ovs_mutex_lock(&route_table_mutex); - if (!register_count) { - ovs_assert(!nln); - ovs_assert(!route_notifier); + ovs_assert(!nln); + ovs_assert(!route_notifier); - ovs_router_init(); - nln = nln_create(NETLINK_ROUTE, RTNLGRP_IPV4_ROUTE, - (nln_parse_func *) route_table_parse, &rtmsg); + ovs_router_init(); + nln = nln_create(NETLINK_ROUTE, RTNLGRP_IPV4_ROUTE, + (nln_parse_func *) route_table_parse, &rtmsg); - route_notifier = - nln_notifier_create(nln, (nln_notify_func *) route_table_change, - NULL); + route_notifier = + nln_notifier_create(nln, (nln_notify_func *) route_table_change, + NULL); - route_table_reset(); - name_table_init(); - } - - register_count++; - ovs_mutex_unlock(&route_table_mutex); -} - -/* Users of the route_table module should unregister themselves with this - * function when they will no longer be making any more route_table fuction - * calls. */ -void -route_table_unregister(void) - OVS_EXCLUDED(route_table_mutex) -{ - ovs_mutex_lock(&route_table_mutex); - register_count--; + route_table_reset(); + name_table_init(); - if (!register_count) { - nln_notifier_destroy(route_notifier); - route_notifier = NULL; - nln_destroy(nln); - nln = NULL; - - route_map_clear(); - name_table_uninit(); - } ovs_mutex_unlock(&route_table_mutex); } @@ -300,12 +273,6 @@ name_table_init(void) name_notifier = rtnetlink_link_notifier_create(name_table_change, NULL); } -static void -name_table_uninit(void) -{ - rtnetlink_link_notifier_destroy(name_notifier); - name_notifier = NULL; -} static void name_table_change(const struct rtnetlink_link_change *change OVS_UNUSED, |