diff options
Diffstat (limited to 'vnet/vnet/misc.c')
-rw-r--r-- | vnet/vnet/misc.c | 12 |
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; } |