Commit Graph
100 Commits
Author SHA1 Message Date
Yu Watanabe 7afc8abdf3 Merge pull request #19487 from mrc0mmand/test-all-services-in-TEST-01
test: don't mask "supporting" services in TEST-01-BASIC
2021-05-03 12:15:29 +09:00
Yu Watanabe 0c9cdcb9d4 Merge pull request #19476 from yuwata/network-can
network: several CAN device related updates
2021-05-01 15:03:22 +09:00
Yu Watanabe bff97a251d Merge pull request #18904 from yuwata/udev-watch
udev: several inotify watch fixups
2021-05-01 15:02:43 +09:00
Yu Watanabe c068a17f6a sd-bus: fix vtable named argument logic
Fixes #19468.
2021-04-30 17:06:29 +01:00
Yu Watanabe b43669a4b1 test: add a simple test for udev watch 2021-04-30 19:42:09 +09:00
Yu Watanabe e63916ab29 test: generate debugging logs for udev tests 2021-04-30 19:42:09 +09:00
Yu Watanabe e1e56f3443 test: run udev tests after currently queued events are finished 2021-04-30 19:42:09 +09:00
Yu Watanabe e7f781e473 udev,sd_device: also save map from device ID to watch handle in /run/udev/watch
Previously, watch handle is saved in the udev databse. But in most cases,
the handle saved in the database is not updated. Especially, when udevd
is restarted, the inotify watch is restarted, but the database is not
updated.

Moreover, it is not necessary to save watch handle in the database, as
the handle is only take a effect during udevd is running, and the value
is meaningless when udevd is restarted.

So, this makes the opposite map from device ID to watch handle is saved
in /run/udev/watch as a symbolic link, and the handle not saved in the
database anymore.

Fixes #18525.
2021-04-30 19:41:41 +09:00
Yu Watanabe 5e0d051067 udev: make udev_watch_end() noop when device does not have devname 2021-04-30 19:32:14 +09:00
Yu Watanabe 4956f220a1 sd-device: cleanup sd_device_get_subsystem() 2021-04-30 19:32:10 +09:00
Yu Watanabe 6e25642f8e sd-device: drop sysname_set flag
When device_set_sysname() succeeds, sysname is always set.
2021-04-30 19:21:18 +09:00
Yu Watanabe ff7a8d2938 sd-device: minor optimization for sd_device_new_from_device_id() 2021-04-30 19:21:18 +09:00
Yu Watanabe db2bad4368 sd-device: check the validity of device id
The device id is used as filename under /run/udev/data or
/run/udev/watch.
2021-04-30 19:21:18 +09:00
Yu Watanabe fe7323815d sd-device: rename device_get_id_filename() -> device_get_device_id()
We have sd_device_new_from_device_id(), which takes device ID generated
from device_get_id_filename(). For consistency, let's rename the
function.
2021-04-30 19:21:18 +09:00
Yu Watanabe 0d77bc4a18 udev: refuse to enable inotify watch on remove event
Some udev rule may erroneously set inotify watch on remove event.
For safety, silently ignore such an inotify watch enablement.

This also moves inotify watch enablement code to udev-event.c.
2021-04-30 19:21:18 +09:00
Yu Watanabe 4cac2260c8 udev: also propagate error in udev_rules_apply_to_event() on remove event
When udev rules are not applied correctly, then run program lists is
not perfect. So, udev_event_execute_run() later in
worker_process_device() should not be called.
2021-04-30 19:21:18 +09:00
Yu Watanabe 75b4984638 udev: shorten code a bit 2021-04-30 19:21:18 +09:00
Yu Watanabe fa5d8899aa udev: drop unused variable 2021-04-30 19:21:18 +09:00
Yu Watanabe 99e0c96f31 sd-device: drop doubled empty lines 2021-04-30 19:21:18 +09:00
Yu Watanabe df7ee95913 udev: do not store inotify fd in a global variable
When manager_exit() or manager_free() is called, the global variable in
udev-watch.c is not set '-1'. Of course, that is safe, as the event source
for the inotify fd is unref()ed in manager_exit() and manager_free().
But let's not store fd globally.
2021-04-30 19:21:18 +09:00
Yu Watanabe 36161cba7c network: do not bring up CAN interface on configure 2021-04-30 19:16:15 +09:00
Yu Watanabe d9fc3b0da9 network: make CAN device follow activation policy 2021-04-30 19:16:15 +09:00
Yu Watanabe 04952b25e8 network: introduce link_activate() 2021-04-30 19:16:15 +09:00
Yu Watanabe 600b7898e8 network: do not try to configure address or etc on can device 2021-04-30 19:16:02 +09:00
Yu Watanabe e361398e48 network: can: shorten code a bit 2021-04-30 19:11:25 +09:00
Yu Watanabe ed52cce33f network: can: do not warn if link does not exist anymore 2021-04-30 19:11:25 +09:00
Yu Watanabe f282ce20aa network: drop duplicated link_up_can() 2021-04-30 19:11:25 +09:00
Yu Watanabe 4bd7e99232 test-network: set DNS= and NTP= for DHCP server
Now, RoutesToDNS= and RoutesToNTP= are enabled by default on DHCPv4
client. So, if DHCP server picks up DNS or NTP servers from uplink,
then the routes may break CI environment.

