Separate heap for IPv4 mtries
Change-Id: I497e9f6489dd35219bcf2b51ac992467aac4c8eb
Signed-off-by: Neale Ranns <nranns@cisco.com>
diff --git a/src/vnet/ip/ip4_forward.c b/src/vnet/ip/ip4_forward.c
index d7afc84..c7cf362 100755
--- a/src/vnet/ip/ip4_forward.c
+++ b/src/vnet/ip/ip4_forward.c
@@ -1189,6 +1189,12 @@
if ((error = vlib_call_init_function (vm, vnet_feature_init)))
return error;
+ if ((error = vlib_call_init_function (vm, ip4_mtrie_module_init)))
+ return (error);
+ if ((error = vlib_call_init_function (vm, fib_module_init)))
+ return error;
+ if ((error = vlib_call_init_function (vm, mfib_module_init)))
+ return error;
for (i = 0; i < ARRAY_LEN (im->fib_masks); i++)
{
@@ -3166,6 +3172,29 @@
};
/* *INDENT-ON* */
+static clib_error_t *
+ip4_config (vlib_main_t * vm, unformat_input_t * input)
+{
+ ip4_main_t *im = &ip4_main;
+ uword heapsize = 0;
+
+ while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT)
+ {
+ if (unformat (input, "heap-size %U", unformat_memory_size, &heapsize))
+ ;
+ else
+ return clib_error_return (0,
+ "invalid heap-size parameter `%U'",
+ format_unformat_error, input);
+ }
+
+ im->mtrie_heap_size = heapsize;
+
+ return 0;
+}
+
+VLIB_EARLY_CONFIG_FUNCTION (ip4_config, "ip");
+
/*
* fd.io coding-style-patch-verification: ON
*