Achieving convergence-free routing using failure-carrying packets