1. A method comprising: receiving, by one or more processors, a data packet; reading, by the one or more processors, a predetermined number of bytes from the data packet; determining, by the one or more processors, an initial routing instruction based at least in part on information in the received data packet; based on the initial routing instruction, determining, by the one or more processors, which bits of the read bytes to hash using hash information stored in a first memory; hashing, by the one or more processors, the determined bits to generate a hash value; determining, by the one or more processors, whether the hash value corresponds to routing information stored in a second memory; and routing, by the one or more processors, the data packet based on at least the routing information.