All of lore.kernel.org
 help / color / mirror / Atom feed
From: alexz@att.com
To: dev@dpdk.org
Cc: konstantin.ananyev@intel.com, helin.zhang@intel.com,
	wenzhuo.lu@intel.com, Alex Zelezniak <alexz@att.com>
Subject: [PATCH] net/ixgbe: notify VF when PF link status changes
Date: Wed, 22 Mar 2017 12:32:17 -0500	[thread overview]
Message-ID: <1490203937-12434-1-git-send-email-alexz@att.com> (raw)

From: Alex Zelezniak <alexz@att.com>

Signed-off-by: Alex Zelezniak <alexz@att.com>
---
 drivers/net/ixgbe/ixgbe_ethdev.c  | 33 +++++++++++++++++++++++++++++++++
 drivers/net/ixgbe/rte_pmd_ixgbe.h | 14 ++++++++++++++
 2 files changed, 47 insertions(+)

diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 7169007..a0e7aeb 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -4894,6 +4894,39 @@ static void ixgbevf_set_vfta_all(struct rte_eth_dev *dev, bool on)
 	return new_val;
 }
 
+int
+rte_pmd_ixgbe_ping_vfs(uint8_t port, uint16_t vf)
+{
+	struct ixgbe_hw *hw;
+	struct ixgbe_vf_info *vfinfo;
+	struct rte_eth_dev *dev;
+	struct rte_pci_device *pci_dev;
+	uint32_t ctrl;
+
+	RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
+
+	dev = &rte_eth_devices[port];
+	pci_dev = IXGBE_DEV_TO_PCI(dev);
+
+	if (!is_device_supported(dev, &rte_ixgbe_pmd))
+		return -ENOTSUP;
+
+	if (vf >= pci_dev->max_vfs)
+		return -EINVAL;
+
+	hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
+	vfinfo = *(IXGBE_DEV_PRIVATE_TO_P_VFDATA(dev->data->dev_private));
+
+	hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
+
+	ctrl = IXGBE_PF_CONTROL_MSG;
+	if (vfinfo[vf].clear_to_send)
+		ctrl |= IXGBE_VT_MSGTYPE_CTS;
+
+	ixgbe_write_mbx(hw, &ctrl, 1, vf);
+
+	return 0;
+}
 
 int
 rte_pmd_ixgbe_set_vf_vlan_anti_spoof(uint8_t port, uint16_t vf, uint8_t on)
diff --git a/drivers/net/ixgbe/rte_pmd_ixgbe.h b/drivers/net/ixgbe/rte_pmd_ixgbe.h
index 4d7b507..7f27992 100644
--- a/drivers/net/ixgbe/rte_pmd_ixgbe.h
+++ b/drivers/net/ixgbe/rte_pmd_ixgbe.h
@@ -42,6 +42,20 @@
 #include <rte_ethdev.h>
 
 /**
+ * Notify VF when PF link status changes.
+ *
+ * @param port
+ *   The port identifier of the Ethernet device.
+ * @param vf
+ *   VF id.
+ * @return
+ *   - (0) if successful.
+ *   - (-ENODEV) if *port* invalid.
+ *   - (-EINVAL) if *vf* invalid.
+ */
+int rte_pmd_ixgbe_ping_vfs(uint8_t port, uint16_t vf);
+
+/**
  * Set the VF MAC address.
  *
  * @param port
-- 
1.9.1

             reply	other threads:[~2017-03-22 17:33 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-22 17:32 alexz [this message]
2017-03-29 11:10 ` [PATCH] net/ixgbe: notify VF when PF link status changes Iremonger, Bernard
2017-03-29 20:52 ` [PATCH v2] ping VF when PF " alexz
2017-03-29 21:59   ` Iremonger, Bernard
2017-03-30 12:33   ` [PATCH v3] net/ixgbe: " alexz
2017-03-30 13:09     ` Lu, Wenzhuo
2017-03-30 16:50       ` Dai, Wei
2017-03-30 21:05     ` [PATCH v4] " alexz
2017-03-31  0:47       ` Dai, Wei
2017-03-31  1:00         ` Lu, Wenzhuo
2017-03-31 10:26           ` Ferruh Yigit

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=1490203937-12434-1-git-send-email-alexz@att.com \
    --to=alexz@att.com \
    --cc=dev@dpdk.org \
    --cc=helin.zhang@intel.com \
    --cc=konstantin.ananyev@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.