X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Ffib%2Ffib_entry_src.h;h=8f13ae894bb0e75c98f437d21d036a8019c6bedf;hb=9db6ada779794779158163f6293b479ae7f6ad5e;hp=a859b9c734a86893b21232f1eeccfc8b474331c1;hpb=0d3d4824a46205e776ff32c82be4cb514f459a5f;p=vpp.git diff --git a/src/vnet/fib/fib_entry_src.h b/src/vnet/fib/fib_entry_src.h index a859b9c734a..8f13ae894bb 100644 --- a/src/vnet/fib/fib_entry_src.h +++ b/src/vnet/fib/fib_entry_src.h @@ -226,20 +226,24 @@ typedef struct fib_entry_src_vft_t_ { } \ } -#define FIB_ENTRY_SRC_VFT_INVOKE(esrc, func, args) \ -{ \ - const fib_entry_src_vft_t *_vft; \ - _vft = fib_entry_src_get_vft(esrc); \ - if (_vft->func) \ - _vft->func args; \ +#define FIB_ENTRY_SRC_VFT_INVOKE(esrc, func, args) \ +{ \ + const fib_entry_src_vft_t *_vft; \ + _vft = fib_entry_src_get_vft(esrc); \ + if (_vft->func) { \ + (esrc)->fes_flags &= ~FIB_ENTRY_SRC_FLAG_STALE; \ + _vft->func args; \ + } \ } #define FIB_ENTRY_SRC_VFT_INVOKE_AND_RETURN(esrc, func, args) \ -{ \ - const fib_entry_src_vft_t *_vft; \ - _vft = fib_entry_src_get_vft(esrc); \ - if (_vft->func) \ - return (_vft->func args); \ +{ \ + const fib_entry_src_vft_t *_vft; \ + _vft = fib_entry_src_get_vft(esrc); \ + if (_vft->func) { \ + (esrc)->fes_flags &= ~FIB_ENTRY_SRC_FLAG_STALE; \ + return (_vft->func args); \ + } \ } #define FIB_ENTRY_SRC_VFT_EXISTS(esrc, func) \