diff options
| author | Renato Westphal <renato@opensourcerouting.org> | 2017-04-21 19:39:11 -0300 | 
|---|---|---|
| committer | Renato Westphal <renato@opensourcerouting.org> | 2017-06-05 12:24:05 -0300 | 
| commit | 79f62ef746f4cc6e1f9c233a4f1afab86d928d46 (patch) | |
| tree | eca4d7d03ea00c86e15bb7b092f85c7393b4803a /ldpd | |
| parent | a8e8b867974cfbc37aeabe34b067f10448690bd2 (diff) | |
ldpd: improve ldp_zebra_read_route()
Log deleted routes and simplify the code a bit.
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
Diffstat (limited to 'ldpd')
| -rw-r--r-- | ldpd/ldp_zebra.c | 41 | 
1 files changed, 15 insertions, 26 deletions
diff --git a/ldpd/ldp_zebra.c b/ldpd/ldp_zebra.c index fde6e56c64..3320238a05 100644 --- a/ldpd/ldp_zebra.c +++ b/ldpd/ldp_zebra.c @@ -360,6 +360,7 @@ ldp_zebra_read_route(int command, struct zclient *zclient, zebra_size_t length,  	struct kroute		 kr;  	int			 nhnum = 0, nhlen;  	size_t			 nhmark; +	int			 add = 0;  	memset(&kr, 0, sizeof(kr));  	s = zclient->ibuf; @@ -426,21 +427,14 @@ ldp_zebra_read_route(int command, struct zclient *zclient, zebra_size_t length,  	if (CHECK_FLAG(message_flags, ZAPI_MESSAGE_NEXTHOP))  		stream_set_getp(s, nhmark); -	if (nhnum == 0) { -		switch (command) { -		case ZEBRA_REDISTRIBUTE_IPV4_ADD: -		case ZEBRA_REDISTRIBUTE_IPV6_ADD: -			return (0); -		case ZEBRA_REDISTRIBUTE_IPV4_DEL: -		case ZEBRA_REDISTRIBUTE_IPV6_DEL: -			debug_zebra_in("route delete %s/%d (%s)", -			    log_addr(kr.af, &kr.prefix), kr.prefixlen, -			    zebra_route_string(type)); -			break; -		default: -			fatalx("ldp_zebra_read_route: unknown command"); -		} -	} +	if (command == ZEBRA_REDISTRIBUTE_IPV4_ADD || +	    command == ZEBRA_REDISTRIBUTE_IPV6_ADD) +		add = 1; + +	if (nhnum == 0) +		debug_zebra_in("route %s %s/%d (%s)", (add) ? "add" : "delete", +		    log_addr(kr.af, &kr.prefix), kr.prefixlen, +		    zebra_route_string(type));  	/* loop through all the nexthops */  	for (; nhnum > 0; nhnum--) { @@ -457,19 +451,14 @@ ldp_zebra_read_route(int command, struct zclient *zclient, zebra_size_t length,  		stream_getc(s);	/* ifindex_num, unused. */  		kr.ifindex = stream_getl(s); -		switch (command) { -		case ZEBRA_REDISTRIBUTE_IPV4_ADD: -		case ZEBRA_REDISTRIBUTE_IPV6_ADD: -			debug_zebra_in("route add %s/%d nexthop %s " -			    "ifindex %u (%s)", log_addr(kr.af, &kr.prefix), -			    kr.prefixlen, log_addr(kr.af, &kr.nexthop), -			    kr.ifindex, zebra_route_string(type)); +		debug_zebra_in("route %s %s/%d nexthop %s ifindex %u (%s)", +		    (add) ? "add" : "delete", log_addr(kr.af, &kr.prefix), +		    kr.prefixlen, log_addr(kr.af, &kr.nexthop), kr.ifindex, +		    zebra_route_string(type)); + +		if (add)  			main_imsg_compose_lde(IMSG_NETWORK_ADD, 0, &kr,  			    sizeof(kr)); -			break; -		default: -			break; -		}  	}  	main_imsg_compose_lde(IMSG_NETWORK_UPDATE, 0, &kr, sizeof(kr));  | 
