2007-02-14 16:02:40 +00:00
|
|
|
/*
|
|
|
|
* Copyright (C) 2007 Red Hat, Inc.
|
|
|
|
*
|
|
|
|
* This library is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
|
|
* License as published by the Free Software Foundation; either
|
|
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
* Lesser General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
|
|
* License along with this library; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
*
|
|
|
|
* Authors:
|
|
|
|
* Mark McLoughlin <markmc@redhat.com>
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __QEMUD_BRIDGE_H__
|
2010-03-09 18:22:22 +00:00
|
|
|
# define __QEMUD_BRIDGE_H__
|
2007-02-14 16:02:40 +00:00
|
|
|
|
2010-03-09 18:22:22 +00:00
|
|
|
# include <config.h>
|
2007-11-26 11:50:16 +00:00
|
|
|
|
2010-03-09 18:22:22 +00:00
|
|
|
# if defined(WITH_BRIDGE)
|
2007-11-26 11:50:16 +00:00
|
|
|
|
2010-03-09 18:22:22 +00:00
|
|
|
# include <net/if.h>
|
|
|
|
# include <netinet/in.h>
|
Convert virNetwork to use virSocketAddr everywhere
Instead of storing the IP address string in virNetwork related
structs, store the parsed virSocketAddr. This will make it
easier to add IPv6 support in the future, by letting driver
code directly check what address family is present
* src/conf/network_conf.c, src/conf/network_conf.h,
src/network/bridge_driver.c: Convert to use virSocketAddr
in virNetwork, instead of char *.
* src/util/bridge.c, src/util/bridge.h,
src/util/dnsmasq.c, src/util/dnsmasq.h,
src/util/iptables.c, src/util/iptables.h: Convert to
take a virSocketAddr instead of char * for any IP
address parameters
* src/util/network.h: Add macros to determine if an address
is set, and what address family is set.
2010-10-21 12:14:33 +00:00
|
|
|
# include "network.h"
|
2007-02-14 16:02:40 +00:00
|
|
|
|
2007-06-29 13:23:13 +00:00
|
|
|
/**
|
|
|
|
* BR_IFNAME_MAXLEN:
|
|
|
|
* maximum size in byte of the name for an interface
|
|
|
|
*/
|
2010-03-09 18:22:22 +00:00
|
|
|
# define BR_IFNAME_MAXLEN IF_NAMESIZE
|
2007-06-29 13:23:13 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* BR_INET_ADDR_MAXLEN:
|
|
|
|
* maximum size in bytes for an inet addess name
|
|
|
|
*/
|
2010-03-09 18:22:22 +00:00
|
|
|
# define BR_INET_ADDR_MAXLEN INET_ADDRSTRLEN
|
2007-02-14 16:02:40 +00:00
|
|
|
|
|
|
|
typedef struct _brControl brControl;
|
|
|
|
|
|
|
|
int brInit (brControl **ctl);
|
|
|
|
void brShutdown (brControl *ctl);
|
|
|
|
|
|
|
|
int brAddBridge (brControl *ctl,
|
2009-03-02 17:37:03 +00:00
|
|
|
const char *name);
|
2007-02-14 16:02:40 +00:00
|
|
|
int brDeleteBridge (brControl *ctl,
|
|
|
|
const char *name);
|
2009-01-20 22:36:10 +00:00
|
|
|
int brHasBridge (brControl *ctl,
|
|
|
|
const char *name);
|
2007-02-14 16:02:40 +00:00
|
|
|
|
|
|
|
int brAddInterface (brControl *ctl,
|
|
|
|
const char *bridge,
|
|
|
|
const char *iface);
|
|
|
|
int brDeleteInterface (brControl *ctl,
|
|
|
|
const char *bridge,
|
|
|
|
const char *iface);
|
|
|
|
|
2009-06-03 11:13:33 +00:00
|
|
|
enum {
|
|
|
|
BR_TAP_VNET_HDR = (1 << 0),
|
|
|
|
BR_TAP_PERSIST = (1 << 1),
|
|
|
|
};
|
|
|
|
|
2007-02-14 16:02:40 +00:00
|
|
|
int brAddTap (brControl *ctl,
|
|
|
|
const char *bridge,
|
2008-07-11 19:34:11 +00:00
|
|
|
char **ifname,
|
2010-07-21 10:08:52 +00:00
|
|
|
const unsigned char *macaddr,
|
|
|
|
int vnet_hdr,
|
2011-02-09 06:20:39 +00:00
|
|
|
bool up,
|
2007-02-14 16:02:40 +00:00
|
|
|
int *tapfd);
|
|
|
|
|
2009-06-03 11:13:33 +00:00
|
|
|
int brDeleteTap (brControl *ctl,
|
|
|
|
const char *ifname);
|
|
|
|
|
2007-02-14 16:02:40 +00:00
|
|
|
int brSetInterfaceUp (brControl *ctl,
|
|
|
|
const char *ifname,
|
|
|
|
int up);
|
|
|
|
int brGetInterfaceUp (brControl *ctl,
|
|
|
|
const char *ifname,
|
|
|
|
int *up);
|
|
|
|
|
2010-12-14 17:14:39 +00:00
|
|
|
int brAddInetAddress (brControl *ctl,
|
2007-02-14 16:02:40 +00:00
|
|
|
const char *ifname,
|
2010-12-14 17:14:39 +00:00
|
|
|
virSocketAddr *addr,
|
|
|
|
unsigned int prefix);
|
|
|
|
int brDelInetAddress (brControl *ctl,
|
2007-02-14 16:02:40 +00:00
|
|
|
const char *ifname,
|
2010-12-14 17:14:39 +00:00
|
|
|
virSocketAddr *addr,
|
|
|
|
unsigned int prefix);
|
2007-02-14 16:02:40 +00:00
|
|
|
|
|
|
|
int brSetForwardDelay (brControl *ctl,
|
|
|
|
const char *bridge,
|
|
|
|
int delay);
|
|
|
|
int brGetForwardDelay (brControl *ctl,
|
|
|
|
const char *bridge,
|
|
|
|
int *delay);
|
|
|
|
int brSetEnableSTP (brControl *ctl,
|
|
|
|
const char *bridge,
|
|
|
|
int enable);
|
|
|
|
int brGetEnableSTP (brControl *ctl,
|
|
|
|
const char *bridge,
|
|
|
|
int *enable);
|
|
|
|
|
2010-03-09 18:22:22 +00:00
|
|
|
# endif /* WITH_BRIDGE */
|
2007-11-26 11:50:16 +00:00
|
|
|
|
2007-02-14 16:02:40 +00:00
|
|
|
#endif /* __QEMUD_BRIDGE_H__ */
|