Commit Graph
53832 Commits
Author SHA1 Message Date
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
Zbigniew Jędrzejewski-Szmek 97c373c7de Merge pull request #21065 from keszybz/efi-warnings
Clean up unused variables in efi code
2021-10-21 08:33:08 +02:00
Yu Watanabe 1c15c3653e network: drop unnecessary header inclusion 2021-10-21 08:32:04 +02:00
Luca Boccassi 0ad536c16a CI: disable code coverage in GH Action
It is now ran on the nightly CentOS build, so that it can cover
integration tests too, and not just unit tests. It's nightly as
it considerably increases the integration test runtime, so it's
not appropriate for all PRs.
2021-10-21 00:10:52 +01:00
Frantisek Sumsal 140557021a test: don't install test-network-generator-conversion.sh w/o networkd
otherwise TEST-02 will fail:

```
=== Failed test log ===
--- test-network-generator-conversion.sh begin ---
+ [[ -n '' ]]
+ [[ -x /usr/lib/systemd/systemd-network-generator ]]
+ [[ -x /lib/systemd/systemd-network-generator ]]
+ exit 1
--- test-network-generator-conversion.sh end ---
```

Before:
```
$ meson build -Dnetworkd=false -Dinstall-tests=true
$ ninja -C build
$ DESTDIR=$PWD/test-install ninja -C build install
$ find test-install/ -name test-network-generator-conversion.sh
test-install/usr/lib/systemd/tests/test-network-generator-conversion.sh
```

After:
```
$ find test-install/ -name test-network-generator-conversion.sh
<no output>
```
2021-10-20 22:04:45 +01:00
Frantisek Sumsal 0b5fe54ff5 test: collect coverage in a couple more codepaths
Otherwise we'd miss coverage from TEST-{02,24,61}, since they don't go
through the "standard" `check_result_common` hook.

Follow-up to 7bf20e48bd.
2021-10-20 16:46:58 +01: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
Luca Boccassi b78524f48d Merge pull request #21055 from yuwata/network-dhcp6-pd-route-lifetime-metric
network: dhcp6pd: set lifetime and route metric
2021-10-20 14:38:03 +01: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
Dimitri Papadopoulos ba669952b2 Typos found by codespell 2021-10-20 22:20:18 +09:00
Zbigniew Jędrzejewski-Szmek 2fffe2ed19 efi: check input parameter
clang complained about an unused variable. We cast the buffer to
struct boot_params, so let's check that it's at least this long.
2021-10-20 14:20:44 +02:00
Zbigniew Jędrzejewski-Szmek f3611cfb0b efi: drop two unused variables
It seems the code was added in 2553a5482c and
those two were never used for anything.
2021-10-20 13:58:03 +02:00
Lennart Poettering 4a4654e024 nspawn: add --suppress-sync=yes mode for turning sync() and friends into NOPs via seccomp
This is supposed to be used by package/image builders such as mkosi to
speed up building, since it allows us to suppress sync() inside a
container.

This does what Debian's eatmydata tool does, but for a container, and
via seccomp (instead of LD_PRELOAD).
2021-10-20 11:35:15 +02:00
Lennart Poettering 0193b93eb5 loop-util: call loop_device_make_internal() at the right place
The whole reason loop_device_make_internal() exists (as opposed to just
loop_device_make()) is to avoid mangling the loop flags value/call
getenv twice. Hence let's actually call it when we already mangled the
flags value.
2021-10-20 09:57:16 +02:00
Lennart Poettering aa4d3aa3ef loop-util: add debug logging about O_RDWR vs. O_RDONLY + O_DIRECT mode
Once we managed to open the file let's log what we wanted and what we
got.
2021-10-20 09:56:20 +02:00
Lennart Poettering bfd084454d loop-util: minor coding style updates
As suggested here: https://github.com/systemd/systemd/pull/21044#pullrequestreview-783530343
2021-10-20 09:55:33 +02: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
Lennart Poettering ac6b19a216 Merge pull request #21044 from poettering/loopback-direct-io
loop-util: enable LO_FLAGS_DIRECT_IO by default on loopback devices
2021-10-19 18:42:25 +02:00
Daan De Meyer ab6df52083 CI: disable opensuse mkosi CI
Until https://github.com/systemd/systemd/issues/21019 is fixed,
there's no point in running the opensuse CI job so let's disable
it for now.
2021-10-19 17:21:29 +01:00
Lennart Poettering b9a9748abc loop-util: work around cache invalidation bug in older kernels
Inspired by the discussions in #21003.

Inspired in particular by what Android apexd does:

https://android.googlesource.com/platform/system/apex/+/refs/heads/master/apexd/apexd_loop.cpp
2021-10-19 15:38:21 +02:00
Lennart Poettering e8c7c4d9d1 loop-util: enable LO_FLAGS_DIRECT_IO by default on loopback devices
Fixes: #21003
2021-10-19 15:38:21 +02: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
Lennart Poettering aabb252577 Merge pull request #20905 from medhefgo/boot-cleanup
sd-boot: Code cleanups
2021-10-19 10:23:12 +02:00
Zbigniew Jędrzejewski-Szmek 33539ffe59 Merge pull request #20988 from DaanDeMeyer/rotate-reason
journal: Improve rotation logging
2021-10-19 09:53:31 +02:00
Zbigniew Jędrzejewski-Szmek b5d26617bb Merge pull request #21037 from yuwata/network-dhcp6-pd-simplify-distribute
network: dhcp6-pd: simplify dhcp6_pd_prefix_distribute()
2021-10-19 09:24:38 +02:00