diff options
| author | Donald Sharp <sharpd@cumulusnetworks.com> | 2019-02-05 18:41:12 -0500 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-02-05 18:41:12 -0500 | 
| commit | 4634d02cfd86685156b29c8084a979749efe15e2 (patch) | |
| tree | 877368695bf3484d632785d040eab21ac2aa802e /zebra/zebra_pw.c | |
| parent | c0a0dbb01b7186dddfa5320d12f26efc761da3b0 (diff) | |
| parent | 9bd9717bb28195bb2f0a874993f7bc89cbc47e1b (diff) | |
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 2d6ec4ec01..006c1da02b 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);  | 
