X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fplugins%2Fmarvell%2Fpp2%2Fpp2.c;h=36b191a178b6f3906d01d09ff0859288ec58017d;hb=859b59133;hp=b808f3c7bfb87b05f5b3575bd77f7176d4e2e6ab;hpb=b7b929931a07fbb27b43d5cd105f366c3e29807e;p=vpp.git diff --git a/src/plugins/marvell/pp2/pp2.c b/src/plugins/marvell/pp2/pp2.c index b808f3c7bfb..36b191a178b 100644 --- a/src/plugins/marvell/pp2/pp2.c +++ b/src/plugins/marvell/pp2/pp2.c @@ -157,9 +157,12 @@ mrvl_pp2_delete_if (mrvl_pp2_if_t * ppif) while (n_bufs--) { struct pp2_buff_inf binf; - if (pp2_bpool_get_buff - (ppm->per_thread_data[0].hif, inq->bpool, &binf) == 0) - vlib_buffer_free (vm, &binf.cookie, 1); + if (pp2_bpool_get_buff (ppm->per_thread_data[0].hif, inq->bpool, + &binf) == 0) + { + u32 bi = binf.cookie; + vlib_buffer_free (vm, &bi, 1); + } } pp2_bpool_deinit (inq->bpool); } @@ -176,6 +179,7 @@ mrvl_pp2_delete_if (mrvl_pp2_if_t * ppif) void mrvl_pp2_create_if (mrvl_pp2_create_if_args_t * args) { + vlib_main_t *vm = vlib_get_main (); vnet_main_t *vnm = vnet_get_main (); vlib_thread_main_t *tm = vlib_get_thread_main (); mrvl_pp2_main_t *ppm = &mrvl_pp2_main; @@ -212,8 +216,7 @@ mrvl_pp2_create_if (mrvl_pp2_create_if_args_t * args) } } - pool_get (ppm->interfaces, ppif); - clib_memset (ppif, 0, sizeof (*ppif)); + pool_get_zero (ppm->interfaces, ppif); ppif->dev_instance = ppif - ppm->interfaces; ppif->hw_if_index = ~0; vec_validate_aligned (ppif->inqs, n_inqs - 1, CLIB_CACHE_LINE_BYTES); @@ -242,7 +245,7 @@ mrvl_pp2_create_if (mrvl_pp2_create_if_args_t * args) /* FIXME bpool bit select per pp */ s = format (s, "pool-%d:%d%c", pp2_id, pp2_id + 8, 0); bpool_params.match = (char *) s; - bpool_params.buff_len = VLIB_BUFFER_DEFAULT_FREE_LIST_BYTES; + bpool_params.buff_len = vlib_buffer_get_default_data_size (vm); /* FIXME +64 ? */ if (pp2_bpool_init (&bpool_params, &ppif->inqs[0].bpool)) { @@ -260,7 +263,7 @@ mrvl_pp2_create_if (mrvl_pp2_create_if_args_t * args) ppio_params.inqs_params.tcs_params[0].pkt_offset = 0; ppio_params.inqs_params.tcs_params[0].num_in_qs = n_inqs; ppio_params.inqs_params.tcs_params[0].inqs_params = &inq_params; - ppio_params.inqs_params.tcs_params[0].pools[0] = ppif->inqs[0].bpool; + ppio_params.inqs_params.tcs_params[0].pools[0][0] = ppif->inqs[0].bpool; ppio_params.outqs_params.num_outqs = n_outqs; for (i = 0; i < n_outqs; i++) { @@ -297,6 +300,7 @@ mrvl_pp2_create_if (mrvl_pp2_create_if_args_t * args) sw = vnet_get_hw_sw_interface (vnm, ppif->hw_if_index); ppif->sw_if_index = sw->sw_if_index; ppif->per_interface_next_index = ~0; + args->sw_if_index = sw->sw_if_index; vnet_hw_interface_set_input_node (vnm, ppif->hw_if_index, mrvl_pp2_input_node.index); vnet_hw_interface_assign_rx_thread (vnm, ppif->hw_if_index, 0, ~0);