mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-22 12:35:17 +00:00
macvtap: Fix getPhysfn to get the PF of a direct attach network interface
This patch renames getPhysfn to getPhysfnDev and adds code to get the Physical function and Virtual Function index of the direct attach linkdev (if the direct attach interface is a SRIOV VF). The idea is to send the port profile message to a PF if the direct attach interface is a SRIOV VF. Signed-off-by: Roopa Prabhu <roprabhu@cisco.com> Signed-off-by: Christian Benvenuti <benve@cisco.com> Signed-off-by: David Wang <dwang2@cisco.com>
This commit is contained in:
parent
cd5544d412
commit
5abbf7b958
@ -943,23 +943,20 @@ err_exit:
|
||||
|
||||
# ifdef IFLA_VF_PORT_MAX
|
||||
static int
|
||||
getPhysfn(const char *linkdev,
|
||||
int32_t *vf,
|
||||
char **physfndev)
|
||||
getPhysfnDev(const char *linkdev,
|
||||
int32_t *vf,
|
||||
char **physfndev)
|
||||
{
|
||||
int rc = 0;
|
||||
bool virtfn = false;
|
||||
|
||||
if (virtfn) {
|
||||
if (ifaceIsVirtualFunction(linkdev)) {
|
||||
|
||||
/* XXX: if linkdev is SR-IOV VF, then set vf = VF index */
|
||||
/* XXX: and set linkdev = PF device */
|
||||
/* XXX: need to use get_physical_function_linux() or */
|
||||
/* XXX: something like that to get PF */
|
||||
/* XXX: device and figure out VF index */
|
||||
|
||||
rc = 1;
|
||||
/* if linkdev is SR-IOV VF, then set vf = VF index */
|
||||
/* and set linkdev = PF device */
|
||||
|
||||
rc = ifaceGetPhysicalFunction(linkdev, physfndev);
|
||||
if (!rc)
|
||||
rc = ifaceGetVirtualFunctionIndex(*physfndev, linkdev, vf);
|
||||
} else {
|
||||
|
||||
/* Not SR-IOV VF: physfndev is linkdev and VF index
|
||||
@ -1003,7 +1000,7 @@ doPortProfileOp8021Qbh(const char *ifname,
|
||||
int ifindex;
|
||||
int vlanid = -1;
|
||||
|
||||
rc = getPhysfn(ifname, &vf, &physfndev);
|
||||
rc = getPhysfnDev(ifname, &vf, &physfndev);
|
||||
if (rc)
|
||||
goto err_exit;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user