Yu Watanabe
2307bc3180
Merge pull request #21157 from yuwata/network-address-label-verify
...
network: verify [IPv6AddressLabel] section
2021-10-28 07:13:12 +09:00
Yu Watanabe
3dea470121
test: update comment
...
Follow-up for 8524db5021 .
2021-10-27 19:52:39 +00:00
Yu Watanabe
593524af5d
Merge pull request #21153 from yuwata/network-lifetime-fix
...
network: fix lifetime handling
2021-10-28 04:52:25 +09:00
Yu Watanabe
ab5d52b79d
systemctl: drop redundant "else"
2021-10-28 04:52:06 +09:00
Yu Watanabe
266305484c
Merge pull request #21150 from yuwata/sd-radv-shorten-default-lifetime-2
...
sd-radv: shorten default lifetime
2021-10-28 04:51:45 +09:00
Yu Watanabe
1462a941fb
Merge pull request #21136 from poettering/homed-uidmap-dir-only
...
homed uidmapping (just for the directory backend)
2021-10-28 04:51:31 +09:00
Yu Watanabe
4df5799f9b
doc: fix typo in command
...
Follow-up for #21147 .
2021-10-28 03:57:24 +09:00
Yu Watanabe
99987084f6
Merge pull request #21138 from bluca/show_extensions
...
systemctl: pretty-print ExtensionImages property
2021-10-28 03:56:04 +09:00
Yu Watanabe
4150584e63
test: do not use alloca() in function call
2021-10-28 03:55:22 +09:00
Yu Watanabe
1ac845ffbe
test-network: add more tests for [Address] section
2021-10-28 02:12:34 +09:00
Yu Watanabe
8edcd775e8
test-network: add tests for invalid [IPv6AddressLabel] section
2021-10-28 01:40:19 +09:00
Yu Watanabe
834f4294a7
network: verify [IPv6AddressLabel] section
2021-10-28 01:38:57 +09:00
Yu Watanabe
3dfa7311e2
test-network: add tests for invalid IPv6 token
2021-10-28 01:17:14 +09:00
Yu Watanabe
c9e2c2dae3
network: radv: shorten default lifetime of prefix, route prefix, DNS, and domains
...
See draft-ietf-6man-slaac-renum-02 section 4.1.1.
2021-10-27 23:58:35 +09:00
Yu Watanabe
d951507d5d
sd-radv: shorten the default lifetime for prefix/route prefix
...
See draft-ietf-6man-slaac-renum-02 section 4.1.1.
2021-10-27 23:58:35 +09:00
Yu Watanabe
95e104e049
sd-radv: make prefix/route prefix lifetime can be specified with independently with valid_until
...
Previously, valid_until (or preferred_until for preferred lifetime) was
calculated from lifetime. So, when an upstream interface acquire a
dynamic prefix (e.g. through DHCPv6-PD) with long lifetime, then sd-radv
advertise the same lifetime. It may not be desired for some situations.
2021-10-27 23:58:28 +09:00
Yu Watanabe
c1c655bb60
network: route: update lifetime of existing route
...
Otherwise, the route whose lifetime is managed by the sd-event's timer
event source will be removed when the initial lifetime expires.
2021-10-27 23:38:18 +09:00
Yu Watanabe
435910b3a6
network: address: use passed Address object if possible
...
Then, we can avoid unnecessary duplication.
2021-10-27 23:34:47 +09:00
Yu Watanabe
eef5ebec97
Merge pull request #21143 from yuwata/sd-radv-router-lifetime
...
sd-radv: several cleanups for router lifetime
2021-10-27 22:14:35 +09:00
Yu Watanabe
1ad83d9500
Merge pull request #21144 from yuwata/sd-radv-trivial-cleanups
...
sd-radv: trivial cleanups
2021-10-27 19:52:57 +09:00
Yu Watanabe
8524db5021
conf-parse: make config_parse_many() optionally save 'struct stat' for each file
...
Fixes #21113 .
2021-10-27 19:49:55 +09:00
Yu Watanabe
4f1ac4a38d
network: radv: refuse invalid router lifetime in conf parser
2021-10-27 19:29:05 +09:00
Yu Watanabe
804775577d
sd-radv: update how to calculate interval of sending advertisements
2021-10-27 19:27:23 +09:00
Yu Watanabe
0945767012
sd-radv: router lifetime must be 0 or between 4 seconds and 9000 seconds
...
See RFC 4861 section 6.2.1.
2021-10-27 19:27:07 +09:00
Yu Watanabe
72db0a714b
sd-radv: introduce RADV_DEFAULT_ROUTER_LIFETIME_USEC
2021-10-27 19:05:55 +09:00
Yu Watanabe
e786c2e50f
sd-radv: add several notes about constants
2021-10-27 19:03:58 +09:00
Yu Watanabe
03ec10fdf4
sd-radv: make several constants not exposed
2021-10-27 19:03:35 +09:00
Yu Watanabe
d6fc0d674f
sd-radv: drop SD_ prefix for unexposed constants
2021-10-27 19:03:31 +09:00
Yu Watanabe
68cbac5bd4
sd-radv: use IPv6 specific functions
2021-10-27 16:41:04 +09:00
Yu Watanabe
acbb5500e2
sd-radv: use assert_return()
2021-10-27 16:41:04 +09:00
Yu Watanabe
7003b11487
sd-radv: make sd_radv_set_router_lifetime() take usec_t (uint64_t)
2021-10-27 16:13:09 +09:00
Yu Watanabe
b81070ff13
Merge pull request #21129 from yuwata/network-dhcp6-pd-vs-ndisc
...
network: several follow-ups for DHCPv6-PD
2021-10-27 12:15:18 +09:00
Yu Watanabe
149cda85bf
man: adjust the explanations related to the DHCPv6 client starting mode
2021-10-27 00:33:44 +09:00
Yu Watanabe
0e45721e3d
network: dhcp6: make UplinkInterface=:self imply WithoutRA=solicit
2021-10-27 00:33:44 +09:00
Yu Watanabe
fac19a21cf
network: do not restart DHCPv6 client when WithoutRA= is set
...
Previously, even if WithoutRA= is specified, the DHCPv6 client may be
restarted in undesired mode when a RA is received.
2021-10-27 00:33:44 +09:00
Yu Watanabe
483566e5ba
network: deprecate ForceDHCPv6PDOtherInformation= setting
...
The setting is completely meaningless, as WithoutRA= and UseDelegatedPrefix=
in [DHCPv6] section, and DHCPv6Client= in [IPv6AcceptRA] section control
the behavior.
2021-10-27 00:33:44 +09:00
Yu Watanabe
f107df6cdb
Merge pull request #21000 from yuwata/network-dhcp6-pd-introduce-uplink
...
network: dhcp6: introduce UplinkInterface= for prefix delegation
2021-10-27 00:32:50 +09:00
Yu Watanabe
caad88a22b
test-network: add test cases for DHCPv6 prefix delegation
2021-10-26 20:43:10 +09:00
Yu Watanabe
dc5cae6c9d
network: dhcp6: introduce UplinkInterface= for DHCP6 prefix delegation
2021-10-26 20:43:10 +09:00
Yu Watanabe
2cba2146ac
network: move config_parse_uplink() to networkd-dhcp-common.[ch]
2021-10-26 20:43:10 +09:00
Yu Watanabe
47e9c655b4
network: dhcp6pd: do not trigger prefix reassignment for all downstreams when a new downstream appears
...
It is not necessary to reconfigure other interfaces.
2021-10-26 20:43:08 +09:00
Yu Watanabe
079f94edfa
network: dhcp6: do not reconfigure/restart DHCPv6 clients when a new downstream appears
...
Previously, when a downstream appears which requests delegated prefix to
be assigned, then possibly restart all DHCPv6 clients for another
interfaces.
This makes networkd always honor the UseDelegatedPrefix= setting, and
not restart DHCPv6 clients.
2021-10-26 20:40:20 +09:00
Yu Watanabe
0f5ef9b62a
network: dhcp6: introduce UseDelegatedPrefix= setting and enable by default
...
Previously, the prefix delegation is enabled when at least one
downstream interfaces request it. But, when the DHCPv6 client on the
upstream interface is configured, some downstream interfaces may not
exist yet, nor have .network file assigned.
Also, if a system has thousands of interfaces, then the previous logic
introduce O(n^2) search.
This makes the prefix delegation is always enabled, except when it is
explicitly disabled. Hopefully, that should not break anything, as the
DHCPv6 server should ignore the prefix delegation request if the server
do not have any prefix to delegate.
2021-10-26 20:29:08 +09:00
Yu Watanabe
adef6d089b
Merge pull request #21122 from yuwata/network-optimize-reload
...
network: slightly optimize "networkctl reload"
2021-10-26 15:55:01 +09:00
Yu Watanabe
5b47f35d0e
test-network: reconfigure interface instead of restarting networkd
2021-10-26 08:20:29 +09:00
Yu Watanabe
b4564f4e8f
network: delay dropping addresses or so on reloading .network files
...
When a .network file is updated but its change is not so big, it is not
necessary to first drop all configs and then reassign later again.
This slightly optimize such situation. First foreignize all configs, and
then drop later when it is not requested by the updated .network file.
2021-10-26 08:20:22 +09:00
Yu Watanabe
b1ccd7d737
Merge pull request #21097 from poettering/dir-is-empty-fix
...
dir_is_empty_at() tweaks
2021-10-26 08:12:50 +09:00
Yu Watanabe
8a088877ab
test: enable debug logging of systemd-udevd
...
Otherwise, it is hard to debug when the test fails.
2021-10-26 08:12:10 +09:00
Yu Watanabe
0f96a82311
network: dhcp6pd: do not assign downstream prefix when RADV is requested but not configured yet
2021-10-26 08:11:44 +09:00
Yu Watanabe
928112a487
network: ndisc: fix behavior when DHCPv6Client=always
...
The man page says that when 'always' is set, the DHCPv6 client always
starts in managed mode, and that means we need to ignore the RA flags.
2021-10-26 08:11:19 +09:00
Yu Watanabe
e817f5b0f9
Merge pull request #21119 from yuwata/network-dhcp6-pd-cleanups
...
network: dhcp6pd: several cleanups
2021-10-26 08:10:56 +09:00
Yu Watanabe
a84171ce6f
libsystemd-network: do not warn when log_dhcp_client() or friends with NULL
2021-10-26 08:09:40 +09:00
Yu Watanabe
6681eb021a
udev: do not try to rename interface if it is already up
...
See dev_change_name() in kernel's net/core/dev.c.
Fixes #21105 .
2021-10-25 20:18:53 +01:00
Yu Watanabe
756f1f5fd0
network: rename function
2021-10-26 02:27:26 +09:00
Yu Watanabe
df8bf72631
network: dhcp6: rename variables
2021-10-26 00:35:22 +09:00
Yu Watanabe
78e50edfd4
network: dhcp6pd: move logic of acquiring subnet prefix into dhcp6_pd_assign_prefix()
...
Preparation for later commits.
2021-10-26 00:35:22 +09:00
Yu Watanabe
56bbe0ef02
network: dhcp6pd: introduce a simplified and unified method to calculate subnet prefix
2021-10-26 00:35:22 +09:00
Yu Watanabe
f595b2e9b4
Merge pull request #21116 from poettering/test-cleaner
...
make tests a bit cleaner in regards to oomd handling
2021-10-25 23:16:14 +09:00
Yu Watanabe
1dfdf96716
Merge pull request #21117 from mrc0mmand/last-coverage-related-tweaks
...
Last batch of coverage-related tweaks
2021-10-25 23:15:47 +09:00
Yu Watanabe
f8aa82e43f
Merge pull request #21077 from poettering/mount-setattr
...
optimize remounting with mount_setattr() syscall
2021-10-25 23:15:10 +09:00
Yu Watanabe
2db32618fe
nspawn: fix build when SECCOMP is disabled
...
Follow-up for 20e458ae3c .
2021-10-25 19:23:55 +09:00
Yu Watanabe
8e4de611eb
Merge pull request #21108 from mrc0mmand/here-comes-the-coverage
...
A couple more coverage-related tweaks
2021-10-24 22:54:23 +09:00
Yu Watanabe
096a154acc
Merge pull request #21082 from yuwata/network-dhcp6-pd-trivial-cleanups
...
network: DHCPv6 PD: several trivial cleanups
2021-10-23 23:58:22 +09:00
Yu Watanabe
20e458ae3c
nspawn: ignore --suppress-sync=yes when seccomp is disabled
...
Follow-up for 4a4654e024 .
Fixes #21090 .
2021-10-22 23:43:20 +02:00
Yu Watanabe
197aec7e79
network: dhcp6pd: fix the default value of subnet ID
...
The type of dhcp6_pd_subnet_id is int64_t.
2021-10-22 21:38:29 +09:00
Yu Watanabe
b7f7c78793
network: dhcp6pd: check link state earlier before assigning prefixes to downstream
...
Also, narrow the acceptable range of the states.
2021-10-22 15:58:42 +09:00
Yu Watanabe
a3ad6acf7b
network: dhcp6pd: also call dhcp6_pd_prepare() and dhcp6_pd_finalize() for upstream interface
...
As now the subnet prefix may be assigned to the upstream interface.
2021-10-22 15:58:38 +09:00
Yu Watanabe
aee21f7f8f
Merge pull request #21081 from mrc0mmand/even-more-coverage-tweaks
...
test: collect even more coverage
2021-10-22 04:48:40 +09:00
Yu Watanabe
796273775c
network: dhcp6pd: not necessary to drop routes when Assign=yes
2021-10-22 02:00:46 +09:00
Yu Watanabe
f45fb83996
Merge pull request #21072 from yuwata/network-address-lifetime
...
network: address: use usec_t for handling lifetime
2021-10-22 01:46:55 +09:00
Yu Watanabe
a3e33adfb5
Merge pull request #21050 from yuwata/network-bpf-cleanups
...
libsystemd-network: cleanup BPF code
2021-10-22 01:46:15 +09:00
Yu Watanabe
113e124f9b
icmp6: shorten code a bit
2021-10-21 22:40:03 +09:00
Yu Watanabe
ea51deb188
dhcp: shorten BPF code a bit
...
- replace `A = k` and `X = A` with `X = k`,
- replace `A ^= X` and `A == 0` with `A == X`.
- use UINT32_MAX when accept a packet
2021-10-21 22:39:53 +09:00
Yu Watanabe
155943b259
dhcp: rebreak function arguments
2021-10-21 22:39:43 +09:00
Yu Watanabe
b8319d748f
dhcp: fix assertions
2021-10-21 22:39:43 +09:00
Yu Watanabe
d70c78131d
dhcp: shorten code a bit
2021-10-21 22:39:43 +09:00
Yu Watanabe
36f1955da8
lldp: shorten code a bit
2021-10-21 22:39:43 +09:00
Yu Watanabe
e2c7c38b74
arp-util: shorten BPF code a bit
...
- replace `A = k` and `X = A` with `X = k`,
- replace `A ^= X` and `A == 0` with `A == X`.
- use UINT32_MAX when accept a packet
2021-10-21 22:39:25 +09:00
Yu Watanabe
16bc8635d5
network: address: use usec_t for handling lifetime
...
This drops stuct ifa_cacheinfo from Address, and store lifetime with
usec_t.
Why? Now, all requests of address configurations are once stored in
the request queue, and will be processed when it is ready. So, the
timestamp value passed to the kernel must be evaluated on configure.
This also fixes the following two issues.
- Time values in struct ifa_cacheinfo are stored in uint32_t.
So, the validity check of the address configured by NDisc may fail on
long running systems.
- If a system uses DHCPv6PD, when an interface may appear or be
reconfigured later, then the lifetime value may be inappropriate.
We need to adjust the lifetime with the current time and the timestamp
of the lease.
2021-10-21 20:58:15 +09:00
Yu Watanabe
03ccc4b423
network: ndisc: rename valid_until -> lifetime_usec
2021-10-21 20:58:15 +09:00
Yu Watanabe
09845af54b
network: ndisc: add missing lifetime check
2021-10-21 20:58:15 +09:00
Yu Watanabe
91fc5135e6
network: route: rename lifetime -> lifetime_usec
2021-10-21 20:58:15 +09:00
Yu Watanabe
1c15c3653e
network: drop unnecessary header inclusion
2021-10-21 08:32:04 +02:00
Yu Watanabe
21f2b19cc2
zsh-completion: nspawn: add --suppress-sync option
...
Follow-up for 4a4654e024 .
2021-10-20 22:53:39 +09:00
Yu Watanabe
241167e68a
Merge pull request #21051 from poettering/nspawn-no-sync
...
nspawn: add --suppress-sync=yes mode for turning sync() and friends i…
2021-10-20 22:42:43 +09:00
Yu Watanabe
6417e8925c
Merge pull request #21061 from poettering/direct-io-loopback-tweaks
...
tweaks to O_DIRECT loop work
2021-10-20 22:21:30 +09:00
Yu Watanabe
231c7645ca
Merge pull request #21041 from yuwata/network-bpf-neighbor
...
network: introduce BPF to reject netlink messages about non-static neighbor
2021-10-20 13:30:32 +09:00
Yu Watanabe
952d873f56
Merge pull request #21056 from yuwata/test-network-cleanups
...
test-network: several cleanups related to dnsmasq
2021-10-20 13:29:45 +09:00
Yu Watanabe
a4a1385e07
test-network: cleanup dnsmasq related file on setup
...
Just for safety.
2021-10-20 03:49:05 +09:00
Yu Watanabe
888f57c11c
test-network: drop pid_file argument from stop_dnsmasq()
2021-10-20 03:49:05 +09:00
Yu Watanabe
ed08ed4a45
test-network: use constant variables in dnsmasq command
2021-10-20 03:49:05 +09:00
Yu Watanabe
d0619f2c2b
network: dhcp6pd: set default metric 256 for delegated prefix
...
When Assign= in [DHCPv6PrefixDelegation] is enabled, then the kernel
will create the prefix route for the assigned address with metric 256.
When Assign= is disabled, then the kernel will create the route with
metric 1024.
For the default value, we should choose a smaller value (higher priority)
than 1024, as the unreachable routes for delegated prefix will be
configured with 1024.
2021-10-20 02:36:20 +09:00
Yu Watanabe
10ab5ed5a8
network: dhcp6: explicitly specify metric for unreachable route
...
For static IPv6 routes without metric is specified, then we use 1024.
But such an adjustment is not performed to dynamic routes. So, let's
specify the metric explicitly.
Otherwise, configured routes will be handled as foreign.
2021-10-20 02:36:20 +09:00
Yu Watanabe
937e894747
network: dhcp6pd: set lifetime to routes for assigned prefixes
...
Note that the kernel (at least 5.14.11) seems not to support lifetime
for IPv6 unreachable routes. The lifetime for routes of the type will be
handled by sd-event's timer event source.
So, we cannot confirm the lifetime with 'ip route' command.
2021-10-20 02:36:20 +09:00
Yu Watanabe
653ddc1d18
sd-dhcp6-client: introduce sd_dhcp6_lease_get_timestamp()
2021-10-20 02:36:20 +09:00
Yu Watanabe
a2ca8c54cc
Merge pull request #21035 from yuwata/network-route-fix-lifetime
...
network: route: drop kernel version check
2021-10-20 01:48:44 +09:00
Yu Watanabe
26a8be48bc
network: introduce BPF to reject netlink messages about non-static neighbor
...
Fixes #21031 .
2021-10-19 20:41:34 +09:00
Yu Watanabe
dc317a9aed
sd-netlink: introduce sd_netlink_attach_filter()
2021-10-19 20:41:09 +09:00
Yu Watanabe
0b0c81bb53
network: route: drop kernel version check for route expiration
...
Even in newer kernel version, it seems that some route type does not
support expiration, e.g. IPv4 route or unreachable route. Let's use
timer event source for such routes.
2021-10-19 20:33:43 +09:00
Yu Watanabe
38f8ae2c48
network: neighbor: fix log message
2021-10-19 09:07:30 +02:00