dpdk: remove "convenience" vars
It is actually longer and slower... Type: refactor Change-Id: I0f126d4cdb13ecc60a2d370409f23820d7f7eb72 Signed-off-by: Damjan Marion <damarion@cisco.com>
This commit is contained in:
@@ -265,6 +265,7 @@ set_dpdk_if_desc (vlib_main_t * vm, unformat_input_t * input,
|
||||
{
|
||||
unformat_input_t _line_input, *line_input = &_line_input;
|
||||
dpdk_main_t *dm = &dpdk_main;
|
||||
vnet_main_t *vnm = vnet_get_main ();
|
||||
vnet_hw_interface_t *hw;
|
||||
dpdk_device_t *xd;
|
||||
u32 hw_if_index = (u32) ~ 0;
|
||||
@@ -277,9 +278,8 @@ set_dpdk_if_desc (vlib_main_t * vm, unformat_input_t * input,
|
||||
|
||||
while (unformat_check_input (line_input) != UNFORMAT_END_OF_INPUT)
|
||||
{
|
||||
if (unformat
|
||||
(line_input, "%U", unformat_vnet_hw_interface, dm->vnet_main,
|
||||
&hw_if_index))
|
||||
if (unformat (line_input, "%U", unformat_vnet_hw_interface, vnm,
|
||||
&hw_if_index))
|
||||
;
|
||||
else if (unformat (line_input, "tx %d", &nb_tx_desc))
|
||||
;
|
||||
@@ -299,7 +299,7 @@ set_dpdk_if_desc (vlib_main_t * vm, unformat_input_t * input,
|
||||
goto done;
|
||||
}
|
||||
|
||||
hw = vnet_get_hw_interface (dm->vnet_main, hw_if_index);
|
||||
hw = vnet_get_hw_interface (vnm, hw_if_index);
|
||||
xd = vec_elt_at_index (dm->devices, hw->dev_instance);
|
||||
|
||||
if ((xd->flags & DPDK_DEVICE_FLAG_PMD) == 0)
|
||||
|
@@ -41,7 +41,6 @@ dpdk_device_error (dpdk_device_t * xd, char *str, int rv)
|
||||
void
|
||||
dpdk_device_setup (dpdk_device_t * xd)
|
||||
{
|
||||
dpdk_main_t *dm = &dpdk_main;
|
||||
vlib_main_t *vm = vlib_get_main ();
|
||||
vnet_main_t *vnm = vnet_get_main ();
|
||||
vlib_thread_main_t *tm = vlib_get_thread_main ();
|
||||
@@ -59,7 +58,7 @@ dpdk_device_setup (dpdk_device_t * xd)
|
||||
|
||||
if (xd->flags & DPDK_DEVICE_FLAG_ADMIN_UP)
|
||||
{
|
||||
vnet_hw_interface_set_flags (dm->vnet_main, xd->hw_if_index, 0);
|
||||
vnet_hw_interface_set_flags (vnm, xd->hw_if_index, 0);
|
||||
dpdk_device_stop (xd);
|
||||
}
|
||||
|
||||
|
@@ -158,7 +158,6 @@ static_always_inline
|
||||
dpdk_device_t * xd,
|
||||
struct rte_mbuf **mb, u32 n_left)
|
||||
{
|
||||
dpdk_main_t *dm = &dpdk_main;
|
||||
dpdk_tx_queue_t *txq;
|
||||
u32 n_retry;
|
||||
int n_sent = 0;
|
||||
@@ -189,7 +188,7 @@ static_always_inline
|
||||
if (PREDICT_FALSE (n_sent < 0))
|
||||
{
|
||||
// emit non-fatal message, bump counter
|
||||
vnet_main_t *vnm = dm->vnet_main;
|
||||
vnet_main_t *vnm = vnet_get_main ();
|
||||
vnet_interface_main_t *im = &vnm->interface_main;
|
||||
u32 node_index;
|
||||
|
||||
@@ -495,7 +494,7 @@ dpdk_interface_admin_up_down (vnet_main_t * vnm, u32 hw_if_index, u32 flags)
|
||||
if (vec_len (xd->errors))
|
||||
return clib_error_create ("Interface start failed");
|
||||
xd->flags |= DPDK_DEVICE_FLAG_ADMIN_UP;
|
||||
f64 now = vlib_time_now (dm->vlib_main);
|
||||
f64 now = vlib_time_now (vlib_get_main ());
|
||||
dpdk_update_counters (xd, now);
|
||||
dpdk_update_link_state (xd, now);
|
||||
}
|
||||
@@ -531,7 +530,7 @@ dpdk_set_interface_next_node (vnet_main_t * vnm, u32 hw_if_index,
|
||||
}
|
||||
|
||||
xd->per_interface_next_index =
|
||||
vlib_node_add_next (xm->vlib_main, dpdk_input_node.index, node_index);
|
||||
vlib_node_add_next (vlib_get_main (), dpdk_input_node.index, node_index);
|
||||
}
|
||||
|
||||
|
||||
|
@@ -352,9 +352,6 @@ typedef struct
|
||||
f64 link_state_poll_interval;
|
||||
f64 stat_poll_interval;
|
||||
|
||||
/* convenience */
|
||||
vlib_main_t *vlib_main;
|
||||
vnet_main_t *vnet_main;
|
||||
dpdk_config_main_t *conf;
|
||||
|
||||
/* API message ID base */
|
||||
|
@@ -555,6 +555,7 @@ int
|
||||
dpdk_flow_ops_fn (vnet_main_t * vnm, vnet_flow_dev_op_t op, u32 dev_instance,
|
||||
u32 flow_index, uword * private_data)
|
||||
{
|
||||
vlib_main_t *vm = vlib_get_main ();
|
||||
dpdk_main_t *dm = &dpdk_main;
|
||||
vnet_flow_t *flow = vnet_get_flow (flow_index);
|
||||
dpdk_device_t *xd = vec_elt_at_index (dm->devices, dev_instance);
|
||||
@@ -565,7 +566,7 @@ dpdk_flow_ops_fn (vnet_main_t * vnm, vnet_flow_dev_op_t op, u32 dev_instance,
|
||||
/* recycle old flow lookup entries only after the main loop counter
|
||||
increases - i.e. previously DMA'ed packets were handled */
|
||||
if (vec_len (xd->parked_lookup_indexes) > 0 &&
|
||||
xd->parked_loop_count != dm->vlib_main->main_loop_count)
|
||||
xd->parked_loop_count != vm->main_loop_count)
|
||||
{
|
||||
u32 *fl_index;
|
||||
|
||||
@@ -588,7 +589,7 @@ dpdk_flow_ops_fn (vnet_main_t * vnm, vnet_flow_dev_op_t op, u32 dev_instance,
|
||||
fle = pool_elt_at_index (xd->flow_lookup_entries, fe->mark);
|
||||
clib_memset (fle, -1, sizeof (*fle));
|
||||
vec_add1 (xd->parked_lookup_indexes, fe->mark);
|
||||
xd->parked_loop_count = dm->vlib_main->main_loop_count;
|
||||
xd->parked_loop_count = vm->main_loop_count;
|
||||
}
|
||||
|
||||
clib_memset (fe, 0, sizeof (*fe));
|
||||
|
@@ -555,9 +555,10 @@ format_dpdk_device (u8 * s, va_list * args)
|
||||
u32 dev_instance = va_arg (*args, u32);
|
||||
int verbose = va_arg (*args, int);
|
||||
dpdk_main_t *dm = &dpdk_main;
|
||||
vlib_main_t *vm = vlib_get_main ();
|
||||
dpdk_device_t *xd = vec_elt_at_index (dm->devices, dev_instance);
|
||||
u32 indent = format_get_indent (s);
|
||||
f64 now = vlib_time_now (dm->vlib_main);
|
||||
f64 now = vlib_time_now (vm);
|
||||
struct rte_eth_dev_info di;
|
||||
struct rte_eth_burst_mode mode;
|
||||
|
||||
|
@@ -204,6 +204,7 @@ dpdk_enable_l4_csum_offload (dpdk_device_t * xd)
|
||||
static clib_error_t *
|
||||
dpdk_lib_init (dpdk_main_t * dm)
|
||||
{
|
||||
vnet_main_t *vnm = vnet_get_main ();
|
||||
u32 nports;
|
||||
u32 mtu, max_rx_frame;
|
||||
int i;
|
||||
@@ -714,10 +715,9 @@ dpdk_lib_init (dpdk_main_t * dm)
|
||||
/* assign interface to input thread */
|
||||
int q;
|
||||
|
||||
error = ethernet_register_interface
|
||||
(dm->vnet_main, dpdk_device_class.index, xd->device_index,
|
||||
/* ethernet address */ addr,
|
||||
&xd->hw_if_index, dpdk_flag_change);
|
||||
error = ethernet_register_interface (
|
||||
vnm, dpdk_device_class.index, xd->device_index,
|
||||
/* ethernet address */ addr, &xd->hw_if_index, dpdk_flag_change);
|
||||
if (error)
|
||||
return error;
|
||||
|
||||
@@ -796,34 +796,33 @@ dpdk_lib_init (dpdk_main_t * dm)
|
||||
/*Set port rxmode config */
|
||||
xd->port_conf.rxmode.max_rx_pkt_len = max_rx_frame;
|
||||
|
||||
sw = vnet_get_hw_sw_interface (dm->vnet_main, xd->hw_if_index);
|
||||
sw = vnet_get_hw_sw_interface (vnm, xd->hw_if_index);
|
||||
xd->sw_if_index = sw->sw_if_index;
|
||||
vnet_hw_if_set_input_node (dm->vnet_main, xd->hw_if_index,
|
||||
dpdk_input_node.index);
|
||||
vnet_hw_if_set_input_node (vnm, xd->hw_if_index, dpdk_input_node.index);
|
||||
|
||||
if (devconf->workers)
|
||||
{
|
||||
int i;
|
||||
int j;
|
||||
q = 0;
|
||||
clib_bitmap_foreach (i, devconf->workers) {
|
||||
clib_bitmap_foreach (j, devconf->workers)
|
||||
{
|
||||
dpdk_rx_queue_t *rxq = vec_elt_at_index (xd->rx_queues, q);
|
||||
rxq->queue_index = vnet_hw_if_register_rx_queue (
|
||||
dm->vnet_main, xd->hw_if_index, q++,
|
||||
vdm->first_worker_thread_index + i);
|
||||
}
|
||||
vnm, xd->hw_if_index, q++, vdm->first_worker_thread_index + j);
|
||||
}
|
||||
}
|
||||
else
|
||||
for (q = 0; q < xd->rx_q_used; q++)
|
||||
{
|
||||
dpdk_rx_queue_t *rxq = vec_elt_at_index (xd->rx_queues, q);
|
||||
rxq->queue_index = vnet_hw_if_register_rx_queue (
|
||||
dm->vnet_main, xd->hw_if_index, q, VNET_HW_IF_RXQ_THREAD_ANY);
|
||||
vnm, xd->hw_if_index, q, VNET_HW_IF_RXQ_THREAD_ANY);
|
||||
}
|
||||
|
||||
vnet_hw_if_update_runtime_data (dm->vnet_main, xd->hw_if_index);
|
||||
vnet_hw_if_update_runtime_data (vnm, xd->hw_if_index);
|
||||
|
||||
/*Get vnet hardware interface */
|
||||
hi = vnet_get_hw_interface (dm->vnet_main, xd->hw_if_index);
|
||||
hi = vnet_get_hw_interface (vnm, xd->hw_if_index);
|
||||
|
||||
/*Override default max_packet_bytes and max_supported_bytes set in
|
||||
* ethernet_register_interface() above*/
|
||||
@@ -836,8 +835,8 @@ dpdk_lib_init (dpdk_main_t * dm)
|
||||
/* Indicate ability to support L3 DMAC filtering and
|
||||
* initialize interface to L3 non-promisc mode */
|
||||
hi->caps |= VNET_HW_INTERFACE_CAP_SUPPORTS_MAC_FILTER;
|
||||
ethernet_set_flags (dm->vnet_main, xd->hw_if_index,
|
||||
ETHERNET_INTERFACE_FLAG_DEFAULT_L3);
|
||||
ethernet_set_flags (vnm, xd->hw_if_index,
|
||||
ETHERNET_INTERFACE_FLAG_DEFAULT_L3);
|
||||
}
|
||||
|
||||
if (dm->conf->no_tx_checksum_offload == 0)
|
||||
@@ -1938,8 +1937,6 @@ dpdk_init (vlib_main_t * vm)
|
||||
|
||||
dpdk_cli_reference ();
|
||||
|
||||
dm->vlib_main = vm;
|
||||
dm->vnet_main = vnet_get_main ();
|
||||
dm->conf = &dpdk_config_main;
|
||||
|
||||
vec_add1 (dm->conf->eal_init_args, (u8 *) "vnet");
|
||||
|
@@ -79,12 +79,8 @@ rte_delay_us_override_cb (unsigned us)
|
||||
|
||||
static clib_error_t * dpdk_main_init (vlib_main_t * vm)
|
||||
{
|
||||
dpdk_main_t * dm = &dpdk_main;
|
||||
clib_error_t * error = 0;
|
||||
|
||||
dm->vlib_main = vm;
|
||||
dm->vnet_main = vnet_get_main ();
|
||||
|
||||
/* register custom delay function */
|
||||
rte_delay_us_callback_register (rte_delay_us_override_cb);
|
||||
|
||||
|
Reference in New Issue
Block a user