From: Mark Stapp Date: Tue, 26 Jun 2018 19:10:13 +0000 (-0400) Subject: zebra: update dplane route api return type X-Git-Tag: frr-7.1-dev~233^2~19 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=655d681a4415670ab1e7b19446619bb751d64dd0;p=matthieu%2Ffrr.git zebra: update dplane route api return type Use the dp_req_result enum type for the route update apis. Signed-off-by: Mark Stapp --- diff --git a/zebra/zebra_dplane.c b/zebra/zebra_dplane.c index 7b548ea6dd..43b08641a9 100644 --- a/zebra/zebra_dplane.c +++ b/zebra/zebra_dplane.c @@ -570,11 +570,13 @@ static dplane_ctx_h dplane_route_dequeue(void) /* * Utility that prepares a route update and enqueues it for processing */ -static int dplane_route_update_internal(struct route_node *rn, - struct route_entry *re, - struct route_entry *old_re, - dplane_op_e op) +static enum zebra_dplane_result +dplane_route_update_internal(struct route_node *rn, + struct route_entry *re, + struct route_entry *old_re, + dplane_op_e op) { + enum zebra_dplane_result result = ZEBRA_DPLANE_REQUEST_FAILURE; int ret = EINVAL; dplane_ctx_h ctx = NULL; @@ -608,20 +610,22 @@ static int dplane_route_update_internal(struct route_node *rn, } done: - if (ret != AOK && ctx) { + if (ret == AOK) { + result = ZEBRA_DPLANE_REQUEST_QUEUED; + } else if (ctx) { dplane_ctx_free(&ctx); - } + } - return (ret); + return (result); } /* * Enqueue a route 'add' for the dataplane. */ -int dplane_route_add(struct route_node *rn, - struct route_entry *re) +enum zebra_dplane_result dplane_route_add(struct route_node *rn, + struct route_entry *re) { - int ret = EINVAL; + enum zebra_dplane_result ret = ZEBRA_DPLANE_REQUEST_FAILURE; if (rn == NULL || re == NULL) { goto done; @@ -631,18 +635,17 @@ int dplane_route_add(struct route_node *rn, DPLANE_OP_ROUTE_INSTALL); done: - return (ret); } /* * Enqueue a route update for the dataplane. */ -int dplane_route_update(struct route_node *rn, - struct route_entry *re, - struct route_entry *old_re) +enum zebra_dplane_result dplane_route_update(struct route_node *rn, + struct route_entry *re, + struct route_entry *old_re) { - int ret = EINVAL; + enum zebra_dplane_result ret = ZEBRA_DPLANE_REQUEST_FAILURE; if (rn == NULL || re == NULL) { goto done; @@ -650,19 +653,17 @@ int dplane_route_update(struct route_node *rn, ret = dplane_route_update_internal(rn, re, old_re, DPLANE_OP_ROUTE_UPDATE); - done: - return (ret); } /* * Enqueue a route removal for the dataplane. */ -int dplane_route_delete(struct route_node *rn, - struct route_entry *re) +enum zebra_dplane_result dplane_route_delete(struct route_node *rn, + struct route_entry *re) { - int ret = EINVAL; + enum zebra_dplane_result ret = ZEBRA_DPLANE_REQUEST_FAILURE; if (rn == NULL || re == NULL) { goto done; @@ -672,7 +673,6 @@ int dplane_route_delete(struct route_node *rn, DPLANE_OP_ROUTE_DELETE); done: - return (ret); } diff --git a/zebra/zebra_dplane.h b/zebra/zebra_dplane.h index 42d88e9b8a..364d77db43 100644 --- a/zebra/zebra_dplane.h +++ b/zebra/zebra_dplane.h @@ -104,10 +104,6 @@ typedef enum { } dplane_op_e; -/* - * Enqueue a route removal for the dataplane. - */ - /* * Opaque context block used to exchange info between the main zebra * context and the dataplane module(s). If these are two independent pthreads, @@ -179,15 +175,15 @@ const struct zebra_dplane_info *dplane_ctx_get_ns(const dplane_ctx_h ctx); /* * Enqueue route change operations for the dataplane. */ -int dplane_route_add(struct route_node *rn, - struct route_entry *re); +enum zebra_dplane_result dplane_route_add(struct route_node *rn, + struct route_entry *re); -int dplane_route_update(struct route_node *rn, - struct route_entry *re, - struct route_entry *old_re); +enum zebra_dplane_result dplane_route_update(struct route_node *rn, + struct route_entry *re, + struct route_entry *old_re); -int dplane_route_delete(struct route_node *rn, - struct route_entry *re); +enum zebra_dplane_result dplane_route_delete(struct route_node *rn, + struct route_entry *re); /* Opaque handle to a dataplane provider plugin */ typedef struct zebra_dplane_provider_s *dplane_provider_h;