Commit Graph
4373 Commits
Author SHA1 Message Date
Yu Watanabe 21cf8e9e6d network: dhcp6pd: first check prefixes, then calculate lifetime 2021-12-06 21:35:53 +09:00
Yu Watanabe 542d04950e network: dhcp6pd: shorten code a bit 2021-12-06 21:35:53 +09:00
Yu Watanabe c3cd535132 network: dhcp6pd: skip to assign prefixes to a downstream link if it is not ready 2021-12-06 21:35:53 +09:00
Yu Watanabe 5014e66019 network: dhcp6pd: move dhcp6_pd_assign_prefixes()
Preparation for the later commits.
2021-12-06 21:35:53 +09:00
Yu Watanabe 4c004e2a71 network: dhcp6pd: also allow to only assign prefix route for delegated prefix to upstream interface 2021-12-06 21:35:53 +09:00
Yu Watanabe da10d2d584 network: dhcp6pd: drop unreachable routes when lease lost 2021-12-06 21:30:57 +09:00
Yu Watanabe 95eb38c8d0 network: route: make route_cancel_request() take Link*
As the Route object may be managed by Manager.
2021-12-06 21:30:57 +09:00
Yu Watanabe 1d44187ce6 network: dhcp6pd: also drop prefix assigned to upstream interface
But do not drop prefixes from downstream which request another uplink.
2021-12-06 21:30:26 +09:00
Yu Watanabe 86a4b84aa9 Merge pull request #21632 from yuwata/network-dhcp6pd-fix-typo-and-split
network: dhcp6pd: fix typo and split file
2021-12-06 21:24:47 +09:00
Yu Watanabe ab106a609b network: eui64 address is supported only ethernet or infiniband
So, this makes prefixstable mode will be used for other interface types.
2021-12-06 21:07:12 +09:00
Yu Watanabe d5ebcf6533 network: split networkd-dhcp6.c
This moves DHCPv6 prefix delegation related functions to
networkd-dhcp-prefix-delegation.c.
2021-12-06 19:17:09 +09:00
Yu Watanabe ba466f0d4e network: dhcp6pd: fix copy-and-paste error 2021-12-06 19:17:09 +09:00
Yu Watanabe cf477495d6 network: route: handle null address with non-zero prefixlen correctly
Previously, even if a link has a route to e.g. ::/96, default gateway
via ::1.2.3.4 cannot be configured.
2021-12-06 19:16:17 +09:00
Yu Watanabe b489d6a26e network: route: logs null address with non-zero prefixlen correctly 2021-12-06 19:16:17 +09:00
Frantisek Sumsal c73f413d8d tree-wide: check for NULLs in more places
Fixes issues pointed out by the `cpp/inconsistent-null-check` LGTM
query.
2021-12-06 08:50:53 +09:00
Yu Watanabe c3747f90b1 network: set MTU after IPoIB configs are applied
MTU is updated when IB mode is changed.
2021-12-05 00:19:01 +09:00
Yu Watanabe 72e65e6ffd network: add support to configure IPoIB interfaces 2021-12-05 00:18:58 +09:00
Yu Watanabe b90d0f83b2 network/netdev: add support to create IPoIB subinterface 2021-12-04 15:06:58 +09:00
Yu Watanabe a8ee2b8e1f network/netdev: generate persistent MAC address when creating netdev interface
Preparation for later commits.
2021-12-04 15:05:32 +09:00
Yu Watanabe 8feb9fa4f8 Merge pull request #21584 from yuwata/network-wireguard-cleanups
network: cleanups for wireguard
2021-12-02 15:53:57 +09:00
Yu Watanabe 4a410adae6 Revert "network: address: drop deprecated temporary address"
This reverts commit 528da64a0c.

The commit is a bad way to fix #19838, and introduces #21593.

Fixes #21593.
2021-12-02 15:41:45 +09:00
Yu Watanabe 38ef464e41 network/wireguard: search valid address of the endpoint from all struct addrinfo entries 2021-12-02 08:39:37 +09:00
Yu Watanabe 8bf7e3b61c network/wireguard: cleanups for resolving endpoints
This makes
- drop peers_with_unresolved_endpoint and peers_with_failed_endpoint,
- drop destroy handler for sd_resolve_query, and manage each query by peer,
- add random fluctuation to the timeout for retry handler,
- retry timer event source is now managed by peer,
- use sd_event_source_disable_unref().
2021-12-02 08:39:32 +09:00
Yu Watanabe 4a897d29f1 network/wireguard: do not resolve Endpoint= if an IP address is specified
Also verify the domain name and port.
2021-12-02 08:36:22 +09:00
Yu Watanabe 1a4ca0e2f3 network: dhcp6-pd: exclude all explicitly specified subnet IDs when searching free IDs
When the upstream link gained a lease, then several downstream links may
not appear yet. Previously, the explicitly specified subnet ID for a
downstream link which appears later may be already assigned to an
interface which does not request specific subnet ID.

