Yu Watanabe
b9e1caf64a
network/route-nexthop: store ifindex of the assigned interface in Route.nexthop.ifindex
...
And use it if set on building netlink message.
2024-01-15 10:28:25 +09:00
Yu Watanabe
054b8c2817
network/route: also use RouteNextHop for managing gateway
...
No functional change, just refactoring.
2024-01-15 10:28:25 +09:00
Yu Watanabe
fea879cd04
network/route-nexthop: introduce struct RouteNextHop and replace MultipathRoute with it
...
It is mostly equivalent to MultipathRoute. So, no functional change,
just refactoring and preparation for later commits.
2024-01-15 10:28:25 +09:00
Yu Watanabe
a0ab69d062
network/route-nexthop: make multipath_route_get_link() take fallback link
...
No functional change, just refactoring.
2024-01-14 06:04:46 +09:00
Yu Watanabe
fad2f72351
network/route-nexthop: do not update MultipathRoute object
...
A MultipathRoute object is always owned by a Network object, and the
interface matching with its name specified in a MultipathRoute= setting
may be removed, and re-added later with a different ifindex.
2024-01-14 06:04:46 +09:00
Yu Watanabe
c23f957eb1
network/route-nexthop: split out route_nexthops_is_ready_to_configure()
...
No effective functionality changed, just refactoring and preparation for
later commits.
2024-01-14 06:04:46 +09:00
Yu Watanabe
f47d38c6fc
network/route-nexthop: split out route_nexthops_to_string()
...
And reorder elements shown in the debugging log.
No effective functionality changed, just refactoring.
2024-01-14 06:04:46 +09:00
Yu Watanabe
54f9fba5e6
network/route-nexthop: split out netlink message handling for route nexthops
...
No functional change, just refactoring and preparation for later
commits.
2024-01-14 06:04:23 +09:00
Yu Watanabe
b24db7052e
varlink/network: OnlineState may not be set
...
Follow-up for c5c74d85d3 .
Fixes #30918 .
2024-01-14 04:57:41 +09:00
Yu Watanabe
9957189a43
Merge pull request #30916 from yuwata/network-route-section-verify
...
network: several cleanups for verifying [Route] section
2024-01-14 04:57:05 +09:00
Yu Watanabe
4db8ccbb59
wireguard: verify routes configured in .netdev file
...
Then, scope and friends are correctly adjusted, and the behavior should
be matched when the same route is configured in .network file.
2024-01-13 10:10:32 +09:00
Yu Watanabe
0db96961b4
network/route: split out route_section_verify_nexthops()
...
No effective functional change, just refactoring and preparation for
later commits.
2024-01-13 10:10:32 +09:00
Yu Watanabe
b9f29e9f52
network/route: relocate route_type_is_reject() and friends
...
No functional change, preparation for later commits.
2024-01-13 10:10:32 +09:00
Yu Watanabe
b82697eb20
Merge pull request #30895 from yuwata/network-drop-object-even-on-fail
...
network: remove Address object even when we failed to remove relevant address
2024-01-13 09:03:07 +09:00
Yu Watanabe
7a10e25a41
Merge pull request #30908 from poettering/nsid
...
networkd: expose netns "nsid" together with inode id
2024-01-13 06:54:32 +09:00
Yu Watanabe
be89a76a46
network/ndisc: do not try to set too large value for ICMP ratelimting
...
Follow-up for 6197db53ba .
When we set too large value, the kernel just refuse it. So, this does
not change the net behavior.
Prompted by https://github.com/systemd/systemd/pull/30490#discussion_r1449477125 .
2024-01-12 14:38:30 +00:00
Yu Watanabe
ffad01c81e
network/route-nexthop: always reset gateway address when _dhcp or friends is specified to Gateway=
...
Just for safety.
2024-01-12 16:03:37 +09:00
Yu Watanabe
dd0385c1f2
network/dhcp4: use route_configure_handler_internal() at one more place
2024-01-12 09:46:09 +09:00
Yu Watanabe
2c0b49baab
network/route: update expiration timer only when we know the route exists
2024-01-12 09:46:09 +09:00
Yu Watanabe
14436bf523
network/route: save if the route expiration is managed by the kernel
...
Otherwise, our own expiration timer will be setup on updating a route.
See comment in link_request_route().
2024-01-12 09:46:09 +09:00
Yu Watanabe
f86575ca06
network/route: unconditionally call route_setup_timer() for managed routes
...
For foreign routes, we do not set lifetime, as it is foreign.
So, this should not change any behavior. Preparation for later commits.
2024-01-12 09:46:09 +09:00
Yu Watanabe
a5a0a4eb56
network/route: use specified error message
...
Previously, specified error message was not used.
2024-01-12 09:46:09 +09:00
Yu Watanabe
4207f6c05d
network/route-nexthop: make GatewayOnLink= support an empty string
...
And invalidate the route section if an invalid string is specified.
2024-01-12 09:44:03 +09:00
Yu Watanabe
4444c2baf5
network/route: move two more conf parsers to networkd-route-nexthop.[ch]
...
Let's manage nexthop (gateway) handling in networkd-route-nexthop.[ch].
2024-01-12 09:44:03 +09:00
Yu Watanabe
62c6f9f7ac
network/nexthop: drop NextHop object even if we fail to remove the nexthop
2024-01-12 09:36:04 +09:00
Yu Watanabe
84c86ae194
network/neighbor: drop Neighbor object even if we fail to remove the neighbor
2024-01-12 09:36:04 +09:00
Yu Watanabe
56a995fe8e
network/address: forget address even if we could not remove it
...
If we could not remove an address, then previously the corresponding
Address object was never removed, as it was freed only when we receive
remove notification from the kernel. So, we might confused that the
address still exists and being removed, and might block reconfiguring
the address.
With this change, even if we fail to remove an address, the
corresponding Address object will be freed.
2024-01-12 09:36:04 +09:00
Yu Watanabe
85a6f300c1
network/queue: introduce RemoveRequest and relevant functions
...
This is similar to Request, but will be used on removing configuration
(e.g. address, route, and so on).
By using another queue for removing configuration, then we can avoid to
fill the reply callback buffer in sd-netlink by remove message calls.
Follow-up for 4e6a35e2b2 .
2024-01-12 09:36:00 +09:00
Yu Watanabe
967cd1712c
Merge pull request #30867 from dtardon/udev-conf-dropins
...
Allow dropins for udev.conf
2024-01-12 06:37:23 +09:00
Yu Watanabe
fa552ea1b1
Merge pull request #30893 from yuwata/add-trailing-NUL
...
json,netlink: add trailing NUL byte when we read binary data
2024-01-12 06:36:46 +09:00
Yu Watanabe
70c24d0d9f
sd-netlink: add trailing NUL byte for safety in sd_netlink_message_read_data()
...
Then, drop sd_netlink_message_read_data_suffix0().
2024-01-12 04:48:26 +09:00
Yu Watanabe
1f179b37f2
json: add trailing NUL byte in json_dispatch_byte_array_iovec()
...
For safety.
Addresses https://github.com/systemd/systemd/pull/30879#discussion_r1448518226 .
2024-01-12 04:44:51 +09:00
Yu Watanabe
41c5937f02
Merge pull request #30887 from poettering/id128-no-legend
...
id128: add --no-pager, --no-legend, --json=/-j switches to systemd-id128 tool
2024-01-12 03:46:48 +09:00
Yu Watanabe
bc02f03561
network: fix Name= -> OriginalName= in the default .link files
...
Follow-up for 658169e6d3 .
2024-01-11 12:20:10 +00:00
Yu Watanabe
0705e05c3d
sd-dhcp-client-id: introduce json_dispatch_client_id()
2024-01-11 17:03:25 +09:00
Yu Watanabe
72278e62d9
json: introduce json_dispatch_byte_array_iovec() and json_dispatch_in_addr()
2024-01-11 17:03:25 +09:00
Yu Watanabe
cf9b425749
sd-dhcp-client-id/duid: do not trigger assertion when invalid size is passed
...
The data may be from user input or file. We usually use assertion for
programming error. Hence, using assert is not a good choise there.
Preparation for later commits.
2024-01-11 17:03:25 +09:00
Yu Watanabe
28815fdac4
test-resolved-dummy-server: several modernization
...
- use sd-event,
- use DEFINE_MAIN_FUNCTION(),
- use log_setup().
2024-01-11 02:13:32 +09:00
Yu Watanabe
a068e06da6
resolve: notify DNSSEC failure, EDE code, and EDE message
2024-01-11 02:10:32 +09:00
Yu Watanabe
d9f9b8ce8a
resolve: make manager_monitor_send() take DnsQuery*
2024-01-11 02:10:32 +09:00
Yu Watanabe
37baa00fe0
resolve: also read EDE code and message from cached packet
2024-01-11 02:10:32 +09:00
Yu Watanabe
a72cf22d06
resolve: introduce DNSSEC_UPSTREAM_FAILURE
...
and include EDE code and message in the error messages.
This replaces 9ca133e97a , and implements
originally suggested at
https://github.com/systemd/systemd/pull/30513#discussion_r1433823737
2024-01-11 02:10:32 +09:00
Yu Watanabe
0c61995d80
resolvectl: use JSON_ALLOW_EXTENSIONS
...
Follow-up for f0e4244b2f .
2024-01-11 02:10:32 +09:00
Yu Watanabe
41398e8793
resolve: several follow-ups for 9ca133e97a.
...
- add missing initialization for DnsQuery.answer_ede_rcode,
- clear EDE code and message in dns_transaction_reset_answer(),
otherwise the previous EDE code or message may be mistakenly reused
on restart. This fixes memory leak of DnsTransaction.answer_ede_msg.
- also clear EDE code and message in dns_query_reset_answer(),
otherwise ede message is leaked if dns_query_accept() is called
multiple times for the same DnsQuery.
Follow-up for 9ca133e97a .
Fixes #30752 .
2024-01-11 02:10:11 +09:00
Yu Watanabe
9540f8e216
test-network: add test case for MACAddress=none in .netdev and MACAddressPolicy=none in .link
...
Prompted by #30813 .
2024-01-10 12:07:23 +01:00
Yu Watanabe
9ae51762d7
resolve: drop DNS_TRANSACTION_UPSTREAM_DNSSEC_FAILURE
...
This partially reverts commit 9ca133e97a .
Not only there is no reason to introduce a new transaction failure state,
but also the commit introduces several severe issues.
Fixes #30776 , #30779 .
2024-01-10 13:14:14 +09:00
Yu Watanabe
c08fd7beca
resolve: several follow-ups for ac6844460c
...
- fix indentation,
- drop incorrect comment, dns_packet_ede_rcode() can handle unknown EDE rcode.
- 0 is a valid EDE rcode,
- DnsTransaction.answer_ede_msg may be NULL, so needs to use strempty()
on logging,
- drop redundant ede_rcode temporary variable.
Follow-up for ac6844460c .
2024-01-10 13:13:11 +09:00
Yu Watanabe
71682ac6bb
resolve: cleanup dns_packet_ede_rcode()
...
This makes the following:
- make dns_packet_ede_rcode() return -EINVAL when EDE code not found.
Otherwise, the caller may be confused that the packet has an unknown
error code.
- make the function escape EDE message only when non-utf8 message is received.
- the message handling logic is applied even if the error code is unknown, as
there is no reason that we escape EDE message only when an known error code
is received.
- reduce scope of variables,
- drop redundant 'else',
- append full stop to the log messages,
- drop redundant log message in the caller,
- split out error in the function and returned EDE error code.
Follow-up for ac6844460c .
2024-01-10 13:06:02 +09:00
Yu Watanabe
a92ea352a5
resolve: update rcode table and align enum definitions
2024-01-10 10:23:14 +09:00
Yu Watanabe
eabc38daa8
TODO: drop implemented feature
2024-01-10 04:33:55 +09:00
Yu Watanabe
d26319be92
test: add test for [Link] Property= and friends
2024-01-10 04:33:55 +09:00
Yu Watanabe
046286e863
udev/net: introduce [Link] Property=, ImportProperty=, and UnsetProperty= settings
...
The applied order is equivalent to Environment=, PassEnvironment=, and
UnsetEnvironment= for [Service] or so.
2024-01-10 04:33:51 +09:00
Yu Watanabe
513ca8b6f0
udev: split out check that udev property can be updated
2024-01-10 04:27:41 +09:00
Yu Watanabe
3e00171dcd
udev/net: split out udev property assignment logic
...
No functional change, just refactoring.
2024-01-10 04:27:41 +09:00
Yu Watanabe
0c3af33e19
udev/net: do not set unapplied .link file name to ID_NET_LINK_FILE
...
Instead, import already assigned value from the udev database.
Then, return the builtin earlier.
2024-01-10 04:27:41 +09:00
Yu Watanabe
ac36406277
udev-builtin-path_id: drop redundant debugging logs
...
The function udev_builtin_add_property() internally logs the failure.
2024-01-10 04:27:26 +09:00
Yu Watanabe
50a0379d5d
udev/builtin: introduce udev_builtin_import_property() helper function
...
This is not used in this commit, but will be used later commits.
2024-01-10 04:11:08 +09:00
Yu Watanabe
12b1e04073
man: fix indentation
2024-01-10 03:50:32 +09:00
Yu Watanabe
9b0688f491
virt: add Google Compute Engine support
...
See https://cloud.google.com/run/docs/container-contract#sandbox
2024-01-10 03:08:31 +09:00
Yu Watanabe
10b8bb5495
man: drop unexpected dot
2024-01-09 10:52:18 +09:00
Yu Watanabe
35716eed55
Merge pull request #30837 from poettering/varlink-over-ssh
...
varlink: add "ssh:" transport for talking to remote servers
2024-01-09 10:14:03 +09:00
Yu Watanabe
e701439998
virt: fix detection of avx2 and friends
...
To get the CPUID with EAX=7, we need explicitly set 0 to ECX.
From Intel® Architecture Instruction Set Extensions Programming
Reference and Related Specifications,
===
Leaf 07H output depends on the initial value in ECX.
If ECX contains an invalid sub leaf index, EAX/EBX/ECX/EDX return 0
===
Fixes #30822 .
2024-01-08 16:04:17 +01:00
Yu Watanabe
96f1f03c03
Merge pull request #30815 from yuwata/resolve-ixfr
...
resolve: NSCOUNT of DNS query may not be zero
2024-01-08 08:49:15 +09:00
Yu Watanabe
ba1749f6a5
resolve: NSCOUNT of DNS query may not be zero
...
This also separates check for DNS and LLMNR, as the existing comments
are for LLMNR, not DNS. And this moves the comment for mDNS.
Fixes the issue reported at
https://github.com/systemd/systemd/pull/30809#issuecomment-1880102804 .
2024-01-08 02:09:07 +09:00
Yu Watanabe
9aa3c07947
network/route-metric: invalidate [Route] section if an invalid string is specified
...
Follow-up for 18c4c5d84f .
2024-01-07 14:04:00 +09:00
Yu Watanabe
5e124de7e6
network/route-metric: use DEFINE_CONFIG_PARSE_ROUTE_METRIC() macro more
2024-01-07 14:04:00 +09:00
Yu Watanabe
be6c9d562d
network/route-metric: introduce DEFINE_CONFIG_PARSE_ROUTE_METRIC() macro
...
Then, define config_parse_route_metric_mtu() and _tcp_window() through
the macro.
2024-01-07 14:04:00 +09:00
Yu Watanabe
ebf4fa1e82
network/route-metric: manage uint32_t RTAX_XYZ attributes in the same way
...
Except for RTAX_CC_ALGO, all RTAX_XYZ attributes take uint32_t and
the kernel's default value is zero. So, let's unify handling of the
attributes.
This should not change any effective behavior. Just refactoring.
2024-01-07 14:04:00 +09:00
Yu Watanabe
d32a520b09
network/route-metric: introduce RouteMetric
...
Then, split out route metric handling from networkd-route.c to
networkd-route-metric.c.
No functional change, just refactoring and preparation for later
commits.
2024-01-07 14:04:00 +09:00
Yu Watanabe
0417d1d0e8
Merge pull request #30803 from yuwata/network-route-parser-trivial-cleanups
...
network/route: trivial cleanups for conf parsers
2024-01-07 05:26:06 +09:00
Yu Watanabe
74e95e3a81
network/link: always join to the main interface when we receive IFLA_MASTER attribute
...
Otherwise, e.g. when we enumerate a bridge port first, then the bridge
main interface, then the port cannot be managed by the main interface.
Fixes #30682 .
2024-01-07 05:25:55 +09:00
Yu Watanabe
5c64017aa8
network/route-metric: unify error messages
2024-01-07 01:39:58 +09:00
Yu Watanabe
e2126e235e
network/route-metric: pass attribute type to conf parsers
...
The passed attribute type will be used later.
This also
- rename conf parsers,
- sort gperf entries by the attr type.
No functional change, just refactoring and preparation for later commits.
2024-01-07 01:39:58 +09:00
Yu Watanabe
df8767fc8d
network/route: move several conf parsers to networkd-route-metric.c and networkd-route-nexthop.c
...
This also split config_parse_route_boolean() into two:
for GatewayOnline= and boolean route metrics.
No functional change, just refactoring and preparation for later commits.
2024-01-07 01:39:58 +09:00
Yu Watanabe
f48e52bda8
network/route: rename n -> route in conf parsers
2024-01-07 01:39:58 +09:00
Yu Watanabe
d2bec2426f
network/route: do not invalidate [Route] section when an empty string is assigned to MultiPathRoute=
2024-01-07 01:39:58 +09:00
Yu Watanabe
6b07675d81
test-network: do not call networkctl if networkd is in failed state
...
Otherwise, networkd may be restarted by DBus and we may get wrong
results.
2024-01-06 14:48:18 +09:00
Yu Watanabe
10d670a3c1
test-network: introduce networkctl() and friends
2024-01-06 14:48:15 +09:00
Yu Watanabe
032fd10de8
test-network: use read_networkd_log() at one more place
2024-01-06 12:46:00 +09:00
Yu Watanabe
bd581438a1
test-network: sync journal before read
...
Otherwise, test cases that check journal entries, e.g. test_unit_file()
may fail.
2024-01-06 12:45:59 +09:00
Yu Watanabe
b82b4d258e
Merge pull request #30794 from poettering/parse-vsock-better
...
socket-util: add more careful parsers for AF_VSOCK cid/port
2024-01-06 11:16:19 +09:00
Yu Watanabe
7ba3e44651
udevadm: allow to override the default log level by environment variable
...
Previously, there was no way to override the log level for test and
test-builtin commands. Let's re-parse environment after setting the log
level to debug. Then, we can control the log level through environment
variable.
2024-01-06 08:30:58 +09:00
Yu Watanabe
976309db6a
Merge pull request #30796 from mrc0mmand/journalctl-namespaces
...
journalctl: provide shell completion for --namespace=
2024-01-06 08:30:31 +09:00
Yu Watanabe
0d1706b5fa
Merge pull request #30775 from yuwata/network-nexthop-is-ready
...
network: introduce nexthop_is_ready() helper function and use it
2024-01-06 08:27:35 +09:00
Yu Watanabe
92a39246ad
Merge pull request #30790 from poettering/null-creds-allow-with-tpm
...
creds: allow using NULL encryption if explicitly requested even if TPM is available, and add a comprehensive credential encryption/decrpytion test
2024-01-06 04:26:38 +09:00
Yu Watanabe
ff4240fc22
test: wait for verbose-success.service finished
...
Otherwise, the command 'echo' may not be invoked yet.
Follow-up for 25aa35d465 .
2024-01-05 13:08:10 +01:00
Yu Watanabe
2ec0e95eb7
test-network: add test for removal of nexthops that we do not receive reply from the kernel
2024-01-05 19:18:58 +09:00
Yu Watanabe
9a988d16fb
network/nexthop: also remove nexthop on cancelling request
...
Otherwise, the nexthop may arrive after we call
link_drop_foreign_address() or so on reconfiguring interface.
2024-01-05 19:17:59 +09:00
Yu Watanabe
c902fa08c3
network/neighbor: also remove neighbor on cancelling request
...
Otherwise, the neighbor may arrive after we call
link_drop_foreign_address() or so on reconfiguring interface.
2024-01-05 19:17:59 +09:00
Yu Watanabe
4303e9806b
network/address: also remove address on cancelling request
...
Otherwise, the address may arrive after we call
link_drop_foreign_address() or so on reconfiguring interface.
2024-01-05 19:17:59 +09:00
Yu Watanabe
115a09004e
test: fix typo
...
Follow-up for 995bf013a1 .
2024-01-05 19:08:12 +09:00
Yu Watanabe
c270e41f5e
man: fix typo
...
Follow-up for 7d93e4af80 .
2024-01-05 19:08:12 +09:00
Yu Watanabe
20a0aeb039
vpick: fix typo
...
Follow-up for 76511c1bd3 .
2024-01-05 19:08:12 +09:00
Yu Watanabe
d61df11fcd
login: noone -> no one
...
Follow-up for 59afe07c21 .
2024-01-05 19:08:12 +09:00
Yu Watanabe
e75c24c450
core/dbus-manager: fix typo
...
Follow-up for 84c01612de .
2024-01-05 19:08:12 +09:00
Yu Watanabe
9e44842a9a
string-util: fix typo
...
Follow-up for 63566c6b6f .
2024-01-05 19:08:12 +09:00
Yu Watanabe
56a89426f6
TODO: fix typo
...
Follow-up for 97c493f214 .
2024-01-05 19:08:12 +09:00
Yu Watanabe
2743854540
network: do not make the implied default have the first priority
...
Follow-up for b732606950 and
6706ce2fd2 .
If Network.ignore_carrier_loss_set flag is set, then the timeout value
is always used, hence the logic implemented by
b732606950 never worked.
2024-01-05 18:04:18 +09:00
Yu Watanabe
b87ffa9b5a
network/route: use nexthop_is_ready()
2024-01-05 05:33:49 +09:00
Yu Watanabe
ccc55b5ec5
network/nexthop: wait for requests for group members being processed
...
This also split out the check as nexthop_is_ready().
2024-01-05 05:33:49 +09:00