X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fethernet%2Finit.c;h=f78b65c7cc06a3deb598fc0fae213961e11c345c;hb=bdfe5955f;hp=5d10c60fd5f00a221c41984a50ca1af2e1ddabe2;hpb=a25def7807fb46bd48462be3ec5c598fc79e2a13;p=vpp.git diff --git a/src/vnet/ethernet/init.c b/src/vnet/ethernet/init.c index 5d10c60fd5f..f78b65c7cc0 100644 --- a/src/vnet/ethernet/init.c +++ b/src/vnet/ethernet/init.c @@ -83,35 +83,43 @@ static clib_error_t * ethernet_init (vlib_main_t * vm) { ethernet_main_t *em = ðernet_main; - clib_error_t *error; - - /* - * Set up the L2 path now, or we'll wipe out the L2 ARP - * registration set up by ethernet_arp_init. - */ - if ((error = vlib_call_init_function (vm, l2_init))) - return error; em->vlib_main = vm; em->type_info_by_name = hash_create_string (0, sizeof (uword)); em->type_info_by_type = hash_create (0, sizeof (uword)); + /* + * System default ethernet interface MTU, configure via ethernet_config in + * interface.c if desired. + */ + em->default_mtu = 9000; #define ethernet_type(n,s) add_type (em, ETHERNET_TYPE_##s, #s); #include "types.def" #undef ethernet_type - if ((error = vlib_call_init_function (vm, llc_init))) - return error; - if ((error = vlib_call_init_function (vm, ethernet_input_init))) - return error; - if ((error = vlib_call_init_function (vm, vnet_feature_init))) - return error; - + /* + * ethernet_input_init is effectively part of this function. + * Simply ensuring that it happens after we set up the hash tables + * is not sufficient. + */ + ethernet_input_init (vm, em); return 0; } -VLIB_INIT_FUNCTION (ethernet_init); +/* *INDENT-OFF* */ +VLIB_INIT_FUNCTION (ethernet_init) = +{ + /* + * Set up the L2 path before ethernet_init, or we'll wipe out the L2 ARP + * registration set up by ethernet_arp_init. + */ + .init_order = VLIB_INITS("l2_init", + "ethernet_init", + "llc_init", + "vnet_feature_init"), +}; +/* *INDENT-ON* */ ethernet_main_t * ethernet_get_main (vlib_main_t * vm)