mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-27 13:52:20 +00:00
lxc conf2xml: convert lxc.network.ipv[46].gateway
This commit is contained in:
parent
c9a641f1e5
commit
430e939127
@ -424,10 +424,36 @@ typedef struct {
|
|||||||
char *name;
|
char *name;
|
||||||
virDomainNetIpDefPtr *ips;
|
virDomainNetIpDefPtr *ips;
|
||||||
size_t nips;
|
size_t nips;
|
||||||
|
char *gateway_ipv4;
|
||||||
|
char *gateway_ipv6;
|
||||||
bool privnet;
|
bool privnet;
|
||||||
size_t networks;
|
size_t networks;
|
||||||
} lxcNetworkParseData;
|
} lxcNetworkParseData;
|
||||||
|
|
||||||
|
static int
|
||||||
|
lxcAddNetworkRouteDefinition(const char *address,
|
||||||
|
int family,
|
||||||
|
virDomainNetRouteDefPtr **routes,
|
||||||
|
size_t *nroutes)
|
||||||
|
{
|
||||||
|
virDomainNetRouteDefPtr route = NULL;
|
||||||
|
|
||||||
|
if (VIR_ALLOC(route) < 0)
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
if (virSocketAddrParse(&route->via, address, family) < 0)
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
if (VIR_APPEND_ELEMENT(*routes, *nroutes, route) < 0)
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
error:
|
||||||
|
VIR_FREE(route);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
lxcAddNetworkDefinition(lxcNetworkParseData *data)
|
lxcAddNetworkDefinition(lxcNetworkParseData *data)
|
||||||
{
|
{
|
||||||
@ -465,6 +491,18 @@ lxcAddNetworkDefinition(lxcNetworkParseData *data)
|
|||||||
hostdev->source.caps.u.net.ips = data->ips;
|
hostdev->source.caps.u.net.ips = data->ips;
|
||||||
hostdev->source.caps.u.net.nips = data->nips;
|
hostdev->source.caps.u.net.nips = data->nips;
|
||||||
|
|
||||||
|
if (data->gateway_ipv4 &&
|
||||||
|
lxcAddNetworkRouteDefinition(data->gateway_ipv4, AF_INET,
|
||||||
|
&hostdev->source.caps.u.net.routes,
|
||||||
|
&hostdev->source.caps.u.net.nroutes) < 0)
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
if (data->gateway_ipv6 &&
|
||||||
|
lxcAddNetworkRouteDefinition(data->gateway_ipv6, AF_INET6,
|
||||||
|
&hostdev->source.caps.u.net.routes,
|
||||||
|
&hostdev->source.caps.u.net.nroutes) < 0)
|
||||||
|
goto error;
|
||||||
|
|
||||||
if (VIR_EXPAND_N(data->def->hostdevs, data->def->nhostdevs, 1) < 0)
|
if (VIR_EXPAND_N(data->def->hostdevs, data->def->nhostdevs, 1) < 0)
|
||||||
goto error;
|
goto error;
|
||||||
data->def->hostdevs[data->def->nhostdevs - 1] = hostdev;
|
data->def->hostdevs[data->def->nhostdevs - 1] = hostdev;
|
||||||
@ -477,6 +515,18 @@ lxcAddNetworkDefinition(lxcNetworkParseData *data)
|
|||||||
net->ips = data->ips;
|
net->ips = data->ips;
|
||||||
net->nips = data->nips;
|
net->nips = data->nips;
|
||||||
|
|
||||||
|
if (data->gateway_ipv4 &&
|
||||||
|
lxcAddNetworkRouteDefinition(data->gateway_ipv4, AF_INET,
|
||||||
|
&net->routes,
|
||||||
|
&net->nroutes) < 0)
|
||||||
|
goto error;
|
||||||
|
|
||||||
|
if (data->gateway_ipv6 &&
|
||||||
|
lxcAddNetworkRouteDefinition(data->gateway_ipv6, AF_INET6,
|
||||||
|
&net->routes,
|
||||||
|
&net->nroutes) < 0)
|
||||||
|
goto error;
|
||||||
|
|
||||||
if (VIR_EXPAND_N(data->def->nets, data->def->nnets, 1) < 0)
|
if (VIR_EXPAND_N(data->def->nets, data->def->nnets, 1) < 0)
|
||||||
goto error;
|
goto error;
|
||||||
data->def->nets[data->def->nnets - 1] = net;
|
data->def->nets[data->def->nnets - 1] = net;
|
||||||
@ -568,6 +618,10 @@ lxcNetworkWalkCallback(const char *name, virConfValuePtr value, void *data)
|
|||||||
VIR_FREE(ip);
|
VIR_FREE(ip);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
} else if (STREQ(name, "lxc.network.ipv4.gateway")) {
|
||||||
|
parseData->gateway_ipv4 = value->str;
|
||||||
|
} else if (STREQ(name, "lxc.network.ipv6.gateway")) {
|
||||||
|
parseData->gateway_ipv6 = value->str;
|
||||||
} else if (STRPREFIX(name, "lxc.network")) {
|
} else if (STRPREFIX(name, "lxc.network")) {
|
||||||
VIR_WARN("Unhandled network property: %s = %s",
|
VIR_WARN("Unhandled network property: %s = %s",
|
||||||
name,
|
name,
|
||||||
@ -584,7 +638,8 @@ lxcConvertNetworkSettings(virDomainDefPtr def, virConfPtr properties)
|
|||||||
int result = -1;
|
int result = -1;
|
||||||
size_t i;
|
size_t i;
|
||||||
lxcNetworkParseData data = {def, NULL, NULL, NULL, NULL,
|
lxcNetworkParseData data = {def, NULL, NULL, NULL, NULL,
|
||||||
NULL, NULL, NULL, NULL, 0, true, 0};
|
NULL, NULL, NULL, NULL, 0,
|
||||||
|
NULL, NULL, true, 0};
|
||||||
|
|
||||||
if (virConfWalk(properties, lxcNetworkWalkCallback, &data) < 0)
|
if (virConfWalk(properties, lxcNetworkWalkCallback, &data) < 0)
|
||||||
goto error;
|
goto error;
|
||||||
|
@ -2,7 +2,9 @@ lxc.network.type = phys
|
|||||||
lxc.network.link = eth0
|
lxc.network.link = eth0
|
||||||
lxc.network.name = eth1
|
lxc.network.name = eth1
|
||||||
lxc.network.ipv4 = 192.168.122.2/24
|
lxc.network.ipv4 = 192.168.122.2/24
|
||||||
|
lxc.network.ipv4.gateway = 192.168.122.1
|
||||||
lxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3596/64
|
lxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3596/64
|
||||||
|
lxc.network.ipv6.gateway = 2003:db8:1:0:214:1234:fe0b:3595
|
||||||
|
|
||||||
lxc.rootfs = /var/lib/lxc/migrate_test/rootfs
|
lxc.rootfs = /var/lib/lxc/migrate_test/rootfs
|
||||||
lxc.utsname = migrate_test
|
lxc.utsname = migrate_test
|
||||||
|
@ -27,6 +27,8 @@
|
|||||||
</source>
|
</source>
|
||||||
<ip address='192.168.122.2' family='ipv4' prefix='24'/>
|
<ip address='192.168.122.2' family='ipv4' prefix='24'/>
|
||||||
<ip address='2003:db8:1:0:214:1234:fe0b:3596' family='ipv6' prefix='64'/>
|
<ip address='2003:db8:1:0:214:1234:fe0b:3596' family='ipv6' prefix='64'/>
|
||||||
|
<route family='ipv4' via='192.168.122.1'/>
|
||||||
|
<route family='ipv6' via='2003:db8:1:0:214:1234:fe0b:3595'/>
|
||||||
</hostdev>
|
</hostdev>
|
||||||
</devices>
|
</devices>
|
||||||
</domain>
|
</domain>
|
||||||
|
@ -7,7 +7,9 @@ lxc.network.link = virbr0
|
|||||||
lxc.network.hwaddr = 02:00:15:8f:05:c1
|
lxc.network.hwaddr = 02:00:15:8f:05:c1
|
||||||
lxc.network.name = eth0
|
lxc.network.name = eth0
|
||||||
lxc.network.ipv4 = 192.168.122.2/24
|
lxc.network.ipv4 = 192.168.122.2/24
|
||||||
|
lxc.network.ipv4.gateway = 192.168.122.1
|
||||||
lxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3596/64
|
lxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3596/64
|
||||||
|
lxc.network.ipv6.gateway = 2003:db8:1:0:214:1234:fe0b:3595
|
||||||
|
|
||||||
#remove next line if host DNS configuration should not be available to container
|
#remove next line if host DNS configuration should not be available to container
|
||||||
lxc.mount.entry = proc proc proc nodev,noexec,nosuid 0 0
|
lxc.mount.entry = proc proc proc nodev,noexec,nosuid 0 0
|
||||||
|
@ -39,6 +39,8 @@
|
|||||||
<source bridge='virbr0'/>
|
<source bridge='virbr0'/>
|
||||||
<ip address='192.168.122.2' family='ipv4' prefix='24'/>
|
<ip address='192.168.122.2' family='ipv4' prefix='24'/>
|
||||||
<ip address='2003:db8:1:0:214:1234:fe0b:3596' family='ipv6' prefix='64'/>
|
<ip address='2003:db8:1:0:214:1234:fe0b:3596' family='ipv6' prefix='64'/>
|
||||||
|
<route family='ipv4' via='192.168.122.1'/>
|
||||||
|
<route family='ipv6' via='2003:db8:1:0:214:1234:fe0b:3595'/>
|
||||||
<guest dev='eth0'/>
|
<guest dev='eth0'/>
|
||||||
<link state='up'/>
|
<link state='up'/>
|
||||||
</interface>
|
</interface>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user