summaryrefslogtreecommitdiff
path: root/zebra/zapi_msg.c
diff options
context:
space:
mode:
authorStephen Worley <sworley@cumulusnetworks.com>2020-07-22 14:02:11 -0400
committerStephen Worley <sworley@cumulusnetworks.com>2020-09-28 12:41:00 -0400
commite270f004ae4cc2d33108a0931d8c9db649ed47dd (patch)
tree03486f967572626426be67f83927f7a1e72a8d22 /zebra/zapi_msg.c
parent8155e8c592199b27d73b800f471447f27add8826 (diff)
zebra: multipath number checks with NHG proto
Get the multipath number checks working with proto-based NHG message decoding in zapi_msg.c Modify the function that checks this for routes to work without being passed a prefix as is the case with NHG creates. Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
Diffstat (limited to 'zebra/zapi_msg.c')
-rw-r--r--zebra/zapi_msg.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/zebra/zapi_msg.c b/zebra/zapi_msg.c
index 21f40ce7c2..ae38b2955f 100644
--- a/zebra/zapi_msg.c
+++ b/zebra/zapi_msg.c
@@ -1445,11 +1445,14 @@ bool zserv_nexthop_num_warn(const char *caller, const struct prefix *p,
if (nexthop_num > zrouter.multipath_num) {
char buff[PREFIX2STR_BUFFER];
- prefix2str(p, buff, sizeof(buff));
+ if (p)
+ prefix2str(p, buff, sizeof(buff));
+
flog_warn(
EC_ZEBRA_MORE_NH_THAN_MULTIPATH,
"%s: Prefix %s has %d nexthops, but we can only use the first %d",
- caller, buff, nexthop_num, zrouter.multipath_num);
+ caller, (p ? buff : "(NULL)"), nexthop_num,
+ zrouter.multipath_num);
return true;
}
@@ -1767,21 +1770,17 @@ static void zread_nhg_reader(ZAPI_HANDLER_ARGS)
size_t nhops, i;
struct zapi_nexthop zapi_nexthops[MULTIPATH_NUM];
struct nexthop_group *nhg = NULL;
- struct prefix p;
uint16_t proto;
struct nhg_hash_entry *nhe;
- memset(&p, 0, sizeof(p));
-
s = msg;
STREAM_GETW(s, proto);
STREAM_GETL(s, id);
STREAM_GETW(s, nhops);
- // TODO: Can't use this without a prefix.
- // if (zserv_nexthop_num_warn(__func__, &p, nhops))
- // return;
+ if (zserv_nexthop_num_warn(__func__, NULL, nhops))
+ return;
if (nhops <= 0) {
flog_warn(EC_ZEBRA_NEXTHOP_CREATION_FAILED,
@@ -1800,8 +1799,8 @@ static void zread_nhg_reader(ZAPI_HANDLER_ARGS)
}
}
- if (!zapi_read_nexthops(client, &p, zapi_nexthops, 0, 0, nhops, 0, &nhg,
- NULL)) {
+ if (!zapi_read_nexthops(client, NULL, zapi_nexthops, 0, 0, nhops, 0,
+ &nhg, NULL)) {
flog_warn(EC_ZEBRA_NEXTHOP_CREATION_FAILED,
"%s: Nexthop Group Creation failed",
__func__);