MCPcopy Create free account
hub / github.com/F-Stack/f-stack / ena_start

Function ena_start

dpdk/drivers/net/ena/ena_ethdev.c:1226–1281  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1224}
1225
1226static int ena_start(struct rte_eth_dev *dev)
1227{
1228 struct ena_adapter *adapter = dev->data->dev_private;
1229 uint64_t ticks;
1230 int rc = 0;
1231 uint16_t i;
1232
1233 /* Cannot allocate memory in secondary process */
1234 if (rte_eal_process_type() != RTE_PROC_PRIMARY) {
1235 PMD_DRV_LOG(WARNING, "dev_start not supported in secondary.\n");
1236 return -EPERM;
1237 }
1238
1239 rc = ena_setup_rx_intr(dev);
1240 if (rc)
1241 return rc;
1242
1243 rc = ena_queue_start_all(dev, ENA_RING_TYPE_RX);
1244 if (rc)
1245 return rc;
1246
1247 rc = ena_queue_start_all(dev, ENA_RING_TYPE_TX);
1248 if (rc)
1249 goto err_start_tx;
1250
1251 if (adapter->edev_data->dev_conf.rxmode.mq_mode & RTE_ETH_MQ_RX_RSS_FLAG) {
1252 rc = ena_rss_configure(adapter);
1253 if (rc)
1254 goto err_rss_init;
1255 }
1256
1257 ena_stats_restart(dev);
1258
1259 adapter->timestamp_wd = rte_get_timer_cycles();
1260 adapter->keep_alive_timeout = ENA_DEVICE_KALIVE_TIMEOUT;
1261
1262 ticks = rte_get_timer_hz();
1263 rte_timer_reset(&adapter->timer_wd, ticks, PERIODICAL, rte_lcore_id(),
1264 ena_timer_wd_callback, dev);
1265
1266 ++adapter->dev_stats.dev_start;
1267 adapter->state = ENA_ADAPTER_STATE_RUNNING;
1268
1269 for (i = 0; i < dev->data->nb_rx_queues; i++)
1270 dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
1271 for (i = 0; i < dev->data->nb_tx_queues; i++)
1272 dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STARTED;
1273
1274 return 0;
1275
1276err_rss_init:
1277 ena_queue_stop_all(dev, ENA_RING_TYPE_TX);
1278err_start_tx:
1279 ena_queue_stop_all(dev, ENA_RING_TYPE_RX);
1280 return rc;
1281}
1282
1283static int ena_stop(struct rte_eth_dev *dev)

Callers

nothing calls this directly

Calls 8

rte_eal_process_typeFunction · 0.85
ena_setup_rx_intrFunction · 0.85
ena_queue_start_allFunction · 0.85
ena_rss_configureFunction · 0.85
ena_stats_restartFunction · 0.85
rte_timer_resetFunction · 0.85
rte_lcore_idFunction · 0.85
ena_queue_stop_allFunction · 0.85

Tested by

no test coverage detected