diff options
| author | Igor Ryzhov <iryzhov@nfware.com> | 2021-04-26 22:01:43 +0300 | 
|---|---|---|
| committer | Igor Ryzhov <iryzhov@nfware.com> | 2021-04-29 17:05:21 +0300 | 
| commit | f07572c3c748f5ee5a0277ad4210d76001423512 (patch) | |
| tree | 7727819e6151c9ceaaa7adcce4026bff914014a1 /isisd/isis_nb_config.c | |
| parent | b5c0a71b56b17a737462c61e32fccef7172b81a8 (diff) | |
isisd: move ldp-sync checks from cli to nb callbacks
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Diffstat (limited to 'isisd/isis_nb_config.c')
| -rw-r--r-- | isisd/isis_nb_config.c | 33 | 
1 files changed, 33 insertions, 0 deletions
diff --git a/isisd/isis_nb_config.c b/isisd/isis_nb_config.c index 58a3304629..f9028bdd9f 100644 --- a/isisd/isis_nb_config.c +++ b/isisd/isis_nb_config.c @@ -3171,9 +3171,20 @@ int lib_interface_isis_mpls_ldp_sync_modify(struct nb_cb_modify_args *args)  	struct isis_circuit *circuit;  	struct ldp_sync_info *ldp_sync_info;  	bool ldp_sync_enable; +	struct interface *ifp;  	switch (args->event) {  	case NB_EV_VALIDATE: +		ifp = nb_running_get_entry(args->dnode->parent->parent->parent, +					   NULL, false); +		if (ifp == NULL) +			return NB_ERR_VALIDATION; +		if (if_is_loopback(ifp)) { +			snprintf(args->errmsg, args->errmsg_len, +				 "LDP-Sync does not run on loopback interface"); +			return NB_ERR_VALIDATION; +		} +  		circuit = nb_running_get_entry(args->dnode, NULL, false);  		if (circuit == NULL || circuit->area == NULL)  			break; @@ -3215,9 +3226,20 @@ int lib_interface_isis_mpls_holddown_modify(struct nb_cb_modify_args *args)  	struct isis_circuit *circuit;  	struct ldp_sync_info *ldp_sync_info;  	uint16_t holddown; +	struct interface *ifp;  	switch (args->event) {  	case NB_EV_VALIDATE: +		ifp = nb_running_get_entry(args->dnode->parent->parent->parent, +					   NULL, false); +		if (ifp == NULL) +			return NB_ERR_VALIDATION; +		if (if_is_loopback(ifp)) { +			snprintf(args->errmsg, args->errmsg_len, +				 "LDP-Sync does not run on loopback interface"); +			return NB_ERR_VALIDATION; +		} +  		circuit = nb_running_get_entry(args->dnode, NULL, false);  		if (circuit == NULL || circuit->area == NULL)  			break; @@ -3248,9 +3270,20 @@ int lib_interface_isis_mpls_holddown_destroy(struct nb_cb_destroy_args *args)  {  	struct isis_circuit *circuit;  	struct ldp_sync_info *ldp_sync_info; +	struct interface *ifp;  	switch (args->event) {  	case NB_EV_VALIDATE: +		ifp = nb_running_get_entry(args->dnode->parent->parent->parent, +					   NULL, false); +		if (ifp == NULL) +			return NB_ERR_VALIDATION; +		if (if_is_loopback(ifp)) { +			snprintf(args->errmsg, args->errmsg_len, +				 "LDP-Sync does not run on loopback interface"); +			return NB_ERR_VALIDATION; +		} +  		circuit = nb_running_get_entry(args->dnode, NULL, false);  		if (circuit == NULL || circuit->area == NULL)  			break;  | 
