clib_error_t * vnet_main_init (vlib_main_t * vm) { vnet_main_t *vnm = vnet_get_main (); clib_error_t *error; u32 hw_if_index; vnet_hw_interface_t *hw; 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, mfib_module_init))) return error; if ((error = vlib_call_init_function (vm, ip_main_init))) return error; if ((error = vlib_call_init_function (vm, ip4_lookup_init))) return error; 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 (vnm, vnet_local_interface_device_class.index, /* instance */ 0, vnet_local_interface_hw_class.index, /* instance */ 0); hw = vnet_get_hw_interface (vnm, hw_if_index); 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; }
clib_error_t * vnet_main_init (vlib_main_t * vm) { vnet_main_t * vnm = vnet_get_main(); clib_error_t * error; u32 hw_if_index; vnet_hw_interface_t * hw; if ((error = vlib_call_init_function (vm, vnet_interface_init))) return error; vnm->vlib_main = vm; hw_if_index = vnet_register_interface (vnm, vnet_local_interface_device_class.index, /* instance */ 0, vnet_local_interface_hw_class.index, /* instance */ 0); hw = vnet_get_hw_interface (vnm, hw_if_index); vnm->local_interface_hw_if_index = hw_if_index; vnm->local_interface_sw_if_index = hw->sw_if_index; return 0; }