summaryrefslogtreecommitdiff
path: root/zebra/zebra_mpls.c
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2018-05-25 11:07:34 -0400
committerDonald Sharp <sharpd@cumulusnetworks.com>2018-05-30 08:05:29 -0400
commit7c5d0e1853597d398dda77494217f58a425e57df (patch)
tree8b1c971d20b359cfc5a5f5c7793217bfe2551b4d /zebra/zebra_mpls.c
parentebecd64913d21197465de56bbc69bdb61d265f2a (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.c41
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;
+ }
}
}