aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet
diff options
context:
space:
mode:
authorDmitry Valter <d-valter@yandex-team.ru>2022-09-05 15:30:18 +0000
committerOle Tr�an <otroan@employees.org>2022-09-09 16:03:14 +0000
commit9f5b36926b74109974e7c3ce9bb3a0a7d676c46c (patch)
tree1ccffb48c6f3de0a8c0e8208119996ade4b816dc /src/vnet
parent10672be9e21aa8392aca0e5704fc3a47ea032ba5 (diff)
vlib: don't leak node frames on refork
Free node frames in worker mains on refork. Otherwise these frames are never returned to free pool and it causes massive memory leaks if performed under traffic load Type: fix Signed-off-by: Dmitry Valter <d-valter@yandex-team.ru> Change-Id: I15cbf024a3f4b4082445fd5e5aaa10bfcf77f363
Diffstat (limited to 'src/vnet')
-rw-r--r--src/vnet/ipfix-export/flow_report.c3
-rw-r--r--src/vnet/unix/tuntap.c4
2 files changed, 3 insertions, 4 deletions
diff --git a/src/vnet/ipfix-export/flow_report.c b/src/vnet/ipfix-export/flow_report.c
index cf23ccd7815..de4c72c437f 100644
--- a/src/vnet/ipfix-export/flow_report.c
+++ b/src/vnet/ipfix-export/flow_report.c
@@ -484,8 +484,7 @@ flow_report_process_send (vlib_main_t *vm, flow_report_main_t *frm,
vlib_put_frame_to_node (vm, next_node, nf);
else
{
- vlib_node_runtime_t *rt = vlib_node_get_runtime (vm, next_node);
- vlib_frame_free (vm, rt, nf);
+ vlib_frame_free (vm, nf);
}
}
}
diff --git a/src/vnet/unix/tuntap.c b/src/vnet/unix/tuntap.c
index 1ce13e79254..b75b1f670b9 100644
--- a/src/vnet/unix/tuntap.c
+++ b/src/vnet/unix/tuntap.c
@@ -912,7 +912,7 @@ tuntap_punt_frame (vlib_main_t * vm,
vlib_node_runtime_t * node, vlib_frame_t * frame)
{
tuntap_tx (vm, node, frame);
- vlib_frame_free (vm, node, frame);
+ vlib_frame_free (vm, frame);
}
/**
@@ -930,7 +930,7 @@ tuntap_nopunt_frame (vlib_main_t * vm,
u32 *buffers = vlib_frame_vector_args (frame);
uword n_packets = frame->n_vectors;
vlib_buffer_free (vm, buffers, n_packets);
- vlib_frame_free (vm, node, frame);
+ vlib_frame_free (vm, frame);
}
/* *INDENT-OFF* */