/* If bridge exists, then mark it active */
if (obj->def->bridge &&
- brHasBridge(obj->def->bridge) == 0) {
+ virNetDevExists(obj->def->bridge) == 0) {
obj->active = 1;
/* Try and read dnsmasq/radvd pids if any */
return -1;
}
- if (brAddInetAddress(network->def->bridge,
- &ipdef->address, prefix) < 0)
+ if (virNetDevSetIPv4Address(network->def->bridge,
+ &ipdef->address, prefix) < 0)
return -1;
return 0;
return -1;
/* Create and configure the bridge device */
- if (brAddBridge(network->def->bridge) < 0)
+ if (virNetDevBridgeCreate(network->def->bridge) < 0)
return -1;
if (network->def->mac_specified) {
virReportOOMError();
goto err0;
}
- if (brAddTap(network->def->bridge,
- &macTapIfName, network->def->mac, 0, false, NULL) < 0) {
+ if (virNetDevTapCreateInBridgePort(network->def->bridge,
+ &macTapIfName, network->def->mac, 0, false, NULL) < 0) {
VIR_FREE(macTapIfName);
goto err0;
}
}
/* Set bridge options */
- if (brSetForwardDelay(network->def->bridge,
+ if (virNetDevBridgeSetSTPDelay(network->def->bridge,
network->def->delay) < 0)
goto err1;
- if (brSetEnableSTP(network->def->bridge,
- network->def->stp ? 1 : 0) < 0)
+ if (virNetDevBridgeSetSTP(network->def->bridge,
+ network->def->stp ? 1 : 0) < 0)
goto err1;
/* Disable IPv6 on the bridge if there are no IPv6 addresses
}
/* Bring up the bridge interface */
- if (brSetInterfaceUp(network->def->bridge, 1) < 0)
+ if (virNetDevSetOnline(network->def->bridge, 1) < 0)
goto err2;
/* If forwardType != NONE, turn on global IP forwarding */
err3:
if (!save_err)
save_err = virSaveLastError();
- ignore_value(brSetInterfaceUp(network->def->bridge, 0));
+ ignore_value(virNetDevSetOnline(network->def->bridge, 0));
err2:
if (!save_err)
if (!save_err)
save_err = virSaveLastError();
- ignore_value(brDeleteTap(macTapIfName));
+ ignore_value(virNetDevTapDelete(macTapIfName));
VIR_FREE(macTapIfName);
err0:
if (!save_err)
save_err = virSaveLastError();
- ignore_value(brDeleteBridge(network->def->bridge));
+ ignore_value(virNetDevBridgeDelete(network->def->bridge));
if (save_err) {
virSetError(save_err);
if (!macTapIfName) {
virReportOOMError();
} else {
- ignore_value(brDeleteTap(macTapIfName));
+ ignore_value(virNetDevTapDelete(macTapIfName));
VIR_FREE(macTapIfName);
}
}
- ignore_value(brSetInterfaceUp(network->def->bridge, 0));
+ ignore_value(virNetDevSetOnline(network->def->bridge, 0));
networkRemoveIptablesRules(driver, network);
- ignore_value(brDeleteBridge(network->def->bridge));
+ ignore_value(virNetDevBridgeDelete(network->def->bridge));
/* See if its still alive and really really kill it */
if (network->dnsmasqPid > 0 &&
# define VIR_FROM_THIS VIR_FROM_NONE
-static int brSetupControlFull(const char *ifname,
- struct ifreq *ifr,
- int domain,
- int type)
+static int virNetDevSetupControlFull(const char *ifname,
+ struct ifreq *ifr,
+ int domain,
+ int type)
{
int fd;
}
-static int brSetupControl(const char *ifname,
- struct ifreq *ifr)
+static int virNetDevSetupControl(const char *ifname,
+ struct ifreq *ifr)
{
- return brSetupControlFull(ifname, ifr, AF_PACKET, SOCK_DGRAM);
+ return virNetDevSetupControlFull(ifname, ifr, AF_PACKET, SOCK_DGRAM);
}
/**
- * brAddBridge:
+ * virNetDevBridgeCreate:
* @brname: the bridge name
*
* This function register a new bridge
* Returns 0 in case of success or -1 on failure
*/
# ifdef SIOCBRADDBR
-int
-brAddBridge(const char *brname)
+int virNetDevBridgeCreate(const char *brname)
{
int fd = -1;
int ret = -1;
- if ((fd = brSetupControl(NULL, NULL)) < 0)
+ if ((fd = virNetDevSetupControl(NULL, NULL)) < 0)
return -1;
if (ioctl(fd, SIOCBRADDBR, brname) < 0) {
return ret;
}
# else
-int brAddBridge(const char *brname)
+int virNetDevBridgeCreate(const char *brname)
{
virReportSystemError(ENOSYS,
_("Unable to create bridge %s"), brname);
# ifdef SIOCBRDELBR
/**
- * brHasBridge:
- * @brname
+ * virNetDevExists:
+ * @ifname
*
- * Check if the bridge @brname exists
+ * Check if the network device @ifname exists
*
* Returns 1 if it exists, 0 if it does not, -1 on error
*/
-int
-brHasBridge(const char *brname)
+int virNetDevExists(const char *ifname)
{
int fd = -1;
int ret = -1;
struct ifreq ifr;
- if ((fd = brSetupControl(brname, &ifr)) < 0)
+ if ((fd = virNetDevSetupControl(ifname, &ifr)) < 0)
return -1;
if (ioctl(fd, SIOCGIFFLAGS, &ifr)) {
ret = 0;
else
virReportSystemError(errno,
- _("Unable to get bridge %s flags"), brname);
+ _("Unable to check interface flags for %s"), ifname);
goto cleanup;
}
return ret;
}
# else
-int
-brHasBridge(const char *brname)
+int virNetDevExists(const char *ifname)
{
virReportSystemError(ENOSYS,
- _("Unable to check bridge %s"), brname);
+ _("Unable to check interface %s"), ifname);
return -1;
}
# endif
/**
- * brDeleteBridge:
+ * virNetDevBridgeDelete:
* @brname: the bridge name
*
* Remove a bridge from the layer.
* Returns 0 in case of success or an errno code in case of failure.
*/
# ifdef SIOCBRDELBR
-int
-brDeleteBridge(const char *brname)
+int virNetDevBridgeDelete(const char *brname)
{
int fd = -1;
int ret = -1;
- if ((fd = brSetupControl(NULL, NULL)) < 0)
+ if ((fd = virNetDevSetupControl(NULL, NULL)) < 0)
return -1;
if (ioctl(fd, SIOCBRDELBR, brname) < 0) {
return ret;
}
# else
-int
-brDeleteBridge(const char *brname ATTRIBUTE_UNUSED)
+int virNetDevBridgeDelete(const char *brname ATTRIBUTE_UNUSED)
{
virReportSystemError(ENOSYS,
_("Unable to delete bridge %s"), brname);
# endif
/**
- * brAddInterface:
+ * virNetDevBridgeAddPort:
* @brname: the bridge name
* @ifname: the network interface name
*
* Returns 0 in case of success or an errno code in case of failure.
*/
# ifdef SIOCBRADDIF
-int
-brAddInterface(const char *brname,
- const char *ifname)
+int virNetDevBridgeAddPort(const char *brname,
+ const char *ifname)
{
int fd = -1;
int ret = -1;
struct ifreq ifr;
- if ((fd = brSetupControl(brname, &ifr)) < 0)
+ if ((fd = virNetDevSetupControl(brname, &ifr)) < 0)
return -1;
if (!(ifr.ifr_ifindex = if_nametoindex(ifname))) {
return ret;
}
# else
-int
-brAddInterface(const char *brname,
- const char *ifname)
+int virNetDevBridgeAddPort(const char *brname,
+ const char *ifname)
{
virReportSystemError(ENOSYS,
_("Unable to add bridge %s port %s"), brname, ifname);
# endif
/**
- * brDeleteInterface:
+ * virNetDevBridgeRemovePort:
* @brname: the bridge name
* @ifname: the network interface name
*
* Returns 0 in case of success or an errno code in case of failure.
*/
# ifdef SIOCBRDELIF
-int
-brDeleteInterface(const char *brname,
- const char *ifname)
+int virNetDevBridgeRemovePort(const char *brname,
+ const char *ifname)
{
int fd = -1;
int ret = -1;
struct ifreq ifr;
- if ((fd = brSetupControl(brname, &ifr)) < 0)
+ if ((fd = virNetDevSetupControl(brname, &ifr)) < 0)
return -1;
if (!(ifr.ifr_ifindex = if_nametoindex(ifname))) {
return ret;
}
# else
-int
-brDeleteInterface(const char *brname,
- const char *ifname)
+int virNetDevBridgeRemovePort(const char *brname,
+ const char *ifname)
{
virReportSystemError(errno,
_("Unable to remove bridge %s port %s"), brname, ifname);
# endif
/**
- * brSetInterfaceMac:
+ * virNetDevSetMAC:
* @ifname: interface name to set MTU for
* @macaddr: MAC address (VIR_MAC_BUFLEN in size)
*
*
* Returns 0 in case of success or -1 on failure
*/
-int
-brSetInterfaceMac(const char *ifname,
- const unsigned char *macaddr)
+int virNetDevSetMAC(const char *ifname,
+ const unsigned char *macaddr)
{
int fd = -1;
int ret = -1;
struct ifreq ifr;
- if ((fd = brSetupControl(ifname, &ifr)) < 0)
+ if ((fd = virNetDevSetupControl(ifname, &ifr)) < 0)
return -1;
/* To fill ifr.ifr_hdaddr.sa_family field */
}
/**
- * ifGetMtu
+ * virNetDevGetMTU:
* @ifname: interface name get MTU for
*
* This function gets the @mtu value set for a given interface @ifname.
*
* Returns the MTU value in case of success, or -1 on failure.
*/
-static int ifGetMtu(const char *ifname)
+static int virNetDevGetMTU(const char *ifname)
{
int fd = -1;
int ret = -1;
struct ifreq ifr;
- if ((fd = brSetupControl(ifname, &ifr)) < 0)
+ if ((fd = virNetDevSetupControl(ifname, &ifr)) < 0)
return -1;
if (ioctl(fd, SIOCGIFMTU, &ifr) < 0) {
}
/**
- * ifSetMtu:
+ * virNetDevSetMTU:
* @ifname: interface name to set MTU for
* @mtu: MTU value
*
*
* Returns 0 in case of success, or -1 on failure
*/
-static int ifSetMtu(const char *ifname, int mtu)
+static int virNetDevSetMTU(const char *ifname, int mtu)
{
int fd = -1;
int ret = -1;
struct ifreq ifr;
- if ((fd = brSetupControl(ifname, &ifr)) < 0)
+ if ((fd = virNetDevSetupControl(ifname, &ifr)) < 0)
return -1;
ifr.ifr_mtu = mtu;
*
* Returns 0 in case of success, or -1 on failure
*/
-static int brSetInterfaceMtu(const char *brname,
- const char *ifname)
+static int virNetDevSetMTUFromDevice(const char *brname,
+ const char *ifname)
{
- int mtu = ifGetMtu(brname);
+ int mtu = virNetDevGetMTU(brname);
if (mtu < 0)
return -1;
- return ifSetMtu(ifname, mtu);
+ return virNetDevSetMTU(ifname, mtu);
}
/**
- * brProbeVnetHdr:
+ * virNetDevProbeVnetHdr:
* @tapfd: a tun/tap file descriptor
*
* Check whether it is safe to enable the IFF_VNET_HDR flag on the
*/
# ifdef IFF_VNET_HDR
static int
-brProbeVnetHdr(int tapfd)
+virNetDevProbeVnetHdr(int tapfd)
{
# if defined(IFF_VNET_HDR) && defined(TUNGETFEATURES) && defined(TUNGETIFF)
unsigned int features;
*
* Returns 0 in case of success or -1 on failure
*/
-int
-brAddTap(const char *brname,
- char **ifname,
- const unsigned char *macaddr,
- int vnet_hdr,
- bool up,
- int *tapfd)
+int virNetDevTapCreateInBridgePort(const char *brname,
+ char **ifname,
+ const unsigned char *macaddr,
+ int vnet_hdr,
+ bool up,
+ int *tapfd)
{
- if (brCreateTap(ifname, vnet_hdr, tapfd) < 0)
+ if (virNetDevTapCreate(ifname, vnet_hdr, tapfd) < 0)
return -1;
/* We need to set the interface MAC before adding it
* seeing the kernel allocate random MAC for the TAP
* device before we set our static MAC.
*/
- if (brSetInterfaceMac(*ifname, macaddr) < 0)
+ if (virNetDevSetMAC(*ifname, macaddr) < 0)
goto error;
/* We need to set the interface MTU before adding it
* to the bridge, because the bridge will have its
* MTU adjusted automatically when we add the new interface.
*/
- if (brSetInterfaceMtu(brname, *ifname) < 0)
+ if (virNetDevSetMTUFromDevice(brname, *ifname) < 0)
goto error;
- if (brAddInterface(brname, *ifname) < 0)
+ if (virNetDevBridgeAddPort(brname, *ifname) < 0)
goto error;
- if (brSetInterfaceUp(*ifname, up) < 0)
+ if (virNetDevSetOnline(*ifname, up) < 0)
goto error;
return 0;
return -1;
}
-int brDeleteTap(const char *ifname)
+int virNetDevTapDelete(const char *ifname)
{
struct ifreq try;
int fd;
/**
- * brSetInterfaceUp:
+ * virNetDevSetOnline:
* @ifname: the interface name
* @up: 1 for up, 0 for down
*
*
* Returns 0 in case of success or -1 on error.
*/
-int
-brSetInterfaceUp(const char *ifname,
- int up)
+int virNetDevSetOnline(const char *ifname,
+ int up)
{
int fd = -1;
int ret = -1;
struct ifreq ifr;
int ifflags;
- if ((fd = brSetupControl(ifname, &ifr)) < 0)
+ if ((fd = virNetDevSetupControl(ifname, &ifr)) < 0)
return -1;
if (ioctl(fd, SIOCGIFFLAGS, &ifr) < 0) {
}
/**
- * brGetInterfaceUp:
+ * virNetDevIsOnline:
* @ifname: the interface name
* @up: where to store the status
*
*
* Returns 0 in case of success or an errno code in case of failure.
*/
-int
-brGetInterfaceUp(const char *ifname,
- int *up)
+int virNetDevIsOnline(const char *ifname,
+ int *up)
{
int fd = -1;
int ret = -1;
struct ifreq ifr;
- if ((fd = brSetupControl(ifname, &ifr)) < 0)
+ if ((fd = virNetDevSetupControl(ifname, &ifr)) < 0)
return -1;
if (ioctl(fd, SIOCGIFFLAGS, &ifr) < 0) {
}
/**
- * brAddInetAddress:
+ * virNetDevSetIPv4Address:
* @ifname: the interface name
* @addr: the IP address (IPv4 or IPv6)
* @prefix: number of 1 bits in the netmask
* Returns 0 in case of success or -1 in case of error.
*/
-int
-brAddInetAddress(const char *ifname,
- virSocketAddr *addr,
- unsigned int prefix)
+int virNetDevSetIPv4Address(const char *ifname,
+ virSocketAddr *addr,
+ unsigned int prefix)
{
virCommandPtr cmd = NULL;
char *addrstr = NULL, *bcaststr = NULL;
}
/**
- * brDelInetAddress:
+ * virNetDevClearIPv4Address:
* @ifname: the interface name
* @addr: the IP address (IPv4 or IPv6)
* @prefix: number of 1 bits in the netmask
* Returns 0 in case of success or -1 in case of error.
*/
-int
-brDelInetAddress(const char *ifname,
- virSocketAddr *addr,
- unsigned int prefix)
+int virNetDevClearIPv4Address(const char *ifname,
+ virSocketAddr *addr,
+ unsigned int prefix)
{
virCommandPtr cmd = NULL;
char *addrstr;
}
/**
- * brSetForwardDelay:
+ * virNetDevBridgeSetSTPDelay:
* @brname: the bridge name
* @delay: delay in seconds
*
* Returns 0 in case of success or -1 on failure
*/
-int
-brSetForwardDelay(const char *brname,
- int delay)
+int virNetDevBridgeSetSTPDelay(const char *brname,
+ int delay)
{
virCommandPtr cmd;
int ret = -1;
}
/**
- * brSetEnableSTP:
+ * virNetDevBridgeSetSTP:
* @brname: the bridge name
* @enable: 1 to enable, 0 to disable
*
*
* Returns 0 in case of success or -1 on failure
*/
-int
-brSetEnableSTP(const char *brname,
- int enable)
+int virNetDevBridgeSetSTP(const char *brname,
+ int enable)
{
virCommandPtr cmd;
int ret = -1;
* Returns 0 in case of success or an errno code in case of failure.
*/
-int
-brCreateTap(char **ifname,
- int vnet_hdr ATTRIBUTE_UNUSED,
- int *tapfd)
+int virNetDevTapCreate(char **ifname,
+ int vnet_hdr ATTRIBUTE_UNUSED,
+ int *tapfd)
{
int fd;
struct ifreq ifr;
ifr.ifr_flags = IFF_TAP|IFF_NO_PI;
# ifdef IFF_VNET_HDR
- if (vnet_hdr && brProbeVnetHdr(fd))
+ if (vnet_hdr && virNetDevProbeVnetHdr(fd))
ifr.ifr_flags |= IFF_VNET_HDR;
# endif
*/
# define BR_INET_ADDR_MAXLEN INET_ADDRSTRLEN
-int brAddBridge (const char *brname)
+int virNetDevBridgeCreate(const char *brname)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_RETURN_CHECK;
-int brDeleteBridge (const char *brname)
+int virNetDevBridgeDelete(const char *brname)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_RETURN_CHECK;
-int brHasBridge (const char *brname)
+int virNetDevExists(const char *brname)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_RETURN_CHECK;
-int brAddInterface (const char *brname,
- const char *ifname)
+int virNetDevBridgeAddPort(const char *brname,
+ const char *ifname)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_RETURN_CHECK;
-int brDeleteInterface (const char *brname,
- const char *ifname)
+int virNetDevBridgeRemovePort(const char *brname,
+ const char *ifname)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_RETURN_CHECK;
enum {
BR_TAP_PERSIST = (1 << 1),
};
-int brAddTap (const char *brname,
- char **ifname,
- const unsigned char *macaddr,
- int vnet_hdr,
- bool up,
- int *tapfd)
+int virNetDevTapCreateInBridgePort(const char *brname,
+ char **ifname,
+ const unsigned char *macaddr,
+ int vnet_hdr,
+ bool up,
+ int *tapfd)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3)
ATTRIBUTE_RETURN_CHECK;
-int brDeleteTap (const char *ifname)
+int virNetDevTapDelete(const char *ifname)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_RETURN_CHECK;
-int brSetInterfaceUp (const char *ifname,
- int up)
+int virNetDevSetOnline(const char *ifname,
+ int up)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_RETURN_CHECK;
-int brGetInterfaceUp (const char *ifname,
- int *up)
+int virNetDevIsOnline(const char *ifname,
+ int *up)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_RETURN_CHECK;
-int brAddInetAddress (const char *ifname,
- virSocketAddr *addr,
- unsigned int prefix)
+int virNetDevSetIPv4Address(const char *ifname,
+ virSocketAddr *addr,
+ unsigned int prefix)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_RETURN_CHECK;
-int brDelInetAddress (const char *ifname,
- virSocketAddr *addr,
- unsigned int prefix)
+int virNetDevClearIPv4Address(const char *ifname,
+ virSocketAddr *addr,
+ unsigned int prefix)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_RETURN_CHECK;
-int brSetForwardDelay (const char *brname,
- int delay)
+int virNetDevBridgeSetSTPDelay(const char *brname,
+ int delay)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_RETURN_CHECK;
-int brGetForwardDelay (const char *brname,
- int *delay)
+int virNetDevBridgeGetSTPDelay(const char *brname,
+ int *delay)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_RETURN_CHECK;
-int brSetEnableSTP (const char *brname,
- int enable)
+int virNetDevBridgeSetSTP(const char *brname,
+ int enable)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_RETURN_CHECK;
-int brGetEnableSTP (const char *brname,
- int *enable)
+int virNetDevBridgeGetSTP(const char *brname,
+ int *enable)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_RETURN_CHECK;
-int brCreateTap (char **ifname,
- int vnet_hdr,
- int *tapfd)
+int virNetDevTapCreate(char **ifname,
+ int vnet_hdr,
+ int *tapfd)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_RETURN_CHECK;
-int brSetInterfaceMac (const char *ifname,
- const unsigned char *macaddr)
+int virNetDevSetMAC(const char *ifname,
+ const unsigned char *macaddr)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_RETURN_CHECK;
# endif /* WITH_BRIDGE */