A method for optimizing bandwidth allocation of carrying a data stream that is associated with a required bandwidth allocation and is associated with a bandwidth sharing definition that defines the bandwidth sharing of the data stream with allocated bandwidths over a network, the method comprising: defining a first path from a first node (A, 24) to a second node (E, 24) in the network, the first path comprises at least a first (25, A-B) segment that is associated with a first allocated bandwidths; defining a second path from the first node to the second node in the network, the second path comprises at least a second (25, A-D) segment that is associated with a second allocated bandwidths; the method further comprising: calculating a first additional allocation bandwidth required for carrying the data stream over the first segment based on the first allocated bandwidth according to the bandwidth sharing definition; calculating a second additional allocation bandwidth required for carrying the data stream over the second segment based on the second allocated bandwidth according to the bandwidth sharing definition; selecting the first or second path in response to comparing the first additional allocation bandwidth to the second additional allocation bandwidth; and transporting the data stream (40, 48) over the selected path, wherein the first or second node comprises, or is part of, a Layer-2 switch, a Layer-3 router, a bridge, a concentrator, an aggregator, or an Add/Drop Multiplexer, ADM. defining a first path from a first node (A, 24) to a second node (E, 24) in the network, the first path comprises at least a first (25, A-B) segment that is associated with a first allocated bandwidths; defining a second path from the first node to the second node in the network, the second path comprises at least a second (25, A-D) segment that is associated with a second allocated bandwidths; the method further comprising: calculating a first additional allocation bandwidth required for carrying the data stream over the first segment based on the first allocated bandwidth according to the bandwidth sharing definition; calculating a second additional allocation bandwidth required for carrying the data stream over the second segment based on the second allocated bandwidth according to the bandwidth sharing definition; selecting the first or second path in response to comparing the first additional allocation bandwidth to the second additional allocation bandwidth; and transporting the data stream (40, 48) over the selected path, wherein the first or second node comprises, or is part of, a Layer-2 switch, a Layer-3 router, a bridge, a concentrator, an aggregator, or an Add/Drop Multiplexer, ADM. calculating a first additional allocation bandwidth required for carrying the data stream over the first segment based on the first allocated bandwidth according to the bandwidth sharing definition; calculating a second additional allocation bandwidth required for carrying the data stream over the second segment based on the second allocated bandwidth according to the bandwidth sharing definition; selecting the first or second path in response to comparing the first additional allocation bandwidth to the second additional allocation bandwidth; and transporting the data stream (40, 48) over the selected path, wherein the first or second node comprises, or is part of, a Layer-2 switch, a Layer-3 router, a bridge, a concentrator, an aggregator, or an Add/Drop Multiplexer, ADM.