From 275d1520a478d31a93250c039dc1dd64aa66ff3c Mon Sep 17 00:00:00 2001 From: K Shiva Kiran Date: Thu, 17 Aug 2023 00:17:15 +0530 Subject: [PATCH] Added bridge driver implementation Signed-off-by: K Shiva Kiran Reviewed-by: Michal Privoznik --- src/network/bridge_driver.c | 64 +++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index e776d86c73..caad085192 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -5119,6 +5119,68 @@ networkListAllPorts(virNetworkPtr net, } +static int +networkSetMetadata(virNetworkPtr net, + int type, + const char *metadata, + const char *key, + const char *uri, + unsigned int flags) +{ + virNetworkDriverState *driver = networkGetDriver(); + virNetworkObj *obj = NULL; + virNetworkDef *def = NULL; + g_autoptr(virNetworkDriverConfig) cfg = NULL; + int ret = -1; + + virCheckFlags(VIR_NETWORK_UPDATE_AFFECT_LIVE | + VIR_NETWORK_UPDATE_AFFECT_CONFIG, -1); + + if (!(obj = networkObjFromNetwork(net))) + return -1; + + cfg = virNetworkDriverGetConfig(driver); + def = virNetworkObjGetDef(obj); + + if (virNetworkSetMetadataEnsureACL(net->conn, def, flags) < 0) + goto cleanup; + + ret = virNetworkObjSetMetadata(obj, type, metadata, key, uri, + driver->xmlopt, cfg->stateDir, + cfg->networkConfigDir, flags); + + cleanup: + virNetworkObjEndAPI(&obj); + return ret; +} + + +static char * +networkGetMetadata(virNetworkPtr net, + int type, + const char *uri, + unsigned int flags) +{ + virNetworkObj *obj = NULL; + virNetworkDef *def = NULL; + char *ret = NULL; + + if (!(obj = networkObjFromNetwork(net))) + return NULL; + + def = virNetworkObjGetDef(obj); + + if (virNetworkGetMetadataEnsureACL(net->conn, def) < 0) + goto cleanup; + + ret = virNetworkObjGetMetadata(obj, type, uri, flags); + + cleanup: + virNetworkObjEndAPI(&obj); + return ret; +} + + static virNetworkDriver networkDriver = { .name = "bridge", .connectNumOfNetworks = networkConnectNumOfNetworks, /* 0.2.0 */ @@ -5152,6 +5214,8 @@ static virNetworkDriver networkDriver = { .networkListAllPorts = networkListAllPorts, /* 5.5.0 */ .networkPortGetParameters = networkPortGetParameters, /* 5.5.0 */ .networkPortSetParameters = networkPortSetParameters, /* 5.5.0 */ + .networkGetMetadata = networkGetMetadata, /* 9.7.0 */ + .networkSetMetadata = networkSetMetadata, /* 9.7.0 */ };