{'fraction_non_alphanumeric': 0.01916058394160584, 'fraction_numerical': 0.0, 'mean_word_length': 5.027472527472527, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Customizable Routing with Declarative Queries

To meet the demands of new Internet applications, recent work argues for giving end-hosts more control over routing. To achieve this goal, we propose the use of a recursive query language, which allows users to define their own routing protocols. Recursive queries can be used to express a large variety of route requests such as the k shortest paths, shortest paths that avoid (or include) a given set of nodes and least-loaded paths. We show that these queries can be efficiently implemented in the network, and in the simple case when all users request shortest paths, the communication overhead of our solution is similar to that incurred by a distance vector protocol. In addition, when only a subset of nodes issue the same query, the communication cost can be further lowered using automatic query optimization techniques – suggesting that declarative queries and automatic optimization are important in this domain. Finally, we outline the main challenges faced by our proposal, focusing on the expressiveness and efficiency of our proposal.