]> git.puffer.fish Git - mirror/frr.git/commit
zebra: pseudowire event recovery (DoS fix) 4120/head
authorF. Aragon <paco@voltanet.io>
Wed, 10 Apr 2019 17:08:50 +0000 (19:08 +0200)
committerF. Aragon <paco@voltanet.io>
Wed, 10 Apr 2019 17:21:13 +0000 (19:21 +0200)
commit2d38b702dd925778487a1c2fe6aae89e549d4cfe
tree9a8dfbeae940580e59c74bd3a0b4d91b941a8e89
parentce5e42099111599d95c5e67256d8b69b88bafd17
zebra: pseudowire event recovery (DoS fix)

When having a route recovery, because of the route installation
cycling and the next hop label check, it could happen that the PW
never gets recovered. The original code shows the intention of retrying,
but the code was missing. The fix includes the call to the timer programming
the recovery attempt.

Example for reproducing the issue:

      |P1|  <->  |P2|  <->  |P3|

- Being P1, P2, P3 nodes, using IS-IS as IGP, and having a pseudowire
betwen P1 and P3 (P1, P2, P3 having configured LDP daemons).
- After 60 seconds, kill the IS-IS daemon in P2.
- Wait 30 seconds
- Launch again the IS-IS daemon in P2
- The bug/issue is that after P1 <-> P3 recovering connectivity sometimes
  the PW is not recovered because the reason explained in the first paragraph.

Signed-off-by: F. Aragon <paco@voltanet.io>
zebra/zebra_pw.c