Blob Blame History Raw
From 57e803e520ac98e747a35e5f7454ea6890efa1ee Mon Sep 17 00:00:00 2001
Message-Id: <57e803e520ac98e747a35e5f7454ea6890efa1ee@dist-git>
From: Laine Stump <laine@laine.org>
Date: Thu, 13 Apr 2017 14:29:35 -0400
Subject: [PATCH] util: remove unused functions from virnetdev.c

The global functions virNetDevReplaceMacAddress(),
virNetDevReplaceNetConfig(), virNetDevRestoreMacAddress(), and
virNetDevRestoreNetConfig() are no longer used, as their functionality
has been replaced by virNetDev(Save|Read|Set)NetConfig().

The static functions virNetDevReplaceVfConfig() and
virNetDevRestoreVfConfig() were only used by the above-named global
functions that were removed.

Resolves: https://bugzilla.redhat.com/1442040 (RHEL 7.3.z)
Resolves: https://bugzilla.redhat.com/1415609 (RHEL 7.4)

(cherry picked from commit bc4168f3e199a9167da544dfaa5847573a5f5d6b)
---
 src/libvirt_private.syms |   4 -
 src/util/virnetdev.c     | 332 -----------------------------------------------
 src/util/virnetdev.h     |   9 --
 3 files changed, 345 deletions(-)

diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 9b0bc0100..e2dbee92d 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -1901,10 +1901,6 @@ virNetDevIfStateTypeToString;
 virNetDevIsVirtualFunction;
 virNetDevPFGetVF;
 virNetDevReadNetConfig;
-virNetDevReplaceMacAddress;
-virNetDevReplaceNetConfig;
-virNetDevRestoreMacAddress;
-virNetDevRestoreNetConfig;
 virNetDevRunEthernetScript;
 virNetDevRxFilterFree;
 virNetDevRxFilterModeTypeFromString;
diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c
index b61ed0f0b..4739f573a 100644
--- a/src/util/virnetdev.c
+++ b/src/util/virnetdev.c
@@ -391,92 +391,6 @@ int virNetDevGetMAC(const char *ifname,
 #endif
 
 
-/**
- * virNetDevReplaceMacAddress:
- * @macaddress: new MAC address for interface
- * @linkdev: name of interface
- * @stateDir: directory to store old MAC address
- *
- * Returns 0 on success, -1 on failure
- *
- */
-int
-virNetDevReplaceMacAddress(const char *linkdev,
-                           const virMacAddr *macaddress,
-                           const char *stateDir)
-{
-    virMacAddr oldmac;
-    char *path = NULL;
-    char macstr[VIR_MAC_STRING_BUFLEN];
-    int ret = -1;
-
-    if (virNetDevGetMAC(linkdev, &oldmac) < 0)
-        return -1;
-
-    if (virAsprintf(&path, "%s/%s",
-                    stateDir,
-                    linkdev) < 0)
-        return -1;
-    virMacAddrFormat(&oldmac, macstr);
-    if (virFileWriteStr(path, macstr, O_CREAT|O_TRUNC|O_WRONLY) < 0) {
-        virReportSystemError(errno, _("Unable to preserve mac for %s"),
-                             linkdev);
-        goto cleanup;
-    }
-
-    if (virNetDevSetMAC(linkdev, macaddress) < 0)
-        goto cleanup;
-
-    ret = 0;
- cleanup:
-    VIR_FREE(path);
-    return ret;
-}
-
-/**
- * virNetDevRestoreMacAddress:
- * @linkdev: name of interface
- * @stateDir: directory containing old MAC address
- *
- * Returns 0 on success, -errno on failure.
- *
- */
-int
-virNetDevRestoreMacAddress(const char *linkdev,
-                           const char *stateDir)
-{
-    int rc = -1;
-    char *oldmacname = NULL;
-    char *macstr = NULL;
-    char *path = NULL;
-    virMacAddr oldmac;
-
-    if (virAsprintf(&path, "%s/%s",
-                    stateDir,
-                    linkdev) < 0)
-        return -1;
-
-    if (virFileReadAll(path, VIR_MAC_STRING_BUFLEN, &macstr) < 0)
-        goto cleanup;
-
-    if (virMacAddrParse(macstr, &oldmac) != 0) {
-        virReportError(VIR_ERR_INTERNAL_ERROR,
-                       _("Cannot parse MAC address from '%s'"),
-                       oldmacname);
-        goto cleanup;
-    }
-
-    /*reset mac and remove file-ignore results*/
-    rc = virNetDevSetMAC(linkdev, &oldmac);
-    ignore_value(unlink(path));
-
- cleanup:
-    VIR_FREE(macstr);
-    VIR_FREE(path);
-    return rc;
-}
-
-
 #if defined(SIOCGIFMTU) && defined(HAVE_STRUCT_IFREQ)
 /**
  * virNetDevGetMTU:
@@ -1679,229 +1593,6 @@ virNetDevGetVfConfig(const char *ifname, int vf, virMacAddrPtr mac,
     return rc;
 }
 
-static int
-virNetDevReplaceVfConfig(const char *pflinkdev, int vf,
-                         const virMacAddr *macaddress,
-                         int vlanid,
-                         const char *stateDir)
-{
-    int ret = -1;
-    virMacAddr oldmac;
-    int oldvlanid = -1;
-    char *path = NULL;
-    char macstr[VIR_MAC_STRING_BUFLEN];
-    char *fileData = NULL;
-    bool pfIsOnline;
-
-    /* Assure that PF is online prior to twiddling with the VF.  It
-     * *should* be, but if the PF isn't online the changes made to the
-     * VF via the PF won't take effect, yet there will be no error
-     * reported. In the case that it isn't online, fail and report the
-     * error, since setting an unconfigured interface online
-     * automatically turns on IPv6 autoconfig, which may not be what
-     * the admin expects, so we want them to explicitly enable the PF
-     * in the host system network config.
-     */
-    if (virNetDevGetOnline(pflinkdev, &pfIsOnline) < 0)
-       goto cleanup;
-    if (!pfIsOnline) {
-        virReportError(VIR_ERR_INTERNAL_ERROR,
-                       _("Unable to configure VF %d of PF '%s' "
-                         "because the PF is not online. Please "
-                         "change host network config to put the "
-                         "PF online."),
-                       vf, pflinkdev);
-        goto cleanup;
-    }
-
-    if (virNetDevGetVfConfig(pflinkdev, vf, &oldmac, &oldvlanid) < 0)
-        goto cleanup;
-
-    if (virAsprintf(&path, "%s/%s_vf%d",
-                    stateDir, pflinkdev, vf) < 0)
-        goto cleanup;
-
-    if (virAsprintf(&fileData, "%s\n%d\n",
-                    virMacAddrFormat(&oldmac, macstr), oldvlanid) < 0)
-        goto cleanup;
-    if (virFileWriteStr(path, fileData, O_CREAT|O_TRUNC|O_WRONLY) < 0) {
-        virReportSystemError(errno, _("Unable to preserve mac/vlan tag "
-                                      "for pf = %s, vf = %d"), pflinkdev, vf);
-        goto cleanup;
-    }
-
-    ret = virNetDevSetVfConfig(pflinkdev, vf, macaddress, vlanid);
-
- cleanup:
-    VIR_FREE(path);
-    VIR_FREE(fileData);
-    return ret;
-}
-
-static int
-virNetDevRestoreVfConfig(const char *pflinkdev,
-                         int vf, const char *vflinkdev,
-                         const char *stateDir)
-{
-    int rc = -1;
-    char *path = NULL;
-    char *fileData = NULL;
-    char *vlan = NULL;
-    virMacAddr oldmac;
-    int vlanid = -1;
-
-    if (virAsprintf(&path, "%s/%s_vf%d",
-                    stateDir, pflinkdev, vf) < 0)
-        return rc;
-
-    if (vflinkdev && !virFileExists(path)) {
-        /* this VF's config may have been stored with
-         * virNetDevReplaceMacAddress while running an older version
-         * of libvirt. If so, the ${pf}_vf${id} file won't exist. In
-         * that case, try to restore using the older method with the
-         * VF's name directly.
-         */
-        rc = virNetDevRestoreMacAddress(vflinkdev, stateDir);
-        goto cleanup;
-    }
-
-    if (virFileReadAll(path, 128, &fileData) < 0)
-        goto cleanup;
-
-    if ((vlan = strchr(fileData, '\n'))) {
-        char *endptr;
-
-        *vlan++ = 0; /* NULL terminate the mac address */
-        if (*vlan) {
-            if ((virStrToLong_i(vlan, &endptr, 10, &vlanid) < 0) ||
-                (endptr && *endptr != '\n' && *endptr != 0)) {
-                virReportError(VIR_ERR_INTERNAL_ERROR,
-                               _("Cannot parse vlan tag from '%s'"),
-                               vlan);
-                goto cleanup;
-            }
-        }
-    }
-
-    if (virMacAddrParse(fileData, &oldmac) != 0) {
-        virReportError(VIR_ERR_INTERNAL_ERROR,
-                       _("Cannot parse MAC address from '%s'"),
-                       fileData);
-        goto cleanup;
-    }
-
-    /*reset mac and remove file-ignore results*/
-    rc = virNetDevSetVfConfig(pflinkdev, vf, &oldmac, vlanid);
-    ignore_value(unlink(path));
-
- cleanup:
-    VIR_FREE(path);
-    VIR_FREE(fileData);
-
-    return rc;
-}
-
-/**
- * virNetDevReplaceNetConfig:
- * @linkdev: name of the interface
- * @vf: vf index if linkdev is a pf
- * @macaddress: new MAC address for interface
- * @vlanid: new vlanid
- * @stateDir: directory to store old net config
- *
- * Returns 0 on success, -1 on failure
- *
- */
-int
-virNetDevReplaceNetConfig(const char *linkdev, int vf,
-                          const virMacAddr *macaddress,
-                          virNetDevVlanPtr vlan,
-                          const char *stateDir)
-{
-    int ret = -1;
-    char *pfdevname = NULL;
-
-    if (vf == -1 && virNetDevIsVirtualFunction(linkdev) == 1) {
-        /* If this really *is* a VF and the caller just didn't know
-         * it, we should set the MAC address via PF+vf# instead of
-         * setting directly via VF, because the latter will be
-         * rejected any time after the former has been done.
-         */
-        if (virNetDevGetPhysicalFunction(linkdev, &pfdevname) < 0)
-            goto cleanup;
-        if (virNetDevGetVirtualFunctionIndex(pfdevname, linkdev, &vf) < 0)
-            goto cleanup;
-        linkdev = pfdevname;
-    }
-
-    if (vf == -1) {
-        if (vlan) {
-            virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
-                           _("vlan can only be set for SR-IOV VFs, but "
-                             "%s is not a VF"), linkdev);
-            goto cleanup;
-        }
-        ret = virNetDevReplaceMacAddress(linkdev, macaddress, stateDir);
-    } else {
-        int vlanid = 0; /* assure any current vlan tag is reset */
-
-        if (vlan) {
-            if (vlan->nTags != 1 || vlan->trunk) {
-                virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-                               _("vlan trunking is not supported "
-                                 "by SR-IOV network devices"));
-                goto cleanup;
-            }
-            vlanid = vlan->tag[0];
-        }
-        ret = virNetDevReplaceVfConfig(linkdev, vf, macaddress, vlanid,
-                                       stateDir);
-    }
-
- cleanup:
-    VIR_FREE(pfdevname);
-    return ret;
-}
-
-/**
- * virNetDevRestoreNetConfig:
- * @linkdev: name of the interface
- * @vf: vf index if linkdev is a pf
- * @stateDir: directory containing old net config
- *
- * Returns 0 on success, -errno on failure.
- *
- */
-int
-virNetDevRestoreNetConfig(const char *linkdev, int vf, const char *stateDir)
-{
-    int ret = -1;
-    char *pfdevname = NULL;
-    const char *vfdevname = NULL;
-
-    if (vf == -1 && virNetDevIsVirtualFunction(linkdev) == 1) {
-        /* If this really *is* a VF and the caller just didn't know
-         * it, we should set the MAC address via PF+vf# instead of
-         * setting directly via VF, because the latter will be
-         * rejected any time after the former has been done.
-         */
-        if (virNetDevGetPhysicalFunction(linkdev, &pfdevname) < 0)
-            goto cleanup;
-        if (virNetDevGetVirtualFunctionIndex(pfdevname, linkdev, &vf) < 0)
-            goto cleanup;
-        vfdevname = linkdev;
-        linkdev = pfdevname;
-    }
-
-    if (vf == -1)
-        ret = virNetDevRestoreMacAddress(linkdev, stateDir);
-    else
-        ret = virNetDevRestoreVfConfig(linkdev, vf, vfdevname, stateDir);
-
- cleanup:
-    VIR_FREE(pfdevname);
-    return ret;
-}
 
 # define VIR_NETDEV_KEYNAME_ADMIN_MAC "adminMac"
 # define VIR_NETDEV_KEYNAME_VLAN_TAG "vlanTag"
