[PATCH] lxc: Fix wrong addresses statements for IPv{4, 6} in native network definitions

Julio Faracco posted 1 patch 2 weeks ago
Test syntax-check failed
Failed in applying to current master (apply log)
src/lxc/lxc_native.c                                 | 12 ++++++++----
src/lxc/lxc_native.h                                 |  2 ++
tests/lxcconf2xmldata/lxcconf2xml-ethernet-v3.config |  4 ++--
.../lxcconf2xml-miscnetwork-v3.config                |  4 ++--
.../lxcconf2xml-physnetwork-v3.config                |  4 ++--
tests/lxcconf2xmldata/lxcconf2xml-simple-v3.config   |  4 ++--
6 files changed, 18 insertions(+), 12 deletions(-)

[PATCH] lxc: Fix wrong addresses statements for IPv{4, 6} in native network definitions

Posted by Julio Faracco 2 weeks ago
After LXC version 3, some settings were changed to new names. Same as
network. LXC introduced network indexes and changed IPv{4,6} addresses
fields. Before, users should only pass `lxc.network.ipv4` to define an
IPv4 address. Now, on version 3, users need to pass
`lxc.net.X.ipv4.address` to specify the same thing. Same for IPv6.

Signed-off-by: Julio Faracco <jcfaracco@gmail.com>
---
For further details:
https://discuss.linuxcontainers.org/t/lxc-2-1-has-been-released/487
---
---
 src/lxc/lxc_native.c                                 | 12 ++++++++----
 src/lxc/lxc_native.h                                 |  2 ++
 tests/lxcconf2xmldata/lxcconf2xml-ethernet-v3.config |  4 ++--
 .../lxcconf2xml-miscnetwork-v3.config                |  4 ++--
 .../lxcconf2xml-physnetwork-v3.config                |  4 ++--
 tests/lxcconf2xmldata/lxcconf2xml-simple-v3.config   |  4 ++--
 6 files changed, 18 insertions(+), 12 deletions(-)

diff --git a/src/lxc/lxc_native.c b/src/lxc/lxc_native.c
index 5462b74b85..ea79c90f83 100644
--- a/src/lxc/lxc_native.c
+++ b/src/lxc/lxc_native.c
@@ -44,10 +44,12 @@ VIR_ENUM_IMPL(virLXCNetworkConfigEntry,
               "flags",
               "macvlan.mode",
               "vlan.id",
-              "ipv4",
+              "ipv4", /* Legacy: LXC IPv4 address */
               "ipv4.gateway",
-              "ipv6",
-              "ipv6.gateway"
+              "ipv4.address",
+              "ipv6", /* Legacy: LXC IPv6 address */
+              "ipv6.gateway",
+              "ipv6.address"
 );
 
 static virDomainFSDefPtr
