Yu Watanabe
5c19169fe9
tree-wide: fix typo
2022-08-10 19:43:38 +09:00
Yu Watanabe
53403091d6
meson: use 'not in'
...
Follow-ups for 60f97fee2d and
3296334473 .
2022-08-09 20:21:30 +01:00
Yu Watanabe
23b3819209
test-network: split out qdisc and wait-online tests from NetworkdNetworkTests
2022-08-09 19:37:50 +09:00
Yu Watanabe
4c7d13f4b2
test-network: split test_qdisc() and test_qdisc2()
...
And check module availability in each tests.
This also sorts qdisc tests.
2022-08-09 19:37:50 +09:00
Yu Watanabe
854f989958
test-network: check qdisc feature by module existence
2022-08-09 19:37:50 +09:00
Yu Watanabe
5cdc7c89cb
test-network: rename tun99 and tap99
...
The names seem to be used in AWS.
This also merges test_tun() and test_tap().
2022-08-09 19:37:49 +09:00
Yu Watanabe
17479d51cc
test-network: show stdout and stderr on failure in check_output()
2022-08-09 19:37:49 +09:00
Yu Watanabe
66504b22e2
test-network: drop unused text= arguments
2022-08-09 19:37:49 +09:00
Yu Watanabe
b05c4d6bbf
test-network: also run timesyncd under sanitizer or valgrind
2022-08-09 19:37:49 +09:00
Yu Watanabe
67a9b3ec94
test-network: use timedatectl in build directory
2022-08-09 19:37:49 +09:00
Yu Watanabe
9b2a2e06c4
network/teql: wait for corresponding teql interface to be available
2022-08-09 19:37:49 +09:00
Yu Watanabe
21261ea231
network/qdisc: introduce is_ready() in qdisc vtable
...
Preparation for next commit.
2022-08-09 19:37:49 +09:00
Yu Watanabe
eff6bc9294
Merge pull request #24244 from yuwata/device-enumerator
...
sd-device-enumerator: fix sysattr match
2022-08-09 04:57:48 +09:00
Yu Watanabe
50f9c507b2
test: add tests for sd_device_enumerator_add_match_sysattr/property()
2022-08-09 02:21:25 +09:00
Yu Watanabe
b07131facf
sd-device-enumerator: FOREACH_DEVICE_PROPERTY() does not provide NULL value
...
Hence, when sd_device_enumerator_add_match_property() called with NULL
for value, then the filter always unmatches with the device.
2022-08-09 01:17:03 +09:00
Yu Watanabe
585f2035b3
sd-device-enumerator,monitor: fix sysattr match
...
Previously, if sd_device_enumerator_add_match_sysattr() is called for
the same sysattr with different values, then no device passed the filter.
Now, the accepted values (or patterns) are stored in strv, and if the
sysattr value of a device matches with the strv, then the device passes
the filter.
2022-08-09 01:17:00 +09:00
Yu Watanabe
57a0e3f503
Merge pull request #24221 from yuwata/dhcp-client-cleanups
...
dhcp: use struct hw_addr_data
2022-08-08 23:59:58 +09:00
Yu Watanabe
52be2b43f5
hash-funcs: introduce string_hash_ops_free_strv_free
2022-08-08 23:41:28 +09:00
Yu Watanabe
113522868a
dhcp: add assertions about client state
2022-08-08 20:19:46 +09:00
Yu Watanabe
4473cd7f61
dhcp: fix potential buffer overflow
...
Fixes a bug introduced by 324f818781 .
This also renames several macros for DHCP packet size.
2022-08-06 13:06:32 +09:00
Yu Watanabe
073a1daaba
dhcp: make dhcp_network_bind_raw_socket() take struct hw_addr_data
2022-08-06 04:57:27 +09:00
Yu Watanabe
8cad358e4a
dhcp: make dhcp_identifier_set_duid() take struct hw_addr_data
2022-08-06 04:53:36 +09:00
Yu Watanabe
3b75435db6
dhcp: make dhcp_identifier_set_iaid() take struct hw_addr_data
2022-08-06 04:53:36 +09:00
Yu Watanabe
e0ead13088
sd-dhcp6-client: use hw_addr_set()
2022-08-06 04:53:36 +09:00
Yu Watanabe
7e5c25b244
sd-dhcp-client: use struct hw_addr_data to store MAC and broadcast address
2022-08-06 04:53:36 +09:00
Yu Watanabe
069f5df051
ether-addr-util: introduce hw_addr_set() helper function
2022-08-06 04:53:36 +09:00
Yu Watanabe
7fddb9704f
dhcp4: stop client before updating MAC address
2022-08-06 04:53:36 +09:00
Yu Watanabe
ebf404a4d0
sd-netlink: rename NLType and friends
...
In sd-netlink, we use 'type' for naming many variables with different type,
and worst of all, function like `type_get_type()` exists. That makes the
code hard to understood.
Let's rename
- NLType -> NLAPolicy
- NLTypeSystem -> NLAPolicySet
- NLTypeSystemUnion -> NLAPolicySetUnion
- type_get_type() -> policy_get_type()
- type_get_type_system() -> policy_get_policy_set(), and so on.
This also changes the type of attribute taken by e.g.
`sd_netlink_message_append_string()` from `unsigned short` -> `uint16_t`
to make the variable size clearer.
2022-08-06 03:53:51 +09:00
Yu Watanabe
96788d2aa4
udev-util: assume system is running on AC power when no battery found
...
Fixes #24214 .
2022-08-06 03:42:32 +09:00
Yu Watanabe
1c6e17e5d1
udev-util: align string table
2022-08-06 03:35:04 +09:00
Yu Watanabe
1ab7e2b587
Merge pull request #23340 from yuwata/network-check-sr-iov-pf-state
...
network: check SR-IOV PF state
2022-08-06 03:18:30 +09:00
Yu Watanabe
c75efa3f7e
Merge pull request #23508 from yuwata/core-device
...
core/device: fix devlink handling
2022-08-06 03:18:14 +09:00
Yu Watanabe
1f6d268b4b
core/device: add comments for boolean arguments
2022-08-05 22:16:58 +09:00
Yu Watanabe
4a1a1caf21
core/device: always accept syspath change
...
When multiple devices have the same devlink, then
adding/updating/removing one of the device may cause syspath change.
Fixes the following issue in
https://github.com/systemd/systemd/issues/23208#issue-1217909746
> the above shows an inconsistency between udev's and systemd's handling
> of the two different devices having the same alias. While udev replaces
> the by-uuid symlink which now points to sdh1 rather than sdd1, systemd
> keeps the previous mapping to sdd1 and emits a warning. This is not the
> problem cause but worth mentioning.
2022-08-05 22:15:02 +09:00
Yu Watanabe
dce2d35ce5
core/device: move several functions
...
No functional change. A preparation for later commits.
2022-08-05 22:13:47 +09:00
Yu Watanabe
367a2597c3
core/device: store the original path
...
The unit name may be hashed. Hence, we cannot obtain the original path
from the unit name.
The path will be used in the later commits.
2022-08-05 22:13:47 +09:00
Yu Watanabe
e33232d405
network: also check SR-IOV PF port and other VF ports before configuring
...
When a PF port becomes down (this can happens e.g. the PF port is joining
a bond interface), some drivers make its VF ports also become down, and
may cause failures in configuring VF ports.
Similary, when a VF port become down, some drivers make its PF port and
other VF ports down.
Let's configure SR-IOV ports (both PF and VFs) after all link-layer
settings of all ports being applied.
Fixes #23315 .
2022-08-05 21:49:27 +09:00
Yu Watanabe
b0ff6dea38
network: manage SR-IOV PF and VF ports
2022-08-05 21:49:27 +09:00
Yu Watanabe
00117f8811
network: split out link_is_ready_to_create_stacked_netdev()
...
Preparation for later commits.
2022-08-05 21:49:27 +09:00
Yu Watanabe
4b482e8bf4
network: check link state with link_is_ready_to_configure() before configuring DHCP client or friends
...
Otherwise, DHCP client or friends may started before link-layer properties,
e.g. MAC address, being configured or the link being activated.
2022-08-05 21:49:27 +09:00
Yu Watanabe
2fd3908b5c
network: drop carrier check for unmanaged interface from link_is_ready_to_configure()
...
Preparation for later commits. No functional change.
2022-08-05 21:49:27 +09:00
Yu Watanabe
d8d4db58ca
network: refuse to configure anything on pending or initialized state
2022-08-05 21:49:27 +09:00
Yu Watanabe
53c2e3b9ba
network: unset master ifindex only when necessary
2022-08-05 21:49:27 +09:00
Yu Watanabe
4d79af57ca
network: wiphy: use ERRNO_IS_DEVICE_ABSENT()
2022-08-05 21:49:27 +09:00
Yu Watanabe
59611eb9b8
udev: ignore empty SR-IOV VF suffix
...
It should not happen. Just for safety.
2022-08-05 21:49:27 +09:00
Yu Watanabe
68a52f5973
sd-device: introduce sd_device_new_child()
2022-08-05 21:49:23 +09:00
Yu Watanabe
14e7bc2e77
Merge pull request #23367 from yuwata/core-mount
...
core/mount: fix dependency issues
2022-08-05 13:48:23 +09:00
Yu Watanabe
49ad287292
test-network: support the case that l2tp module is not supported
...
Hopefully fixes the issue reported at
https://github.com/systemd/systemd-centos-ci/pull/517#issuecomment-1205399798 .
2022-08-04 18:39:04 +00:00
Yu Watanabe
413f20b4ac
test: add test case for mount unit dependencies
2022-08-05 01:35:38 +09:00
Yu Watanabe
49267b1b14
core/mount: make device deps from /proc/self/mountinfo and .mount unit file exclusive
...
Before this commit, when a .mount unit file is loaded, the device
dependencies from the unit file are automatically added. If a device
that is different from which specified in .mount unit file is mounted
on the path, then the device dependencies about the device are also added.
Hence, the unit has device dependencies about two (or more) different
devices. Hence, if one of the devices are unplugged, even if another one
is mounted on the path, then the path is unmounted.
This commit makes device dependencies from two different sources
exclusive, and always regenerate the dependencies when one of the
information is updated.
Fixes #19983 and #23552 .
2022-08-05 01:35:38 +09:00
Yu Watanabe
0fe06168b3
core/mount: also remove default deps from /proc/self/mountinfo when it is updated
...
The dependencies tagged with UNIT_DEPENDENCY_MOUNTINFO_DEFAULT depend
on both /proc/self/mountinfo and corresponding .mount unit file.
Hence, if some information from mountinfo is updated, e.g. device mounted
on the path, we need to update the dependencies.
2022-08-05 01:35:38 +09:00
Yu Watanabe
b9e6d23dfc
core/mount: set Mount.from_proc_self_mountinfo flag before adding default dependencies
...
When the function mount_setup_new_unit() is called, the corresponding
.mount unit file is not loaded. Hence, Mount.from_fragment is false.
To add default dependencies to e.g. .device units, it is necessary that
the Mount.from_proc_self_mountinfo flag is set. However, the flag was
not set even the unit has information from /proc/self/mountinfo.
Partially fixes #19983 .
2022-08-05 01:35:38 +09:00
Yu Watanabe
03e52e8cc3
core: unit_name_from_path() does not return -ENAMETOOLONG anymore
...
Follow-ups for a7fb1f2eae and
1d0727e76f .
2022-08-05 01:34:55 +09:00
Yu Watanabe
6688b72d32
core/mount: use set_put_strdup_full()
2022-08-05 01:32:28 +09:00
Yu Watanabe
ee5cde205c
Merge pull request #24174 from yuwata/network-link-local-address
...
network: fix link local address handling
2022-08-02 12:56:01 +09:00
Yu Watanabe
e4e0b239f6
test-network: add test case for #23197
2022-08-02 03:43:04 +09:00
Yu Watanabe
bd7e0a3f1c
network: make link_may_have_ipv6ll() optionally check Multicast= setting
...
Fixes the IPv6LL issue in #23197 .
2022-08-02 03:35:00 +09:00
Yu Watanabe
5fb5fae933
network: fix possible NULL-pointer dereference
2022-08-02 03:32:55 +09:00
Yu Watanabe
e0c0cd49e5
network: do not try to start ipv4acd on non-supported interfaces
...
Fixes IPv4LL issue reported in #23197 .
2022-08-02 03:06:21 +09:00
Yu Watanabe
29104ded1c
network: split link_ipv4ll_enabled() into two
...
And move it from networkd-link.[ch] to relevant files.
2022-08-02 03:02:48 +09:00
Yu Watanabe
2d3d0e8f7d
network: drop doubled semicolon
2022-08-02 02:44:37 +09:00
Yu Watanabe
5162b2a1c4
tree-wide: fix typo
2022-08-02 02:43:38 +09:00
Yu Watanabe
3cf9c51e97
test: restart logind before cleaning up sessions
...
Hopefully, fixes #24040 .
2022-07-31 00:15:47 +09:00
Yu Watanabe
54d5c126d3
test: do not restart getty@tty2 automatically
2022-07-31 00:15:47 +09:00
Yu Watanabe
fe9d58b25a
test: terminate session and user on cleanup
2022-07-31 00:15:47 +09:00
Yu Watanabe
a36be3e57f
meson: use 0 for default uids, gids, and time epoch
...
0 UID and GID are special, and should not be acceptable for the settings.
Hence, we can handle 0 as unset.
Strictly speaking, time epoch with 0 is valid, but I guess no one use
0 as a valid value.
2022-07-30 13:58:12 +09:00
Yu Watanabe
574febda6b
core/mount: downgrade log level about several mkdir failures
2022-07-27 01:13:27 +09:00
Yu Watanabe
e5e6b7c225
Revert "core/mount: fail early if directory cannot be created"
...
This reverts commit e4de58c823 .
If mkdir() fails and the path does exist, then the later mount
command fails anyway. Hence, it is not necessary to fail here.
Fixes #24120 .
2022-07-27 01:13:27 +09:00
Yu Watanabe
0a58cd0045
home: drop conflicted headers
...
Fixes #24117 .
2022-07-26 23:41:48 +09:00
Yu Watanabe
52023622d2
homed: fix dbus node enumerator
...
Fixes #24114 .
2022-07-26 23:11:34 +09:00
Yu Watanabe
7c35b78a0b
unit-file: avoid (null) in debugging logs
...
The variable `inst` was set to NULL by TAKE_PTR().
This fixes the following log message:
```
systemd[1]: Unit getty@tty2.service has alias (null).
```
2022-07-24 20:51:27 +09:00
Yu Watanabe
978642b633
Merge pull request #24020 from yuwata/network-rfkill
...
network: fix wlan interface handling when its RF is killed
2022-07-24 13:01:50 +09:00
Yu Watanabe
cd331a6d51
Merge pull request #23828 from yuwata/nfnl-cleanups
...
sd-netlink: several cleanups for netfilter
2022-07-24 13:01:28 +09:00
Yu Watanabe
573bb24df7
sd-netlink: introduce sd_nfnl_{send,call}_batch()
...
This also introduces sd_nfnl_message_new() which can be also used for
non-nftables subsystems.
2022-07-24 00:16:21 +09:00
Yu Watanabe
04d2003718
sd-netlink: do not compare pointer with 0
2022-07-24 00:05:32 +09:00
Yu Watanabe
665bc9e6e2
firewall-util: introduce nfnl_close_expr_container() helper function
...
And merge nfnl_add_expr_lookup_set() and nfnl_add_expr_lookup_map().
2022-07-24 00:05:32 +09:00
Yu Watanabe
df7371708e
sd-netlink: merge sd_nfnl_nft_message_{new,del}_setelems_begin()
...
And this makes the new merged function `sd_nfnl_nft_message_new_setelems()`
not open container, as containers should be opened and closed in the
same function in general. Otherwise, it is hard to understand which
level we are in the nested attribute tree.
2022-07-24 00:05:09 +09:00
Yu Watanabe
9d884ac36d
sd-netlink: drop unused sd_nfnl_nft_message_del_table()
2022-07-23 23:52:42 +09:00
Yu Watanabe
2c08455eed
sd-netlink: introduce sd_netlink_message_append_container_data()
2022-07-23 23:52:42 +09:00
Yu Watanabe
64f090a61a
sd-netlink: several cleanups for netfilter
...
- rename family -> nfproto, and other arguments,
- check specified nfproto,
- change type of several function arguments that specify data length,
- add several assertions,
- drop unnecessary headers.
2022-07-23 23:52:42 +09:00
Yu Watanabe
35cca046cf
firewall-util: drop unnecessary string attribute
...
As `sd_netlink_message_open_container_union()` also appends the string
attribute.
2022-07-23 23:52:42 +09:00
Yu Watanabe
295942cb46
firewall-util-nft: various cleanups
...
- add missing assertions,
- align enum elements,
- use cleanup attribute, and so on.
2022-07-23 23:52:35 +09:00
Yu Watanabe
8547260579
tree-wide: drop unnecessary inclusion of netlink-util.h
2022-07-23 23:31:23 +09:00
Yu Watanabe
13c026ca83
sd-netlink: move rtnl_message_type_is_*() to netlink-message-rtnl.c
2022-07-23 23:31:23 +09:00
Yu Watanabe
a9d2d037ee
network: do not try to bring up wifi interface if rfkill is active
...
This fixes the following error:
---
systemd-networkd[465]: wlan0: Could not bring up interface: Operation not possible due to RF-kill
---
Fixes #23649 .
2022-07-23 20:55:03 +09:00
Yu Watanabe
8642e04b78
network: also assign rfkill device to Wiphy object
...
Preparation for later commits.
2022-07-23 20:55:03 +09:00
Yu Watanabe
c49d536295
network: assign corresponding sd-device object to Wiphy object
...
As an analogy for Link object, let's each Wiphy object has the
corresponding sd-device object. The sd-device object will be used in
later commits.
2022-07-23 20:55:02 +09:00
Yu Watanabe
fc85b32302
network: set wiphy name in wiphy_new()
...
Then, we can assume all Wiphy objects managed by Manager has both valid
index and name.
2022-07-23 20:53:06 +09:00
Yu Watanabe
71cdfe16aa
network: add TODO about interface renaming
2022-07-23 20:04:28 +09:00
Yu Watanabe
75255a8d43
network: unref sd-device object assigned to Link on remove uevent
...
Otherwise, outdated device information may be used in a short timespan.
2022-07-23 20:04:28 +09:00
Yu Watanabe
1fd3ac1eef
network: introduce a tiny wrapper for manager_udev_process_link()
...
Preparation for later commits.
2022-07-23 20:04:22 +09:00
Yu Watanabe
8de56fb3e0
network: rename Link.sd_device -> Link.dev
2022-07-23 20:00:44 +09:00
Yu Watanabe
32ab27afe8
test-network: reload udevd when .link file is copied/removed
2022-07-23 15:05:22 +09:00
Yu Watanabe
009b2c3ac1
udev-builtin: logs when needs reloading
2022-07-23 15:05:22 +09:00
Yu Watanabe
e9d1fae3bb
udev: reload rules and builtins only when mtime of a config changed
...
This makes udevd reload rules only when the timestamp is updated,
even on SIGHUP or `udevadm control --reload`.
So, we can call `udevadm control --reload` without huge performance
penalty when no rules, .link files, and so on are changed.
2022-07-23 15:05:22 +09:00
Yu Watanabe
acfbd71ccc
udev: save stats of all udev rules file
...
The mtime of directory is not updated when an existing rule file is
changed. Hence, paths_check_timestamp() is not reliable.
2022-07-23 15:05:22 +09:00
Yu Watanabe
3f4dfd9d87
conf-parser: add a boolean flag for config_get_stats_by_path() to control if drop-in configs are checked
...
Preparation for later commits.
2022-07-23 15:03:48 +09:00
Yu Watanabe
d7bddfa109
udev: delay to start queued events on udevadm control --start-exec-queue
2022-07-23 14:08:40 +09:00
Yu Watanabe
8e543eb86a
udev: use event_reset_time_relative()
2022-07-23 14:08:40 +09:00
Yu Watanabe
6e40ed5325
udev: downgrade error level and mention that the error is ignored
2022-07-23 14:08:40 +09:00