]> git.puffer.fish Git - matthieu/frr.git/commitdiff
zebra: update dplane route api return type
authorMark Stapp <mjs@voltanet.io>
Tue, 26 Jun 2018 19:10:13 +0000 (15:10 -0400)
committerMark Stapp <mjs@voltanet.io>
Thu, 25 Oct 2018 12:34:30 +0000 (08:34 -0400)
Use the dp_req_result enum type for the route update apis.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
zebra/zebra_dplane.c
zebra/zebra_dplane.h

index 7b548ea6dd7e734eb29a48ded685d75de1c6646c..43b08641a9855e974c14ea25992036520eb5b9ed 100644 (file)
@@ -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);
 }
 
index 42d88e9b8a234f24bd3bdcef83bbe59adb97c5d3..364d77db43563f9841f2aa297543ab8cafa4c9de 100644 (file)
@@ -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;