To avoid such situation, this makes all specified IDs are excluded when
searching free IDs.

As a side effect, we can avoid the second call of
dhcp6_pd_distribute_prefix().
2021-12-01 20:35:03 +09:00
Yu Watanabe a74229c58e network: dhcp6-pd: introduce dhcp6_pd_is_uplink()
This also merges dhcp6_pd_resolve_uplink() with dhcp6_pd_find_uplink()
2021-12-01 20:35:03 +09:00
Yu Watanabe 926fc8ee63 network: dhcp6: make UplinkInterface=:self take effect only when DHCPv6PrefixDelegation= is enabled 2021-12-01 20:35:03 +09:00
Yu Watanabe f6032ff3e0 network: radv: use the uplink interface used in DHCPv6-PD 2021-12-01 20:35:03 +09:00
Yu Watanabe e908434458 network: wireguard: automatically configure routes to addresses specified in AllowedIPs=
Closes #14176.
2021-12-01 04:00:11 +09:00
Yu Watanabe 28870a9d2e network: route: expose route_hash_ops 2021-12-01 03:56:00 +09:00
Yu Watanabe 9e11bd58fb network/wireguard: drop unnecessary .in6 specifier
This should not change any behavior, as the size of the IPv4 address is
smaller than IPv6.
2021-12-01 03:56:00 +09:00
Yu Watanabe 5e82a61375 network: route: read RTA_TABLE attribute to get route table
If the table of a route is larger than 255, then the value is stored in
RTA_TABLE attribute. But the attribute is not supported by old kernels.
So, first try to read the value from RTA_TABLE attribute, then fallback
to the value in the message header.
2021-12-01 03:53:09 +09:00
Yu Watanabe af31670340 network: route: use typesafe function 2021-12-01 03:52:11 +09:00
Yu Watanabe 528da64a0c network: address: drop deprecated temporary address
Fixes #19838.
2021-11-30 18:17:23 +01:00
Yu Watanabe a6f44d610c tree-wide: fix typo 2021-11-30 12:30:07 +00:00
Yu Watanabe d27e9b0f83 network: json: add missing initialization
Fixes CID#1466513.
2021-11-30 10:03:51 +09:00
Zbigniew Jędrzejewski-Szmek 8e560cd090 Merge pull request #21532 from yuwata/network-json-more
network: add more json entries
2021-11-29 21:26:56 +01:00
Zbigniew Jędrzejewski-Szmek 4b658ff651 Merge pull request #21531 from keszybz/log2-tables
Optimize log2 tables
2021-11-29 13:58:49 +01:00
Zbigniew Jędrzejewski-Szmek 8a7da94082 networkd: replace a table with log2 fields by a list 2021-11-29 11:16:15 +01:00
Zbigniew Jędrzejewski-Szmek 0580badc15 networkd: align table 2021-11-29 11:16:07 +01:00
Zbigniew Jędrzejewski-Szmek 19aa7eeb6c networkd: replace a table with log2 fields by a list 2021-11-29 11:15:58 +01:00
Zbigniew Jędrzejewski-Szmek 7396e01484 networkd: replace a table with log2 fields by a list 2021-11-29 11:15:50 +01:00
Zbigniew Jędrzejewski-Szmek 67b65e1104 networkd: replace a table with log2 fields by a list
The code looks a bit more complicated, but the compiler generates a simpler and
more compact text.

An additional advantage is that if any of the fields were repeating or not
power-of-two, the compiler would warn about an overridden entry in the table.
2021-11-29 11:15:31 +01:00
Yu Watanabe 5b8bdd20c6 network/netdev: generate persistent MAC address for batadv and bridge
This mostly reverts 489f01f806 and
deb2cfa4c6.

As now MACAddress=none is supported. So, users can still disable MAC
address assignment.
2021-11-28 12:04:55 +09:00
Yu Watanabe aaa5ca57ae network/netdev: make MACAddress= take 'none' to suppress generating persistent hardware address
This is mostly equivalent to .link file's MACAddressPolicy=none.
2021-11-28 12:04:55 +09:00
Yu Watanabe 5dcc5b1a11 network/netdev: move config_parse_netdev_kind() at the end 2021-11-28 12:04:55 +09:00
Luca Boccassi cab35e9672 Merge pull request #21535 from yuwata/network-netdev-verify-mac
network/netdev: verify MAC address
2021-11-27 13:48:56 +00:00
Yu Watanabe 70b0652697 network: route: route->link may be NULL
Fixes #21544.
2021-11-27 13:48:02 +00:00
Yu Watanabe 007899f43e network/netdev: verify specified MAC address
Drop multicast bit and set local bit of the specified MAC address.

This also makes failure in generating persistent MAC address
non-critical.
2021-11-27 06:39:04 +09:00
Yu Watanabe 5e20e1e3e3 network/netdev: use "struct hw_addr_data" to store MAC address 2021-11-27 06:39:04 +09:00