summaryrefslogtreecommitdiff
path: root/zebra
diff options
context:
space:
mode:
authorFrancois Dumontet <francois.dumontet@6wind.com>2025-01-07 16:54:48 +0100
committerFrancois Dumontet <francois.dumontet@6wind.com>2025-02-27 16:51:05 +0100
commit8c9b007a0c7efb2e9afc2eac936ba9dd971c6707 (patch)
tree11d5048ac0976ece719f0df1a7e0c2a995f6e26c /zebra
parent77b52da131293041c5074a3f9944a1709872e2f4 (diff)
zebra: reduce memory usage by streams when redistributing routes
required stream size is evaluated as a fix part and variable one. the variable one depend on the number of nexthops. Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
Diffstat (limited to 'zebra')
-rw-r--r--zebra/zapi_msg.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/zebra/zapi_msg.c b/zebra/zapi_msg.c
index be19256c40..066859d380 100644
--- a/zebra/zapi_msg.c
+++ b/zebra/zapi_msg.c
@@ -518,8 +518,7 @@ int zsend_redistribute_route(int cmd, struct zserv *client, const struct route_n
const struct prefix *p, *src_p;
uint16_t count = 0;
afi_t afi;
- size_t stream_size =
- MAX(ZEBRA_MAX_PACKET_SIZ, sizeof(struct zapi_route));
+ size_t stream_size = 0;
srcdest_rnode_prefixes(rn, &p, &src_p);
memset(&api, 0, sizeof(api));
@@ -611,6 +610,7 @@ int zsend_redistribute_route(int cmd, struct zserv *client, const struct route_n
SET_FLAG(api.message, ZAPI_MESSAGE_MTU);
api.mtu = re->mtu;
+ stream_size = zapi_redistribute_stream_size(&api);
struct stream *s = stream_new(stream_size);
/* Encode route and send. */