Yu Watanabe
e12e16e9f7
network-generator: also copy drop-ins for networkd.conf from credential
...
Follow-up for 1a30285590 .
2024-04-16 12:45:08 +09:00
Yu Watanabe
11fc03dfff
Merge pull request #32103 from yuwata/udev-load-credentials
...
udev: load udev rules from credentials
2024-04-16 11:45:22 +09:00
Yu Watanabe
0b7b75eea7
Merge pull request #32267 from yuwata/sd-ndisc-router-solicit
...
sd-radv: introduce sd_ndisc_router_solicit and use it
2024-04-16 11:18:07 +09:00
Yu Watanabe
a3e4edd1af
test: add test for systemd-udev-load-credentials.service
2024-04-16 10:35:13 +09:00
Yu Watanabe
cc2bcbf605
sd-radv: use ICMP6Packet and sd_ndisc_router_solicit
...
Then, sd-radv can reject invalid Router Solicit messages, e.g. that have
invalid options.
No effective functional change, just refactoring.
2024-04-16 09:59:52 +09:00
Yu Watanabe
8c1f24fb95
sd-radv: introduce sd_ndisc_router_solicit
...
It is not used in this stage, but will be used later in sd-radv.
2024-04-16 09:59:48 +09:00
Yu Watanabe
5700e755a9
units: introduce systemd-udev-load-credentials.service
2024-04-16 09:45:43 +09:00
Yu Watanabe
51be364bbb
udevadm-control: add --load-credentials option
...
When specified, credentials udev.conf.* and udev.rules.* are copied to
the corresponding directories.
2024-04-16 09:45:25 +09:00
Yu Watanabe
7b3048358b
udevadm-control: split out send_control_commands()
...
No functional change, just refactoring and preparation for later
commits.
2024-04-16 09:42:20 +09:00
Yu Watanabe
b2800ec597
udevadm-control: check if control command really specified
...
Previously, 'udevadm control' only checked the number of the arguments.
So, if only `--timeout` is specified, it spuriously did nothing and succeeded.
This makes the command request at least one control command.
2024-04-16 09:42:20 +09:00
Yu Watanabe
6c15a28454
creds-util: move pick_up_credentials() from network-generator
...
The function is quite general, and can be used at other places.
Let's move to our shared library.
2024-04-16 09:42:20 +09:00
Yu Watanabe
a40e495847
network-generator: rename NETWORKD_UNIT_... -> NETWORK_UNIT_...
...
As .link files are used by systemd-udevd, rather than systemd-networkd.
Also, this makes it ends with '/', to follow our recent coding style.
2024-04-16 09:42:20 +09:00
Yu Watanabe
e2f0876ecd
dissect: refuse to use diskseq if ID_IGNORE_DISKSEQ=1 is specified
...
Follow-up for 1a81ddef00 .
2024-04-15 16:50:45 +02:00
Yu Watanabe
9506269d12
Merge pull request #32266 from yuwata/libsystemd-network-trivial-cleanups
...
libsystemd-network: trivial cleanups
2024-04-15 14:43:12 +09:00
Yu Watanabe
049bdac7b6
ndisc-option: add missing case
...
Follow-up for 9f3587ae44 .
2024-04-15 14:41:45 +09:00
Yu Watanabe
6b628fa1d0
Merge pull request #32263 from YHNdnzj/cg-read-pid
...
core/execute: also check cg_is_threaded for clone3()
2024-04-15 14:39:28 +09:00
Yu Watanabe
14f3bdaa73
Merge pull request #32271 from YHNdnzj/arch-man
...
Fixes for links to man projects
2024-04-15 14:35:04 +09:00
Yu Watanabe
ac336e754e
sd-ndisc: make ndisc_send() and icmp6_send() take struct in6_addr
...
No functional change, just refactoring.
2024-04-15 06:23:11 +09:00
Yu Watanabe
2c28eb0266
libsystemd-network: make constant addresses type-safe
...
No functional change, just refactoring.
2024-04-15 06:23:11 +09:00
Yu Watanabe
dea17a0864
dhcp6-network: constify arguments
...
No functional change, just refactoring.
2024-04-15 06:23:11 +09:00
Yu Watanabe
d05487ef95
Merge pull request #32272 from DaanDeMeyer/volatile
...
mkosi: various improvements
2024-04-15 04:34:56 +09:00
Yu Watanabe
ae9fd433d6
Merge pull request #32194 from henryli001/lihl/add-defaultUseDomains-config
...
network: add mechanism to configure default UseDomains= setting
2024-04-14 13:40:06 +09:00
Yu Watanabe
e6fa91195b
test-network: add test for stack overflow in qdisc_drop() and tclass_drop()
2024-04-13 09:39:55 +09:00
Yu Watanabe
632d321050
network/tc: fix stack overflow when dropping tclass or qdisc
...
Fixes a bug introduced by be8e933900 (v255).
Fixes #32247 .
Fixes #32254 .
2024-04-13 08:49:54 +09:00
Yu Watanabe
bffc1a28d5
Merge pull request #32257 from yuwata/tree-wide-trivial-style-fixes
...
tree-wide: trivial style and typo fixes
2024-04-13 08:02:18 +09:00
Yu Watanabe
7f5c82aaf3
tree-wide: insert missing space after comma
2024-04-13 05:44:04 +09:00
Yu Watanabe
b2da2296ff
journal: drop thousands separator in comment
2024-04-13 05:43:37 +09:00
Yu Watanabe
6d3024369e
home: wrap long line
2024-04-13 05:42:21 +09:00
Yu Watanabe
c133387f7e
homectl: realign table
2024-04-13 05:41:46 +09:00
Yu Watanabe
4dbcda1cca
network/ndisc: fix typo
...
Follow-up for e42a74803a .
2024-04-13 05:21:42 +09:00
Yu Watanabe
bf4c90caed
core: fix typo
...
Follow-up for 21b366121f .
2024-04-13 05:20:05 +09:00
Yu Watanabe
87bbcb26c8
Merge pull request #32255 from YHNdnzj/strextendf
...
shared/killall: minor modernization
2024-04-13 05:10:20 +09:00
Yu Watanabe
976c4b38c5
Merge pull request #32256 from YHNdnzj/network-close-and-replace
...
sd-dhcp-server: use close_and_replace (avoid fd leak)
2024-04-13 05:09:36 +09:00
Yu Watanabe
296afa8477
ndisc-option: also ignore Prefix Information option with multicast address
...
Fixes https://github.com/systemd/systemd/pull/32215#issuecomment-2049624693
2024-04-12 10:34:12 +01:00
Yu Watanabe
b263362254
network/ndisc: drop onlink prefix when valid lifetime is zero
...
Replaces 155d7a2c04 .
2024-04-12 06:12:03 +09:00
Yu Watanabe
9f368d9eb2
network/ndisc: do nothing for existing routes if on-link flag is zero
...
This effectively reverts commit 155d7a2c04 .
From RFC 4861 section 6.3.4:
> Note, however, that a Prefix Information option with the on-link flag
> set to zero conveys no information concerning on-link determination and
> MUST NOT be interpreted to mean that addresses covered by the prefix
> are off-link.
So, we should not drop previously configured routes when receieved a RA
with Prefix Information option without on-link flag.
Closes #28435 .
2024-04-12 06:12:03 +09:00
Yu Watanabe
f87a606e10
Merge pull request #32213 from yuwata/network-ndisc-redirect-fix-sender-address-verification
...
network/ndisc: fix sender address verification of Redirect message
2024-04-12 06:09:44 +09:00
Yu Watanabe
bffa1c4889
sd-ndisc-redirect: fix verification of target address
...
See RFC 4861 section 8.1.
2024-04-12 04:59:42 +09:00
Yu Watanabe
9944629eee
network/ndisc: fix verification of sender of Redirect message
...
The sender must be the first-hop router of the destination. Previously,
we only accepted Redirect messages whose sender is the current default
router with the highest priority.
See RFC 4861 section 8.1 for more details.
Fixes #31981 .
2024-04-12 04:59:42 +09:00
Yu Watanabe
f76814757d
network/ndisc: split out ndisc_redirect_verify_sender()
...
No functional change, preparation for later commits.
2024-04-12 04:59:42 +09:00
Yu Watanabe
d9688518ff
network/ndisc: drop ndisc_request_redirect_route()
...
It is now called by only ndisc_redirect_handler(), and the check in
ndisc_request_redirect_route() is redundant and already done by
ndisc_redirect_verify_sender().
No functional change, just refactoring.
2024-04-12 04:59:42 +09:00
Yu Watanabe
ef6495ebb2
network/ndisc: redirect routes do not have lifetime
...
Hence, ndisc_router_update_redirect() does nothing. Let's remove it.
Also, ndisc_request_route() does not set lifetime for the route, it is
not necessary to set the third argument.
2024-04-12 04:59:42 +09:00
Yu Watanabe
33cab1d4ef
network/ndisc: introduce ndisc_request_router_route()
...
Then, make ndisc_request_route() generic and usable for configuring
routes based on both Router Advertisement and Redirect messages.
Note, ndisc_request_router() never set lifetime, so the dropped comment
in ndisc_request_redirect_route() is wrong.
No functional change, just refactoring.
2024-04-12 04:59:42 +09:00
Yu Watanabe
2e73aa507b
network/ndisc: do not set per-route MTU and hop limit
...
Setting MTU announced in RA message to routes is problematic, as the
value may be larger than the device MTU (IFLA_MTU), and in such case the
route cannot be used.
These two properties are now set per-interface, and gracefully handled
such invalid cases. Hence not necessary to set them to each route.
Follow-up for #32195 .
2024-04-12 04:59:38 +09:00
Yu Watanabe
fc4a9c9ce6
test: PROJECT_FILE macro cannot be used in generated code
...
If the build directory is outside of the source tree, ASSERT_XYZ()
triggers the following warning:
===
[20/569] Compiling C object test-hashmap.p/meson-generated_.._src_test_test-hashmap-ordered.c.o
In file included from ../../home/watanabe/git/systemd/src/basic/macro.h:399,
from ../../home/watanabe/git/systemd/src/basic/alloc-util.h:10,
from src/test/test-hashmap-ordered.c:5:
src/test/test-hashmap-ordered.c: In function ‘test_ordered_hashmap_get’:
../../home/watanabe/git/systemd/src/basic/log.h:216:27: warning: offset ‘32’ outside bounds of constant string [-Warray-bounds=]
216 | ? log_internal(_level, _e, PROJECT_FILE, __LINE__, __func__, __VA_ARGS__) \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../home/watanabe/git/systemd/src/basic/log.h:238:24: note: in expansion of macro ‘log_full_errno_zerook’
238 | (void) log_full_errno_zerook(level, 0, fmt, ##__VA_ARGS__); \
| ^~~~~~~~~~~~~~~~~~~~~
../../home/watanabe/git/systemd/src/basic/log.h:248:28: note: in expansion of macro ‘log_full’
248 | #define log_error(...) log_full(LOG_ERR, __VA_ARGS__)
| ^~~~~~~~
../../home/watanabe/git/systemd/src/shared/tests.h:251:25: note: in expansion of macro ‘log_error’
251 | log_error("%s:%i: Assertion failed: expected \"%s\" to be NULL, but \"%p\" != NULL", \
| ^~~~~~~~~
src/test/test-hashmap-ordered.c:614:9: note: in expansion of macro ‘ASSERT_NULL’
614 | ASSERT_NULL(r);
| ^~~~~~~~~~~
===
2024-04-11 09:29:22 +02:00
Yu Watanabe
e42a74803a
network/ndisc: fix updating valid lifetime of configured address
...
This makes the logic mostly follows RFC 4862 section 5.5.3 (e),
as draft-ietf-6man-slaac-renum-07 is deprecated.
Fixes #31449 .
2024-04-11 15:56:01 +09:00
Yu Watanabe
2d4c9c42ac
network/ndisc: set provider address in caller
...
Follow-up for 43d184682d .
No functional change, just refactoring.
2024-04-11 15:56:01 +09:00
Yu Watanabe
1ae891037e
Merge pull request #32202 from DaanDeMeyer/assert
...
tests: Improve assertion error messages
2024-04-11 09:51:49 +09:00
Yu Watanabe
8e91738fe9
libsystemd-network: do not trigger assertion by sd_*_is_running() with NULL
...
If systemd is built with developer mode, previously they trigger
hard assertions. Even built with release mode, we should not log about
that. Let's silently accept NULL and return false.
Prompted by https://github.com/systemd/systemd/pull/32166#issuecomment-2044710151 .
2024-04-10 22:53:55 +01:00
Yu Watanabe
cd226becd8
Merge pull request #32189 from mrc0mmand/test-tweaks
...
Another batch of assorted test tweaks
2024-04-10 16:57:00 +09:00
Yu Watanabe
f8e15d6d98
Merge pull request #32191 from yuwata/network-persistent-storage-follow-ups
...
network: follow-ups for persistent storage
2024-04-10 16:54:39 +09:00
Yu Watanabe
a0430b0d95
test-network: add test case for ndisc MTU option
2024-04-10 12:24:33 +09:00
Yu Watanabe
8c9ef90b19
network/ndisc: set IPv6 MTU through sysctl
...
Closes #31496 .
2024-04-10 12:22:43 +09:00
Yu Watanabe
fb71748e4f
network/sysctl: round IPv6 MTU with the current device MTU rather than the maximum MTU
...
Otherwise, writing IPv6 MTU may fail.
This also makes link_set_ipv6_mtu() take log level about rounding IPv6 MTU,
and downgrade the log level from LOG_WARNING -> LOG_INFO, as we usually
use LOG_WARNING for per-interface critical failure.
2024-04-10 12:15:33 +09:00
Yu Watanabe
eb426caae7
network: always set IPv6 MTU when we detect the device MTU is changed
...
Then, we can keep the IPv6 MTU even if the device MTU is changed by an
external tool, e.g. 'ip link set' command.
2024-04-10 12:15:33 +09:00
Yu Watanabe
d4386dd1c8
network/setlink: adjust requested MTU when it is ready to set
...
This should not change any effective behavior.
Just for safety, and making the logic consistent with others, e.g.
setting master ifindex.
2024-04-10 12:15:33 +09:00
Yu Watanabe
11a150bc43
po: update Japanese translation
2024-04-10 07:07:34 +09:00
Yu Watanabe
4d97f7deeb
network/varlink: fix error cause
...
Follow-up for e1254d0616 .
Addresses https://github.com/systemd/systemd/pull/31811#discussion_r1557552244 .
2024-04-10 04:59:43 +09:00
Yu Watanabe
fb6f98ae63
network: open persistent directory without O_PATH
...
Addresses https://github.com/systemd/systemd/pull/31811#discussion_r1557549629 .
2024-04-10 04:59:43 +09:00
Yu Watanabe
ce4ed0ad99
test-network: add test case for regenerating prefix stable address on conflict
...
For issue #31605 .
2024-04-10 04:36:03 +09:00
Yu Watanabe
e14679ff76
network/address-generation: regenerate IPv6 prefix stable address on conflict
...
If a generated address with IPv6Token=prefixstable conflicts with the
one on another node or interface, let's generate another address and try
to assign it.
This improves support of RFC 7217.
Fixes #31605 .
2024-04-10 04:36:03 +09:00
Yu Watanabe
d4dae4c243
network/dhcp6: return earlier if no lease acquired
...
Previously, even If an interface has not acquired a DHCPv6 lease,
networkd logs a misleading message:
===
Apr 09 10:44:57 systemd-networkd[3970750]: veth99: DHCPv6 lease lost
===
The function should do nothing when no lease acquired. Let's return
earlier and suppress the log message.
2024-04-09 09:39:36 +02:00
Yu Watanabe
0ac03e004c
network/address-generation: make generate_stable_private_address() optionally take the previously generated address
...
Currently, the argument is not used yet. The new argument will be used later
for regenerating prefix stable address on conflict.
2024-04-09 12:06:32 +09:00
Yu Watanabe
e700e48257
network/address-generation: also provide used tokens when generating address
...
Then, assign the token to the corresponding Address object.
2024-04-09 12:06:32 +09:00
Yu Watanabe
e39bb29100
network/address: make Address object optionally take reference to IPv6Token
...
Currently, the element is unused. Preparation for later commits.
2024-04-09 12:06:32 +09:00
Yu Watanabe
ffafb56125
network/address-generation: expose IPv6Token and introduce new/ref/unref functions for the type
...
No functional change. Preparation for later commits.
2024-04-09 12:06:32 +09:00
Yu Watanabe
43d184682d
network/ndisc: allow to call ndisc_request_address() without sd_ndisc_router object
...
Preparation for later commits.
2024-04-09 12:06:32 +09:00
Yu Watanabe
b03565bc17
network/dhcp-pd: split out dhcp_pd_request_address_one()
...
No functional change. Preparation for later commit.
2024-04-09 12:06:32 +09:00
Yu Watanabe
c848a0eef6
Merge pull request #31997 from yuwata/network-ndisc-zero-lifetime
...
network: fixlets for zero lifetime
2024-04-09 07:52:28 +09:00
Yu Watanabe
6952ebae3b
tree-wide: drop several remaining license headers
...
And downgrade the license of utf8.c to LGPL-2.0-or-later, to follow the
original license.
2024-04-08 10:14:50 +02:00
Yu Watanabe
caaf95985f
mountfsd: fix typo
...
Follow-up for 702a52f4b5 .
2024-04-08 09:22:06 +09:00
Yu Watanabe
1ea9151e6c
nsresourced: fix typo
...
Follow-up for 8aee931e7a .
2024-04-08 09:20:20 +09:00
Yu Watanabe
a1952a5c79
dissect: fix typo
...
Follow-up for 9444e54e56 .
2024-04-08 09:17:53 +09:00
Yu Watanabe
693a28d748
nspawn: fix typo
...
Follow-up for 0af7e29434 .
2024-04-08 09:12:08 +09:00
Yu Watanabe
9dcdf16b25
test-network: add test cases for Redirect and Neighbor Advertisement message handling
2024-04-05 06:22:42 +09:00
Yu Watanabe
447fe37ee3
test: introduce a test executable to send NDisc message
2024-04-05 06:22:19 +09:00
Yu Watanabe
6df0059441
network/ndisc: add basic support for Redirect message
...
Closes #31438 .
2024-04-05 05:57:54 +09:00
Yu Watanabe
44e8cf303b
sd-ndisc: add basic support of Redirect message
...
This makes sd-ndisc support Redirect message defined in RFC 4861.
2024-04-05 05:57:14 +09:00
Yu Watanabe
b03d7291d5
network/ndisc: remember the latest RA from the default router
...
The remembered RA will be used later. Preparation for later commits.
2024-04-05 05:55:06 +09:00
Yu Watanabe
36ca167220
Merge pull request #31373 from yuwata/network-neighbor-advertisement
...
network: add basic support of neighbor advertisement
2024-04-05 05:54:12 +09:00
Yu Watanabe
e17e438ede
udevadm-test: also show security labels if specified
...
Follow-up for 03b6879f4d .
2024-04-04 21:30:26 +01:00
Yu Watanabe
9990552f9a
backlight: fix detection of multiple graphic cards
...
Follow-up for e0504dd011 .
Hopefully, devices in PCI subsystem have some properties, thus have
their udev database file. But, that may not be true. Here, we only read
sysattrs of enumerated devices, hence it is not necessary to check if
the device is initialized or not.
2024-04-04 21:29:57 +01:00
Yu Watanabe
f7cb6801a2
udev: do not update sysattr and sysctl value on testing
...
Follow-up for 089bef6631 .
2024-04-04 21:29:30 +01:00
Yu Watanabe
6a363a838a
udevadm-test: insert missing line break
...
Addresses post-merge comment:
https://github.com/systemd/systemd/commit/03b6879f4d45c49264708aef872fd05af30ddcf0#r140587790
2024-04-04 20:10:28 +02:00
Yu Watanabe
87a33c0740
netowrk/ndisc: drop NDisc configurations when received NA without Router flag
...
Closes #28421 .
2024-04-05 02:16:03 +09:00
Yu Watanabe
ecab9b6040
test-ndisc: add basic tests for Neighbor Advertisement handling
2024-04-05 02:16:03 +09:00
Yu Watanabe
696eb2b8de
sd-ndisc: add basic support of Neighbor Advertisement message
...
This adds basic support of receiving and parsing Neighbor Advertisement
message defined in RFC 4861.
2024-04-05 02:16:03 +09:00
Yu Watanabe
405be62f05
tree-wide: refuse enumerated device with ID_PROCESSING=1
...
When enumerated devices are being processed by udevd, we will receive
corresponding uevents later. So, we should not process devices in that
case.
2024-04-05 01:49:20 +09:00
Yu Watanabe
54e6172550
tree-wide: use device_is_processed() more
2024-04-05 01:49:20 +09:00
Yu Watanabe
3df2b4557a
udev-util: rename device_is_processing() -> device_is_processed()
...
And make it also check the existence of the udev database.
2024-04-05 01:48:59 +09:00
Yu Watanabe
8c27f1ba4a
vmspawn: fix error code
2024-04-04 04:42:55 +09:00
Yu Watanabe
94ad70989f
man/example: also build example code with C90
...
Unfortunately, sd-bus-vtable.h, sd-journal.h, and sd-id128.h
have variadic macro and inline initialization of sub-object, these are
not supported in C90. So, we need to silence some errors.
2024-04-04 03:23:20 +09:00
Yu Watanabe
2893a1089e
Merge pull request #32072 from YHNdnzj/no-ellipsize
...
core/manager: use cellescape and don't be too aggressive
2024-04-04 02:44:59 +09:00
Yu Watanabe
3a6bee0510
Merge pull request #32043 from YHNdnzj/resume-clear-efi
...
units: introduce systemd-hibernate-clear.service that clears stale HibernateLocation EFI variable
2024-04-04 02:43:00 +09:00
Yu Watanabe
040cb66458
man/examples: set _GNU_SOURCE in source, rather than by compile option
...
Addresses https://github.com/systemd/systemd/pull/32057#issuecomment-2034408569 .
2024-04-04 02:30:29 +09:00
Yu Watanabe
e98d4c3599
man/meson: add simple build test for example code
2024-04-03 17:58:39 +09:00
Yu Watanabe
e10409ad55
sd-bus-vtable: add dummy macro to support compile without GNU extension
...
If SD_BUS_METHOD_WITH_ARGS() is set with SD_BUS_NO_ARGS and/or SD_BUS_NO_RESULT,
then it introduces
_SD_VARARGS_FOREACH_EVEN(_SD_ECHO, NULL)
-> _SD_VARARGS_FOREACH_SEQ(_01, …, _50, NULL)
Hence, the variadic argument `...` in _SD_VARARGS_FOREACH_SEQ() has no
argument, but it is not allowed if built without GNU extension, e.g. -std=c11.
Let's introduce one more unused dummy argument to support such situation.
2024-04-03 17:58:39 +09:00
Yu Watanabe
2548ce6a30
man/examples: fix sd- header path
2024-04-03 17:58:39 +09:00
Yu Watanabe
e84f70e16d
man/examples: use strerror() instead of %m
2024-04-03 17:58:35 +09:00
Yu Watanabe
06d0dcc009
man/example: fix build failure of hwdb-usb-device.c
...
STRLEN() and xsprintf() is our internal macros.
2024-04-03 17:44:41 +09:00