Commit Graph
4292 Commits
Author SHA1 Message Date
Yu Watanabe 97b2bc3506 network: netdev: drop NETDEV_CREATE_MASTER
As there is no deference between NETDEV_CREATE_MASTER and
NETDEV_CREATE_INDEPENDENT.
2022-02-26 15:01:50 +09:00
Yu Watanabe eae0d010f7 network: netdev: use netdev_is_stacked() at one more place 2022-02-26 15:01:50 +09:00
Yu Watanabe 490c00a369 network: netdev: make link_get_local_address() refuse non-ready links and addresses 2022-02-26 14:59:56 +09:00
Yu Watanabe 8c14846e87 network: traffic control: drop detailed log messages
This also renames `req` -> `m`.

Follow-up for a79a8d16d5 and #22014.
2022-02-26 14:58:01 +09:00
Yu Watanabe 3a67b8bb0d network: traffic control: drop meta from QDisc and TClass
Since #22248, it is not necessary to manage QDisc and TClass in same Set
or Hashmap. Let's manage them independently.
2022-02-26 14:58:01 +09:00
Yu Watanabe b93ce59e51 network: drop unused flag and counter 2022-02-26 05:49:52 +09:00
Yu Watanabe b4d6ae63ba network: split netdev_create() into two 2022-02-26 05:49:52 +09:00
Yu Watanabe 9aa2585e2f network: assign corresponding NetDev object to Link 2022-02-26 05:49:52 +09:00
Yu Watanabe c2b19b8f70 network/netdev: drop unused argument 2022-02-26 05:49:52 +09:00
Yu Watanabe fef805b9fa network/netdev: do not assign value on failure 2022-02-26 05:49:52 +09:00
Yu Watanabe 745f0620ed network: dhcp-server: add two more log messages 2022-02-25 11:01:51 +09:00
Yu Watanabe 2971e2adf1 network: bridge mdb: add missing assertion 2022-02-25 11:01:50 +09:00
Yu Watanabe e1e4cd1eed network: move more functions
No functional change. Preparation for later commits.
2022-02-25 11:01:50 +09:00
Yu Watanabe 8bed7c55bf network: move functions
No functional change. Preparation for later commits.
2022-02-25 11:01:50 +09:00
Yu Watanabe d3aff22f19 network: address: drop unnecessary call of address_get()
As here `req->address` and the result `existing` are always equivalent.
2022-02-25 11:01:50 +09:00
Yu Watanabe a79a8d16d5 network: drop detailed log messages
This also renames netlink message `req` -> `m` for preparation of later
commits.

Follow-ups for #22014.
2022-02-25 11:01:50 +09:00
Yu Watanabe cae162a79c network: make link_down() independent of link_up_or_down()
And rename it to link_down_now() to emphasize it does not use request
queue.
2022-02-25 11:01:50 +09:00
Luca Boccassi 6b3211c15e Merge pull request #22611 from yuwata/network-activation-policy-stacked-netdevs
network: make activation policy also work for stacked netdevs
2022-02-24 22:57:35 +00:00
Yu Watanabe 369ac19243 network: add NextServer= and Filename= setting to [DHCPServer] section
Closes #4403.
2022-02-25 02:45:47 +09:00
Yu Watanabe 047b9991a4 network: create stacked netdevs after the underlying link is activated
Otherwise, the activation policy for the netdevs are ignored.

Fixes #22593.
2022-02-24 08:37:26 +09:00
Yu Watanabe 390247d2f9 network: also hash address label and broadcast address
Otherwise, even if the address label and/or broadcast address are changed
in a .network file, the change will not be applied on reconfigure.
2022-02-24 07:28:04 +09:00
Yu Watanabe 9472be2614 network: use address_set_broadcast() at one more place 2022-02-24 07:13:31 +09:00
Yu Watanabe e680486d6f network: set broadcast address on request
Previously, the broadcast address was set to a Address object in
address_section_verify() (or address_acquire()). But, for wireguard
interfaces, we do not use the broadcast address. The .network file may
be assigned to multiple interfaces, hence, we cannot determine if we
should set the broadcast address in address_section_verify().

