diff options
| author | Russ White <russ@riw.us> | 2018-06-08 06:52:01 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-06-08 06:52:01 -0400 |
| commit | 71343b85d69fe6c250e155b33f1e7e9fd3786e13 (patch) | |
| tree | b4617ba6ab48c48554638603879c2953a55c0b9c /zebra/zebra_rib.c | |
| parent | 49eeb60a70d48aa399bb381129ced3f961afa451 (diff) | |
| parent | 7c5d0e1853597d398dda77494217f58a425e57df (diff) | |
Merge pull request #2292 from donaldsharp/fixup_sb_stuff
Fixup sb stuff
Diffstat (limited to 'zebra/zebra_rib.c')
| -rw-r--r-- | zebra/zebra_rib.c | 38 |
1 files changed, 28 insertions, 10 deletions
diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c index dec4ed06a9..879e7e8317 100644 --- a/zebra/zebra_rib.c +++ b/zebra/zebra_rib.c @@ -1014,7 +1014,7 @@ int zebra_rib_labeled_unicast(struct route_entry *re) void kernel_route_rib_pass_fail(struct route_node *rn, struct prefix *p, struct route_entry *re, - enum southbound_results res) + enum dp_results res) { struct nexthop *nexthop; char buf[PREFIX_STRLEN]; @@ -1023,7 +1023,7 @@ void kernel_route_rib_pass_fail(struct route_node *rn, struct prefix *p, dest = rib_dest_from_rnode(rn); switch (res) { - case SOUTHBOUND_INSTALL_SUCCESS: + case DP_INSTALL_SUCCESS: dest->selected_fib = re; for (ALL_NEXTHOPS(re->ng, nexthop)) { if (CHECK_FLAG(nexthop->flags, NEXTHOP_FLAG_RECURSIVE)) @@ -1036,7 +1036,7 @@ void kernel_route_rib_pass_fail(struct route_node *rn, struct prefix *p, } zsend_route_notify_owner(re, p, ZAPI_ROUTE_INSTALLED); break; - case SOUTHBOUND_INSTALL_FAILURE: + case DP_INSTALL_FAILURE: /* * I am not sure this is the right thing to do here * but the code always set selected_fib before @@ -1048,7 +1048,7 @@ void kernel_route_rib_pass_fail(struct route_node *rn, struct prefix *p, zlog_warn("%u:%s: Route install failed", re->vrf_id, prefix2str(p, buf, sizeof(buf))); break; - case SOUTHBOUND_DELETE_SUCCESS: + case DP_DELETE_SUCCESS: /* * The case where selected_fib is not re is * when we have received a system route @@ -1063,7 +1063,7 @@ void kernel_route_rib_pass_fail(struct route_node *rn, struct prefix *p, zsend_route_notify_owner(re, p, ZAPI_ROUTE_REMOVED); break; - case SOUTHBOUND_DELETE_FAILURE: + case DP_DELETE_FAILURE: /* * Should we set this to NULL if the * delete fails? @@ -1123,8 +1123,17 @@ void rib_install_kernel(struct route_node *rn, struct route_entry *re, * the kernel. */ hook_call(rib_update, rn, "installing in kernel"); - kernel_route_rib(rn, p, src_p, old, re); - zvrf->installs++; + switch (kernel_route_rib(rn, p, src_p, old, re)) { + case DP_REQUEST_QUEUED: + zlog_err("No current known DataPlane interfaces can return this, please fix"); + break; + case DP_REQUEST_FAILURE: + zlog_err("No current known Rib Install Failure cases, please fix"); + break; + case DP_REQUEST_SUCCESS: + zvrf->installs++; + break; + } return; } @@ -1150,9 +1159,18 @@ void rib_uninstall_kernel(struct route_node *rn, struct route_entry *re) * the kernel. */ hook_call(rib_update, rn, "uninstalling from kernel"); - kernel_route_rib(rn, p, src_p, re, NULL); - if (zvrf) - zvrf->removals++; + switch (kernel_route_rib(rn, p, src_p, re, NULL)) { + case DP_REQUEST_QUEUED: + zlog_err("No current known DataPlane interfaces can return this, please fix"); + break; + case DP_REQUEST_FAILURE: + zlog_err("No current known RIB Install Failure cases, please fix"); + break; + case DP_REQUEST_SUCCESS: + if (zvrf) + zvrf->removals++; + break; + } return; } |
