mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-07 06:03:10 +00:00
zebra: Check for nh group support in dplane ctx
Only queue a nexthop object update if the dataplane supports nexthop objects. Otherwise, mark it as a success since we should only me sending them to the kernel if we think they are valid anywyay. Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
This commit is contained in:
parent
de3f548819
commit
3230a4dba5
@ -1593,6 +1593,11 @@ static int dplane_ctx_nexthop_init(struct zebra_dplane_ctx *ctx,
|
|||||||
structs */
|
structs */
|
||||||
zns = ((struct zebra_vrf *)vrf_info_lookup(nhe->vrf_id))->zns;
|
zns = ((struct zebra_vrf *)vrf_info_lookup(nhe->vrf_id))->zns;
|
||||||
|
|
||||||
|
if (!zns->supports_nh) {
|
||||||
|
ret = EOPNOTSUPP;
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: Might not need to mark this as an update, since
|
// TODO: Might not need to mark this as an update, since
|
||||||
// it probably won't require two messages
|
// it probably won't require two messages
|
||||||
dplane_ctx_ns_init(ctx, zns, (op == DPLANE_OP_NH_UPDATE));
|
dplane_ctx_ns_init(ctx, zns, (op == DPLANE_OP_NH_UPDATE));
|
||||||
@ -1885,8 +1890,12 @@ done:
|
|||||||
if (ret == AOK)
|
if (ret == AOK)
|
||||||
result = ZEBRA_DPLANE_REQUEST_QUEUED;
|
result = ZEBRA_DPLANE_REQUEST_QUEUED;
|
||||||
else {
|
else {
|
||||||
atomic_fetch_add_explicit(&zdplane_info.dg_nexthop_errors, 1,
|
if (ret == EOPNOTSUPP)
|
||||||
memory_order_relaxed);
|
result = ZEBRA_DPLANE_REQUEST_SUCCESS;
|
||||||
|
else
|
||||||
|
atomic_fetch_add_explicit(
|
||||||
|
&zdplane_info.dg_nexthop_errors, 1,
|
||||||
|
memory_order_relaxed);
|
||||||
if (ctx)
|
if (ctx)
|
||||||
dplane_ctx_free(&ctx);
|
dplane_ctx_free(&ctx);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user