This makes the broadcast address set in link_request_address().
Then, we set the broadcast address only when we need it.
2022-02-24 07:07:04 +09:00
Yu Watanabe 5d0030310c network: compare addresses more strictly
This re-introduce the full hash and compre functions for Address,
which was reverted 1d30fc5cb6 (#17851).

The issue #17831, which is fixed by #17851, is handled in a different way;
simply ignore to configure the conflicted DHCPv6 address. Previously, we
warn about the conflict, but continue to configure the address anyway, and
the kernel ignores the request. So, it is not necessary to request the
conflicted address in networkd side.

This fixes the following issues:
- when a link has an address, and corresponding .network file has the
  address with different prefix length, then the prefix length specified
  in the .network file will not be applied,
- we cannot specify multiple IPv4 addresses with different prefix
  length, e.g.
  ----
  Address=10.10.10.10/24
  Address=10.10.10.10/16
  ----
  This is spurious setup, but the kernel allows it.

Fixes #22515.
2022-02-24 06:30:37 +09:00
Yu Watanabe 07b7337aff network: dhcp-pd: allow to assign the same subnet prefix to multiple interfaces
There is no reason networkd refuses that. Especially, when multiple
downstream interfaces are connected to the same network, it is natural to
assign the same subnet prefix to them.

Prompted by #22571.
2022-02-22 20:39:32 +09:00
Yu Watanabe 38488babe7 network: dhcp-pd: fix prefix length of address assigned to upstream interface
This effectively revert ab0c82d9f7.

I have no idea why I did that...

Fixes #22559.
2022-02-22 20:39:28 +09:00
Yu Watanabe 63b5e05ff9 Merge pull request #22545 from yuwata/network-match-kind
network, udev: introduce Kind= setting in [Match] section
2022-02-18 01:20:18 +09:00
Yu Watanabe 65022cd7ab network,udev/net: add Kind= settings in [Match] section
This may be useful for writing .network or .link files matching with
virtual interfaces.

Closes #22541.
2022-02-17 23:10:26 +09:00
Yu Watanabe 430f07f4f8 networkctl: show netdev kind 2022-02-17 21:15:27 +09:00
Yu Watanabe e1658632ae network: call ethtool after link is initialized by udevd
Fixes #22538.
2022-02-17 18:55:43 +09:00
Yu Watanabe 82f52245ba network: use udev_available() where applicable 2022-02-17 18:55:43 +09:00
Lennart Poettering 803e12f36b tree-wide: some coccinelle fixes 2022-02-16 17:26:26 +01:00
Yu Watanabe cc46d3be68 Merge pull request #22502 from yuwata/udev-net-virtual-wlan-interface
network: add virtual wlan interface support
2022-02-16 23:03:52 +09:00
Yu Watanabe dedf2d0054 network: add support to create wlan virtual interface
Closes #18977.
2022-02-15 23:24:55 +09:00
Lennart Poettering ec00453b1c Merge pull request #22412 from yuwata/sd-dhcp6-client-cleanups
sd-dhcp6-client: several fixes and cleanups
2022-02-15 14:18:55 +01:00
Yu Watanabe edb69db2b0 network: manage WLAN phy 2022-02-15 16:06:43 +09:00
Yu Watanabe 1d4312d5f9 network: netdev: add flag to skip kind check
It will be used in later commit.
2022-02-15 16:06:43 +09:00
Yu Watanabe 5d4a925af0 network: netdev: use request queue to create independent netdevs 2022-02-15 16:06:37 +09:00
Yu Watanabe efa7b8adde network: netdev: increment reference counter on request
Otherwise, it may be freed on reload.
2022-02-15 15:54:02 +09:00
Yu Watanabe d708bc6e4f network: netdev: make netdev_is_ready_to_create() return negative errno on fatal error 2022-02-15 15:54:02 +09:00
Yu Watanabe 709055dabb network: rename REQUEST_TYPE_STACKED_NETDEV -> REQUEST_TYPE_NETDEV_STACKED 2022-02-15 15:54:02 +09:00
Yu Watanabe 6dc07e095d meson: sort listed files 2022-02-15 15:54:02 +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 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 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 6eb35be8e0 network: bridge: fix endian of vlan protocol
Fixes #22469.
2022-02-10 17:47:17 +09:00
Joerie de Gram 77d65e5659 network: attempt to trigger kernel IPv6LL address generation
Try to ensure kernel IPv6 link local address generation occurs by
setting the per-if addr_gen_mode sysctl when the link is already up,
instead of the netlink interface (IFLA_INET6_ADDR_GEN_MODE).

The netlink setting is sufficient in cases where the interface is not
yet up when networkd configures an interface - bringing the interface
up will trigger in-kernel address generation.

If the interface is already up, yet the interface has no IPv6LL assigned
setting IFLA_INET6_ADDR_GEN_MODE has no effect.

Writing the addr_gen_mode sysctl is a best effort attempt at triggering
address generation regardless of interface state because it also works
in cases where the interface is already up.

Fixes #22424.
2022-02-10 17:35:41 +09:00
Yu Watanabe 2b25f4eb23 network: move link_set_ipv6ll_stable_secret() to networkd-ipv6ll.c 2022-02-10 17:34:06 +09:00