X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Finterface.c;h=dbfe49694f53c2aaddbd1755dd3b6807b33dc670;hb=aee73648cf524f2627a8680ca26a68d6a2c8e164;hp=0ee3093f383977155b5c957c72bef3b797215a99;hpb=8f8994ad599fc556e2325a4f5f9ea33eeb3e25b4;p=vpp.git diff --git a/src/vnet/interface.c b/src/vnet/interface.c index 0ee3093f383..dbfe49694f5 100644 --- a/src/vnet/interface.c +++ b/src/vnet/interface.c @@ -305,8 +305,7 @@ vnet_hw_interface_set_flags_helper (vnet_main_t * vnm, u32 hw_if_index, (helper_flags & VNET_INTERFACE_SET_FLAGS_HELPER_IS_CREATE) != 0; mask = - (VNET_HW_INTERFACE_FLAG_LINK_UP | VNET_HW_INTERFACE_FLAG_DUPLEX_MASK | - VNET_HW_INTERFACE_FLAG_SPEED_MASK); + (VNET_HW_INTERFACE_FLAG_LINK_UP | VNET_HW_INTERFACE_FLAG_DUPLEX_MASK); flags &= mask; /* Call hardware interface add/del callbacks. */ @@ -838,7 +837,7 @@ vnet_register_interface (vnet_main_t * vnm, /* The new class may differ from the old one. * Functions have to be updated. */ node = vlib_get_node (vm, hw->output_node_index); - node->function = vnet_interface_output_node_multiarch_select (); + node->function = vnet_interface_output_node; node->format_trace = format_vnet_interface_output_trace; /* *INDENT-OFF* */ foreach_vlib_main ({ @@ -888,13 +887,14 @@ vnet_register_interface (vnet_main_t * vnm, r.flags = 0; r.name = output_node_name; - r.function = vnet_interface_output_node_multiarch_select (); + r.function = vnet_interface_output_node; r.format_trace = format_vnet_interface_output_trace; { static char *e[] = { "interface is down", "interface is deleted", + "no buffers to segment GSO", }; r.n_errors = ARRAY_LEN (e); @@ -1329,6 +1329,11 @@ vnet_interface_init (vlib_main_t * vm) } } + im->gso_interface_count = 0; + /* init per-thread data */ + vec_validate_aligned (im->per_thread_data, vlib_num_workers (), + CLIB_CACHE_LINE_BYTES); + if ((error = vlib_call_init_function (vm, vnet_interface_cli_init))) return error;