Commit Graph
52160 Commits
Author SHA1 Message Date
Yu Watanabe 76a86ffdbe network: ipv4acd: first probe address and then assign it
Previously, if IPv4 ACD is enabled on an address, then we first
assign the address, and start sd-ipv4acd daemon for the address.
This is not only RFC incompliant, but also the address is always
dropped, as the daemon always considers the address is conflicted.

This commit makes networkd first starts sd-ipv4acd daemon to probe
the address, and then the address is configured if no conflict is
detected.

Fixes #17235.
2021-07-01 00:49:03 +09:00
Yu Watanabe 475ec3346f network: make request_drop() accept NULL 2021-07-01 00:49:03 +09:00
Yu Watanabe c0c04a4b22 network: acquire address on request configure rather than on configure
A preparation for later commits.
2021-07-01 00:49:03 +09:00
Yu Watanabe 9155da08ee network: rename dhcp_lease_lost() -> dhcp4_lease_lost() and expose it
A preparation for later commits.
2021-07-01 00:49:02 +09:00
Yu Watanabe d5e3b3eb8c network: address: do not send tentative flag
Currently, networkd does not set tentative flag on create, and kernel
ignore the flag on remove. So, this commit does not change any current
behaviour. This is just a preparation for later commits.
2021-07-01 00:49:02 +09:00
Yu Watanabe 8c29f484d5 network: introduce link_request_static_address() 2021-07-01 00:49:02 +09:00
Yu Watanabe 99b466693e network: introduce address_dup() and replace address_copy() with it 2021-07-01 00:49:02 +09:00
Yu Watanabe f8d6397ac2 network: ipv4ll: reset MAC address without stopping sd-ipv4ll engine 2021-07-01 00:49:02 +09:00
Yu Watanabe a1e35fca46 network: ipv4ll: refuse to configure IPv4LL address on interface where the length of the hardware address is not ETH_ALEN
Currently, sd-ipv4acd assumes hardware address is ETH_ALEN.
2021-07-01 00:49:02 +09:00
Yu Watanabe 89d8ed9932 network: ipv4ll: make link enter failed state on failure of restarting ipv4ll engine 2021-07-01 00:49:02 +09:00
Yu Watanabe fe321d457c network: introduce link_get_by_hw_addr() 2021-07-01 00:49:02 +09:00
Yu Watanabe 6eab614db8 network: rename Manager::links -> Manager::links_by_index
This also renames link_get() -> link_get_by_index().
2021-07-01 00:49:02 +09:00
Yu Watanabe 907d5ce4d4 ether-addr-util: introduce hw_addr_hash_ops 2021-07-01 00:49:02 +09:00
Yu Watanabe 1e59122d45 sd-ipv4ll: introduce sd_ipv4ll_set_check_mac_callback() 2021-07-01 00:49:02 +09:00
Yu Watanabe 9e5aa34fc8 sd-ipv4ll: allow to set MAC address without stopping sd-ipv4ll engine 2021-07-01 00:49:02 +09:00
Yu Watanabe 7f77917c0e sd-ipv4acd: update condition of address conflict
See RFC 5227 section 2.1.1.

This introduces a callback which intend to a library user, e.g.
networkd, checks whether the sender hardware address is a MAC address of
the host's intrerface or not.
2021-07-01 00:49:02 +09:00
Yu Watanabe 5c35c13a4d sd-ipv4acd: allow to change requesting address without restarting sd-ipv4acd 2021-07-01 00:49:02 +09:00
Yu Watanabe 3d817902c4 sd-ipv4acd: set defend window in timeout event and state is IPV4ACD_STATE_STARTED 2021-07-01 00:49:02 +09:00
Yu Watanabe fcb7345950 sd-ipv4acd: allow to change MAC address without restarting sd-ipv4acd
This also makes sd_ipv4acd_set_mac() refuses null MAC address.
2021-07-01 00:49:02 +09:00
Yu Watanabe d17ed573aa arp-util: split out logic of setting BPF code into a function 2021-07-01 00:49:02 +09:00
Yu Watanabe ecad63f850 arp-util: use struct in_addr 2021-07-01 00:49:02 +09:00
Yu Watanabe e1a3915b41 arp-util: make arp_send_{probe,announcement}() inline 2021-07-01 00:49:02 +09:00
Yu Watanabe 28ba416c99 arp-util: shorten code a bit 2021-07-01 00:49:02 +09:00
Yu Watanabe 504bf2b54a arp-util: check ifindex and mac address 2021-07-01 00:49:02 +09:00
Yu Watanabe f6720fe62e arp-util: check sent message size 2021-07-01 00:49:02 +09:00
Yu Watanabe 51d113512f arp-util: align elements 2021-07-01 00:49:02 +09:00
Yu Watanabe 265b6d4e0c sd-ipv4acd: include announced address in log message 2021-07-01 00:49:02 +09:00
Yu Watanabe 9be2ba5e12 sd-ipv4acd: use struct in_addr instead of be32_t 2021-07-01 00:49:02 +09:00
Zbigniew Jędrzejewski-Szmek 58551e6ebc Merge pull request #20074 from yuwata/fix-typo
tree-wide: fix typo
2021-06-30 17:26:51 +02:00
Franck Bui b25389d2bb login: XGI Z7/Z9 (XG20 core) graphic chip requires master-of-seat to be set
This graphic chip doesn't have a DRM driver and fallback to vesa-framebuffer
driver.

