* The algorithm to build the LC-Trie is described in the paper 'IP-address lookup using LC-tries'
ipv4_trie_.reset(new LcTrieInternal<Ipv4>(ipv4_prefixes, fill_factor, root_branching_factor));
ipv6_trie_.reset(new LcTrieInternal<Ipv6>(ipv6_prefixes, fill_factor, root_branching_factor));
std::vector<T> getData(const Network::Address::InstanceConstSharedPtr& ip_address) const {
template <class IpType, uint32_t address_size = CHAR_BIT * sizeof(IpType)> class LcTrieInternal {
// https://github.com/beevek/libkrb/blob/24a224d3ea840e2e7d2926e17d8849aefecc1101/krb/lc_trie.hpp#L396.
LcTrie<T>::LcTrieInternal<IpType, address_size>::LcTrieInternal(std::vector<IpPrefix<IpType>>& data,
LcTrie<T>::LcTrieInternal<IpType, address_size>::getData(const IpType& ip_address) const {