Patent attributes
System, method, and computer program product to route data communications based on non-routing criteria, by receiving, by a network element, a data packet, identifying, in a routing table of the network element, a first route for routing the data packet, computing, by an application executing on the network element, a routing score for the first route based on one or more non-routing criteria, computing, by the application, a routing score for a second route for routing the data packet based on the one or more non-routing criteria, and upon determining that the routing score for the second route is less than the routing score of the first route, updating the routing table to cause the network element to route the data packet according to the second route.