Example: 'Minimimize number of IP links so that traffic is carried using OSPF routing'

Brief description

This algorithm computes the number of IP links between two nodes, and the OSPF routing (with ECMP), so that all the traffic is carried, while all the links have an utilization not exceeding a given threshold (maximumUtilization). All IP links have the same given fixedOSPFWeight weight, and the same given fixedIPLinkCapacity capacity.

Algorithm description table

Algorithm inputs

Requires a topology (nodes and links) and a demand set within the netPlan object. Input link capacities are ignored. Algorithm parameters:

  • defaultMTTF_hours: Default mean time to fail (in hours). Default: 8748
  • defaultMTTR_hours: Default mean time to repair (in hours). Default: 12
  • fixedIPLinkCapacity: All the IP links have this capacity. Default: 10
  • fixedOSPFWeight: Fixed OSPF weight to assign to all the IP links. Default: 10
  • maximumUtilization: Maximum IP link utilization permitted in the network. Default: 0.8
  • singleBidirectionalFailureProvision: If “true”, the number of links between the nodes is computed so that if all the links between two nodes (both directions) fail simultaneously, all the traffic is carried (same OSPF weights in the surviving links) without exceeding the maximum utilization. If “false”, the amount of IP links is calculated so that the maximum utlization limit is satisfied when in a no-failing network. Default: true
Algorithm outputs

See algorithm description

Required librariesNone
KeywordsCapacity assignment (CA), Destination-based routing, Flow assignment (FA), Greedy heuristic, OSPF
AuthorsPablo Pavón Mariño, José Luis Izquierdo Zaragoza
DateFebruary 2014
CodeCFA_OSPF_fixedWeight.java

Detailed description

Initially, only one IP link is established between those nodes which have a link between them in the input design. Then, we compute the worse utilization among all the links, in no failure condition, or including also any single bidirectional failure condition, if singleBidirectionalFailureProvision=true. If the worse utilization in any IP link does not exceed maximumUtilization, we are done. If not, we add two more links of fixedIPLinkCapacity (one in each direction), between the nodes of the highest utilized IP link, and iterate again