Lines Matching refs:sdev
51 struct sub_device *sdev) in eth_dev_flow_isolate_set() argument
60 ret = rte_flow_isolate(PORT_ID(sdev), in eth_dev_flow_isolate_set()
73 struct sub_device *sdev) in fs_eth_dev_conf_apply() argument
83 edev = ETH(sdev); in fs_eth_dev_conf_apply()
89 ret = rte_eth_rx_queue_setup(PORT_ID(sdev), i, in fs_eth_dev_conf_apply()
102 ret = rte_eth_tx_queue_setup(PORT_ID(sdev), i, in fs_eth_dev_conf_apply()
115 ret = rte_eth_dev_set_link_up(PORT_ID(sdev)); in fs_eth_dev_conf_apply()
117 ret = rte_eth_dev_set_link_down(PORT_ID(sdev)); in fs_eth_dev_conf_apply()
129 ret = rte_eth_promiscuous_enable(PORT_ID(sdev)); in fs_eth_dev_conf_apply()
131 ret = rte_eth_promiscuous_disable(PORT_ID(sdev)); in fs_eth_dev_conf_apply()
143 ret = rte_eth_allmulticast_enable(PORT_ID(sdev)); in fs_eth_dev_conf_apply()
145 ret = rte_eth_allmulticast_disable(PORT_ID(sdev)); in fs_eth_dev_conf_apply()
156 ret = rte_eth_dev_set_mtu(PORT_ID(sdev), dev->data->mtu); in fs_eth_dev_conf_apply()
166 ret = rte_eth_dev_default_mac_addr_set(PORT_ID(sdev), in fs_eth_dev_conf_apply()
180 ret = rte_eth_dev_mac_addr_add(PORT_ID(sdev), ea, in fs_eth_dev_conf_apply()
200 ret = rte_eth_dev_set_mc_addr_list(PORT_ID(sdev), in fs_eth_dev_conf_apply()
231 PORT_ID(sdev), vlan_id, 1); in fs_eth_dev_conf_apply()
247 ret = rte_flow_flush(PORT_ID(sdev), &ferror); in fs_eth_dev_conf_apply()
257 flow->flows[SUB_ID(sdev)] = in fs_eth_dev_conf_apply()
258 rte_flow_create(PORT_ID(sdev), in fs_eth_dev_conf_apply()
276 fs_dev_remove(struct sub_device *sdev) in fs_dev_remove() argument
280 if (sdev == NULL) in fs_dev_remove()
282 switch (sdev->state) { in fs_dev_remove()
284 failsafe_rx_intr_uninstall_subdevice(sdev); in fs_dev_remove()
285 ret = rte_eth_dev_stop(PORT_ID(sdev)); in fs_dev_remove()
287 ERROR("Failed to stop sub-device %u", SUB_ID(sdev)); in fs_dev_remove()
288 sdev->state = DEV_ACTIVE; in fs_dev_remove()
291 failsafe_eth_dev_unregister_callbacks(sdev); in fs_dev_remove()
292 ret = rte_eth_dev_close(PORT_ID(sdev)); in fs_dev_remove()
295 PORT_ID(sdev)); in fs_dev_remove()
297 sdev->state = DEV_PROBED; in fs_dev_remove()
300 ret = rte_dev_remove(sdev->dev); in fs_dev_remove()
303 SUB_ID(sdev)); in fs_dev_remove()
305 rte_eth_dev_release_port(ETH(sdev)); in fs_dev_remove()
307 sdev->state = DEV_PARSED; in fs_dev_remove()
311 sdev->state = DEV_UNDEFINED; in fs_dev_remove()
312 sdev->sdev_port_id = RTE_MAX_ETHPORTS; in fs_dev_remove()
316 sdev->remove = 0; in fs_dev_remove()
317 failsafe_hotplug_alarm_install(fs_dev(sdev)); in fs_dev_remove()
321 fs_dev_stats_save(struct sub_device *sdev) in fs_dev_stats_save() argument
327 err = rte_eth_stats_get(PORT_ID(sdev), &stats); in fs_dev_stats_save()
329 uint64_t timestamp = sdev->stats_snapshot.timestamp; in fs_dev_stats_save()
332 SUB_ID(sdev)); in fs_dev_stats_save()
338 (&PRIV(fs_dev(sdev))->stats_accumulator, in fs_dev_stats_save()
339 err ? &sdev->stats_snapshot.stats : &stats); in fs_dev_stats_save()
340 memset(&sdev->stats_snapshot, 0, sizeof(sdev->stats_snapshot)); in fs_dev_stats_save()
344 fs_rxtx_clean(struct sub_device *sdev) in fs_rxtx_clean() argument
348 for (i = 0; i < ETH(sdev)->data->nb_rx_queues; i++) in fs_rxtx_clean()
349 if (FS_ATOMIC_RX(sdev, i)) in fs_rxtx_clean()
351 for (i = 0; i < ETH(sdev)->data->nb_tx_queues; i++) in fs_rxtx_clean()
352 if (FS_ATOMIC_TX(sdev, i)) in fs_rxtx_clean()
358 failsafe_eth_dev_unregister_callbacks(struct sub_device *sdev) in failsafe_eth_dev_unregister_callbacks() argument
362 if (sdev == NULL) in failsafe_eth_dev_unregister_callbacks()
364 if (sdev->rmv_callback) { in failsafe_eth_dev_unregister_callbacks()
365 ret = rte_eth_dev_callback_unregister(PORT_ID(sdev), in failsafe_eth_dev_unregister_callbacks()
368 sdev); in failsafe_eth_dev_unregister_callbacks()
371 " %d", SUB_ID(sdev)); in failsafe_eth_dev_unregister_callbacks()
372 sdev->rmv_callback = 0; in failsafe_eth_dev_unregister_callbacks()
374 if (sdev->lsc_callback) { in failsafe_eth_dev_unregister_callbacks()
375 ret = rte_eth_dev_callback_unregister(PORT_ID(sdev), in failsafe_eth_dev_unregister_callbacks()
378 sdev); in failsafe_eth_dev_unregister_callbacks()
381 " %d", SUB_ID(sdev)); in failsafe_eth_dev_unregister_callbacks()
382 sdev->lsc_callback = 0; in failsafe_eth_dev_unregister_callbacks()
389 struct sub_device *sdev; in failsafe_dev_remove() local
392 FOREACH_SUBDEV(sdev, i, dev) { in failsafe_dev_remove()
393 if (!sdev->remove) in failsafe_dev_remove()
399 if (sdev->state >= DEV_ACTIVE && in failsafe_dev_remove()
400 fs_rxtx_clean(sdev) == 0) in failsafe_dev_remove()
404 if (sdev->state >= DEV_ACTIVE) in failsafe_dev_remove()
405 fs_dev_stats_save(sdev); in failsafe_dev_remove()
406 fs_dev_remove(sdev); in failsafe_dev_remove()
496 struct sub_device *sdev; in failsafe_eth_dev_state_sync() local
516 FOREACH_SUBDEV(sdev, i, dev) { in failsafe_eth_dev_state_sync()
517 if (sdev->state == DEV_PROBED) { in failsafe_eth_dev_state_sync()
519 ret = eth_dev_flow_isolate_set(dev, sdev); in failsafe_eth_dev_state_sync()
530 FOREACH_SUBDEV(sdev, i, dev) { in failsafe_eth_dev_state_sync()
532 ret = fs_eth_dev_conf_apply(dev, sdev); in failsafe_eth_dev_state_sync()
559 FOREACH_SUBDEV(sdev, i, dev) in failsafe_eth_dev_state_sync()
560 if (sdev->state != PRIV(dev)->state) in failsafe_eth_dev_state_sync()
561 sdev->remove = 1; in failsafe_eth_dev_state_sync()
593 struct sub_device *sdev = cb_arg; in failsafe_eth_rmv_event_callback() local
595 fs_lock(fs_dev(sdev), 0); in failsafe_eth_rmv_event_callback()
597 fs_switch_dev(fs_dev(sdev), sdev); in failsafe_eth_rmv_event_callback()
599 failsafe_set_burst_fn(fs_dev(sdev), 1); in failsafe_eth_rmv_event_callback()
604 sdev->remove = 1; in failsafe_eth_rmv_event_callback()
605 fs_unlock(fs_dev(sdev), 0); in failsafe_eth_rmv_event_callback()
634 struct sub_device *sdev; in failsafe_eth_new_event_callback() local
638 FOREACH_SUBDEV_STATE(sdev, i, fs_dev, DEV_PARSED) { in failsafe_eth_new_event_callback()
639 if (sdev->state >= DEV_PROBED) in failsafe_eth_new_event_callback()
643 sdev->devargs.name); in failsafe_eth_new_event_callback()
646 if (strcmp(sdev->devargs.name, dev->device->name) != 0) in failsafe_eth_new_event_callback()