diff options
Diffstat (limited to 'zebra/zebra_rib.c')
| -rw-r--r-- | zebra/zebra_rib.c | 33 |
1 files changed, 5 insertions, 28 deletions
diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c index 63f15b0f20..261335e4a4 100644 --- a/zebra/zebra_rib.c +++ b/zebra/zebra_rib.c @@ -2087,9 +2087,6 @@ done: if (rn) route_unlock_node(rn); - - /* Return context to dataplane module */ - dplane_ctx_fini(&ctx); } /* @@ -2323,9 +2320,6 @@ static void rib_process_dplane_notify(struct zebra_dplane_ctx *ctx) done: if (rn) route_unlock_node(rn); - - /* Return context to dataplane module */ - dplane_ctx_fini(&ctx); } /* @@ -4191,7 +4185,7 @@ void rib_close_table(struct route_table *table) /* * Handler for async dataplane results after a pseudowire installation */ -static int handle_pw_result(struct zebra_dplane_ctx *ctx) +static void handle_pw_result(struct zebra_dplane_ctx *ctx) { struct zebra_pw *pw; struct zebra_vrf *vrf; @@ -4200,7 +4194,7 @@ static int handle_pw_result(struct zebra_dplane_ctx *ctx) * result for installation attempts here. */ if (dplane_ctx_get_op(ctx) != DPLANE_OP_PW_INSTALL) - goto done; + return; if (dplane_ctx_get_status(ctx) != ZEBRA_DPLANE_REQUEST_SUCCESS) { vrf = zebra_vrf_lookup_by_id(dplane_ctx_get_vrf(ctx)); @@ -4209,14 +4203,8 @@ static int handle_pw_result(struct zebra_dplane_ctx *ctx) zebra_pw_install_failure(pw, dplane_ctx_get_pw_status(ctx)); } - -done: - dplane_ctx_fini(&ctx); - - return 0; } - /* * Handle results from the dataplane system. Dequeue update context * structs, dispatch to appropriate internal handlers. @@ -4289,7 +4277,6 @@ static void rib_process_dplane_results(struct thread *thread) case DPLANE_OP_ROUTE_INSTALL: case DPLANE_OP_ROUTE_UPDATE: case DPLANE_OP_ROUTE_DELETE: - { /* Bit of special case for route updates * that were generated by async notifications: * we don't want to continue processing these @@ -4297,10 +4284,7 @@ static void rib_process_dplane_results(struct thread *thread) */ if (dplane_ctx_get_notif_provider(ctx) == 0) rib_process_result(ctx); - else - dplane_ctx_fini(&ctx); - } - break; + break; case DPLANE_OP_ROUTE_NOTIFY: rib_process_dplane_notify(ctx); @@ -4315,17 +4299,13 @@ static void rib_process_dplane_results(struct thread *thread) case DPLANE_OP_LSP_INSTALL: case DPLANE_OP_LSP_UPDATE: case DPLANE_OP_LSP_DELETE: - { /* Bit of special case for LSP updates * that were generated by async notifications: * we don't want to continue processing these. */ if (dplane_ctx_get_notif_provider(ctx) == 0) zebra_mpls_lsp_dplane_result(ctx); - else - dplane_ctx_fini(&ctx); - } - break; + break; case DPLANE_OP_LSP_NOTIFY: zebra_mpls_process_dplane_notify(ctx); @@ -4338,8 +4318,6 @@ static void rib_process_dplane_results(struct thread *thread) case DPLANE_OP_SYS_ROUTE_ADD: case DPLANE_OP_SYS_ROUTE_DELETE: - /* No further processing in zebra for these. */ - dplane_ctx_fini(&ctx); break; case DPLANE_OP_MAC_INSTALL: @@ -4383,12 +4361,11 @@ static void rib_process_dplane_results(struct thread *thread) case DPLANE_OP_NEIGH_TABLE_UPDATE: case DPLANE_OP_GRE_SET: case DPLANE_OP_NONE: - /* Don't expect this: just return the struct? */ - dplane_ctx_fini(&ctx); break; } /* Dispatch by op code */ + dplane_ctx_fini(&ctx); ctx = dplane_ctx_dequeue(&ctxlist); } |
