aboutsummaryrefslogtreecommitdiffstats
path: root/vnet/vnet/misc.c
diff options
context:
space:
mode:
Diffstat (limited to 'vnet/vnet/misc.c')
-rw-r--r--vnet/vnet/misc.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/vnet/vnet/misc.c b/vnet/vnet/misc.c
index c0729f73..4c8c4cad 100644
--- a/vnet/vnet/misc.c
+++ b/vnet/vnet/misc.c
@@ -38,6 +38,7 @@
*/
#include <vnet/vnet.h>
+#include <vnet/ip/ip.h>
vnet_main_t vnet_main;
@@ -79,6 +80,9 @@ vnet_main_init (vlib_main_t * vm)
if ((error = vlib_call_init_function (vm, vnet_interface_init)))
return error;
+ if ((error = vlib_call_init_function (vm, fib_module_init)))
+ return error;
+
if ((error = vlib_call_init_function (vm, ip_main_init)))
return error;
@@ -88,6 +92,9 @@ vnet_main_init (vlib_main_t * vm)
if ((error = vlib_call_init_function (vm, ip6_lookup_init)))
return error;
+ if ((error = vlib_call_init_function (vm, mpls_init)))
+ return error;
+
vnm->vlib_main = vm;
hw_if_index = vnet_register_interface
@@ -98,6 +105,11 @@ vnet_main_init (vlib_main_t * vm)
vnm->local_interface_hw_if_index = hw_if_index;
vnm->local_interface_sw_if_index = hw->sw_if_index;
+ /* the local interface is used as an input interface when decapping from
+ * an IPSEC tunnel. so it needs to be IP enabled */
+ ip4_sw_interface_enable_disable (hw->sw_if_index, 1);
+ ip6_sw_interface_enable_disable (hw->sw_if_index, 1);
+
return 0;
}