Yu Watanabe
bac319a795
network: link may be NULL
2020-10-23 23:07:12 +09:00
Yu Watanabe
b1dc5946e2
network: ignore error in writing proxy_ndp
...
This partially reverts the commit fd773a11d8
.
As, IPv6 may be disabled by kernel.
2020-10-23 23:07:12 +09:00
Yu Watanabe
9b3e49fc00
network: fix typo
2020-10-23 23:07:12 +09:00
Yu Watanabe
9c914c0401
Merge pull request #17357 from yuwata/network-dhcp6-pd-announce-17353
...
network: add an option to control announcement of delegated prefix
2020-10-23 12:57:58 +09:00
Dan Streetman
e16e4b3bed
network: move set-MAC and set-nomaster operations out of link_up()
...
These should not be bundled into the link_up() operation, as that is
not (currently) called during interface configuration if the interface
already is IFF_UP, which is unrelated to the need to change the mac
to a user-defined value, or set 'nomaster' on the interface.
Additionally, there is no need to re-set the mac or re-assert nomaster
every time the interface is brought up; those should be only part of
normal initial interface configuration.
Fixes : #17391
2020-10-23 12:09:31 +09:00
Lennart Poettering
69f30d4321
Merge pull request #17356 from yuwata/sd-xxx-stop
...
network: about sd_xxx_stop()
2020-10-21 18:07:38 +02:00
Yu Watanabe
0c54bfd698
network: call netlink in the last of route_configure()
...
Otherwise, assertion will be hit when route_add() fails.
2020-10-20 15:44:24 +09:00
Yu Watanabe
40075951dc
network: also compare and hash weight of the gateway
2020-10-20 15:32:55 +09:00
Yu Watanabe
cc17f75f66
network: copy multipath route element earlier
...
`route_get()` compares input with existing routes, however previously,
the input may did not have information about gateway. So, the
comparison result might be incorrect, and the foregoing set_put() might
return -EEXIST.
2020-10-20 15:32:55 +09:00
Yu Watanabe
8c212f76c2
network: make route_configure() return 0 on success
...
Previously, route_configure() always returns 1 on success, and never
returns 0. It is not necessary to return positive value.
2020-10-20 14:20:22 +09:00
Yu Watanabe
27ff0490e6
network: rename IPv6PrefixDelegation= to IPv6SendRA=
2020-10-19 14:55:18 +09:00
Yu Watanabe
4afd986753
network: introduce Announce= in [DHCPv6PrefixDelegation]
...
When disabled, the delegated prefixes are not emit by RA.
Closes #17353 .
2020-10-19 12:09:36 +09:00
Yu Watanabe
e502f94dcf
network: introduce DHCPv6PrefixDelegation= setting
...
Then, the link can configure prefix delegated by DHCPv6 without emitting
RA.
2020-10-19 10:09:38 +09:00
Yu Watanabe
8a08bbfc98
network: drop static prefixes and static route prefixes earlier if IPv6PrefixDelegation=no or dhcpv6
2020-10-19 10:09:38 +09:00
Yu Watanabe
db5756f3f3
network: sort and rename elements in Network object
2020-10-19 10:09:38 +09:00
Yu Watanabe
69e0f833a3
network: introduce network_adjust_radv()
2020-10-19 10:09:38 +09:00
Yu Watanabe
a3c1a94947
network: clear DNS and domains for RA when an empty string is assigned
2020-10-19 10:09:38 +09:00
Yu Watanabe
5e2767720a
network: use string_hash_ops_free for search domains
2020-10-19 10:09:38 +09:00
Yu Watanabe
7abe175c00
network: also unref IPv4 ACD clients in Address objects
...
This should not change any behavior, as currently link_free_engines() is
always called after all addresses are dropped. But the function may be
used in other places in the future. So, let's also stop the clients.
2020-10-15 08:11:32 +09:00
Yu Watanabe
1c49487284
network: move link_lldp_emit_stop() to link_free_engines()
...
This should not change any behavior.
2020-10-15 08:06:04 +09:00
Yu Watanabe
9cc65242d7
network: also stop LLDP client in link_stop_engines()
2020-10-15 07:57:33 +09:00
Yu Watanabe
2a99eed02c
network: stop DHCPv4 server in link_stop_clients()
...
Then, rename link_stop_clients() -> link_stop_engines().
2020-10-15 07:56:30 +09:00
Yu Watanabe
a391901eb2
network: drop unnecessary conditions
...
sd_ipv4acd_stop() and sd_ipv4ll_stop() are idempotent.
2020-10-15 07:40:13 +09:00
Yu Watanabe
c6a7531e0e
network: voidify sd_ipv4acd_stop() at one place
2020-10-15 07:39:40 +09:00
Yu Watanabe
84add3cd2b
network: drop conditions to check existence of each engine
2020-10-15 07:38:45 +09:00
Yu Watanabe
956dbf361b
network: warn if dynamic gateway is specified but corresponding protocol is disabled
2020-10-15 07:07:46 +09:00
Yu Watanabe
22d37e5df6
network: introduce network_adjust_dhcp()
2020-10-15 07:06:58 +09:00
Yu Watanabe
3773eb5485
network: introduce network_adjust_ipv6_accept_ra()
2020-10-15 07:06:36 +09:00
Yu Watanabe
c27abcf4fb
network: when Gateway=_dhcp4, set several properties based on lease if they are not explicitly specified
...
Before this commit, event when Gateway=_dhcp4 or _ra is set, the
route was configured with 'protocol static', and other properties
specified by RouteTable=, RouteMTU=, or etc, were ignored.
This commit makes set the route protocol based on the protocol the
gateway address is obtained, and apply other settings if it is not
explicitly specified in the [Route] section.
2020-10-15 07:06:23 +09:00
Yu Watanabe
5bb80a4603
network: determine a [Route] section will be used or not by gateway family instead of route family
...
By this commit, user can configure dynamic IPv6 Gateway with IPv4
destination.
2020-10-15 07:06:03 +09:00
Yu Watanabe
c3d679c43f
network: when Gateway=_dhcp, assume gateway family based on other settings
2020-10-15 07:05:58 +09:00
Yu Watanabe
b8caa4ef34
network: rename Gateway=_dhcp6 -> Gateway=_ipv6ra
2020-10-15 07:04:02 +09:00
Yu Watanabe
1a3a6309a7
network: rename gateway_from_dhcp -> gateway_from_dhcp_or_ra
...
As for IPv6 case gateway is given by RA.
2020-10-15 06:58:53 +09:00
Yu Watanabe
fd8f865c9f
Merge pull request #17342 from yuwata/network-dhcp-ipv4-acd-fixes
...
network: fixes several issues in IPv4 DAD for DHCP4
2020-10-14 23:12:41 +09:00
Zbigniew Jędrzejewski-Szmek
540e0bad3e
Merge pull request #17316 from yuwata/network-address-ipv4-peer-issue-17304
...
network: directly compare with in_addr element for IPv4 case
2020-10-14 15:02:14 +02:00
Yu Watanabe
dfc637d0ff
Merge pull request #17341 from yuwata/sd-dhcp-client-fix-eexist-issue-16964
...
sd-dhcp: make sd_dhcp_client_set_request_option() not return -EEXIST
2020-10-14 18:55:39 +09:00
Yu Watanabe
0e569a439a
network: start dynamic addressing clients like DHCP after setting netdevs
...
The function link_acquire_conf() may make the link state 'configuring'
when DHCP6 PD is enabled. Previously link_acquire_conf() was called
before link_enter_join_netdev(), and thus the assertion in the function
might be triggered.
Fixes #17329 .
2020-10-14 10:52:02 +02:00
Yu Watanabe
5431227400
network: update MAC address in IPv4ACD client for DHCP4
2020-10-14 15:38:29 +09:00
Yu Watanabe
a7df5cae54
network: also stop IPv4ACD client in link_stop_clients()
2020-10-14 15:38:29 +09:00
Yu Watanabe
66f507e1ba
network: stop IPv4ACD client for DHCPv4 when lease is exprired
2020-10-14 15:38:29 +09:00
Yu Watanabe
10fa21c0dc
network: move IPv4ACD client for DHCPv4 from Network to Link object
...
A .network file may matches multiple interfaces.
2020-10-14 15:38:29 +09:00
Yu Watanabe
8ff85383b4
network: voidify link_stop_clients() in link_enter_failed()
2020-10-14 15:38:29 +09:00
Yu Watanabe
4eb6a826b8
network: drop unused condition
2020-10-14 13:02:46 +09:00
Yu Watanabe
b1476b5210
network: constify arguments
2020-10-13 20:30:38 +09:00
Yu Watanabe
fe841414ef
network: read peer address, label, broadcast from rtnl message
...
Then, Address objects in Network and Link can be easily compared by
address_equal().
2020-10-13 20:30:35 +09:00
Yu Watanabe
9b9c5fff16
network: directly compare with in_addr element for IPv4 case
...
When peer address is set, address_compare_func() (or address_equal())
does not work in link_is_static_address_configured(), as an Address object
stored in a Link does not contain peer addresses. So, we need to also
compare with in_addr element for IPv4 case.
Fixes #17304 .
2020-10-13 20:30:16 +09:00
Frantisek Sumsal
d46b79bbe0
tree-wide: drop if braces around single line expressions as well
2020-10-09 15:11:55 +02:00
Frantisek Sumsal
d7a0f1f4f9
tree-wide: assorted coccinelle fixes
2020-10-09 15:02:23 +02:00
Zbigniew Jędrzejewski-Szmek
081b300976
networkd: add assert to appease coverity
...
The code was OK, but not obviously so. Let's add an assert to help a
human or nonhuman reader figure it out.
Coverity CID#1433224.
2020-10-09 08:14:54 +02:00
Yu Watanabe
ceea6c1aff
network: introduce IPV4_ADDRESS_FMT_STR macro
...
This also moves ADDRESS_FMT_VAL() macro to networkd-address.h, and
renames it to IPV4_ADDRESS_FMT_VAL().
2020-10-08 02:51:23 +09:00