mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-08 03:28:31 +00:00
ldpd: improve ldp_zebra_read_route()
Log deleted routes and simplify the code a bit. Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
This commit is contained in:
parent
a8e8b86797
commit
79f62ef746
@ -360,6 +360,7 @@ ldp_zebra_read_route(int command, struct zclient *zclient, zebra_size_t length,
|
|||||||
struct kroute kr;
|
struct kroute kr;
|
||||||
int nhnum = 0, nhlen;
|
int nhnum = 0, nhlen;
|
||||||
size_t nhmark;
|
size_t nhmark;
|
||||||
|
int add = 0;
|
||||||
|
|
||||||
memset(&kr, 0, sizeof(kr));
|
memset(&kr, 0, sizeof(kr));
|
||||||
s = zclient->ibuf;
|
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))
|
if (CHECK_FLAG(message_flags, ZAPI_MESSAGE_NEXTHOP))
|
||||||
stream_set_getp(s, nhmark);
|
stream_set_getp(s, nhmark);
|
||||||
|
|
||||||
if (nhnum == 0) {
|
if (command == ZEBRA_REDISTRIBUTE_IPV4_ADD ||
|
||||||
switch (command) {
|
command == ZEBRA_REDISTRIBUTE_IPV6_ADD)
|
||||||
case ZEBRA_REDISTRIBUTE_IPV4_ADD:
|
add = 1;
|
||||||
case ZEBRA_REDISTRIBUTE_IPV6_ADD:
|
|
||||||
return (0);
|
if (nhnum == 0)
|
||||||
case ZEBRA_REDISTRIBUTE_IPV4_DEL:
|
debug_zebra_in("route %s %s/%d (%s)", (add) ? "add" : "delete",
|
||||||
case ZEBRA_REDISTRIBUTE_IPV6_DEL:
|
log_addr(kr.af, &kr.prefix), kr.prefixlen,
|
||||||
debug_zebra_in("route delete %s/%d (%s)",
|
zebra_route_string(type));
|
||||||
log_addr(kr.af, &kr.prefix), kr.prefixlen,
|
|
||||||
zebra_route_string(type));
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
fatalx("ldp_zebra_read_route: unknown command");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* loop through all the nexthops */
|
/* loop through all the nexthops */
|
||||||
for (; nhnum > 0; nhnum--) {
|
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. */
|
stream_getc(s); /* ifindex_num, unused. */
|
||||||
kr.ifindex = stream_getl(s);
|
kr.ifindex = stream_getl(s);
|
||||||
|
|
||||||
switch (command) {
|
debug_zebra_in("route %s %s/%d nexthop %s ifindex %u (%s)",
|
||||||
case ZEBRA_REDISTRIBUTE_IPV4_ADD:
|
(add) ? "add" : "delete", log_addr(kr.af, &kr.prefix),
|
||||||
case ZEBRA_REDISTRIBUTE_IPV6_ADD:
|
kr.prefixlen, log_addr(kr.af, &kr.nexthop), kr.ifindex,
|
||||||
debug_zebra_in("route add %s/%d nexthop %s "
|
zebra_route_string(type));
|
||||||
"ifindex %u (%s)", log_addr(kr.af, &kr.prefix),
|
|
||||||
kr.prefixlen, log_addr(kr.af, &kr.nexthop),
|
if (add)
|
||||||
kr.ifindex, zebra_route_string(type));
|
|
||||||
main_imsg_compose_lde(IMSG_NETWORK_ADD, 0, &kr,
|
main_imsg_compose_lde(IMSG_NETWORK_ADD, 0, &kr,
|
||||||
sizeof(kr));
|
sizeof(kr));
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
main_imsg_compose_lde(IMSG_NETWORK_UPDATE, 0, &kr, sizeof(kr));
|
main_imsg_compose_lde(IMSG_NETWORK_UPDATE, 0, &kr, sizeof(kr));
|
||||||
|
Loading…
Reference in New Issue
Block a user