tcp: make syn-rcvd timeout configurable
[vpp.git] / src / vnet / ethernet / init.c
index 5d10c60..3921e1e 100644 (file)
@@ -62,7 +62,6 @@ add_type (ethernet_main_t * em, ethernet_type_t type, char *type_name)
 }
 
 /* Built-in ip4 tx feature path definition */
-/* *INDENT-OFF* */
 VNET_FEATURE_ARC_INIT (ethernet_output, static) =
 {
   .arc_name  = "ethernet-output",
@@ -77,41 +76,46 @@ VNET_FEATURE_INIT (ethernet_tx_drop, static) =
   .node_name = "error-drop",
   .runs_before = 0,    /* not before any other features */
 };
-/* *INDENT-ON* */
 
 static clib_error_t *
 ethernet_init (vlib_main_t * vm)
 {
   ethernet_main_t *em = &ethernet_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);
+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"),
+};
 
 ethernet_main_t *
 ethernet_get_main (vlib_main_t * vm)