{'fraction_non_alphanumeric': 0.01569713758079409, 'fraction_numerical': 0.0, 'mean_word_length': 5.2298850574712645, '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}}
A Narrow Waist for Multipath Routing

Many applications can use multipath routing to improve reliability or throughput, and many multipath routing protocols exist. Despite this diversity of mechanisms and applications, no common interface exists to allow an application to select these paths. This paper presents a design for such a common interface, called path bits. Path bits are a small string of opaque, semantic-free bits in a packet header; these bits have a simple property: changing a packet’s path bits should, with high probability, result in the packet taking a different path to the destination. This paper presents the design of path bits and demonstrates that they are simple enough to be easily implemented in both hardware and software and expressive enough to support a variety of applications that can benefit from multipath routing. We present both hardware and software implementations of multipath routing protocols that implement the path bits abstraction, as well as implementations of applications that can use this abstraction with only small modifications.