From: David Hunt <david.hunt@intel.com>
To: dev@dpdk.org
Cc: konstantin.ananyev@intel.com, jingjing.wu@intel.com,
santosh.shukla@caviumnetworks.com, "Sexton,
Rory" <rory.sexton@intel.com>,
Nemanja Marjanovic <nemanja.marjanovic@intel.com>,
David Hunt <david.hunt@intel.com>
Subject: [PATCH v9 1/9] net/i40e: add API to convert VF MAC to VF id
Date: Wed, 11 Oct 2017 17:18:47 +0100 [thread overview]
Message-ID: <1507738735-24879-2-git-send-email-david.hunt@intel.com> (raw)
In-Reply-To: <1507738735-24879-1-git-send-email-david.hunt@intel.com>
From: "Sexton, Rory" <rory.sexton@intel.com>
Need a way to convert a vf id to a pf id on the host so as to query the pf
for relevant statistics which are used for the frequency changes in the
vm_power_manager app. Used when profiles are passed down from the guest
to the host, allowing the host to map the vfs to pfs.
Signed-off-by: Nemanja Marjanovic <nemanja.marjanovic@intel.com>
Signed-off-by: Rory Sexton <rory.sexton@intel.com>
Signed-off-by: David Hunt <david.hunt@intel.com>
Reviewed-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
---
drivers/net/i40e/rte_pmd_i40e.c | 30 ++++++++++++++++++++++++++++++
drivers/net/i40e/rte_pmd_i40e.h | 15 +++++++++++++++
drivers/net/i40e/rte_pmd_i40e_version.map | 1 +
3 files changed, 46 insertions(+)
diff --git a/drivers/net/i40e/rte_pmd_i40e.c b/drivers/net/i40e/rte_pmd_i40e.c
index 0988023..103e161 100644
--- a/drivers/net/i40e/rte_pmd_i40e.c
+++ b/drivers/net/i40e/rte_pmd_i40e.c
@@ -2430,3 +2430,33 @@ rte_pmd_i40e_flow_type_mapping_update(
return 0;
}
+
+int
+rte_pmd_i40e_query_vfid_by_mac(uint16_t port, const struct ether_addr *vf_mac)
+{
+ struct rte_eth_dev *dev;
+ struct ether_addr *mac;
+ struct i40e_pf *pf;
+ int vf_id;
+ struct i40e_pf_vf *vf;
+ uint16_t vf_num;
+
+ RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV);
+ dev = &rte_eth_devices[port];
+
+ if (!is_i40e_supported(dev))
+ return -ENOTSUP;
+
+ pf = I40E_DEV_PRIVATE_TO_PF(dev->data->dev_private);
+ vf_num = pf->vf_num;
+
+ for (vf_id = 0; vf_id < vf_num; vf_id++) {
+ vf = &pf->vfs[vf_id];
+ mac = &vf->mac_addr;
+
+ if (is_same_ether_addr(mac, vf_mac))
+ return vf_id;
+ }
+
+ return -EINVAL;
+}
diff --git a/drivers/net/i40e/rte_pmd_i40e.h b/drivers/net/i40e/rte_pmd_i40e.h
index 8fa5869..91f647e 100644
--- a/drivers/net/i40e/rte_pmd_i40e.h
+++ b/drivers/net/i40e/rte_pmd_i40e.h
@@ -737,4 +737,19 @@ int rte_pmd_i40e_flow_type_mapping_get(
*/
int rte_pmd_i40e_flow_type_mapping_reset(uint8_t port);
+/**
+ * On the PF, find VF index based on VF MAC address
+ *
+ * @param port
+ * pointer to port identifier of the device
+ * @param vf_mac
+ * the mac address of the vf to determine index of
+ * @return
+ * The index of vfid If successful.
+ * -EINVAL: vf mac address does not exist for this port
+ * -ENOTSUP: i40e not supported for this port.
+ */
+int rte_pmd_i40e_query_vfid_by_mac(uint16_t port,
+ const struct ether_addr *vf_mac);
+
#endif /* _PMD_I40E_H_ */
diff --git a/drivers/net/i40e/rte_pmd_i40e_version.map b/drivers/net/i40e/rte_pmd_i40e_version.map
index 9292454..3f5871c 100644
--- a/drivers/net/i40e/rte_pmd_i40e_version.map
+++ b/drivers/net/i40e/rte_pmd_i40e_version.map
@@ -53,5 +53,6 @@ DPDK_17.11 {
rte_pmd_i40e_flow_type_mapping_update;
rte_pmd_i40e_flow_type_mapping_get;
rte_pmd_i40e_flow_type_mapping_reset;
+ rte_pmd_i40e_query_vfid_by_mac;
} DPDK_17.08;
--
2.7.4
next prev parent reply other threads:[~2017-10-11 16:19 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-22 16:11 [PATCH v1 0/4] add per-core Turbo Boost capability David Hunt
2017-08-22 16:11 ` [PATCH v1 1/4] lib/librte_power: add per-core turbo capability David Hunt
2017-09-13 10:44 ` [PATCH v2 0/4] add per-core Turbo Boost capability David Hunt
2017-09-13 10:44 ` [PATCH v2 1/4] lib/librte_power: add turbo boost API David Hunt
2017-10-03 14:08 ` [PATCH v3 0/9] Policy Based Power Control for Guest David Hunt
2017-10-03 14:08 ` [PATCH v3 1/9] net/i40e: add API to convert VF MAC to VF id David Hunt
2017-10-03 14:08 ` [PATCH v3 2/9] lib/librte_power: add extra msg type for policies David Hunt
2017-10-03 14:08 ` [PATCH v3 3/9] examples/vm_power_mgr: add vcpu to pcpu mapping David Hunt
2017-10-03 14:08 ` [PATCH v3 4/9] examples/vm_power_mgr: add scale to medium freq fn David Hunt
2017-10-03 14:08 ` [PATCH v3 5/9] examples/vm_power_mgr: add policy to channels David Hunt
2017-10-03 14:08 ` [PATCH v3 6/9] examples/vm_power_mgr: add port initialisation David Hunt
2017-10-03 14:08 ` [PATCH v3 7/9] power: add send channel msg function to map file David Hunt
2017-10-03 14:08 ` [PATCH v3 8/9] examples/guest_cli: add send policy to host David Hunt
2017-10-03 14:08 ` [PATCH v3 9/9] examples/vm_power_mgr: set MAC address of VF David Hunt
2017-10-11 16:18 ` [PATCH v9 0/9] Policy Based Power Control for Guest David Hunt
2017-10-11 16:18 ` David Hunt [this message]
2017-10-11 16:18 ` [PATCH v9 2/9] lib/librte_power: add extra msg type for policies David Hunt
2017-10-11 16:18 ` [PATCH v9 3/9] examples/vm_power_mgr: add vcpu to pcpu mapping David Hunt
2017-10-11 16:18 ` [PATCH v9 4/9] examples/vm_power_mgr: add scale to medium freq fn David Hunt
2017-10-11 16:18 ` [PATCH v9 5/9] examples/vm_power_mgr: add policy to channels David Hunt
2017-10-11 16:18 ` [PATCH v9 6/9] examples/vm_power_mgr: add port initialisation David Hunt
2017-10-11 16:18 ` [PATCH v9 7/9] power: add send channel msg function to map file David Hunt
2017-10-11 16:18 ` [PATCH v9 8/9] examples/guest_cli: add send policy to host David Hunt
2017-10-11 16:18 ` [PATCH v9 9/9] examples/vm_power_mgr: set MAC address of VF David Hunt
2017-10-12 0:23 ` [PATCH v9 0/9] Policy Based Power Control for Guest Ferruh Yigit
2017-09-13 10:44 ` [PATCH v2 2/4] examples/vm_power_manager: add per-core turbo David Hunt
2017-09-13 10:44 ` [PATCH v2 3/4] examples/vm_power_cli_guest: " David Hunt
2017-09-13 10:44 ` [PATCH v2 4/4] doc/power: add information on per-core turbo APIs David Hunt
2017-09-18 18:20 ` Mcnamara, John
2018-02-06 12:29 ` Mcnamara, John
2017-09-22 14:36 ` [PATCH v2 0/4] add per-core Turbo Boost capability Thomas Monjalon
2017-08-22 16:11 ` [PATCH v1 2/4] examples/vm_power_manager: add per-core turbo David Hunt
2017-08-22 16:11 ` [PATCH v1 3/4] examples/vm_power_cli_guest: " David Hunt
2017-08-22 16:11 ` [PATCH v1 4/4] lib: limit turbo to particular models of CPU David Hunt
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=1507738735-24879-2-git-send-email-david.hunt@intel.com \
--to=david.hunt@intel.com \
--cc=dev@dpdk.org \
--cc=jingjing.wu@intel.com \
--cc=konstantin.ananyev@intel.com \
--cc=nemanja.marjanovic@intel.com \
--cc=rory.sexton@intel.com \
--cc=santosh.shukla@caviumnetworks.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.