summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2021-01-09 09:21:19 +0900
committerGitHub <noreply@github.com>2021-01-09 09:21:19 +0900
commit608ac763678cc908551cb1d94168ca63a1d20bdd (patch)
tree5c9c18d6a2bfda78705dd02a0f62a79e1a1a9dd4
parentedb75b62340b5c68e964a450b209437a2b6d18b9 (diff)
parentf7d0ea5b6f9262f6988c4521e240600e881c455e (diff)
downloadsystemd-608ac763678cc908551cb1d94168ca63a1d20bdd.tar.gz
Merge pull request #18168 from yuwata/network-cleanups
network: several follow-ups for recently merged PRs
-rw-r--r--src/network/networkd-network.c2
-rw-r--r--src/network/networkd-route.c7
-rw-r--r--test/test-network/conf/25-route-static.network4
-rwxr-xr-xtest/test-network/systemd-networkd-tests.py65
4 files changed, 45 insertions, 33 deletions
diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c
index 6f1afed091..f6e36f7080 100644
--- a/src/network/networkd-network.c
+++ b/src/network/networkd-network.c
@@ -1221,7 +1221,7 @@ int config_parse_rx_tx_queues(
log_syntax(unit, LOG_WARNING, filename, line, r, "Failed to parse %s=, ignoring assignment: %s.", lvalue, rvalue);
return 0;
}
- if (k > 4096) {
+ if (k == 0 || k > 4096) {
log_syntax(unit, LOG_WARNING, filename, line, 0, "Invalid %s=, ignoring assignment: %s.", lvalue, rvalue);
return 0;
}
diff --git a/src/network/networkd-route.c b/src/network/networkd-route.c
index b6bf9803b4..d23d74d5c8 100644
--- a/src/network/networkd-route.c
+++ b/src/network/networkd-route.c
@@ -1497,6 +1497,12 @@ int manager_rtnl_process_route(sd_netlink *rtnl, sd_netlink_message *message, Ma
return 0;
}
+ r = sd_netlink_message_read_u32(message, RTAX_ADVMSS, &tmp->advmss);
+ if (r < 0 && r != -ENODATA) {
+ log_link_warning_errno(link, r, "rtnl: received route message with invalid advmss, ignoring: %m");
+ return 0;
+ }
+
r = sd_netlink_message_exit_container(message);
if (r < 0) {
log_link_error_errno(link, r, "rtnl: Could not exit from RTA_METRICS container: %m");
@@ -2121,6 +2127,7 @@ int config_parse_tcp_advmss(
if (isempty(rvalue)) {
n->advmss = 0;
+ TAKE_PTR(n);
return 0;
}
diff --git a/test/test-network/conf/25-route-static.network b/test/test-network/conf/25-route-static.network
index ea47a0c03b..a120daf10e 100644
--- a/test/test-network/conf/25-route-static.network
+++ b/test/test-network/conf/25-route-static.network
@@ -37,6 +37,10 @@ Destination=192.168.1.2
InitialAdvertisedReceiveWindow=30
[Route]
+Destination=192.168.1.3
+TCPAdvertisedMaximumSegmentSize=30
+
+[Route]
Type=blackhole
Destination=202.54.1.2
diff --git a/test/test-network/systemd-networkd-tests.py b/test/test-network/systemd-networkd-tests.py
index 0d0923ea7b..b50da26f10 100755
--- a/test/test-network/systemd-networkd-tests.py
+++ b/test/test-network/systemd-networkd-tests.py
@@ -2197,53 +2197,54 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities):
print('### ip -6 route show dev dummy98')
output = check_output('ip -6 route show dev dummy98')
print(output)
- self.assertRegex(output, '2001:1234:5:8fff:ff:ff:ff:ff proto static')
- self.assertRegex(output, '2001:1234:5:8f63::1 proto kernel')
+ self.assertIn('2001:1234:5:8fff:ff:ff:ff:ff proto static', output)
+ self.assertIn('2001:1234:5:8f63::1 proto kernel', output)
print('### ip -6 route show default')
output = check_output('ip -6 route show default')
print(output)
- self.assertRegex(output, 'default')
- self.assertRegex(output, 'via 2001:1234:5:8fff:ff:ff:ff:ff')
+ self.assertIn('default', output)
+ self.assertIn('via 2001:1234:5:8fff:ff:ff:ff:ff', output)
print('### ip -4 route show dev dummy98')
output = check_output('ip -4 route show dev dummy98')
print(output)
- self.assertRegex(output, '149.10.124.48/28 proto kernel scope link src 149.10.124.58')
- self.assertRegex(output, '149.10.124.64 proto static scope link')
- self.assertRegex(output, '169.254.0.0/16 proto static scope link metric 2048')
- self.assertRegex(output, '192.168.1.1 proto static initcwnd 20')
- self.assertRegex(output, '192.168.1.2 proto static initrwnd 30')
- self.assertRegex(output, 'multicast 149.10.123.4 proto static')
+ self.assertIn('149.10.124.48/28 proto kernel scope link src 149.10.124.58', output)
+ self.assertIn('149.10.124.64 proto static scope link', output)
+ self.assertIn('169.254.0.0/16 proto static scope link metric 2048', output)
+ self.assertIn('192.168.1.1 proto static initcwnd 20', output)
+ self.assertIn('192.168.1.2 proto static initrwnd 30', output)
+ self.assertIn('192.168.1.3 proto static advmss 30', output)
+ self.assertIn('multicast 149.10.123.4 proto static', output)
print('### ip -4 route show dev dummy98 default')
output = check_output('ip -4 route show dev dummy98 default')
print(output)
- self.assertRegex(output, 'default via 149.10.125.65 proto static onlink')
- self.assertRegex(output, 'default via 149.10.124.64 proto static')
- self.assertRegex(output, 'default proto static')
+ self.assertIn('default via 149.10.125.65 proto static onlink', output)
+ self.assertIn('default via 149.10.124.64 proto static', output)
+ self.assertIn('default proto static', output)
print('### ip -4 route show table local dev dummy98')
output = check_output('ip -4 route show table local dev dummy98')
print(output)
- self.assertRegex(output, 'local 149.10.123.1 proto static scope host')
- self.assertRegex(output, 'anycast 149.10.123.2 proto static scope link')
- self.assertRegex(output, 'broadcast 149.10.123.3 proto static scope link')
+ self.assertIn('local 149.10.123.1 proto static scope host', output)
+ self.assertIn('anycast 149.10.123.2 proto static scope link', output)
+ self.assertIn('broadcast 149.10.123.3 proto static scope link', output)
print('### ip route show type blackhole')
output = check_output('ip route show type blackhole')
print(output)
- self.assertRegex(output, 'blackhole 202.54.1.2 proto static')
+ self.assertIn('blackhole 202.54.1.2 proto static', output)
print('### ip route show type unreachable')
output = check_output('ip route show type unreachable')
print(output)
- self.assertRegex(output, 'unreachable 202.54.1.3 proto static')
+ self.assertIn('unreachable 202.54.1.3 proto static', output)
print('### ip route show type prohibit')
output = check_output('ip route show type prohibit')
print(output)
- self.assertRegex(output, 'prohibit 202.54.1.4 proto static')
+ self.assertIn('prohibit 202.54.1.4 proto static', output)
print('### ip -6 route show type blackhole')
output = check_output('ip -6 route show type blackhole')
@@ -2263,26 +2264,26 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities):
print('### ip route show 192.168.10.1')
output = check_output('ip route show 192.168.10.1')
print(output)
- self.assertRegex(output, '192.168.10.1 proto static')
- self.assertRegex(output, 'nexthop via 149.10.124.59 dev dummy98 weight 10')
- self.assertRegex(output, 'nexthop via 149.10.124.60 dev dummy98 weight 5')
+ self.assertIn('192.168.10.1 proto static', output)
+ self.assertIn('nexthop via 149.10.124.59 dev dummy98 weight 10', output)
+ self.assertIn('nexthop via 149.10.124.60 dev dummy98 weight 5', output)
print('### ip route show 192.168.10.2')
output = check_output('ip route show 192.168.10.2')
print(output)
# old ip command does not show IPv6 gateways...
- self.assertRegex(output, '192.168.10.2 proto static')
- self.assertRegex(output, 'nexthop')
- self.assertRegex(output, 'dev dummy98 weight 10')
- self.assertRegex(output, 'dev dummy98 weight 5')
+ self.assertIn('192.168.10.2 proto static', output)
+ self.assertIn('nexthop', output)
+ self.assertIn('dev dummy98 weight 10', output)
+ self.assertIn('dev dummy98 weight 5', output)
print('### ip -6 route show 2001:1234:5:7fff:ff:ff:ff:ff')
output = check_output('ip -6 route show 2001:1234:5:7fff:ff:ff:ff:ff')
print(output)
# old ip command does not show 'nexthop' keyword and weight...
- self.assertRegex(output, '2001:1234:5:7fff:ff:ff:ff:ff')
- self.assertRegex(output, 'via 2001:1234:5:8fff:ff:ff:ff:ff dev dummy98')
- self.assertRegex(output, 'via 2001:1234:5:9fff:ff:ff:ff:ff dev dummy98')
+ self.assertIn('2001:1234:5:7fff:ff:ff:ff:ff', output)
+ self.assertIn('via 2001:1234:5:8fff:ff:ff:ff:ff dev dummy98', output)
+ self.assertIn('via 2001:1234:5:9fff:ff:ff:ff:ff dev dummy98', output)
copy_unit_to_networkd_unit_path('25-address-static.network')
check_output(*networkctl_cmd, 'reload', env=env)
@@ -2329,17 +2330,17 @@ class NetworkdNetworkTests(unittest.TestCase, Utilities):
print('### ip route show type blackhole')
output = check_output('ip route show type blackhole')
print(output)
- self.assertRegex(output, 'blackhole 202.54.1.2 proto static')
+ self.assertIn('blackhole 202.54.1.2 proto static', output)
print('### ip route show type unreachable')
output = check_output('ip route show type unreachable')
print(output)
- self.assertRegex(output, 'unreachable 202.54.1.3 proto static')
+ self.assertIn('unreachable 202.54.1.3 proto static', output)
print('### ip route show type prohibit')
output = check_output('ip route show type prohibit')
print(output)
- self.assertRegex(output, 'prohibit 202.54.1.4 proto static')
+ self.assertIn('prohibit 202.54.1.4 proto static', output)
print('### ip -6 route show type blackhole')
output = check_output('ip -6 route show type blackhole')