X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Fplugins%2Favf%2Finput.c;h=8d1ded885057eb3764a03510e25439c3dd9d4f2c;hb=03ce46219cd0fabfd4918822c5b9fed9ef880de8;hp=32fa593dde668a127c5677110cbc4fec7385b9f6;hpb=94519aaed6c1801d1410689c4c6d7823ad7d6357;p=vpp.git diff --git a/src/plugins/avf/input.c b/src/plugins/avf/input.c index 32fa593dde6..8d1ded88505 100644 --- a/src/plugins/avf/input.c +++ b/src/plugins/avf/input.c @@ -263,6 +263,10 @@ avf_device_input_inline (vlib_main_t * vm, vlib_node_runtime_t * node, if (PREDICT_FALSE (ad->per_interface_next_index != ~0)) next_index = ad->per_interface_next_index; + + if (PREDICT_FALSE (vnet_device_input_have_features (ad->sw_if_index))) + vnet_feature_start_device_input_x1 (ad->sw_if_index, &next_index, bt); + vlib_get_new_next_frame (vm, node, next_index, to_next, n_left_to_next); /* fetch up to AVF_RX_VECTOR_SZ from the rx ring, unflatten them and @@ -392,6 +396,7 @@ no_more_desc: vlib_trace_buffer (vm, node, next_index, b, /* follow_chain */ 0); tr = vlib_add_trace (vm, node, b, sizeof (*tr)); tr->next_index = next_index; + tr->qid = qid; tr->hw_if_index = ad->hw_if_index; tr->qw1s[0] = ptd->qw1s[i]; for (j = 1; j < AVF_RX_MAX_DESC_IN_CHAIN; j++) @@ -412,7 +417,7 @@ no_more_desc: vlib_frame_t *f; ethernet_input_frame_t *ef; nf = vlib_node_runtime_get_next_frame (vm, node, next_index); - f = vlib_get_frame (vm, nf->frame_index); + f = vlib_get_frame (vm, nf->frame); f->flags = ETH_INPUT_FRAME_F_SINGLE_SW_IF_IDX; ef = vlib_frame_scalar_args (f); @@ -421,6 +426,7 @@ no_more_desc: if ((or_qw1 & AVF_RXD_ERROR_IPE) == 0) f->flags |= ETH_INPUT_FRAME_F_IP4_CKSUM_OK; + vlib_frame_no_append (f); } n_left_to_next -= n_rx_packets; @@ -462,6 +468,7 @@ VLIB_REGISTER_NODE (avf_input_node) = { .state = VLIB_NODE_STATE_DISABLED, .n_errors = AVF_INPUT_N_ERROR, .error_strings = avf_input_error_strings, + .flags = VLIB_NODE_FLAG_TRACE_SUPPORTED, }; /* *INDENT-ON* */