Without this patch, users of such chip suddenly see their GUI broken without
any indication or reason of what happened (no error message). Hence this
regression is near to impossible to troubleshoot for end users.
2021-06-30 16:18:41 +01:00
Yu Watanabe 387f695526 tree-wide: "a" -> "an" 2021-06-30 23:33:00 +09:00
Yu Watanabe 3d62af7d23 tree-wide: fix "the the" and "a a" 2021-06-30 23:32:43 +09:00
Zbigniew Jędrzejewski-Szmek 759f76534f Merge pull request #20021 from wat-ze-hex/socket-bind-ip-proto-2021-06-23
core/bpf: support IP protocol in SocketBind{Allow|Deny}=
2021-06-30 14:46:27 +02:00
Yu Watanabe 857f0e0ae3 man: fix typo 2021-06-30 20:47:57 +09:00
laineantti eed5c718a6 hwdb: add accel matrix for One-netbook OneMix 2s 2021-06-30 19:41:48 +09:00
Albert Brox f1bda7ead2 Improve tmpfiles unsafe transition log message (#20048) 2021-06-30 11:54:15 +02:00
Julia Kartseva 120338ae33 man: document ip proto in SocketBind{Allow|Deny}= 2021-06-30 00:36:33 -07:00
Julia Kartseva 60477eb98a dbus: extend SocketBind{Allow|Deny}= with ip proto 2021-06-30 00:36:33 -07:00
Julia Kartseva 5587ce7f6c fragment: add ip protocol to SocketBind{Allow|Deny}=
Add ip protocol token to SocketBind{Allow|Deny}= property parser.

Use parse_socket_bind_item helper.

Replace int32_t with int in cgroup item for socket-bind as it was
requested in [0].

Update tests.

[0] https://github.com/systemd/systemd/pull/19942#discussion_r652150024
2021-06-30 00:36:33 -07:00
Julia Kartseva 8bd095aa9a shared: add parser for SocketBind{Allow|Deny}=
Parse address family, ip protocol and ports, any of them can be
optional. If neither is specified, a special value 'any' is expected.
Helper is placed in shared to be reused in both fragment and dbus.
Add unit tests with valid and invalid examples.
2021-06-30 00:36:26 -07:00
Julia Kartseva 159d68c3e0 shared: add ip_protocol_{from|to}_tcp_udp helpers
Thin wrappers of ip_protocol_{from|to}_name targeting IPPROTO_TCP and
IPPROTO_UDP only.
Used to parse IP protocol configuration restricted only to TCP and UDP,
e.g. in SocketBind{Allow|Deny}= unit property.

These helpers are inspired by af_{from|to}_ipv4_ipv6 and potentially
extendable with other IP protocols if there is a use-case to expose
them.
2021-06-29 14:37:07 -07:00
Julia Kartseva 560d76243f bpf: add ip proto matching to socket-bind prog
Lookup ip protocol in a socket address to allow or deny binding a socket
to the address.
Matching rule is extended with 'protocol' field. If its value is 0
(IPPROTO_IP) ip protocol comparison is omitted and matching is passed to
the next token which is ip ports.

Documentation is updated.
2021-06-29 14:37:07 -07:00
Dan Streetman 9fcfc0470d Add systemd-resolve backwards compatibility section to resolvectl docs 2021-06-30 06:15:11 +09:00
Luca Boccassi d46be5a6ac Merge pull request #20047 from keszybz/doc-fix
Update dnssec-trust-anchors comment syntax description and put rrs in index
2021-06-29 12:52:38 +01:00
Raul Tambre 12c0bb31a7 resolved: Fix link to resolv.conf manpage
Seems to typically located in volume 5 these days on Linux systems that systemd targets.
2021-06-29 12:50:53 +01:00
Alexander Tsoy 1f00a50c69 resolved: do not try to copy empty NSEC types bitmaps
dns_resource_record_copy() assumes that NSEC types bitmap is non-empty
which results in a null pointer dereference inside bitmap_copy() in some
cases. Fix this by calling bitmap_copy() conditionally.
2021-06-29 10:47:18 +02:00
Zbigniew Jędrzejewski-Szmek d080734dcb man: add "DNS resource record types" section 2021-06-29 10:44:18 +02:00
Zbigniew Jędrzejewski-Szmek 9a024bf18d man: add markup to dns resource record labels 2021-06-29 10:44:18 +02:00
Franck Bui 9952f11a84 Merge pull request #20039 from yuwata/sd-device-get-sysattr-value-embedded-nul
sd-device: allow to read sysattr which contains embedded NUL
2021-06-28 15:43:29 +02:00
Raul Tambre d3a047b9d1 man: Don't link to a manpage that's within our documentation
For example on systemd.network this results in the link taking one to another site with the manpage instead of the document that's on the same site.
2021-06-28 18:49:27 +09:00