1. A computer-executable method for performing concurrent hashing of packet streams, the method comprising: receiving a stream of packets at a controller; identifying by the controller types and parameters for a plurality of different hashing operations based on a received packet; sending the packet concurrently to corresponding different hashing modules to produce different hash values, which can be used to facilitate packet forwarding; receiving a status for the different hashing operations from the corresponding different hashing modules; and scheduling hashing operations in a next cycle based on the received status for the different hashing operations.