#endif /* __linux__ */
/**
- * ifaceLinkAdd
+ * virNetDevMacVLanCreate:
*
+ * @ifname: The name the interface is supposed to have; optional parameter
* @type: The type of device, i.e., "macvtap"
* @macaddress: The MAC address of the device
- * @macaddrsize: The size of the MAC address, typically '6'
- * @ifname: The name the interface is supposed to have; optional parameter
* @srcdev: The name of the 'link' device
* @macvlan_mode: The macvlan mode to use
* @retry: Pointer to integer that will be '1' upon return if an interface
*/
#if defined(__linux__) && WITH_MACVTAP
int
-ifaceMacvtapLinkAdd(const char *type,
- const unsigned char *macaddress, int macaddrsize,
- const char *ifname,
- const char *srcdev,
- uint32_t macvlan_mode,
- int *retry)
+virNetDevMacVLanCreate(const char *ifname,
+ const char *type,
+ const unsigned char *macaddress,
+ const char *srcdev,
+ uint32_t macvlan_mode,
+ int *retry)
{
int rc = 0;
struct nlmsghdr *resp;
if (nla_put_u32(nl_msg, IFLA_LINK, ifindex) < 0)
goto buffer_too_small;
- if (nla_put(nl_msg, IFLA_ADDRESS, macaddrsize, macaddress) < 0)
+ if (nla_put(nl_msg, IFLA_ADDRESS, VIR_MAC_BUFLEN, macaddress) < 0)
goto buffer_too_small;
if (ifname &&
#else
-int
-ifaceMacvtapLinkAdd(const char *type ATTRIBUTE_UNUSED,
- const unsigned char *macaddress ATTRIBUTE_UNUSED,
- int macaddrsize ATTRIBUTE_UNUSED,
- const char *ifname ATTRIBUTE_UNUSED,
- const char *srcdev ATTRIBUTE_UNUSED,
- uint32_t macvlan_mode ATTRIBUTE_UNUSED,
- int *retry ATTRIBUTE_UNUSED)
+int virNetDevMacVLanCreate(const char *ifname ATTRIBUTE_UNUSED,
+ const char *type ATTRIBUTE_UNUSED,
+ const unsigned char *macaddress ATTRIBUTE_UNUSED,
+ const char *srcdev ATTRIBUTE_UNUSED,
+ uint32_t macvlan_mode ATTRIBUTE_UNUSED,
+ int *retry ATTRIBUTE_UNUSED)
{
ifaceError(VIR_ERR_INTERNAL_ERROR, "%s",
# if defined(__linux__) && !WITH_MACVTAP
/**
- * ifaceLinkDel
+ * virNetDevMacVLanDelete:
*
* @ifname: Name of the interface
*
* Returns 0 on success, -1 on fatal error.
*/
#if defined( __linux__) && WITH_MACVTAP
-int
-ifaceLinkDel(const char *ifname)
+int virNetDevMacVLanDelete(const char *ifname)
{
int rc = 0;
struct nlmsghdr *resp;
#else
-int
-ifaceLinkDel(const char *ifname ATTRIBUTE_UNUSED)
+int virNetDevMacVLanDelete(const char *ifname ATTRIBUTE_UNUSED)
{
ifaceError(VIR_ERR_INTERNAL_ERROR, "%s",
# if defined(__linux__) && !WITH_MACVTAP
int ifaceGetIPAddress(const char *ifname, virSocketAddrPtr addr);
-int ifaceMacvtapLinkAdd(const char *type,
- const unsigned char *macaddress, int macaddrsize,
- const char *ifname,
- const char *srcdev,
- uint32_t macvlan_mode,
- int *retry);
-
-int ifaceLinkDel(const char *ifname);
+int virNetDevMacVLanCreate(const char *ifname,
+ const char *type,
+ const unsigned char *macaddress,
+ const char *srcdev,
+ uint32_t macvlan_mode,
+ int *retry)
+ ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4)
+ ATTRIBUTE_RETURN_CHECK;
+
+int virNetDevMacVLanDelete(const char *ifname)
+ ATTRIBUTE_NONNULL(1) ATTRIBUTE_RETURN_CHECK;
int ifaceMacvtapLinkDump(bool nltarget_kernel, const char *ifname, int ifindex,
struct nlattr **tb, unsigned char **recvbuf,
return -1;
}
cr_ifname = tgifname;
- rc = ifaceMacvtapLinkAdd(type, macaddress, 6, tgifname, linkdev,
- macvtapMode, &do_retry);
+ rc = virNetDevMacVLanCreate(tgifname, type, macaddress, linkdev,
+ macvtapMode, &do_retry);
if (rc < 0)
return -1;
} else {
for (c = 0; c < 8192; c++) {
snprintf(ifname, sizeof(ifname), MACVTAP_NAME_PATTERN, c);
if (ifaceGetIndex(false, ifname, &ifindex) == -ENODEV) {
- rc = ifaceMacvtapLinkAdd(type, macaddress, 6, ifname, linkdev,
- macvtapMode, &do_retry);
+ rc = virNetDevMacVLanCreate(ifname, type, macaddress, linkdev,
+ macvtapMode, &do_retry);
if (rc == 0)
break;
vmOp));
link_del_exit:
- ifaceLinkDel(cr_ifname);
+ ignore_value(virNetDevMacVLanDelete(cr_ifname));
return rc;
}
linkdev,
VIR_NETDEV_VPORT_PROFILE_OP_DESTROY) < 0)
ret = -1;
- if (ifaceLinkDel(ifname) < 0)
+ if (virNetDevMacVLanDelete(ifname) < 0)
ret = -1;
}
return ret;