diff options
author | Donald Sharp <sharpd@cumulusnetworks.com> | 2019-02-06 00:41:12 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-06 00:41:12 +0100 |
commit | 4634d02cfd86685156b29c8084a979749efe15e2 (patch) | |
tree | 877368695bf3484d632785d040eab21ac2aa802e /zebra/zebra_pw.c | |
parent | Merge pull request #3737 from qlyoung/doc-move-topotest-to-devdocs (diff) | |
parent | zebra: add handler for pw install errors (diff) | |
download | frr-4634d02cfd86685156b29c8084a979749efe15e2.tar.xz frr-4634d02cfd86685156b29c8084a979749efe15e2.zip |
Merge pull request #3684 from mjstapp/dplane_pw
zebra: async dataplane for pseudowires
Diffstat (limited to 'zebra/zebra_pw.c')
-rw-r--r-- | zebra/zebra_pw.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/zebra/zebra_pw.c b/zebra/zebra_pw.c index 2d6ec4ec0..006c1da02 100644 --- a/zebra/zebra_pw.c +++ b/zebra/zebra_pw.c @@ -96,9 +96,10 @@ void zebra_pw_del(struct zebra_vrf *zvrf, struct zebra_pw *pw) zebra_deregister_rnh_pseudowire(pw->vrf_id, pw); /* uninstall */ - if (pw->status == PW_STATUS_UP) + if (pw->status == PW_STATUS_UP) { hook_call(pw_uninstall, pw); - else if (pw->install_retry_timer) + dplane_pw_uninstall(pw); + } else if (pw->install_retry_timer) THREAD_TIMER_OFF(pw->install_retry_timer); /* unlink and release memory */ @@ -169,7 +170,8 @@ static void zebra_pw_install(struct zebra_pw *pw) pw->vrf_id, pw->ifname, zebra_route_string(pw->protocol)); - if (hook_call(pw_install, pw)) { + hook_call(pw_install, pw); + if (dplane_pw_install(pw) == ZEBRA_DPLANE_REQUEST_FAILURE) { zebra_pw_install_failure(pw); return; } @@ -190,6 +192,7 @@ static void zebra_pw_uninstall(struct zebra_pw *pw) /* ignore any possible error */ hook_call(pw_uninstall, pw); + dplane_pw_uninstall(pw); if (zebra_pw_enabled(pw)) zebra_pw_update_status(pw, PW_STATUS_DOWN); |