A method for selecting routing paths of data packets in a data network, said data packets being generated by origin network end points (115-o) that generate data traffic and being destined to destination network end points (115-d) that are destination of the data traffic generated by the origin network end points, said origin network end points (115-o) and said destination network end points (115-d) being connected to the data network at a boundary thereof, the data network comprising a plurality of communication links and routing apparatuses, the method comprising: - calculating and assigning to the communication links respective communication links' costs; - calculating, for at least two different routing paths in the data network, each routing path being made up by at least one communication link, respective routing path overall costs, wherein the overall cost of a routing path depends on the communication links' costs assigned to the communication links making up such routing path; - selecting, among the at least two different routing paths, the routing path having the lower routing path overall cost, and - causing a new data packet to be routed in the data network over the selected routing path, - collecting measures indicative of at least one performance parameter indicating a performance of previous transmissions of data packets from origin network end points (115-o) of the data network to destination network end points (115-d) of the data network, and using said collected measures for calculating said communication links' costs. characterized in that: said calculating and assigning to the communication links respective communication link costs comprises: - comparing said measures indicative of at least one performance parameter with at least one respective performance parameter threshold value; - in case, for a previous transmission of data packets, said at least one performance parameter threshold value is trespassed, flagging said previous transmission of data packets; - counting the numbers of flagged previous transmission of data packets routed through same communication links; - assigning to the communication links respective communication link costs based on the respective counts of the numbers of flagged previous transmission of data packets routed through same communication links. - calculating and assigning to the communication links respective communication links' costs; - calculating, for at least two different routing paths in the data network, each routing path being made up by at least one communication link, respective routing path overall costs, wherein the overall cost of a routing path depends on the communication links' costs assigned to the communication links making up such routing path; - selecting, among the at least two different routing paths, the routing path having the lower routing path overall cost, and - causing a new data packet to be routed in the data network over the selected routing path, - collecting measures indicative of at least one performance parameter indicating a performance of previous transmissions of data packets from origin network end points (115-o) of the data network to destination network end points (115-d) of the data network, and using said collected measures for calculating said communication links' costs. characterized in that: - comparing said measures indicative of at least one performance parameter with at least one respective performance parameter threshold value; - in case, for a previous transmission of data packets, said at least one performance parameter threshold value is trespassed, flagging said previous transmission of data packets; - counting the numbers of flagged previous transmission of data packets routed through same communication links; - assigning to the communication links respective communication link costs based on the respective counts of the numbers of flagged previous transmission of data packets routed through same communication links.