Hopefully fixes #19463.
2021-04-30 10:57:17 +02:00
Yu Watanabe 2ff739a6ac kernel-insteall: do not remove the first slash in $ENTRY_DIR
Follow-up for cd0d230e7b.

Fixes #19456.
2021-04-30 15:37:34 +09:00
Yu Watanabe 65a245c3ef Merge pull request #19459 from yuwata/network-log-neighbor
network: introduce log_neighbor_debug()
2021-04-30 15:36:29 +09:00
Yu Watanabe 5aa87ec7ec network: neighbor: use sd_netlink_message_read_data() at one more place 2021-04-30 05:44:58 +09:00
Yu Watanabe 2775e1c578 network: introduce log_neighbor_debug() 2021-04-30 05:44:14 +09:00
Yu Watanabe 7653a9dcd3 network: reduce indentation in log_address_debug() or friends 2021-04-30 05:43:22 +09:00
Yu Watanabe ae8e3c2b25 ether-addr-util: introduce ether_addr_to_string_alloc() 2021-04-30 05:39:10 +09:00
Yu Watanabe 3c7f1c0757 network: do not set nexthop ID, gateway, and multipath routes simultaneously
See kernel's rtm_to_fib_config() in net/ipv4/fib_frontend.c and
rtm_to_fib6_config() in net/ipv6/route.c.

Note that if both gateway and multipath routes are specified, then
kernel ignores gateway. So, strictly speaking, setting both gateway and
multipath routes is allowed by kernel. But such situation is mostly
user's misconfiguration. Let's refuse it.

Note that the conditions newly added in route_configure() are redundant,
as all static configurations are already verified in
route_section_verify(), and dynamic configurations do not set
nexthop_id or multipath routes. Just for safety.
2021-04-29 22:54:40 +09:00
Yu Watanabe 8a9ce525d1 network: do not remove reject type routes more than once
Usually, removing non-existing addresses, routes, and etc, are safe.
However, when multiple interfaces lost their carriers simultaneously,
then manager_drop_routes() and manager_drop_nexthop() are called multiple
times. If a route with a blackhole nexthop is removed in that process,
the later removal requests of the route fail with -EINVAL, rathar
than -ESRCH, as the corresponding nexthop does not exist anymore.

So, let's not remove routes which managed by Manager more than once.
2021-04-29 09:11:36 +09:00
Yu Watanabe c3fa1257da network: do not set route type on specific route removal 2021-04-29 09:08:55 +09:00
Yu Watanabe fd221544f2 network: unify log_link_message_full_errno() and log_message_warning_errno()
This also introduces log_message_error_errno() or friends.
2021-04-29 09:07:42 +09:00
Yu Watanabe e558d4f47a network: dhcp4: downgrade log level when interface is removed 2021-04-29 08:58:13 +09:00
Yu Watanabe 4cbd379e01 network: drop meaningless bitfield specifiers 2021-04-29 08:58:13 +09:00
Yu Watanabe bf8a5f6473 Merge pull request #19449 from yuwata/network-downgrade-log-level
network: downgrade log level and fix typo
2021-04-29 08:54:08 +09:00
Yu Watanabe 086a351ad9 network: ndisc: fix ipv6 route preference for routes with Gateway=_ipv6ra 2021-04-29 08:50:54 +09:00
Yu Watanabe 27a213392f network: neighbor: downgrade log level
As commented in the code, kernel sends messages about neighbors after
a link is removed.
2021-04-29 03:16:30 +09:00
Yu Watanabe 83e7c37b19 network: link: downgrade log level
The error is harmless, and will be ignored. Let's downgrade log level.
2021-04-29 03:16:30 +09:00
Yu Watanabe dec2ed3e75 network: dhcp4: downgrade log level
It is not necessary to log such information on higher level.
2021-04-29 03:12:29 +09:00
Yu Watanabe e110d0f0f6 systemctl: fix build failure
Follow-up for 255b1fc8a3.
2021-04-29 03:03:55 +09:00
Yu Watanabe 255b1fc8a3 bus-print-property: introduce BusPrintPropertyFlags
Follow-ups for 1ceaad6937.
2021-04-28 17:36:09 +02:00
Yu Watanabe e1220a70de test-network: add tests for RoutesToNTP= 2021-04-27 00:01:18 +09:00
Yu Watanabe d7b0450639 network: dhcp4: introduce RoutesToNTP= boolean setting 2021-04-27 00:01:18 +09:00
Yu Watanabe 949b2c95c9 network: dhcp4: split and rename link_set_dns_routes() 2021-04-27 00:01:18 +09:00
Yu Watanabe 7057030610 network: dhcp4: enable RoutesToDNS= by default 2021-04-27 00:01:18 +09:00
Yu Watanabe 0e27527170 network: update comment and log message
After 4b30f2e135, reading stable_secret
sysctl property fails with -ENOMEM, instead of -EIO.
This is due to read_full_virtual_file() uses read() as the backend while
read_one_line_file() uses fgetc(). And each functions return different
error on fails.

