Re: [PATCH v4 1/2] librte_ether: add internal callback functions
flat view
From: Thomas Monjalon <hidden>
Date: 2016-10-05 16:10:33
2016-10-04 15:52, Bernard Iremonger:
add _rte_eth_dev_callback_process_vf function. add _rte_eth_dev_callback_process_generic function Adding a callback to the user application on VF to PF mailbox message, allows passing information to the application controlling the PF when a VF mailbox event message is received, such as VF reset.
I have some difficulties to parse this explanation. Please could you reword it and precise the direction of the message and the use case context?
quoted hunk ↗ jump to hunk
--- a/lib/librte_ether/rte_ethdev.c +++ b/lib/librte_ether/rte_ethdev.c@@ -2510,6 +2510,20 @@ void _rte_eth_dev_callback_process(struct rte_eth_dev *dev, enum rte_eth_event_type event) { + return _rte_eth_dev_callback_process_generic(dev, event, NULL); +} + +void +_rte_eth_dev_callback_process_vf(struct rte_eth_dev *dev, + enum rte_eth_event_type event, void *param) +{ + return _rte_eth_dev_callback_process_generic(dev, event, param); +}
This function is just adding a parameter, compared to the legacy _rte_eth_dev_callback_process. Why calling it process_vf? And by the way, why not just replacing the legacy function? As it is a driver interface, there is no ABI restriction.
quoted hunk ↗ jump to hunk
+ +void +_rte_eth_dev_callback_process_generic(struct rte_eth_dev *dev, + enum rte_eth_event_type event, void *param) +{
[...]
quoted hunk ↗ jump to hunk
--- a/lib/librte_ether/rte_ethdev.h +++ b/lib/librte_ether/rte_ethdev.h@@ -3026,6 +3026,7 @@ enum rte_eth_event_type { /**< queue state event (enabled/disabled) */ RTE_ETH_EVENT_INTR_RESET, /**< reset interrupt event, sent to VF on PF reset */ + RTE_ETH_EVENT_VF_MBOX, /**< PF mailbox processing callback */ RTE_ETH_EVENT_MAX /**< max value of this enum */ };
Either we choose to have a "generic" VF event well documented, or it is just a specific event with a tip on where to find the doc. Here we need at least to know how to handle the argument.
quoted hunk ↗ jump to hunk
+/** + * @internal Executes all the user application registered callbacks. Used by: + * _rte_eth_dev_callback_process and _rte_eth_dev_callback_process_vf + * It is for DPDK internal user only. User application should not call it + * directly. + * + * @param dev + * Pointer to struct rte_eth_dev. + * @param event + * Eth device interrupt event type. + * + * @param param + * parameters to pass back to user application. + * + * @return + * void + */ +void +_rte_eth_dev_callback_process_generic(struct rte_eth_dev *dev, + enum rte_eth_event_type event, void *param);
This is really an internal function and should not be exported at all.