@@ -570,7 +572,7 @@ lxcNetworkParseDataIPs(const char *name,
     if (VIR_ALLOC(ip) < 0)
         return -1;
 
-    if (STREQ(name, "ipv6"))
+    if (STREQ(name, "ipv6") || STREQ(name, "ipv6.address"))
         family = AF_INET6;
 
     ipparts = virStringSplit(value->str, "/", 2);
@@ -627,7 +629,9 @@ lxcNetworkParseDataSuffix(const char *entry,
         parseData->name = value->str;
         break;
     case VIR_LXC_NETWORK_CONFIG_IPV4:
+    case VIR_LXC_NETWORK_CONFIG_IPV4_ADDRESS:
     case VIR_LXC_NETWORK_CONFIG_IPV6:
+    case VIR_LXC_NETWORK_CONFIG_IPV6_ADDRESS:
         if (lxcNetworkParseDataIPs(entry, value, parseData) < 0)
             return -1;
         break;
diff --git a/src/lxc/lxc_native.h b/src/lxc/lxc_native.h
index f16407f2e6..813272e129 100644
--- a/src/lxc/lxc_native.h
+++ b/src/lxc/lxc_native.h
@@ -35,8 +35,10 @@ typedef enum {
     VIR_LXC_NETWORK_CONFIG_VLAN_ID,
     VIR_LXC_NETWORK_CONFIG_IPV4,
     VIR_LXC_NETWORK_CONFIG_IPV4_GATEWAY,
+    VIR_LXC_NETWORK_CONFIG_IPV4_ADDRESS,
     VIR_LXC_NETWORK_CONFIG_IPV6,
     VIR_LXC_NETWORK_CONFIG_IPV6_GATEWAY,
+    VIR_LXC_NETWORK_CONFIG_IPV6_ADDRESS,
     VIR_LXC_NETWORK_CONFIG_LAST,
 } virLXCNetworkConfigEntry;
 
diff --git a/tests/lxcconf2xmldata/lxcconf2xml-ethernet-v3.config b/tests/lxcconf2xmldata/lxcconf2xml-ethernet-v3.config
index 0a641549f3..f2ca48f1f2 100644
--- a/tests/lxcconf2xmldata/lxcconf2xml-ethernet-v3.config
+++ b/tests/lxcconf2xmldata/lxcconf2xml-ethernet-v3.config
@@ -5,9 +5,9 @@ lxc.net.0.type = veth
 lxc.net.0.flags = up
 lxc.net.0.hwaddr = 02:00:15:8f:05:c1
 lxc.net.0.name = eth0
-lxc.net.0.ipv4 = 192.168.122.2/24
+lxc.net.0.ipv4.address = 192.168.122.2/24
 lxc.net.0.ipv4.gateway = 192.168.122.1
-lxc.net.0.ipv6 = 2003:db8:1:0:214:1234:fe0b:3596/64
+lxc.net.0.ipv6.address = 2003:db8:1:0:214:1234:fe0b:3596/64
 lxc.net.0.ipv6.gateway = 2003:db8:1:0:214:1234:fe0b:3595
 
 #remove next line if host DNS configuration should not be available to container
diff --git a/tests/lxcconf2xmldata/lxcconf2xml-miscnetwork-v3.config b/tests/lxcconf2xmldata/lxcconf2xml-miscnetwork-v3.config
index 537da64592..6bc22b8e46 100644
--- a/tests/lxcconf2xmldata/lxcconf2xml-miscnetwork-v3.config
+++ b/tests/lxcconf2xmldata/lxcconf2xml-miscnetwork-v3.config
@@ -1,9 +1,9 @@
 lxc.net.0.type = phys
 lxc.net.0.link = eth0
 lxc.net.0.name = eth1
-lxc.net.0.ipv4 = 192.168.122.2/24
+lxc.net.0.ipv4.address = 192.168.122.2/24
 lxc.net.0.ipv4.gateway = 192.168.122.1
-lxc.net.0.ipv6 = 2003:db8:1:0:214:1234:fe0b:3596/64
+lxc.net.0.ipv6.address = 2003:db8:1:0:214:1234:fe0b:3596/64
 lxc.net.0.ipv6.gateway = 2003:db8:1:0:214:1234:fe0b:3595
 
 lxc.net.1.type = vlan
diff --git a/tests/lxcconf2xmldata/lxcconf2xml-physnetwork-v3.config b/tests/lxcconf2xmldata/lxcconf2xml-physnetwork-v3.config
index 9cf96163b3..649b73c8b8 100644
--- a/tests/lxcconf2xmldata/lxcconf2xml-physnetwork-v3.config
+++ b/tests/lxcconf2xmldata/lxcconf2xml-physnetwork-v3.config
@@ -1,9 +1,9 @@
 lxc.net.0.type = phys
 lxc.net.0.link = eth0
 lxc.net.0.name = eth1
-lxc.net.0.ipv4 = 192.168.122.2/24
+lxc.net.0.ipv4.address = 192.168.122.2/24
 lxc.net.0.ipv4.gateway = 192.168.122.1
-lxc.net.0.ipv6 = 2003:db8:1:0:214:1234:fe0b:3596/64
+lxc.net.0.ipv6.address = 2003:db8:1:0:214:1234:fe0b:3596/64
 lxc.net.0.ipv6.gateway = 2003:db8:1:0:214:1234:fe0b:3595
 
 lxc.rootfs.path = /var/lib/lxc/migrate_test/rootfs
diff --git a/tests/lxcconf2xmldata/lxcconf2xml-simple-v3.config b/tests/lxcconf2xmldata/lxcconf2xml-simple-v3.config
index b0656571b2..ecd71044f9 100644
--- a/tests/lxcconf2xmldata/lxcconf2xml-simple-v3.config
+++ b/tests/lxcconf2xmldata/lxcconf2xml-simple-v3.config
@@ -6,9 +6,9 @@ lxc.net.0.flags = up
 lxc.net.0.link = virbr0
 lxc.net.0.hwaddr = 02:00:15:8f:05:c1
 lxc.net.0.name = eth0
-lxc.net.0.ipv4 = 192.168.122.2/24
+lxc.net.0.ipv4.address = 192.168.122.2/24
 lxc.net.0.ipv4.gateway = 192.168.122.1
-lxc.net.0.ipv6 = 2003:db8:1:0:214:1234:fe0b:3596/64
+lxc.net.0.ipv6.address = 2003:db8:1:0:214:1234:fe0b:3596/64
 lxc.net.0.ipv6.gateway = 2003:db8:1:0:214:1234:fe0b:3595
 
 #remove next line if host DNS configuration should not be available to container
-- 
2.20.1


Re: [PATCH] lxc: Fix wrong addresses statements for IPv{4, 6} in native network definitions

Posted by Michal Privoznik 2 weeks ago
On 2/6/20 5:19 AM, Julio Faracco wrote:
> After LXC version 3, some settings were changed to new names. Same as
> network. LXC introduced network indexes and changed IPv{4,6} addresses
> fields. Before, users should only pass `lxc.network.ipv4` to define an
> IPv4 address. Now, on version 3, users need to pass
> `lxc.net.X.ipv4.address` to specify the same thing. Same for IPv6.
> 
> Signed-off-by: Julio Faracco <jcfaracco@gmail.com>
> ---
> For further details:
> https://discuss.linuxcontainers.org/t/lxc-2-1-has-been-released/487
> ---
> ---
>   src/lxc/lxc_native.c                                 | 12 ++++++++----
>   src/lxc/lxc_native.h                                 |  2 ++
>   tests/lxcconf2xmldata/lxcconf2xml-ethernet-v3.config |  4 ++--
>   .../lxcconf2xml-miscnetwork-v3.config                |  4 ++--
>   .../lxcconf2xml-physnetwork-v3.config                |  4 ++--
>   tests/lxcconf2xmldata/lxcconf2xml-simple-v3.config   |  4 ++--
>   6 files changed, 18 insertions(+), 12 deletions(-)

Reviewed-by: Michal Privoznik <mprivozn@redhat.com>

Michal