Anyway, the failure is harmless here. So, the log message and comment is
updated.

Closes one of the issues in #19410.
2021-04-26 10:08:41 +01:00
Yu Watanabe 25054e1bfb network: add missing sections
Follow-up for 4e26a5baa0.

Fixes one of issues in #19410.
2021-04-26 10:07:52 +02:00
Yu Watanabe 8170992a79 core/service: fix typo
Follow-up for bbe19f6884.
2021-04-26 09:20:30 +09:00
Yu Watanabe cead8ed66e network: fix typo
Follow-up for 4b409e855b.
2021-04-26 09:19:41 +09:00
Yu Watanabe 625772c9c1 test-network: update tests for DHCP routes
This removes static-route option from the default dnsmasq command.
2021-04-23 08:49:29 +09:00
Yu Watanabe 3e42968342 network: dhcp4: ignore null dns address 2021-04-23 08:49:29 +09:00
Yu Watanabe afe23f876e network: dhcp4: set gateway for route to DNS server if it is not in the same network
Fixes #19077.
2021-04-23 08:49:29 +09:00
Yu Watanabe 7f206276ad network: dhcp4: ignore gateway in static routes if destination is link-local or in the same network
This also configures routes to gateways in static routes if the
destination is not in the same network.
2021-04-23 08:49:29 +09:00
Yu Watanabe b714d9a6e3 network: dhcp4: also set route MTU to prefix route and DNS routes 2021-04-23 08:49:29 +09:00
Yu Watanabe ec39af3249 Merge pull request #19392 from yuwata/network-dhcp-split-link_set_dhcp_routes
network: split link_set_dhcp_routes() into smaller functions
2021-04-23 08:32:46 +09:00
Yu Watanabe e1c08a3d0a network: dhcp4: simplify link_set_dns_routes() 2021-04-22 12:49:56 +09:00
Yu Watanabe ff2cf67740 network: dhcp4: introduce link_set_dhcp_gateway() and link_set_dhcp_route_to_gateway() 2021-04-22 12:49:56 +09:00
Yu Watanabe 7872d0f7b6 network: dhcp4: introduce link_set_dhcp_static_routes() 2021-04-22 12:49:56 +09:00
Yu Watanabe c0fef8f349 network: dhcp4: introduce link_set_dhcp_prefix_route() 2021-04-22 12:49:56 +09:00
Yu Watanabe 28f9667d05 network: dhcp: constify link_get_duid() 2021-04-21 21:00:45 +09:00
Yu Watanabe 8c72f5c077 network: dhcp: introduce duid_needs_product_uuid() helper function 2021-04-21 21:00:45 +09:00
Yu Watanabe 294f129b0d network: configure non-dhcp configs earlier even DUID-UUID is used by DHCP clients
Previously, if DUID-UUID is used, all configurations are configured
after networkd gets product uuid of machine.

