diff options
| author | Donald Sharp <sharpd@cumulusnetworks.com> | 2018-05-25 11:07:34 -0400 |
|---|---|---|
| committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2018-05-30 08:05:29 -0400 |
| commit | 7c5d0e1853597d398dda77494217f58a425e57df (patch) | |
| tree | 8b1c971d20b359cfc5a5f5c7793217bfe2551b4d /zebra/zebra_mpls.c | |
| parent | ebecd64913d21197465de56bbc69bdb61d265f2a (diff) | |
zebra: Add `enum dp_req_result` to lsp install/deletes
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'zebra/zebra_mpls.c')
| -rw-r--r-- | zebra/zebra_mpls.c | 41 |
1 files changed, 31 insertions, 10 deletions
diff --git a/zebra/zebra_mpls.c b/zebra/zebra_mpls.c index 69d09a08cd..47fcf84aad 100644 --- a/zebra/zebra_mpls.c +++ b/zebra/zebra_mpls.c @@ -860,7 +860,7 @@ static void lsp_uninstall_from_kernel(struct hash_backet *backet, void *ctxt) lsp = (zebra_lsp_t *)backet->data; if (CHECK_FLAG(lsp->flags, LSP_FLAG_INSTALLED)) - kernel_del_lsp(lsp); + (void)kernel_del_lsp(lsp); } /* @@ -914,17 +914,31 @@ static wq_item_status lsp_process(struct work_queue *wq, void *data) if (newbest) { UNSET_FLAG(lsp->flags, LSP_FLAG_CHANGED); - kernel_add_lsp(lsp); - - zvrf->lsp_installs++; + switch (kernel_add_lsp(lsp)) { + case DP_REQUEST_QUEUED: + zlog_err("No current DataPlane interfaces can return this, please fix"); + break; + case DP_REQUEST_FAILURE: + break; + case DP_REQUEST_SUCCESS: + zvrf->lsp_installs++; + break; + } } } else { /* Installed, may need an update and/or delete. */ if (!newbest) { - kernel_del_lsp(lsp); - - zvrf->lsp_removals++; + switch (kernel_del_lsp(lsp)) { + case DP_REQUEST_QUEUED: + zlog_err("No current DataPlane interfaces can return this, please fix"); + break; + case DP_REQUEST_FAILURE: + break; + case DP_REQUEST_SUCCESS: + zvrf->lsp_removals++; + break; + } } else if (CHECK_FLAG(lsp->flags, LSP_FLAG_CHANGED)) { zebra_nhlfe_t *nhlfe; struct nexthop *nexthop; @@ -953,9 +967,16 @@ static wq_item_status lsp_process(struct work_queue *wq, void *data) } } - kernel_upd_lsp(lsp); - - zvrf->lsp_installs++; + switch (kernel_upd_lsp(lsp)) { + case DP_REQUEST_QUEUED: + zlog_err("No current DataPlane interfaces can return this, please fix"); + break; + case DP_REQUEST_FAILURE: + break; + case DP_REQUEST_SUCCESS: + zvrf->lsp_installs++; + break; + } } } |