@@ -2449,29 +2140,6 @@ virNetDevSetNetConfig(const char *linkdev, int vf,
 
 #else /* defined(__linux__) && defined(HAVE_LIBNL)  && defined(IFLA_VF_MAX) */
 
-int
-virNetDevReplaceNetConfig(const char *linkdev ATTRIBUTE_UNUSED,
-                          int vf ATTRIBUTE_UNUSED,
-                          const virMacAddr *macaddress ATTRIBUTE_UNUSED,
-                          virNetDevVlanPtr vlan ATTRIBUTE_UNUSED,
-                          const char *stateDir ATTRIBUTE_UNUSED)
-{
-    virReportSystemError(ENOSYS, "%s",
-                         _("Unable to replace net config on this platform"));
-    return -1;
-
-}
-
-int
-virNetDevRestoreNetConfig(const char *linkdev ATTRIBUTE_UNUSED,
-                          int vf ATTRIBUTE_UNUSED,
-                          const char *stateDir ATTRIBUTE_UNUSED)
-{
-    virReportSystemError(ENOSYS, "%s",
-                         _("Unable to restore net config on this platform"));
-    return -1;
-}
-
 
 int
 virNetDevSaveNetConfig(const char *linkdev ATTRIBUTE_UNUSED,
diff --git a/src/util/virnetdev.h b/src/util/virnetdev.h
index b5abf7a7b..a097ba300 100644
--- a/src/util/virnetdev.h
+++ b/src/util/virnetdev.h
@@ -209,15 +209,6 @@ virNetDevSetNetConfig(const char *linkdev, int vf,
                       bool setVLan)
     ATTRIBUTE_NONNULL(1) ATTRIBUTE_RETURN_CHECK;
 
-int virNetDevReplaceNetConfig(const char *linkdev, int vf,
-                              const virMacAddr *macaddress,
-                              virNetDevVlanPtr vlan,
-                              const char *stateDir)
-    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(5);
-
-int virNetDevRestoreNetConfig(const char *linkdev, int vf, const char *stateDir)
-    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(3);
-
 int virNetDevGetVirtualFunctionInfo(const char *vfname, char **pfname,
                                     int *vf)
     ATTRIBUTE_NONNULL(1);
-- 
2.12.2