提交 5abbf7b9 编写于 作者: R Roopa Prabhu 提交者: Stefan Berger

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: NRoopa Prabhu <roprabhu@cisco.com>
Signed-off-by: NChristian Benvenuti <benve@cisco.com>
Signed-off-by: NDavid Wang <dwang2@cisco.com>
上级 cd5544d4
......@@ -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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册