  The past century of telecommunications has shown that failures in networks
are prevalent. Although much has been done to prevent failures, network nodes
and links are bound to fail eventually. Failure recovery processes are
therefore needed. Failure recovery is mainly influenced by (1) detection of the
failure, and (2) circumvention of the detected failure. However, especially in
SDNs where controllers recompute network state reactively, this leads to high
delays. Hence, next to primary rules, backup rules should be installed in the
switches to quickly detour traffic once a failure occurs. In this work, we
propose algorithms for computing an all-to-all primary and backup network
forwarding configuration that is capable of circumventing link and node
failures. Omitting the high delay invoked by controller recomputation through
preconfiguration, our proposal's recovery delay is close to the detection time
which is significantly below the 50 ms rule of thumb. After initial recovery,
we recompute network configuration to guarantee protection from future
failures. Our algorithms use packet-labeling to guarantee correct and shortest
detour forwarding. The algorithms and labeling technique allow packets to
return to the primary path and are able to discriminate between link and node
failures. The computational complexity of our solution is comparable to that of
all-to-all-shortest paths computations. Our experimental evaluation on both
real and generated networks shows that network configuration complexity highly
decreases compared to classic disjoint paths computations. Finally, we provide
a proof-of-concept OpenFlow controller in which our proposed configuration is
implemented, demonstrating that it readily can be applied in production
networks.
