mirror of https://gitee.com/openkylin/libvirt.git
network: Introduce virnetworkobj
Move all the virNetworkObj related API/data structures into their own modules virnetworkobj.{c,h} from the network_conf.{c,h} Purely code motion at this point plus adjustments to cleanly build
This commit is contained in:
parent
bb9fca7bed
commit
bddbda99df
|
@ -45,6 +45,7 @@ src/conf/storage_conf.c
|
|||
src/conf/virchrdev.c
|
||||
src/conf/virdomainobjlist.c
|
||||
src/conf/virinterfaceobj.c
|
||||
src/conf/virnetworkobj.c
|
||||
src/conf/virnodedeviceobj.c
|
||||
src/conf/virnwfilterobj.c
|
||||
src/conf/virsecretobj.c
|
||||
|
|
|
@ -363,7 +363,8 @@ SECRET_EVENT_SOURCES = \
|
|||
|
||||
# Network driver generic impl APIs
|
||||
NETWORK_CONF_SOURCES = \
|
||||
conf/network_conf.c conf/network_conf.h \
|
||||
conf/network_conf.c conf/network_conf.h \
|
||||
conf/virnetworkobj.c conf/virnetworkobj.h \
|
||||
conf/networkcommon_conf.c conf/networkcommon_conf.h
|
||||
|
||||
# Network filter driver generic impl APIs
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -272,35 +272,6 @@ struct _virNetworkDef {
|
|||
xmlNodePtr metadata;
|
||||
};
|
||||
|
||||
typedef struct _virNetworkObj virNetworkObj;
|
||||
typedef virNetworkObj *virNetworkObjPtr;
|
||||
struct _virNetworkObj {
|
||||
virObjectLockable parent;
|
||||
|
||||
pid_t dnsmasqPid;
|
||||
pid_t radvdPid;
|
||||
unsigned int active : 1;
|
||||
unsigned int autostart : 1;
|
||||
unsigned int persistent : 1;
|
||||
|
||||
virNetworkDefPtr def; /* The current definition */
|
||||
virNetworkDefPtr newDef; /* New definition to activate at shutdown */
|
||||
|
||||
virBitmapPtr class_id; /* bitmap of class IDs for QoS */
|
||||
unsigned long long floor_sum; /* sum of all 'floor'-s of attached NICs */
|
||||
|
||||
unsigned int taint;
|
||||
|
||||
/* Immutable pointer, self locking APIs */
|
||||
virMacMapPtr macmap;
|
||||
};
|
||||
|
||||
virNetworkObjPtr virNetworkObjNew(void);
|
||||
void virNetworkObjEndAPI(virNetworkObjPtr *net);
|
||||
|
||||
typedef struct _virNetworkObjList virNetworkObjList;
|
||||
typedef virNetworkObjList *virNetworkObjListPtr;
|
||||
|
||||
typedef enum {
|
||||
VIR_NETWORK_TAINT_HOOK, /* Hook script was executed over
|
||||
network. We can't guarantee
|
||||
|
@ -312,51 +283,15 @@ typedef enum {
|
|||
VIR_NETWORK_TAINT_LAST
|
||||
} virNetworkTaintFlags;
|
||||
|
||||
static inline int
|
||||
virNetworkObjIsActive(const virNetworkObj *net)
|
||||
{
|
||||
return net->active;
|
||||
}
|
||||
|
||||
virNetworkObjListPtr virNetworkObjListNew(void);
|
||||
|
||||
virNetworkObjPtr virNetworkObjFindByUUIDLocked(virNetworkObjListPtr nets,
|
||||
const unsigned char *uuid);
|
||||
virNetworkObjPtr virNetworkObjFindByUUID(virNetworkObjListPtr nets,
|
||||
const unsigned char *uuid);
|
||||
virNetworkObjPtr virNetworkObjFindByNameLocked(virNetworkObjListPtr nets,
|
||||
const char *name);
|
||||
virNetworkObjPtr virNetworkObjFindByName(virNetworkObjListPtr nets,
|
||||
const char *name);
|
||||
bool virNetworkObjTaint(virNetworkObjPtr obj,
|
||||
virNetworkTaintFlags taint);
|
||||
|
||||
void virNetworkDefFree(virNetworkDefPtr def);
|
||||
|
||||
typedef bool (*virNetworkObjListFilter)(virConnectPtr conn,
|
||||
virNetworkDefPtr def);
|
||||
|
||||
enum {
|
||||
VIR_NETWORK_OBJ_LIST_ADD_LIVE = (1 << 0),
|
||||
VIR_NETWORK_OBJ_LIST_ADD_CHECK_LIVE = (1 << 1),
|
||||
};
|
||||
virNetworkObjPtr virNetworkAssignDef(virNetworkObjListPtr nets,
|
||||
virNetworkDefPtr def,
|
||||
unsigned int flags);
|
||||
void virNetworkObjAssignDef(virNetworkObjPtr network,
|
||||
virNetworkDefPtr def,
|
||||
bool live);
|
||||
int virNetworkObjSetDefTransient(virNetworkObjPtr network, bool live);
|
||||
void virNetworkObjUnsetDefTransient(virNetworkObjPtr network);
|
||||
virNetworkDefPtr virNetworkObjGetPersistentDef(virNetworkObjPtr network);
|
||||
int virNetworkObjReplacePersistentDef(virNetworkObjPtr network,
|
||||
virNetworkDefPtr def);
|
||||
|
||||
virNetworkDefPtr virNetworkDefCopy(virNetworkDefPtr def, unsigned int flags);
|
||||
int virNetworkConfigChangeSetup(virNetworkObjPtr dom, unsigned int flags);
|
||||
|
||||
void virNetworkRemoveInactive(virNetworkObjListPtr nets,
|
||||
virNetworkObjPtr net);
|
||||
|
||||
virNetworkDefPtr virNetworkDefParseXML(xmlXPathContextPtr ctxt);
|
||||
virNetworkDefPtr virNetworkDefParseString(const char *xmlStr);
|
||||
virNetworkDefPtr virNetworkDefParseFile(const char *filename);
|
||||
virNetworkDefPtr virNetworkDefParseNode(xmlDocPtr xml,
|
||||
|
@ -388,46 +323,11 @@ int virNetworkSaveXML(const char *configDir,
|
|||
int virNetworkSaveConfig(const char *configDir,
|
||||
virNetworkDefPtr def);
|
||||
|
||||
int virNetworkSaveStatus(const char *statusDir,
|
||||
virNetworkObjPtr net) ATTRIBUTE_RETURN_CHECK;
|
||||
|
||||
virNetworkObjPtr virNetworkLoadConfig(virNetworkObjListPtr nets,
|
||||
const char *configDir,
|
||||
const char *autostartDir,
|
||||
const char *file);
|
||||
|
||||
virNetworkObjPtr virNetworkLoadState(virNetworkObjListPtr nets,
|
||||
const char *stateDir,
|
||||
const char *name);
|
||||
|
||||
int virNetworkLoadAllConfigs(virNetworkObjListPtr nets,
|
||||
const char *configDir,
|
||||
const char *autostartDir);
|
||||
|
||||
int virNetworkLoadAllState(virNetworkObjListPtr nets,
|
||||
const char *stateDir);
|
||||
|
||||
int virNetworkDeleteConfig(const char *configDir,
|
||||
const char *autostartDir,
|
||||
virNetworkObjPtr net);
|
||||
|
||||
char *virNetworkConfigFile(const char *dir,
|
||||
const char *name);
|
||||
|
||||
int virNetworkBridgeInUse(virNetworkObjListPtr nets,
|
||||
const char *bridge,
|
||||
const char *skipname);
|
||||
|
||||
void virNetworkSetBridgeMacAddr(virNetworkDefPtr def);
|
||||
|
||||
int
|
||||
virNetworkObjUpdate(virNetworkObjPtr obj,
|
||||
unsigned int command, /* virNetworkUpdateCommand */
|
||||
unsigned int section, /* virNetworkUpdateSection */
|
||||
int parentIndex,
|
||||
const char *xml,
|
||||
unsigned int flags); /* virNetworkUpdateFlags */
|
||||
|
||||
VIR_ENUM_DECL(virNetworkForward)
|
||||
|
||||
# define VIR_CONNECT_LIST_NETWORKS_FILTERS_ACTIVE \
|
||||
|
@ -447,34 +347,6 @@ VIR_ENUM_DECL(virNetworkForward)
|
|||
VIR_CONNECT_LIST_NETWORKS_FILTERS_PERSISTENT | \
|
||||
VIR_CONNECT_LIST_NETWORKS_FILTERS_AUTOSTART)
|
||||
|
||||
int virNetworkObjListExport(virConnectPtr conn,
|
||||
virNetworkObjListPtr netobjs,
|
||||
virNetworkPtr **nets,
|
||||
virNetworkObjListFilter filter,
|
||||
unsigned int flags);
|
||||
|
||||
typedef int (*virNetworkObjListIterator)(virNetworkObjPtr net,
|
||||
void *opaque);
|
||||
|
||||
int virNetworkObjListForEach(virNetworkObjListPtr nets,
|
||||
virNetworkObjListIterator callback,
|
||||
void *opaque);
|
||||
|
||||
int virNetworkObjListGetNames(virNetworkObjListPtr nets,
|
||||
bool active,
|
||||
char **names,
|
||||
int nnames,
|
||||
virNetworkObjListFilter filter,
|
||||
virConnectPtr conn);
|
||||
|
||||
int virNetworkObjListNumOfNetworks(virNetworkObjListPtr nets,
|
||||
bool active,
|
||||
virNetworkObjListFilter filter,
|
||||
virConnectPtr conn);
|
||||
|
||||
void virNetworkObjListPrune(virNetworkObjListPtr nets,
|
||||
unsigned int flags);
|
||||
|
||||
/* for testing */
|
||||
int
|
||||
virNetworkDefUpdateSection(virNetworkDefPtr def,
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,160 @@
|
|||
/*
|
||||
* virnetworkobj.h: handle network objects
|
||||
* (derived from network_conf.h)
|
||||
*
|
||||
* 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, see
|
||||
* <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __VIRNETWORKOBJ_H__
|
||||
# define __VIRNETWORKOBJ_H__
|
||||
|
||||
# include "internal.h"
|
||||
|
||||
# include "network_conf.h"
|
||||
|
||||
typedef struct _virNetworkObj virNetworkObj;
|
||||
typedef virNetworkObj *virNetworkObjPtr;
|
||||
struct _virNetworkObj {
|
||||
virObjectLockable parent;
|
||||
|
||||
pid_t dnsmasqPid;
|
||||
pid_t radvdPid;
|
||||
unsigned int active : 1;
|
||||
unsigned int autostart : 1;
|
||||
unsigned int persistent : 1;
|
||||
|
||||
virNetworkDefPtr def; /* The current definition */
|
||||
virNetworkDefPtr newDef; /* New definition to activate at shutdown */
|
||||
|
||||
virBitmapPtr class_id; /* bitmap of class IDs for QoS */
|
||||
unsigned long long floor_sum; /* sum of all 'floor'-s of attached NICs */
|
||||
|
||||
unsigned int taint;
|
||||
|
||||
/* Immutable pointer, self locking APIs */
|
||||
virMacMapPtr macmap;
|
||||
};
|
||||
|
||||
virNetworkObjPtr virNetworkObjNew(void);
|
||||
void virNetworkObjEndAPI(virNetworkObjPtr *net);
|
||||
|
||||
typedef struct _virNetworkObjList virNetworkObjList;
|
||||
typedef virNetworkObjList *virNetworkObjListPtr;
|
||||
|
||||
static inline int
|
||||
virNetworkObjIsActive(const virNetworkObj *net)
|
||||
{
|
||||
return net->active;
|
||||
}
|
||||
|
||||
virNetworkObjListPtr virNetworkObjListNew(void);
|
||||
|
||||
virNetworkObjPtr virNetworkObjFindByUUIDLocked(virNetworkObjListPtr nets,
|
||||
const unsigned char *uuid);
|
||||
virNetworkObjPtr virNetworkObjFindByUUID(virNetworkObjListPtr nets,
|
||||
const unsigned char *uuid);
|
||||
virNetworkObjPtr virNetworkObjFindByNameLocked(virNetworkObjListPtr nets,
|
||||
const char *name);
|
||||
virNetworkObjPtr virNetworkObjFindByName(virNetworkObjListPtr nets,
|
||||
const char *name);
|
||||
bool virNetworkObjTaint(virNetworkObjPtr obj,
|
||||
virNetworkTaintFlags taint);
|
||||
|
||||
typedef bool (*virNetworkObjListFilter)(virConnectPtr conn,
|
||||
virNetworkDefPtr def);
|
||||
|
||||
virNetworkObjPtr virNetworkAssignDef(virNetworkObjListPtr nets,
|
||||
virNetworkDefPtr def,
|
||||
unsigned int flags);
|
||||
void virNetworkObjAssignDef(virNetworkObjPtr network,
|
||||
virNetworkDefPtr def,
|
||||
bool live);
|
||||
int virNetworkObjSetDefTransient(virNetworkObjPtr network, bool live);
|
||||
void virNetworkObjUnsetDefTransient(virNetworkObjPtr network);
|
||||
virNetworkDefPtr virNetworkObjGetPersistentDef(virNetworkObjPtr network);
|
||||
int virNetworkObjReplacePersistentDef(virNetworkObjPtr network,
|
||||
virNetworkDefPtr def);
|
||||
int virNetworkConfigChangeSetup(virNetworkObjPtr dom, unsigned int flags);
|
||||
|
||||
void virNetworkRemoveInactive(virNetworkObjListPtr nets,
|
||||
virNetworkObjPtr net);
|
||||
|
||||
int virNetworkSaveStatus(const char *statusDir,
|
||||
virNetworkObjPtr net) ATTRIBUTE_RETURN_CHECK;
|
||||
|
||||
virNetworkObjPtr virNetworkLoadConfig(virNetworkObjListPtr nets,
|
||||
const char *configDir,
|
||||
const char *autostartDir,
|
||||
const char *file);
|
||||
|
||||
virNetworkObjPtr virNetworkLoadState(virNetworkObjListPtr nets,
|
||||
const char *stateDir,
|
||||
const char *name);
|
||||
|
||||
int virNetworkLoadAllConfigs(virNetworkObjListPtr nets,
|
||||
const char *configDir,
|
||||
const char *autostartDir);
|
||||
|
||||
int virNetworkLoadAllState(virNetworkObjListPtr nets,
|
||||
const char *stateDir);
|
||||
|
||||
int virNetworkDeleteConfig(const char *configDir,
|
||||
const char *autostartDir,
|
||||
virNetworkObjPtr net);
|
||||
|
||||
char *virNetworkConfigFile(const char *dir,
|
||||
const char *name);
|
||||
|
||||
int virNetworkBridgeInUse(virNetworkObjListPtr nets,
|
||||
const char *bridge,
|
||||
const char *skipname);
|
||||
|
||||
int
|
||||
virNetworkObjUpdate(virNetworkObjPtr obj,
|
||||
unsigned int command, /* virNetworkUpdateCommand */
|
||||
unsigned int section, /* virNetworkUpdateSection */
|
||||
int parentIndex,
|
||||
const char *xml,
|
||||
unsigned int flags); /* virNetworkUpdateFlags */
|
||||
|
||||
int virNetworkObjListExport(virConnectPtr conn,
|
||||
virNetworkObjListPtr netobjs,
|
||||
virNetworkPtr **nets,
|
||||
virNetworkObjListFilter filter,
|
||||
unsigned int flags);
|
||||
|
||||
typedef int (*virNetworkObjListIterator)(virNetworkObjPtr net,
|
||||
void *opaque);
|
||||
|
||||
int virNetworkObjListForEach(virNetworkObjListPtr nets,
|
||||
virNetworkObjListIterator callback,
|
||||
void *opaque);
|
||||
|
||||
int virNetworkObjListGetNames(virNetworkObjListPtr nets,
|
||||
bool active,
|
||||
char **names,
|
||||
int nnames,
|
||||
virNetworkObjListFilter filter,
|
||||
virConnectPtr conn);
|
||||
|
||||
int virNetworkObjListNumOfNetworks(virNetworkObjListPtr nets,
|
||||
bool active,
|
||||
virNetworkObjListFilter filter,
|
||||
virConnectPtr conn);
|
||||
|
||||
void virNetworkObjListPrune(virNetworkObjListPtr nets,
|
||||
unsigned int flags);
|
||||
|
||||
#endif /* __VIRNETWORKOBJ_H__ */
|
|
@ -628,11 +628,8 @@ virNetDevVPortTypeToString;
|
|||
|
||||
|
||||
# conf/network_conf.h
|
||||
virNetworkAssignDef;
|
||||
virNetworkBridgeInUse;
|
||||
virNetworkBridgeMACTableManagerTypeFromString;
|
||||
virNetworkBridgeMACTableManagerTypeToString;
|
||||
virNetworkConfigChangeSetup;
|
||||
virNetworkConfigFile;
|
||||
virNetworkDefCopy;
|
||||
virNetworkDefFormat;
|
||||
|
@ -644,35 +641,12 @@ virNetworkDefGetRouteByIndex;
|
|||
virNetworkDefParseFile;
|
||||
virNetworkDefParseNode;
|
||||
virNetworkDefParseString;
|
||||
virNetworkDefParseXML;
|
||||
virNetworkDefUpdateSection;
|
||||
virNetworkDeleteConfig;
|
||||
virNetworkForwardTypeToString;
|
||||
virNetworkIPDefNetmask;
|
||||
virNetworkIPDefPrefix;
|
||||
virNetworkLoadAllConfigs;
|
||||
virNetworkLoadAllState;
|
||||
virNetworkObjAssignDef;
|
||||
virNetworkObjEndAPI;
|
||||
virNetworkObjFindByName;
|
||||
virNetworkObjFindByNameLocked;
|
||||
virNetworkObjFindByUUID;
|
||||
virNetworkObjFindByUUIDLocked;
|
||||
virNetworkObjGetPersistentDef;
|
||||
virNetworkObjListExport;
|
||||
virNetworkObjListForEach;
|
||||
virNetworkObjListGetNames;
|
||||
virNetworkObjListNew;
|
||||
virNetworkObjListNumOfNetworks;
|
||||
virNetworkObjListPrune;
|
||||
virNetworkObjNew;
|
||||
virNetworkObjReplacePersistentDef;
|
||||
virNetworkObjSetDefTransient;
|
||||
virNetworkObjTaint;
|
||||
virNetworkObjUnsetDefTransient;
|
||||
virNetworkObjUpdate;
|
||||
virNetworkRemoveInactive;
|
||||
virNetworkSaveConfig;
|
||||
virNetworkSaveStatus;
|
||||
virNetworkSetBridgeMacAddr;
|
||||
virNetworkTaintTypeFromString;
|
||||
virNetworkTaintTypeToString;
|
||||
|
@ -944,6 +918,36 @@ virInterfaceObjRemove;
|
|||
virInterfaceObjUnlock;
|
||||
|
||||
|
||||
# conf/virnetworkobj.h
|
||||
virNetworkAssignDef;
|
||||
virNetworkBridgeInUse;
|
||||
virNetworkConfigChangeSetup;
|
||||
virNetworkDeleteConfig;
|
||||
virNetworkLoadAllConfigs;
|
||||
virNetworkLoadAllState;
|
||||
virNetworkObjAssignDef;
|
||||
virNetworkObjEndAPI;
|
||||
virNetworkObjFindByName;
|
||||
virNetworkObjFindByNameLocked;
|
||||
virNetworkObjFindByUUID;
|
||||
virNetworkObjFindByUUIDLocked;
|
||||
virNetworkObjGetPersistentDef;
|
||||
virNetworkObjListExport;
|
||||
virNetworkObjListForEach;
|
||||
virNetworkObjListGetNames;
|
||||
virNetworkObjListNew;
|
||||
virNetworkObjListNumOfNetworks;
|
||||
virNetworkObjListPrune;
|
||||
virNetworkObjNew;
|
||||
virNetworkObjReplacePersistentDef;
|
||||
virNetworkObjSetDefTransient;
|
||||
virNetworkObjTaint;
|
||||
virNetworkObjUnsetDefTransient;
|
||||
virNetworkObjUpdate;
|
||||
virNetworkRemoveInactive;
|
||||
virNetworkSaveStatus;
|
||||
|
||||
|
||||
# conf/virnodedeviceobj.h
|
||||
virNodeDeviceObjAssignDef;
|
||||
virNodeDeviceObjFindByName;
|
||||
|
|
|
@ -49,7 +49,6 @@
|
|||
#include "datatypes.h"
|
||||
#include "bridge_driver.h"
|
||||
#include "bridge_driver_platform.h"
|
||||
#include "network_conf.h"
|
||||
#include "device_conf.h"
|
||||
#include "driver.h"
|
||||
#include "virbuffer.h"
|
||||
|
|
|
@ -26,10 +26,10 @@
|
|||
# define __VIR_NETWORK__DRIVER_H
|
||||
|
||||
# include "internal.h"
|
||||
# include "network_conf.h"
|
||||
# include "domain_conf.h"
|
||||
# include "vircommand.h"
|
||||
# include "virdnsmasq.h"
|
||||
# include "virnetworkobj.h"
|
||||
|
||||
int networkRegister(void);
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
# include "internal.h"
|
||||
# include "virthread.h"
|
||||
# include "virdnsmasq.h"
|
||||
# include "network_conf.h"
|
||||
# include "virnetworkobj.h"
|
||||
# include "object_event.h"
|
||||
|
||||
/* Main driver state */
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
#include "capabilities.h"
|
||||
#include "configmake.h"
|
||||
#include "viralloc.h"
|
||||
#include "network_conf.h"
|
||||
#include "virnetworkobj.h"
|
||||
#include "interface_conf.h"
|
||||
#include "domain_conf.h"
|
||||
#include "domain_event.h"
|
||||
|
|
Loading…
Reference in New Issue