This makes only DHCP clients are delayed, and other configs are
configured earlier.
2021-04-21 21:00:45 +09:00
Yu Watanabe 4e26a5baa0 network: make IAID and DUID for DHCPv6 configurable explicitly
Closes #18996.
2021-04-21 21:00:11 +09:00
Yu Watanabe cde74a65c1 network: move dhcp related conf parsers to networkd-dhcp-common.c 2021-04-21 20:56:58 +09:00
Yu Watanabe b67bbfef14 Merge pull request #19344 from yuwata/network-route-metric-19028
network: add RouteMetric= setting in [Address] and more
2021-04-21 20:51:31 +09:00
Yu Watanabe ea846e45c1 doc: fix typo 2021-04-21 09:57:30 +02:00
Yu Watanabe baad6421b1 network: dhcp6: logs about generated addresses in delegated prefix 2021-04-21 14:04:39 +09:00
Yu Watanabe 4b409e855b network: dhcp6: logs about delegated prefixes
Closes #19354.
2021-04-21 14:04:33 +09:00
Yu Watanabe eccdc68771 in-addr-util: introduce 'struct in_addr_prefix' and hash ops for it 2021-04-21 13:57:47 +09:00
Yu Watanabe 93e44aa92f in-addr-util: add assertions 2021-04-21 13:57:47 +09:00
Yu Watanabe 3e726c156b test-network: update test for RouteMetric= 2021-04-21 13:55:02 +09:00
Yu Watanabe 4c0aae015f man: update explanation about route metric 2021-04-21 13:55:02 +09:00
Yu Watanabe b3cde1c3f5 network: set metric for prefix route of IPv4 link-local address 2021-04-21 13:55:02 +09:00
Yu Watanabe 0e1fb1d09a network: radv: add RouteMetric= setting in [IPv6Prefix] 2021-04-21 13:55:02 +09:00
Yu Watanabe 9fe0b7b493 network: dhcp6-pd: add RouteMetric= setting in [DHCPv6PrefixDelegation] 2021-04-21 13:55:02 +09:00
Yu Watanabe 8ebafba9f9 network: move RouteMetric= from [DHCPv6] to [IPv6AcceptRA]
As the value is used in the routes in RA.
2021-04-21 13:55:02 +09:00
Yu Watanabe 415deef9c3 network: dhcp4: also apply RouteMetric= setting in [DHCPv4] to prefix route 2021-04-21 13:55:02 +09:00
Yu Watanabe c4ff0629dd network: add RouteMetric= setting in [Address] section 2021-04-21 13:54:59 +09:00
Yu Watanabe a8d21c91f9 network: show route metric in debug log 2021-04-21 13:42:45 +09:00
Yu Watanabe 0e7bb99ff9 sd-netlink: add missing address types 2021-04-21 13:42:08 +09:00
Yu Watanabe d5bfddf037 man: fix typo
Follow-up for e73309c532.
2021-04-20 11:41:05 +01:00
Yu Watanabe 66205cb3f5 wifi-util: do not set zero errno to log_debug_errno() 2021-04-20 10:39:50 +02:00
Yu Watanabe 4e6c50a5d4 core: add RestrictAddressFamilies=none to deny all address families
Closes #15753.
2021-04-19 11:47:08 +01:00
Yu Watanabe 6604fb0207 fileio: use take_fdopen_unlocked()
This fixes maybe-uninitialized warning:
```
../src/basic/fileio.c: In function ‘chase_symlinks_and_fopen_unlocked’:
../src/basic/fileio.c:1026:19: warning: ‘f’ may be used uninitialized in this function [-Wmaybe-uninitialized]
 1026 |         *ret_file = f;
      |         ~~~~~~~~~~^~~

```
2021-04-17 00:22:12 +09:00
Yu Watanabe b4bc798f87 Merge pull request #19332 from yuwata/log_xxx_yyy_errno-follow-ups-19317
core,timedate,network: make log_unit_error_errno() or friends refuse zero errno
2021-04-16 23:44:32 +09:00
Yu Watanabe 4ab334472c Merge pull request #19325 from sainAk/patch-1
hwdb: 60-keyboard:: merge Micro Star in MSI and  merge MSI Prestige And MSI Modern FnKeys and Special keys definitions
2021-04-16 20:01:10 +09:00
Yu Watanabe 74bd6ad016 network: update log message
In some optimization level with gcc, including netdev->ifname in log
message causes error.
2021-04-16 19:48:54 +09:00
Yu Watanabe 6064344894 network: make log_netdev_xxx_errno() refuse zero errno 2021-04-16 09:17:28 +09:00
Yu Watanabe 5b098203fd timedate: make log_unit_xxx_errno() refuse zero errno 2021-04-16 08:46:51 +09:00
Yu Watanabe ac51363496 core: make log_unit_xxx_errno() refuse zero errno 2021-04-16 08:46:11 +09:00
Yu Watanabe 22bbba8444 sd-dhcp-client: introduce sd_dhcp_client_is_running() 2021-04-14 22:31:28 +02:00
Yu Watanabe 6fb61918cc udev: ignore additional newline in sysfs attribute on verify
Some driver may automatically add additional newline at the end.
E.g., portno attribute for qeth driver.

Fixes #19314.
2021-04-15 01:46:58 +09:00
Yu Watanabe 6873d20392 fileio: introduce a new flag to make write_string_file() ignore trailing newline
When writing a sysfs attribute, kernel may automatically append newline
at the end, e.g., 'portno' attribute for qeth driver.
2021-04-15 01:40:52 +09:00
Yu Watanabe f11bee0cb9 wait-online: update debug log messages 2021-04-14 22:17:44 +09:00