From cde09c34508947fbb4097facd9185dd385a1dbb5 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Thu, 14 Oct 2021 03:10:31 +0900 Subject: network: dhcp6: manage assigned downstream prefixes by using Hashmap When a system has thousands of downstream interfaces, previously the total cost of finding free subnet ID was O(n^2), where n is the number of downstream interfaces. This makes assigned prefixes are managed by Manager with Hashmap. So, the cost becomes O(n log n). --- src/network/networkd-manager.c | 1 + 1 file changed, 1 insertion(+) (limited to 'src/network/networkd-manager.c') diff --git a/src/network/networkd-manager.c b/src/network/networkd-manager.c index b4494d5182..c5ccfb4b58 100644 --- a/src/network/networkd-manager.c +++ b/src/network/networkd-manager.c @@ -485,6 +485,7 @@ Manager* manager_free(Manager *m) { m->dirty_links = set_free_with_destructor(m->dirty_links, link_unref); m->links_by_name = hashmap_free(m->links_by_name); m->links_by_hw_addr = hashmap_free(m->links_by_hw_addr); + m->links_by_dhcp6_pd_prefix = hashmap_free(m->links_by_dhcp6_pd_prefix); m->links_by_index = hashmap_free_with_destructor(m->links_by_index, link_unref); m->networks = ordered_hashmap_free_with_destructor(m->networks, network_unref); -- cgit v1.2.1