1. A method of routing data packets, comprising: receiving a header associated with a data packet; searching a table with a first value representative of one or more fields of the header to retrieve a multipath weight vector stored therein, wherein the multipath weight vector describes a quantity of available paths for the data packet and a desired relative traffic distribution for each of the available paths; obtaining a second value representative of one or more fields of the header; and selecting one of the available paths for routing the data packet based on at least in part the second value and the multipath weight vector.