diff options
Diffstat (limited to 'isisd/isis_vty_fabricd.c')
| -rw-r--r-- | isisd/isis_vty_fabricd.c | 12 | 
1 files changed, 8 insertions, 4 deletions
diff --git a/isisd/isis_vty_fabricd.c b/isisd/isis_vty_fabricd.c index 6055984195..7020b6efeb 100644 --- a/isisd/isis_vty_fabricd.c +++ b/isisd/isis_vty_fabricd.c @@ -229,10 +229,10 @@ DEFUN (ip_router_isis,  	area = isis_area_lookup(area_tag, VRF_DEFAULT);  	if (!area) -		area = isis_area_create(area_tag, VRF_DEFAULT_NAME); +		isis_area_create(area_tag, VRF_DEFAULT_NAME); -	if (!circuit || !circuit->area) { -		circuit = isis_circuit_create(area, ifp); +	if (!circuit) { +		circuit = isis_circuit_new(ifp, area_tag);  		if (circuit->state != C_STATE_CONF  		    && circuit->state != C_STATE_UP) { @@ -288,7 +288,7 @@ DEFUN (no_ip_router_isis,  		return CMD_ERR_NO_MATCH;  	} -	circuit = circuit_lookup_by_ifp(ifp, area->circuit_list); +	circuit = circuit_scan_by_ifp(ifp);  	if (!circuit) {  		vty_out(vty, "ISIS is not enabled on circuit %s\n", ifp->name);  		return CMD_ERR_NO_MATCH; @@ -301,6 +301,10 @@ DEFUN (no_ip_router_isis,  		ip = false;  	isis_circuit_af_set(circuit, ip, ipv6); + +	if (!ip && !ipv6) +		isis_circuit_del(circuit); +  	return CMD_SUCCESS;  }  | 
