—Data structures representing directed graphs with edges labeled by symbols from a finite alphabet are used to implement packet processing algorithms used in a variety of network applications. In this paper we present a novel approach to represent such data structures, which significantly reduces the amount of memory required. This approach called History-based Encoding, eXecution and Addressing (HEXA) challenges the conventional assumption that graph data structures must store pointers of log2n bits to identify successor nodes. We show how the data structures can be organized so that implicit information can be used to locate successors, significantly reducing the amount of information that must be stored explicitly. We demonstrate that the binary tries used for IP route lookup can be implemented using just two bytes per stored prefix (roughly half the space required by Eatherton’s tree bitmap data structure) and that string matching can be implemented usin...
Sailesh Kumar, Jonathan S. Turner, Patrick Crowley