diff options
author | Neale Ranns <nranns@cisco.com> | 2016-11-10 20:35:14 +0000 |
---|---|---|
committer | Damjan Marion <dmarion.lists@gmail.com> | 2016-11-12 00:06:39 +0000 |
commit | ad95b5df2728f9061f8cd8c3d06a41a9c2c943bd (patch) | |
tree | dc8933e3b091e0b35988d030511783a533dd0193 /vnet/vnet/fib/fib_entry.c | |
parent | f5179c71449792a059be2b753f4c43ba8c438d71 (diff) |
pseudo atomic adjacency updates
When an adjacency changes from incomplete to complete (arp to rewrite) and vice-versa, that update must produce valid behavour w.r.t. the packets that continue to encounter it.
Change-Id: Icc2709aff9807c5d24f91ef7649268991ad9a45d
Signed-off-by: Neale Ranns <nranns@cisco.com>
Diffstat (limited to 'vnet/vnet/fib/fib_entry.c')
-rw-r--r-- | vnet/vnet/fib/fib_entry.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/vnet/vnet/fib/fib_entry.c b/vnet/vnet/fib/fib_entry.c index 1047c50e1d2..4080b7622d1 100644 --- a/vnet/vnet/fib/fib_entry.c +++ b/vnet/vnet/fib/fib_entry.c @@ -393,6 +393,7 @@ fib_entry_back_walk_notify (fib_node_t *node, if (FIB_NODE_BW_REASON_FLAG_EVALUATE & ctx->fnbw_reason || FIB_NODE_BW_REASON_FLAG_ADJ_UPDATE & ctx->fnbw_reason || + FIB_NODE_BW_REASON_FLAG_ADJ_DOWN & ctx->fnbw_reason || FIB_NODE_BW_REASON_FLAG_INTERFACE_UP & ctx->fnbw_reason || FIB_NODE_BW_REASON_FLAG_INTERFACE_DOWN & ctx->fnbw_reason || FIB_NODE_BW_REASON_FLAG_INTERFACE_DELETE & ctx->fnbw_reason) @@ -411,6 +412,11 @@ fib_entry_back_walk_notify (fib_node_t *node, ctx->fnbw_reason = FIB_NODE_BW_REASON_FLAG_EVALUATE; /* + * ... and nothing is forced sync from now on. + */ + ctx->fnbw_flags &= ~FIB_NODE_BW_FLAG_FORCE_SYNC; + + /* * propagate the backwalk further if we haven't already reached the * maximum depth. */ |