]> git.puffer.fish Git - mirror/frr.git/commitdiff
zebra: Add dplane_ctx_get|set_flags
authorDonald Sharp <sharpd@nvidia.com>
Mon, 3 Oct 2022 19:28:48 +0000 (15:28 -0400)
committerDonald Sharp <sharpd@nvidia.com>
Mon, 12 Dec 2022 15:44:57 +0000 (10:44 -0500)
Zebra needs the ability to pass this data around.
Add it to the dplanes ability to pass.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
zebra: Add a dplane_ctx_set_flags

The dplane_ctx_set_flags call is missing, we will need it.  Add it.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
zebra/zebra_dplane.c
zebra/zebra_dplane.h

index 698cda8b8c1504c602125abd90951adea238fdef..1deac4bffe4e40ce3f35819abab0ce99edb98fc5 100644 (file)
@@ -135,6 +135,8 @@ struct dplane_route_info {
        uint32_t zd_mtu;
        uint32_t zd_nexthop_mtu;
 
+       uint32_t zd_flags;
+
        /* Nexthop hash entry info */
        struct dplane_nexthop_info nhe;
 
@@ -1430,6 +1432,20 @@ uint16_t dplane_ctx_get_old_instance(const struct zebra_dplane_ctx *ctx)
        return ctx->u.rinfo.zd_old_instance;
 }
 
+uint32_t dplane_ctx_get_flags(const struct zebra_dplane_ctx *ctx)
+{
+       DPLANE_CTX_VALID(ctx);
+
+       return ctx->u.rinfo.zd_flags;
+}
+
+void dplane_ctx_set_flags(struct zebra_dplane_ctx *ctx, uint32_t flags)
+{
+       DPLANE_CTX_VALID(ctx);
+
+       ctx->u.rinfo.zd_flags = flags;
+}
+
 uint32_t dplane_ctx_get_metric(const struct zebra_dplane_ctx *ctx)
 {
        DPLANE_CTX_VALID(ctx);
@@ -2806,6 +2822,7 @@ int dplane_ctx_route_init(struct zebra_dplane_ctx *ctx, enum dplane_op_e op,
 
        ctx->zd_table_id = re->table;
 
+       ctx->u.rinfo.zd_flags = re->flags;
        ctx->u.rinfo.zd_metric = re->metric;
        ctx->u.rinfo.zd_old_metric = re->metric;
        ctx->zd_vrf_id = re->vrf_id;
index b9fd176de7da3a7df20fcf78dae340ed11b3a77f..60d9205544aef82f92a8ad4422e3fbf0e0642d59 100644 (file)
@@ -380,6 +380,8 @@ route_tag_t dplane_ctx_get_old_tag(const struct zebra_dplane_ctx *ctx);
 uint16_t dplane_ctx_get_instance(const struct zebra_dplane_ctx *ctx);
 void dplane_ctx_set_instance(struct zebra_dplane_ctx *ctx, uint16_t instance);
 uint16_t dplane_ctx_get_old_instance(const struct zebra_dplane_ctx *ctx);
+uint32_t dplane_ctx_get_flags(const struct zebra_dplane_ctx *ctx);
+void dplane_ctx_set_flags(struct zebra_dplane_ctx *ctx, uint32_t flags);
 uint32_t dplane_ctx_get_metric(const struct zebra_dplane_ctx *ctx);
 uint32_t dplane_ctx_get_old_metric(const struct zebra_dplane_ctx *ctx);
 uint32_t dplane_ctx_get_mtu(const struct zebra_dplane_ctx *ctx);