From ce158189a86aa01f8c2ddeeaa2d2b88ecb1dcb8a Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Mon, 19 Aug 2019 00:04:37 +0900 Subject: [PATCH 1/2] network: do not check deprecated flag in address_is_ready() Without this change, the address with PreferredLifetime=0 cannot be ready, and thus, no consequent setting up process does not start. The bug was introduced by 6aa5773. Follow-up for b7ed5384ab55cd4d7b8d7d1ec7f5d5e145f0a2b1. Fixes #13341. --- src/network/networkd-address.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/network/networkd-address.c b/src/network/networkd-address.c index e6f30a2842..885cda3a03 100644 --- a/src/network/networkd-address.c +++ b/src/network/networkd-address.c @@ -978,10 +978,7 @@ int config_parse_address_scope(const char *unit, bool address_is_ready(const Address *a) { assert(a); - if (a->family == AF_INET6) - return !(a->flags & IFA_F_TENTATIVE); - else - return !(a->flags & (IFA_F_TENTATIVE | IFA_F_DEPRECATED)); + return !(a->flags & IFA_F_TENTATIVE); } int address_section_verify(Address *address) { From e4783b548a139afbf1dfa5300c6afa083e0c90e9 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Sun, 18 Aug 2019 02:15:11 +0900 Subject: [PATCH 2/2] test-network: update test for PreferredLifetime=0 --- ...ork => 25-address-preferred-lifetime-zero.network} | 6 ++++++ test/test-network/systemd-networkd-tests.py | 11 +++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) rename test/test-network/conf/{25-address-preferred-lifetime-zero-ipv6.network => 25-address-preferred-lifetime-zero.network} (85%) diff --git a/test/test-network/conf/25-address-preferred-lifetime-zero-ipv6.network b/test/test-network/conf/25-address-preferred-lifetime-zero.network similarity index 85% rename from test/test-network/conf/25-address-preferred-lifetime-zero-ipv6.network rename to test/test-network/conf/25-address-preferred-lifetime-zero.network index bfb278f31f..a1e7605103 100644 --- a/test/test-network/conf/25-address-preferred-lifetime-zero-ipv6.network +++ b/test/test-network/conf/25-address-preferred-lifetime-zero.network @@ -6,6 +6,9 @@ Name=dummy98 Address=hogehoge Address=foofoo +[Route] +Gateway=20.20.20.1 + [Address] Address=10.2.3.4/16 PreferredLifetime=0 @@ -14,6 +17,9 @@ Scope=link [Address] Address=2001:0db8:0:f101::1/64 +[Address] +Address=20.20.20.100/24 + [Address] # this section must be ignored Peer=hoge diff --git a/test/test-network/systemd-networkd-tests.py b/test/test-network/systemd-networkd-tests.py index 593a9c976a..59ae97167e 100755 --- a/test/test-network/systemd-networkd-tests.py +++ b/test/test-network/systemd-networkd-tests.py @@ -1412,7 +1412,7 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities): '24-keep-configuration-static.network', '24-search-domain.network', '25-address-link-section.network', - '25-address-preferred-lifetime-zero-ipv6.network', + '25-address-preferred-lifetime-zero.network', '25-address-static.network', '25-bind-carrier.network', '25-bond-active-backup-slave.netdev', @@ -1493,17 +1493,20 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities): self.assertRegex(output, 'inet6 fd[0-9a-f:]*1/64 scope global') def test_address_preferred_lifetime_zero_ipv6(self): - copy_unit_to_networkd_unit_path('25-address-preferred-lifetime-zero-ipv6.network', '12-dummy.netdev') + copy_unit_to_networkd_unit_path('25-address-preferred-lifetime-zero.network', '12-dummy.netdev') start_networkd(5) - self.check_link_exists('dummy98') - self.check_operstate('dummy98', 'routable', setup_state='configuring') + self.wait_online(['dummy98:routable']) output = check_output('ip address show dummy98') print(output) self.assertRegex(output, 'inet 10.2.3.4/16 brd 10.2.255.255 scope link deprecated dummy98') self.assertRegex(output, 'inet6 2001:db8:0:f101::1/64 scope global') + output = check_output('ip route show dev dummy98') + print(output) + self.assertRegex(output, 'default via 20.20.20.1 proto static') + def test_configure_without_carrier(self): copy_unit_to_networkd_unit_path('configure-without-carrier.network', '11-dummy.netdev') start_networkd()