All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bernard Iremonger <bernard.iremonger@intel.com>
To: dev@dpdk.org, rahul.r.shah@intel.com, wenzhuo.lu@intel.com,
	az5157@att.com, jerin.jacob@caviumnetworks.com
Cc: Bernard Iremonger <bernard.iremonger@intel.com>
Subject: [PATCH v4 1/2] librte_ether: add internal callback functions
Date: Tue,  4 Oct 2016 15:52:13 +0100	[thread overview]
Message-ID: <1475592734-22355-2-git-send-email-bernard.iremonger@intel.com> (raw)
In-Reply-To: <1475250308-5498-1-git-send-email-bernard.iremonger@intel.com>

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.

Signed-off-by: Alex Zelezniak <az5157@att.com>
Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com>
---
 lib/librte_ether/rte_ethdev.c          | 17 +++++++++++++
 lib/librte_ether/rte_ethdev.h          | 44 ++++++++++++++++++++++++++++++++++
 lib/librte_ether/rte_ether_version.map |  2 ++
 3 files changed, 63 insertions(+)

diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c
index c517e88..e850d88 100644
--- 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);
+}
+
+void
+_rte_eth_dev_callback_process_generic(struct rte_eth_dev *dev,
+	enum rte_eth_event_type event, void *param)
+{
 	struct rte_eth_dev_callback *cb_lst;
 	struct rte_eth_dev_callback dev_cb;
 
@@ -2519,6 +2533,9 @@ _rte_eth_dev_callback_process(struct rte_eth_dev *dev,
 			continue;
 		dev_cb = *cb_lst;
 		cb_lst->active = 1;
+		if (param != NULL)
+			dev_cb.cb_arg = (void *) param;
+
 		rte_spinlock_unlock(&rte_eth_dev_cb_lock);
 		dev_cb.cb_fn(dev->data->port_id, dev_cb.event,
 						dev_cb.cb_arg);
diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h
index 7218b6f..b418c5e 100644
--- 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 */
 };
 
@@ -3093,6 +3094,49 @@ void _rte_eth_dev_callback_process(struct rte_eth_dev *dev,
 				enum rte_eth_event_type event);
 
 /**
+ * @internal Executes all the user application registered callbacks for
+ * the specific device where parameter have to be passed to user application.
+ * 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_vf(struct rte_eth_dev *dev,
+				enum rte_eth_event_type event, void *param);
+
+/**
+ * @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);
+
+/**
  * When there is no rx packet coming in Rx Queue for a long time, we can
  * sleep lcore related to RX Queue for power saving, and enable rx interrupt
  * to be triggered when rx packect arrives.
diff --git a/lib/librte_ether/rte_ether_version.map b/lib/librte_ether/rte_ether_version.map
index 72be66d..6f97a8f 100644
--- a/lib/librte_ether/rte_ether_version.map
+++ b/lib/librte_ether/rte_ether_version.map
@@ -143,6 +143,8 @@ DPDK_16.07 {
 DPDK_16.11 {
 	global:
 
+	_rte_eth_dev_callback_process_generic;
+	_rte_eth_dev_callback_process_vf;
 	rte_eth_dev_pci_probe;
 	rte_eth_dev_pci_remove;
 
-- 
2.9.0

  parent reply	other threads:[~2016-10-04 14:52 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-30 15:45 [PATCH v3 0/2] add callbacks for VF management Bernard Iremonger
2016-09-30 15:45 ` [PATCH v3 1/2] librte_ether: add internal callback functions Bernard Iremonger
2016-10-02  9:12   ` Stephen Hemminger
2016-10-03 15:29     ` Iremonger, Bernard
2016-09-30 15:45 ` [PATCH v3 2/2] net/ixgbe: add callback to user app on VF to PF mbox msg Bernard Iremonger
2016-10-04 14:52 ` [PATCH v4 0/2] add callbacks for VF management Bernard Iremonger
2016-10-06 11:26   ` [PATCH v5 00/13] modify callback " Bernard Iremonger
2016-10-06 16:48     ` [PATCH v6 0/2] " Bernard Iremonger
2016-10-07 16:46       ` [PATCH v7 " Bernard Iremonger
2016-10-07 22:52         ` Thomas Monjalon
2016-10-10 14:34         ` [PATCH v8 " Bernard Iremonger
2016-10-14  0:07           ` Thomas Monjalon
2016-10-10 14:34         ` [PATCH v8 1/2] librte_ether: modify internal callback function Bernard Iremonger
2016-10-10 14:34         ` [PATCH v8 2/2] net/ixgbe: add callback to user app on VF to PF mbox msg Bernard Iremonger
2016-10-12 15:03         ` [PATCH v8 0/2] add API's for VF management Bernard Iremonger
2016-10-12 17:54           ` [PATCH v9 " Bernard Iremonger
2016-10-13 13:47             ` Bruce Richardson
2016-10-12 17:54           ` [PATCH v9 1/2] net/ixgbe: " Bernard Iremonger
2016-10-12 17:54           ` [PATCH v9 2/2] app/test_pmd: add tests for new API's Bernard Iremonger
2016-10-12 15:03         ` [PATCH v8 1/2] net/ixgbe: add API's for VF management Bernard Iremonger
2016-10-12 15:03         ` [PATCH v8 2/2] app/test_pmd: add tests for new API's Bernard Iremonger
2016-10-12 15:11           ` Thomas Monjalon
2016-10-12 15:27             ` Iremonger, Bernard
2016-10-12 15:36               ` Thomas Monjalon
2016-10-12 15:48                 ` Iremonger, Bernard
2016-10-12 16:06                   ` Thomas Monjalon
2016-10-12 16:21                     ` Iremonger, Bernard
2016-10-12 16:31                       ` Thomas Monjalon
2016-10-12 16:50                         ` Iremonger, Bernard
2016-10-12 17:20                           ` Iremonger, Bernard
2016-10-07 16:46       ` [PATCH v7 1/2] librte_ether: modify internal callback function Bernard Iremonger
2016-10-07 16:46       ` [PATCH v7 2/2] net/ixgbe: add callback to user app on VF to PF mbox msg Bernard Iremonger
2016-10-07 22:44         ` Thomas Monjalon
2016-10-10 14:31           ` Iremonger, Bernard
2016-10-06 16:48     ` [PATCH v6 1/2] librte_ether: modify internal callback function Bernard Iremonger
2016-10-07 12:29       ` Thomas Monjalon
2016-10-07 16:57         ` Iremonger, Bernard
2016-10-06 16:48     ` [PATCH v6 2/2] net/ixgbe: add callback to user app on VF to PF mbox msg Bernard Iremonger
2016-10-07 12:14       ` Thomas Monjalon
2016-10-07 12:19         ` Iremonger, Bernard
2016-10-06 11:26   ` [PATCH v5 01/13] librte_ether: modify internal callback function Bernard Iremonger
2016-10-06 12:56     ` Thomas Monjalon
2016-10-06 14:33       ` Iremonger, Bernard
2016-10-06 14:56         ` Thomas Monjalon
2016-10-06 15:32           ` Iremonger, Bernard
2016-10-06 15:41             ` Thomas Monjalon
2016-10-06 15:45               ` Iremonger, Bernard
2016-10-06 11:26   ` [PATCH v5 02/13] net/ixgbe: add callback to user app on VF to PF mbox msg Bernard Iremonger
2016-10-06 11:26   ` [PATCH v5 03/13] app/test: add parameter to callback process function Bernard Iremonger
2016-10-06 11:26   ` [PATCH v5 04/13] net/bonding: " Bernard Iremonger
2016-10-06 11:26   ` [PATCH v5 05/13] net/e1000: " Bernard Iremonger
2016-10-06 11:26   ` [PATCH v5 06/13] net/i40e: update call " Bernard Iremonger
2016-10-06 11:26   ` [PATCH v5 07/13] net/mlx4: add parameter " Bernard Iremonger
2016-10-06 11:26   ` [PATCH v5 08/13] net/mlx5: " Bernard Iremonger
2016-10-06 11:26   ` [PATCH v5 09/13] net/nfp: " Bernard Iremonger
2016-10-06 11:26   ` [PATCH v5 10/13] net/thunderx: " Bernard Iremonger
2016-10-06 11:26   ` [PATCH v5 11/13] net/vhost: " Bernard Iremonger
2016-10-06 11:26   ` [PATCH v5 12/13] net/virtio: " Bernard Iremonger
2016-10-06 11:26   ` [PATCH v5 13/13] net/enic: " Bernard Iremonger
2016-10-04 14:52 ` Bernard Iremonger [this message]
2016-10-05 16:10   ` [PATCH v4 1/2] librte_ether: add internal callback functions Thomas Monjalon
2016-10-05 17:04     ` Iremonger, Bernard
2016-10-05 17:19       ` Thomas Monjalon
2016-10-04 14:52 ` [PATCH v4 2/2] net/ixgbe: add callback to user app on VF to PF mbox msg Bernard Iremonger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1475592734-22355-2-git-send-email-bernard.iremonger@intel.com \
    --to=bernard.iremonger@intel.com \
    --cc=az5157@att.com \
    --cc=dev@dpdk.org \
    --cc=jerin.jacob@caviumnetworks.com \
    --cc=rahul.r.shah@intel.com \
    --cc=wenzhuo.lu@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.