diff options
| author | Igor Ryzhov <iryzhov@nfware.com> | 2021-11-02 15:22:23 +0300 | 
|---|---|---|
| committer | Igor Ryzhov <iryzhov@nfware.com> | 2021-11-11 14:56:34 +0300 | 
| commit | 88ae09633123abe39c946d82ff57757cfd1bca8a (patch) | |
| tree | 1d63e103429595eff8be7634e38b1c98ffcc2fc8 /isisd/isis_circuit.c | |
| parent | 0ac8055ca1a9662d6e8197dff9a91759331991e7 (diff) | |
fabricd: cleanup interface config output
We don't need to scan through all configured areas to find the circuit
associated with the interface. It is always stored in ifp->info.
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
Diffstat (limited to 'isisd/isis_circuit.c')
| -rw-r--r-- | isisd/isis_circuit.c | 39 | 
1 files changed, 6 insertions, 33 deletions
diff --git a/isisd/isis_circuit.c b/isisd/isis_circuit.c index 8810d6107d..d0e8637c52 100644 --- a/isisd/isis_circuit.c +++ b/isisd/isis_circuit.c @@ -268,24 +268,6 @@ void isis_circuit_deconfigure(struct isis_circuit *circuit,  	return;  } -struct isis_circuit *circuit_lookup_by_ifp(struct interface *ifp, -					   struct list *list) -{ -	struct isis_circuit *circuit = NULL; -	struct listnode *node; - -	if (!list) -		return NULL; - -	for (ALL_LIST_ELEMENTS_RO(list, node, circuit)) -		if (circuit->interface == ifp) { -			assert(ifp->info == circuit); -			return circuit; -		} - -	return NULL; -} -  struct isis_circuit *circuit_scan_by_ifp(struct interface *ifp)  {  	return (struct isis_circuit *)ifp->info; @@ -1073,17 +1055,9 @@ static int isis_interface_config_write(struct vty *vty)  {  	struct vrf *vrf = vrf_lookup_by_id(VRF_DEFAULT);  	int write = 0; -	struct listnode *node;  	struct interface *ifp; -	struct isis_area *area;  	struct isis_circuit *circuit;  	int i; -	struct isis *isis = NULL; - -	isis = isis_lookup_by_vrfid(vrf->vrf_id); - -	if (isis == NULL) -		return 0;  	FOR_ALL_INTERFACES (vrf, ifp) {  		/* IF name */ @@ -1095,14 +1069,13 @@ static int isis_interface_config_write(struct vty *vty)  			write++;  		}  		/* ISIS Circuit */ -		for (ALL_LIST_ELEMENTS_RO(isis->area_list, node, area)) { -			circuit = -				circuit_lookup_by_ifp(ifp, area->circuit_list); +		do { +			circuit = circuit_scan_by_ifp(ifp);  			if (circuit == NULL) -				continue; +				break;  			if (circuit->ip_router) {  				vty_out(vty, " ip router " PROTO_NAME " %s\n", -					area->area_tag); +					circuit->tag);  				write++;  			}  			if (circuit->is_passive) { @@ -1115,7 +1088,7 @@ static int isis_interface_config_write(struct vty *vty)  			}  			if (circuit->ipv6_router) {  				vty_out(vty, " ipv6 router " PROTO_NAME " %s\n", -					area->area_tag); +					circuit->tag);  				write++;  			} @@ -1295,7 +1268,7 @@ static int isis_interface_config_write(struct vty *vty)  			}  			write += hook_call(isis_circuit_config_write,  					   circuit, vty); -		} +		} while (0);  		vty_endframe(vty, "exit\n!\n");  	}  | 
