diff options
| author | F. Aragon <paco@voltanet.io> | 2019-04-05 15:26:14 +0200 |
|---|---|---|
| committer | F. Aragon <paco@voltanet.io> | 2019-04-05 15:39:03 +0200 |
| commit | 98e9ab8b31804593a140fd147450d455bd26ed4a (patch) | |
| tree | 313d977261dfb9812c19c85d92dcf71d0964d585 /lib/compiler.h | |
| parent | 5eec4615a2ca5992f68572f500ede951960acfa4 (diff) | |
zebra: label manager race condition fix
This fix covers the case where two or more events are processed but only one
becoming effective. E.g. when mixing a synchronous label request from a LDP
deamon and an asynchronous request from a BGP daemon it could happen to the
BGP having the label chunk, but the LDP stuck waiting for the response.
Given e.g.
ldpd <-------->
(sync label request)
Zebra (label proxy) <--> Zebra (shared label manager)
bgpd <-------->
(async label request)
Sequence:
LDP label request ----->
Zebra (label proxy FW) ----> Zebra (LM)
BGP label request ----->
Zebra (label proxy FW) ----> Zebra (LM)
<---- Zebra (LM) RP LDP
<---- Zebra (LM) RP BGP
Signed-off-by: F. Aragon <paco@voltanet.io>
Diffstat (limited to 'lib/compiler.h')
0 files changed, 0 insertions, 0 deletions
