Yu Watanabe
1147ce3a46
Merge pull request #22523 from DaanDeMeyer/systemd-networkd-tests-fixes
...
mkosi: Support running systemd-networkd-tests.py in QEMU
2022-02-16 16:04:14 +09:00
Yu Watanabe
f3376ee8fa
Merge pull request #22487 from poettering/bootspec-source-flags
...
bootctl: show all discovered entries, but show state + type in details
2022-02-15 04:45:59 +09:00
Yu Watanabe
88586e5d32
Merge pull request #22508 from poettering/stat-ino-compare
...
stat-util: add new stat_inode_same() helper
2022-02-15 04:45:31 +09:00
Yu Watanabe
d1e7fa02ca
Merge pull request #22507 from poettering/id128-compare-tweaks
...
sd-id128: comparison tweaks
2022-02-15 04:40:53 +09:00
Yu Watanabe
42672c80dc
test: check if running in container earlier
2022-02-14 13:46:17 +00:00
Yu Watanabe
119c00c1fa
test-dhcp6-client: add test for rapid commit
2022-02-14 15:09:37 +09:00
Yu Watanabe
1f28019113
test-dhcp6-client: cleanups
...
This does many cleanups. Most prominently,
- check the sents packet more strictly,
- make the packets used in the test more readable,
- unify callbacks.
2022-02-14 15:09:28 +09:00
Yu Watanabe
bccb8fc61a
fuzz-dhcp6-client: add prefix hint and vendor option to sent message
2022-02-14 15:02:33 +09:00
Yu Watanabe
7b53d3ead3
fuzz-dhcp6-client: merge with fuzz-dhcp6-client-send
2022-02-14 15:02:33 +09:00
Yu Watanabe
013c6904fa
fuzz-dhcp6-client: test multiple states
...
Then, now all three paths client_process_information(),
client_process_reply(), and client_process_advertise_or_rapid_commit_reply()
in client_receive_message() are fuzzed.
2022-02-14 15:02:33 +09:00
Yu Watanabe
bbe3f62a16
sd-dhcp6-client: append extra options before elapsed time option
...
The value of elapsed time option is determined in runtime and not
deterministic. It is hard to test the sent packets if it is located
in the intermidiate of the packet.
2022-02-14 15:02:33 +09:00
Yu Watanabe
e261d31557
sd-dhcp6-client: logs invalid NTP option
...
Returning negative errno triggers to produce debugging log in
dhcp6_lease_parse_message().
2022-02-14 15:02:33 +09:00
Yu Watanabe
3f09d563f4
sd-dhcp6-client: split dhcp6-internal.h into two
...
Also, this moves string tables to dhcp6-protocol.c.
2022-02-14 15:02:33 +09:00
Yu Watanabe
8b1cfab962
network: do not restart DHCPv6 client when it is already running in managed mode
...
Otherwise, if a network has two router and one provides M flag and the
other provides O flag, then the DHCPv6 client switches the running mode
repeatedly. That makes the IPv6 network configuration of the host
unstable.
2022-02-14 15:02:33 +09:00
Yu Watanabe
dd73db7850
sd-dhcp6-client: reset Information Refresh Time on stop
2022-02-14 15:02:30 +09:00
Yu Watanabe
e1774086a7
sd-dhcp6-client: add log about Information Refresh Time
...
And store IRT only when the client is running in information
requesting mode.
2022-02-14 15:01:02 +09:00
Yu Watanabe
9c9fee8002
sd-dhcp6-client: use memcmp_nn() at one more place
2022-02-14 15:01:02 +09:00
Yu Watanabe
ac680f766d
dhcp-identifier: generate static and constant DUID-EN when the client is running in test mode
...
Follow-up for 9216fddc5a .
2022-02-14 15:00:59 +09:00
Yu Watanabe
5e1618fafa
dhcp-identifier: introduce dhcp_identifier_set_duid()
2022-02-14 14:58:49 +09:00
Yu Watanabe
f9971018eb
dhcp-identifier: introduce duid_type_to_string()
2022-02-14 14:58:49 +09:00
Yu Watanabe
6f3fc86131
sd-dhcp6-client: do not expose set_transaction_id()
...
This is mostly for tests or fuzzers. Hence, this makes the function
requires that the client is running in the test mode.
Also, now the function mask the value for message type.
2022-02-14 14:58:49 +09:00
Yu Watanabe
9e4dee4cec
sd-dhcp6-client: use OrderedSet for vendor option
...
This also fixes memleak.
2022-02-14 14:58:49 +09:00
Yu Watanabe
885ea2ab1c
ordered-set: introduce ordered_set_clear()
2022-02-14 14:58:49 +09:00
Yu Watanabe
1978efb9a5
sd-dhcp6-client: use struct hw_addr_data
2022-02-14 14:58:49 +09:00
Yu Watanabe
6f8ff34218
sd-dhcp6-client: stop IO event source when client entered bound state
...
Also when the client receives a reply when running in information
requesting mode.
2022-02-14 14:58:49 +09:00
Yu Watanabe
6f4490bb0c
sd-dhcp6-client: adjust assertions
2022-02-14 14:58:46 +09:00
Yu Watanabe
65b85f2340
sd-dhcp6-client: log state transition
2022-02-14 14:57:35 +09:00
Yu Watanabe
e5d69be216
sd-dhcp6-client: rename client_set_state() -> client_start_transaction()
...
Previously, it obeys state transition, but now it is only used when
(re-)starting transaction. Let's rename again in more explanative name.
2022-02-14 14:57:35 +09:00
Yu Watanabe
fa78d165bb
sd-dhcp6-client: use proper type for string table lookup funcs
2022-02-14 14:57:35 +09:00
Yu Watanabe
a8d1012f30
sd-dhcp6-client: voidify client_set_state()
2022-02-14 14:57:34 +09:00
Yu Watanabe
cfcc85bbca
sd-dhcp6-client: log message is processed before state is changed
2022-02-14 14:57:34 +09:00
Yu Watanabe
c50c9e509f
sd-dhcp6-client: move client_timeout_resend() and client_set_state()
...
These are deeply related to client_message_send(). Hence, move them near
the function.
2022-02-14 14:57:34 +09:00
Yu Watanabe
0eca25ba00
sd-dhcp6-client: move client_ensure_iaid()
...
No functional change.
2022-02-14 14:57:34 +09:00
Yu Watanabe
af2b484141
sd-dhcp6-client: merge client_start() and client_reset()
2022-02-14 14:56:54 +09:00
Yu Watanabe
ec7baf998d
sd-dhcp6-client: use event_reset_time_relative() at one more place
2022-02-14 14:54:08 +09:00
Yu Watanabe
22ad018b5e
sd-dhcp6-client: max_retransmit_count is only used when client is in DHCP6_STATE_REQUEST
2022-02-14 14:54:08 +09:00
Yu Watanabe
0f3b8b809c
sd-dhcp6-client: drop unnecessary event_source_disable()
...
The event source will be soon re-enabled in the same function.
The function client_timeout_resend() may return earlier without
re-enabling the timer souce. However,
- the timer event source is one shot by default. Hence, it is not
necessary to disable in the callback function,
- when it returns early, then client_set_state() or client_stop() is
called before return, and they re-ernable or disable the timer.
2022-02-14 14:51:19 +09:00
Yu Watanabe
3bb18e707c
sd-dhcp6-client: set lease expiration timer in client_enter_bound_state()
...
The timer must be active until the client get re-enter bound state,
and the timeout must be determined by the lease acquired when entering
the bound state.
2022-02-14 14:45:14 +09:00
Yu Watanabe
30b31359b0
sd-dhcp6-client: drop unnecessary assignment
2022-02-14 14:45:14 +09:00
Yu Watanabe
8ef959cd09
sd-dhcp6-client: initialize IO event source in sd_dhcp6_client_start()
2022-02-14 14:45:14 +09:00
Yu Watanabe
f814cd80de
sd-dhcp6-client: make state transition stricter
2022-02-14 14:45:14 +09:00
Yu Watanabe
c2c878d806
sd-dhcp6-client: prohibit spurious state transition
...
Previously, `client_set_state(client, DHCP6_STATE_STOPPED)` might make
the client enter the SOLICIT state.
2022-02-14 14:45:14 +09:00
Yu Watanabe
220a88ca75
sd-dhcp6-client: disable T1 timer on T2
...
Otherwise, the client may be enter RENEW state after REBIND state.
2022-02-14 14:45:14 +09:00
Yu Watanabe
c41bdb17fc
sd-dhcp6-client: call client_notify() in client_enter_bound_state()
2022-02-14 14:45:14 +09:00
Yu Watanabe
cdf3d8c584
sd-dhcp6-client: fix lifetime handling
...
This fixes the following issues:
- if T1 is finite and T2 is infinite, then the timer for T1 was not
enabled,
- after T1 and T2 are randomized, T1 may be longer than T2.
2022-02-14 14:45:07 +09:00
Yu Watanabe
1d6cb4ce2a
sd-dhcp6-client: use event_reset_time_relative()
2022-02-14 14:43:45 +09:00
Yu Watanabe
02354ee738
sd-dhcp6-client: introduce client_enter_bound_state()
...
To make client_set_state() smaller. This should not change any behavior.
2022-02-14 14:43:45 +09:00
Yu Watanabe
cc5184823f
sd-dhcp6-client: fix overflow in calculating timeout value
2022-02-14 14:43:45 +09:00
Yu Watanabe
d0875a07dd
sd-dhcp6-client: disable event source when client is stopped or freed
2022-02-14 14:43:45 +09:00
Yu Watanabe
7771233127
sd-dhcp6-client: use in6_addr_to_string()
2022-02-14 14:43:45 +09:00
Yu Watanabe
4db6334c9a
sd-dhcp6-client: stop client on error in client state transition
2022-02-14 14:43:45 +09:00
Yu Watanabe
bfa1139af4
sd-dhcp6-client: add missing one more error handling
2022-02-14 14:43:45 +09:00
Yu Watanabe
06d5e856f8
sd-dhcp6-client: rename client_start() -> client_set_state()
2022-02-14 14:43:45 +09:00
Yu Watanabe
07a3b3408b
sd-dhcp6-client: introduce client_process_*()
...
This is mostly for shortening `client_receive_message()`.
This also fixes the following:
- do not trigger SD_DHCP6_CLIENT_EVENT_INFORMATION_REQUEST notification
when non-reply message,
- add several missing error handlings caused in client_start().
2022-02-14 14:43:45 +09:00
Yu Watanabe
0123b2dbac
sd-dhcp6-client: fix possible unaligned read or write
2022-02-14 14:43:45 +09:00
Yu Watanabe
16347c15d8
sd-dhcp6-client: voidify client_reset()
2022-02-14 14:43:45 +09:00
Yu Watanabe
65ece4c85b
sd-dhcp6-client: introduce dhcp6_lease_new_from_message()
2022-02-14 14:43:45 +09:00
Yu Watanabe
c930925841
sd-dhcp6-client: use structured initializer
2022-02-14 14:43:45 +09:00
Yu Watanabe
f4fbea7a0f
sd-dhcp6-lease: unify lease lifetime calculation
2022-02-14 14:43:45 +09:00
Yu Watanabe
126277aceb
sd-dhcp6-client: always use ENODATA when a lease does not have requested data
2022-02-14 14:43:45 +09:00
Yu Watanabe
29858a0f9e
sd-dhcp6-client: unify dhcp6_option_append_{ia,pd}()
2022-02-14 14:43:45 +09:00
Yu Watanabe
877bfc78fd
sd-dhcp6-client: store PD prefix hint in ia_pd
...
And allows to specify multiple hints.
2022-02-14 14:43:45 +09:00
Yu Watanabe
e5b0b87f51
sd-dhcp6-client: introduce dhcp6_ia_free()
2022-02-14 14:43:45 +09:00
Yu Watanabe
4b0f27173c
sd-dhcp6-client: unify IA option header
...
This also fixes possible unaligned read of message.
2022-02-14 14:43:45 +09:00
Yu Watanabe
93bd7c4192
sd-dhcp6-lease: reset client or server ID when length is zero
...
Addresses https://github.com/systemd/systemd/pull/22406#issuecomment-1029391091 .
2022-02-14 14:43:45 +09:00
Yu Watanabe
049fddfa7d
sd-dhcp6-lease: convert assert_return() -> assert() in non-public functions
2022-02-14 14:43:45 +09:00
Yu Watanabe
7c999d38fa
sd-dhcp6-client: rename ia -> ia_na, pd -> ia_pd in sd_dhcp6_lease
...
The previous naming is quite misleading.
2022-02-14 14:43:45 +09:00
Yu Watanabe
43b7a412b1
sd-dhcp6-client: fix typo ia_pd -> ia_na
...
Fortunately, currently both ia_pd and ia_na in sd_dhcp6_client are
equivalent now.
2022-02-14 14:43:45 +09:00
Yu Watanabe
5e4d135c60
sd-dhcp6-client: introduce two helpers to create message
2022-02-14 14:43:45 +09:00
Yu Watanabe
6fcf356b9a
sd-dhcp6-client: trigger assertion whn invalid IA type is provided
...
If the condition hits, then it is an error in coding, instead of a user
misconfiguration or invalid receivd message.
2022-02-14 14:40:57 +09:00
Yu Watanabe
e41dcb8221
NEWS: clarify that ForceDHCPv6PDOtherInformation= is removed
...
Closes #22493 .
2022-02-13 11:50:05 +00:00
Yu Watanabe
81db4f3dd8
network: drop managed configs on reconfigure when KeepConfiguration=yes
...
Otherwise, the managed configs, that is addresses, routes and so on
configured by the previously assigned .network file will not be dropped
on reconfiguring the interface.
2022-02-13 20:01:42 +09:00
Yu Watanabe
07c160a65c
network: drop redundant condition
...
The function `link_drop_foreign_addresses()` is only called in
`link_drop_foreign_config()`, and the same condition is located in the
caller.
2022-02-13 20:01:29 +09:00
Yu Watanabe
74c60fcbec
cgroup-util: refuse the case that both path and suffix are empty strings
...
Fixes CID#1322378.
2022-02-12 11:01:52 +00:00
Yu Watanabe
8448321571
sd-dhcp6-client: add missing address existence check
...
This adds similar check as 58da18251f .
2022-02-10 21:50:02 +09:00
Yu Watanabe
2d88df457a
Merge pull request #22471 from yuwata/network-bridge-vlan-protocol
...
network: bridge: fix vlan protocol
2022-02-10 20:40:04 +09:00
Yu Watanabe
ac7e18be76
Merge pull request #22452 from yuwata/network-ipv6ll
...
network: use sysctl to set IPv6LL address generation mode when the interface is already up
2022-02-10 20:38:56 +09:00
Yu Watanabe
b6d5dab7bb
test-network: add missing tests for bridge properties
2022-02-10 18:04:34 +09:00
Yu Watanabe
6eb35be8e0
network: bridge: fix endian of vlan protocol
...
Fixes #22469 .
2022-02-10 17:47:17 +09:00
Yu Watanabe
2becdbccd1
test-network: add testcase for re-generating IPv6LL address
2022-02-10 17:35:48 +09:00
Yu Watanabe
2b25f4eb23
network: move link_set_ipv6ll_stable_secret() to networkd-ipv6ll.c
2022-02-10 17:34:06 +09:00
Yu Watanabe
05b8fc498e
network: skip to set IPv6LL address generation mode if the requested mode is already set
2022-02-10 17:34:06 +09:00
Yu Watanabe
6614116458
network: use log_link_warning_errno() or friends where applicable
2022-02-10 17:34:06 +09:00
Yu Watanabe
7d0d832d67
network: monitor current IPv6LL address generation mode
2022-02-10 17:34:06 +09:00
Yu Watanabe
80f2647dfb
network: introduce two helper functions for setting IPv6LL address generation mode
2022-02-10 17:34:02 +09:00
Yu Watanabe
e6e2b66b8f
Merge pull request #22248 from yuwata/network-tc-use-request-queue
...
network: tc: use request queue to configure QDisc or TClass
2022-02-09 18:57:37 +09:00
Yu Watanabe
e4bbd9c61e
network: tc: use hashmap to store traffic control settings in .network files
...
As now each qdisc or tclass is configured when it is ready.
2022-02-09 14:43:19 +09:00
Yu Watanabe
7ec1846242
network: tc: introduce order dependency of traffic control
2022-02-09 14:43:19 +09:00
Yu Watanabe
1dec9d816b
network: tc: use request queue to configure traffic control
...
But no dependency resolution is implemented.
2022-02-09 14:43:19 +09:00
Yu Watanabe
b3208e0fad
network: tc/teql: set tca_kind in verify()
...
Then, qdisc_configure() can be simplified.
2022-02-09 14:43:19 +09:00
Yu Watanabe
828a81a937
network: tc: monitor qdisc and tclass
2022-02-09 14:43:19 +09:00
Yu Watanabe
e8b8b3eacb
sd-netlink: allow to dump qdisc and tclass
2022-02-09 14:43:19 +09:00
Yu Watanabe
27e93a4b66
sd-netlink: make traffic control related message can be monitored
2022-02-09 14:43:19 +09:00
Yu Watanabe
1f38b6f9c6
sd-netlink: introduce sd_rtnl_message_traffic_control_get_{ifindex,parent,handle}()
2022-02-09 14:38:23 +09:00
Yu Watanabe
f50b93fed7
sd-netlink: unify sd_rtnl_message_new_qdisc() and sd_rtnl_message_new_tclass()
...
As the netlink message header types for both qdisc and tclass are
equivalent.
2022-02-09 14:35:25 +09:00
Yu Watanabe
89346ac6f6
network: coding style fixes
2022-02-09 14:35:25 +09:00
Yu Watanabe
55c6f705ba
network: tc: drop unnecessary conditions
...
As TC_H_UNSPEC is 0.
2022-02-09 14:35:25 +09:00
Yu Watanabe
058fd55efa
network: tc: drop unused QDisc::family element
2022-02-09 14:35:25 +09:00
Yu Watanabe
de2f372ea2
network: move ipv6ll related functions to networkd-ipv6ll.[ch]
2022-02-09 02:14:40 +09:00
Yu Watanabe
5573ed2230
Merge pull request #22448 from poettering/coredump-raise-sizes
...
coredump: raise limits
2022-02-09 01:23:07 +09:00