Yu Watanabe
5460bde5c5
network: introduce link_serialize_dhcp6_client()
2020-10-07 02:50:50 +09:00
Yu Watanabe
ca21a19a2e
network: introduce link_serialize_ipv4ll()
2020-10-07 02:50:50 +09:00
Yu Watanabe
daad60d19e
network: introduce link_deserialize_ipv4ll()
2020-10-07 02:50:50 +09:00
Yu Watanabe
571eeba909
network: introduce link_deserialize_dhcp4()
2020-10-07 02:50:50 +09:00
Yu Watanabe
bbe694f91f
network: introduce network_verify_sr_iov()
2020-10-07 02:50:50 +09:00
Yu Watanabe
f3a3ff2762
network: move link_configure_sr_iov()
2020-10-07 02:50:50 +09:00
Yu Watanabe
209af9a67a
network: introduce network_verify_traffic_control()
2020-10-07 02:50:50 +09:00
Yu Watanabe
200543791a
network: move link_configure_traffic_control()
2020-10-07 02:50:50 +09:00
Yu Watanabe
34d7f2c99e
network: merge link_set_bridge_vlan() and br_vlan_configure()
2020-10-07 02:50:50 +09:00
Yu Watanabe
256c75fd1f
network: move DUID related functions
2020-10-07 02:50:50 +09:00
Yu Watanabe
086b8853d1
network: move link_radv_enabled()
2020-10-07 02:50:50 +09:00
Yu Watanabe
5ae0fb7fb7
network: move link_dhcp4_server_enabled()
2020-10-07 02:50:50 +09:00
Yu Watanabe
062c020fb6
network: move link_ipv6_accept_ra_enabled()
2020-10-07 02:50:50 +09:00
Yu Watanabe
6f7a17ff0c
network: unify link_ipv{4,6}_forward_enabled()
2020-10-07 02:50:50 +09:00
Yu Watanabe
67c311abd3
network: unify link_dhcp{4,6}_enabled()
2020-10-07 02:50:50 +09:00
Yu Watanabe
ac49887e8c
network: move link_get_xxx_route_table()
2020-10-07 02:50:50 +09:00
Yu Watanabe
bfbf150ee6
network: manage address pools by OrderedSet
2020-10-07 02:50:50 +09:00
Yu Watanabe
3fe721c674
network: drop unused argument
2020-10-07 02:50:50 +09:00
Yu Watanabe
ed76f58521
network: move functions related to address pool
2020-10-07 02:50:50 +09:00
Yu Watanabe
093e35334d
network: header cleanup
2020-10-07 02:50:50 +09:00
Yu Watanabe
67a58eb378
network: make several functions static
2020-10-07 02:50:50 +09:00
Yu Watanabe
aa651e88de
network: manage addresses from pool by Set
2020-10-07 02:50:50 +09:00
Yu Watanabe
9cd9fc8f44
network: drop list of static addresses
...
[Address] sections are managed by both LIST and Hashmap. Let's drop the
list and manage them by OrderedHashmap.
2020-10-07 02:50:50 +09:00
Yu Watanabe
7818f8589a
network: make address_free() return NULL
2020-10-07 02:50:50 +09:00
Yu Watanabe
2488e4d934
network: introduce link_stop_ipv4_dad()
2020-10-07 02:50:50 +09:00
Yu Watanabe
b87d6a8284
network: move link_configure_ipv4_dad()
2020-10-07 02:50:50 +09:00
Yu Watanabe
da4d3a612d
network: introduce link_deserialize_addresses()
2020-10-07 02:50:50 +09:00
Yu Watanabe
3b31e2b718
network: introduce link_serialize_addresses()
2020-10-07 02:50:50 +09:00
Yu Watanabe
32400c2ff0
network: introduce network_verify_addresses()
2020-10-07 02:50:50 +09:00
Yu Watanabe
9a0ad16b26
network: update log messages
...
And drop unnecessary log for in_addr_to_string(), as its result is used
only for the consequent logs.
2020-10-07 02:49:17 +09:00
Yu Watanabe
e1fc2c4371
network: move manager_rtnl_process_address()
2020-10-07 02:44:43 +09:00
Yu Watanabe
d7fbb9f50c
network: introduce link_drop_addresses()
2020-10-07 02:44:43 +09:00
Yu Watanabe
f8f2f880d4
network: introduce link_drop_foreign_addresses()
2020-10-07 02:44:43 +09:00
Yu Watanabe
682c65b04c
network: introduce link_set_addresses()
2020-10-07 02:44:43 +09:00
Yu Watanabe
e2263711ba
network: cleanup networkd-route.h
2020-10-07 02:44:43 +09:00
Yu Watanabe
2a54a0446b
network: drop list of static routes
...
[Route] sections are managed by both LIST and Hashmap. Let's drop the
list.
2020-10-07 02:44:43 +09:00
Yu Watanabe
833f3663a0
network: introduce hashmap_find_free_section_line()
2020-10-07 02:44:43 +09:00
Yu Watanabe
74154c2e28
network: make several functions static
2020-10-07 02:44:43 +09:00
Yu Watanabe
d9940a3f8a
network: introduce network_verify_routes()
2020-10-07 02:44:42 +09:00
Yu Watanabe
565194127a
network: introduce link_serialize_routes()
2020-10-07 02:44:42 +09:00
Yu Watanabe
731ff05b32
network: introduce link_deserialize_routes()
2020-10-07 02:44:42 +09:00
Yu Watanabe
62f0ea5fae
network: introduce link_drop_routes()
2020-10-07 02:44:42 +09:00
Yu Watanabe
779804dd60
network: introduce link_drop_foreign_routes()
2020-10-07 02:44:42 +09:00
Yu Watanabe
169948e9d2
network: make route_free() return NULL
2020-10-07 02:44:42 +09:00
Yu Watanabe
4468f01b67
network: move manager_rtnl_process_route()
2020-10-07 02:44:42 +09:00
Yu Watanabe
141318f777
network: move link_request_set_routes()
2020-10-07 02:44:42 +09:00
Yu Watanabe
be023c670b
network: make network_get_ipv6_dns() always set return value on success
2020-10-07 02:44:42 +09:00
Yu Watanabe
a8d4a21091
network: fix indentation
2020-10-07 02:44:42 +09:00
Yu Watanabe
b5ce40472c
network: cleanup networkd-radv.h
2020-10-07 02:44:42 +09:00
Yu Watanabe
1a7deb2fcf
network: introduce network_verify_prefix() and network_verify_route_prefix()
2020-10-07 02:44:42 +09:00
Yu Watanabe
d30081c24e
network: also check route prefixes are configured
2020-10-07 02:44:42 +09:00
Yu Watanabe
ecb0e85ea9
network: drop redundant list of prefixes and route prefixes
2020-10-07 02:44:42 +09:00
Yu Watanabe
064dfb05f0
network: make prefix_free() and route_prefix_free() return NULL
2020-10-07 02:44:42 +09:00
Yu Watanabe
87851e0feb
network: warn if IPv6ProxyNDPAddress= is set and IPv6ProxyNDP= is disabled
2020-10-07 02:44:42 +09:00
Yu Watanabe
fd773a11d8
network: propagate errors in ipv6_proxy_ndp_set()
...
And ignore IPv6ProxyNDPAddress= settings if proxy_ndp is zero.
2020-10-07 02:44:42 +09:00
Yu Watanabe
5823a48993
network: drop networkd-ipv6-proxy-ndp.h from networkd-network.h
2020-10-07 02:44:42 +09:00
Yu Watanabe
c16b58217a
network: rename ipv6_proxy_ndp_addresses_configure() -> link_set_ipv6_proxy_ndp_addresses()
2020-10-07 02:44:42 +09:00
Yu Watanabe
d349f5026e
network: drop struct IPv6ProxyNDPAddress
...
Its only important value is in6_addr. So, let's just use struct in6_addr
and drop IPv6ProxyNDPAddress.
2020-10-07 02:44:42 +09:00
Yu Watanabe
a8c82f90e7
network: move functions
2020-10-07 02:44:42 +09:00
Yu Watanabe
dbf6319691
network: cleanup networkd-mdb.h
2020-10-07 02:44:42 +09:00
Yu Watanabe
ee4522ce86
network: introduce network_verify_mdb_entries()
2020-10-07 02:44:42 +09:00
Yu Watanabe
03c9738e1d
network: drop list of bridge MDB entries
...
[BridgeMDB] sections are managed by LIST and Hashmap, and they contins
the completely same information. Let's drop the list.
2020-10-07 02:44:42 +09:00
Yu Watanabe
8c06da1cd1
network: move mdb_entry_free() and friends
2020-10-07 02:44:42 +09:00
Yu Watanabe
ee446d57b8
network: cleanup networkd-fdb.h
2020-10-07 02:44:42 +09:00
Yu Watanabe
75ffb011b0
network: drop unused fdb_ntf_flags_to_string()
2020-10-07 02:44:42 +09:00
Yu Watanabe
e6ad630d77
network: introduce network_verify_fdb_entries()
2020-10-07 02:44:42 +09:00
Yu Watanabe
5bb4542b0c
network: move link_set_bridge_fdb()
2020-10-07 02:44:42 +09:00
Yu Watanabe
62ed9442bf
network: drop list of bridge FDB entries
...
[BridgeFDB] sections are managed by both LIST and Hashmap, and they
contains the completely same information. Let's drop the list.
2020-10-07 02:44:42 +09:00
Yu Watanabe
df3a18f87f
network: make fdb_entry_free() return NULL
2020-10-07 02:44:42 +09:00
Yu Watanabe
fb486c9082
network: cleanup networkd-address-label.h
2020-10-07 02:44:42 +09:00
Yu Watanabe
fe2bc17ca7
network: introduce link_set_address_labels()
2020-10-07 02:44:42 +09:00
Yu Watanabe
ab316813ea
network: introduce network_verify_address_labels()
2020-10-07 02:44:42 +09:00
Yu Watanabe
cae418a306
network: make address_label_free() return NULL
2020-10-07 02:44:42 +09:00
Yu Watanabe
d6a2a0f9a7
network: drop list of static address labels
...
[IPv6AddressLabel] sections are managed by both LIST and Hashmap.
Let's drop list, as they store the completely same information.
2020-10-07 02:44:42 +09:00
Yu Watanabe
64753f354d
network: make neighbor_free() return NULL
2020-10-07 02:44:42 +09:00
Yu Watanabe
78ada14f25
network: introduce network_verify_neighbors()
2020-10-07 02:44:42 +09:00
Yu Watanabe
5904833659
network: introduce neighbor_drop_{,foreign_}neighbors()
2020-10-07 02:44:42 +09:00
Yu Watanabe
1939ebeb89
network: cleanup headers in networkd-neighbor.[ch]
2020-10-07 02:44:42 +09:00
Yu Watanabe
9be0b3abc2
network: drop unused arguments
2020-10-07 02:44:42 +09:00
Yu Watanabe
0d6e933eac
network: make several functions static
2020-10-07 02:44:42 +09:00
Yu Watanabe
19f8cffce1
network: make neighbor_{add,get}() takes Neighbor object
2020-10-07 02:44:42 +09:00
Yu Watanabe
b0ba6938df
network: drop list of static neighbors
...
[Neighbor] sections are managed by both LIST and Hashmap.
Let's drop list, as they store the completely same information.
2020-10-07 02:44:42 +09:00
Yu Watanabe
eab052d2b3
network: move manager_rtnl_process_neighbor() to networkd-neighbor.c
2020-10-07 02:44:42 +09:00
Yu Watanabe
58f1fe9af9
network: move link_request_set_neighbors() to networkd-neighbor.c
2020-10-07 02:44:42 +09:00
Yu Watanabe
fceee7cc7e
network: move functions
2020-10-07 02:44:42 +09:00
Yu Watanabe
0992f9fb0e
network: introduce network_verify_nexthops()
2020-10-07 02:44:42 +09:00
Yu Watanabe
f96f4ebc85
network: use netlink_message_read_in_addr_union()
2020-10-07 02:44:42 +09:00
Yu Watanabe
47a277f18b
network: use log_link_xxx() at more places
2020-10-07 02:39:51 +09:00
Yu Watanabe
8c11221879
network: drop NextHop::oif and always use link ifindex
2020-10-07 02:39:51 +09:00
Yu Watanabe
cf5a228f7b
network: slightly shorten nexthop_compare_func()
2020-10-07 02:39:51 +09:00
Yu Watanabe
75156ccbdc
network: cleanup headers included in networkd-nexthop.h
2020-10-07 02:39:51 +09:00
Yu Watanabe
b82663ddee
network: drop list of static nexthops
...
[NextHop] sections are managed by both LIST and Hashmap.
Let's drop list, as they store the completely same information.
2020-10-07 02:39:51 +09:00
Yu Watanabe
8d7b137a82
network: drop unused nexthop_remove() and nexthop_equal()
2020-10-07 02:39:51 +09:00
Yu Watanabe
4736035aaa
network: make several functions static
2020-10-07 02:39:51 +09:00
Yu Watanabe
454c87b5d5
network: move manager_rtnl_process_nexthop() to networkd-nexthop.c
2020-10-07 02:39:51 +09:00
Yu Watanabe
c133770a6b
network: move link_request_set_nexthop() to networkd-nexthop.c
2020-10-07 02:39:51 +09:00
Yu Watanabe
446aaaf35f
network: introduce helper function to enumerate information using netlink
2020-10-07 02:39:13 +09:00
Yu Watanabe
d08ed5a1fd
network: specify all known attributes when removing routing policy rules
...
Otherwise, routing_policy_rule_remove() may removes unintended rule.
2020-10-07 02:36:29 +09:00
Yu Watanabe
5a82104bf3
network: add missing "else"
2020-10-07 02:36:29 +09:00
Yu Watanabe
6f3337277f
network: drop unused element
2020-10-07 02:36:29 +09:00
Yu Watanabe
50a3682f1e
network: introduce network_verify_routing_policy_rules()
2020-10-07 02:36:29 +09:00
Yu Watanabe
f1828a222a
network: make routing_policy_rule_new() static
2020-10-07 02:36:29 +09:00
Yu Watanabe
51a0dc4a15
network: move manager_rtnl_process_rule() to networkd-routing-policy-rule.[ch]
2020-10-07 02:36:29 +09:00
Yu Watanabe
8dfed23d92
network: use typesafe macro netlink_add_match()
2020-10-07 02:36:29 +09:00
Yu Watanabe
0d7d377b80
network: move log_message_warning_errno() to networkd-util.h
2020-10-07 02:36:29 +09:00
Yu Watanabe
ca183bf8fd
network: drop list of static routing policy rules
...
[RoutingPolicyRule] sections are managed by both LIST and Hashmap.
Let's drop list.
2020-10-07 02:36:29 +09:00
Yu Watanabe
02e9f4e536
network: do not duplicate rule if Family=both
2020-10-07 02:36:29 +09:00
Yu Watanabe
b0815fa499
network: make routing_policy_rule_free() returns NULL
2020-10-07 02:36:29 +09:00
Yu Watanabe
816ef8d1da
network: add more logs on loading routing policy rules failure
...
And reduce scope of variables.
2020-10-07 02:36:24 +09:00
Yu Watanabe
eb3445ce93
network: reduce scope of variables
2020-10-06 00:51:01 +09:00
Yu Watanabe
ddc9df3183
network: drop routing_policy_rule_make_local()
...
Its error handling was bogus...
2020-10-06 00:51:01 +09:00
Yu Watanabe
7532b88808
network: make several functions static
2020-10-06 00:51:01 +09:00
Yu Watanabe
c0ec474675
network: move link_request_set_routing_policy()
2020-10-06 00:51:01 +09:00
Yu Watanabe
fef160b5ab
network: limit InitialCongestionWindow= and InitialAdvertisedReceiveWindow= value
...
Strivtly speaking, this breaks backward compatibility. But setting
too large value into them, then their networking easily breaks.
Note that typically 100 for them is event too large. So, ommiting the
values equal or higher than 1024, and dropping support of k, M, and G
suffixes is OK for normal appropriate use cases.
See discussion in #16643 .
2020-09-29 13:55:17 +09:00
Zbigniew Jędrzejewski-Szmek
05d418fed9
Merge pull request #17085 from yuwata/network-configure-mdb-entries-on-bridge-master
...
network: allow to configure mdb entries on bridge master
2020-09-18 13:06:44 +02:00
Yu Watanabe
1034044260
Merge pull request #15050 from ssahani/fq-pie
...
network: tc: add support for FQ-PIE packet scheduler
2020-09-18 03:50:02 +09:00
Yu Watanabe
dc0e90d2e0
Merge pull request #16929 from ssahani/network-bare-udp
...
network: introduce Bare UDP Tunnelling
2020-09-17 20:34:15 +09:00
Yu Watanabe
1797240104
network: old kernel may not support to configure bridge MDB entries on bridge master
2020-09-17 18:15:22 +09:00
Yu Watanabe
a55100e66c
network: allow to configure bridge MDB entries on bridge master
2020-09-17 18:12:40 +09:00
Yu Watanabe
fdeecf7bba
network: tc: refuse to set 0 for FlowQueuePIE.PacketLimit=
2020-09-17 17:16:49 +09:00
Susant Sahani
8f6b6d7091
network: TC - introduce fq pie
...
see https://patchwork.ozlabs.org/patch/1233253/
2020-09-17 17:12:07 +09:00
Susant Sahani
a9b8450bd4
network: Allow vxlan to be created without .network file
2020-09-17 15:49:36 +09:00
Yu Watanabe
b0486c732a
network: refuse to configure IPv4LL for bareudp netdev
2020-09-17 15:18:18 +09:00
Susant Sahani
e6980c7270
network: Introduce bare UDP
2020-09-17 15:05:58 +09:00
Yu Watanabe
8e412d64ce
network: add debug message for configuring MDB entries
2020-09-17 00:04:22 +09:00
Yu Watanabe
1f24158971
network: configure bridge MDB entries after bridge has carrier
2020-09-17 00:04:22 +09:00
Yu Watanabe
46205ffcdf
network: drop [BridgeMDB] entries if Bridge= is not set
2020-09-17 00:04:22 +09:00
Yu Watanabe
03ae449015
network: check MulticastGroupAddress= is neither a local multicast address nor all nodes address
2020-09-17 00:04:22 +09:00
Yu Watanabe
5fb16c7c77
network: drop unnecessary headers
2020-09-17 00:04:22 +09:00
Yu Watanabe
6c9ebb7a90
network: move functions in networkd-mdb.c
2020-09-17 00:04:22 +09:00
Yu Watanabe
41bed67613
Merge pull request #16998 from zonque/networkd/mdb
...
network: add support for setting MDB entries
2020-09-15 16:30:39 +09:00
Frantisek Sumsal
69e3234db7
tree-wide: fix typos found by codespell
...
Reported by Fossies.org
2020-09-14 15:32:37 +02:00
Yu Watanabe
85b6a8110d
network: do not add prefix to RA if radv is not configured
...
Fixes #17017 .
2020-09-11 19:28:46 +02:00
Daniel Mack
3db468ea87
network: add support for setting MDB entries
...
Multicast snooping enabled bridges maintain a database for multicast
port memberships to decide which mulicast packet is supposed to
egress on which port.
This patch teaches networkd to add entries to this database manually
by adding `[BridgeMDB]` sections to `.network` configuration files.
2020-09-10 18:55:15 +02:00
Lennart Poettering
6ae05c9b14
Merge pull request #16947 from keszybz/socket-parsing-rework
...
Socket parsing rework
2020-09-10 16:47:37 +02:00
Zbigniew Jędrzejewski-Szmek
f29d38b7d4
Merge pull request #17003 from yuwata/conf-parser-downgrade-log-level
...
tree-wide: downgrade log level in conf-parsers
2020-09-10 15:43:29 +02:00
Yu Watanabe
17d2b2e4ef
network: replace FRA_IFNAME -> FRA_IIFNAME
...
No functional change, as FRA_IFNAME is an alias of FRA_IIFNAME.
2020-09-10 18:57:07 +09:00
Yu Watanabe
2102d33cfb
network: also process RTM_NEWRULE or RTM_DELRULE message which does not contain src and dst addresses
...
Fixes #16784 .
2020-09-10 18:57:07 +09:00
Yu Watanabe
bd1000b4a0
network: fix the default mask for FirewallMark=
...
And always send FRA_FWMASK if FirewallMark= is set.
C.f. b8964ed9fa
Partially fixes #16784 .
2020-09-10 18:56:18 +09:00
Yu Watanabe
c2d6fcb147
network: do not assign return value if the parse_fwmark_fwmask() fails
...
This also removes redundant logs, and makes input string not copied if
it does not contain '/'.
2020-09-10 18:19:03 +09:00
Yu Watanabe
d85b0d69f1
network: add debug log for removing routing policy rules
2020-09-10 18:19:03 +09:00
Yu Watanabe
755dbda355
network: also logs priority of routing policy rules
2020-09-10 18:18:59 +09:00
Yu Watanabe
b6c7c4a87b
network: update log message for rtnl messages
2020-09-10 18:14:24 +09:00
Yu Watanabe
e3489e96b3
network: slightly update log message
2020-09-10 13:59:04 +09:00
Yu Watanabe
2ca601d8cb
network do not ignore OOM error in config_parse_macsec_key_id()
2020-09-10 13:59:04 +09:00
Yu Watanabe
696c0832e2
network: use _cleanup_ attribute at one more place
2020-09-10 13:59:04 +09:00
Yu Watanabe
a8a50f4fb7
network: do not ignore OOM error in wireguard_decode_key_and_warn()
2020-09-10 13:59:04 +09:00
Yu Watanabe
02241e4339
network: unify config_parse_wireguard_public_key() and config_parse_wireguard_preshared_key()
2020-09-10 13:57:39 +09:00
Zbigniew Jędrzejewski-Szmek
2313524aa0
basic: convert ifname_valid_full() to take flags and allow numeric interfaces
2020-09-10 00:46:44 +02:00
Lennart Poettering
e5f1b999eb
network: don't fail on various config parse errors
...
We typically don't fail on config parse errors (to maximize compat),
let's not do this in these cases either.
2020-09-09 23:43:16 +02:00
Lennart Poettering
40eb1b0ae8
tree-wide: prefer AF_xyz over PF_xyz
...
This really doesn't matter given that AF_xyz and PF_xyz are equivalent
in all ways, but we almost always use AF_xyz, hence stick to it
universally and convert the remaining PF_ to AF_
2020-09-09 23:42:55 +02:00
Lennart Poettering
244d9793ee
Merge pull request #16984 from yuwata/make-log_xxx_error-void
...
Make log_xxx_error() or friends return void
2020-09-09 16:28:51 +02:00
Yu Watanabe
a725efb08b
network: increase receive buffer size for device monitor
...
If networkd creates huge amount of netdevs, then the buffer of device
monitor becomes easily flowed.
Hopefully fixes #16865 .
2020-09-09 06:39:05 +09:00
Yu Watanabe
d31f33e3c9
network: do not start device monitor if /sys is read-only
...
Follow-up for bf331d8717
.
2020-09-09 06:39:05 +09:00
Yu Watanabe
e13af7bdb6
network: honor the buffer size specified in networkd.socket
2020-09-09 06:39:05 +09:00
Yu Watanabe
8c63924c8d
network: ignore error on increasing netlink receive buffer size
2020-09-09 06:39:05 +09:00
Yu Watanabe
d157714b68
network: make log_link_error() or friends return void
2020-09-09 02:34:38 +09:00
Lennart Poettering
26c65933ba
Merge pull request #16978 from keszybz/two-variable-reduction-patches
...
Two variable reduction patches
2020-09-08 17:13:21 +02:00
Zbigniew Jędrzejewski-Szmek
a9aa8deb29
Merge pull request #16618 from yuwata/network-ipv6token-prefixstable
...
network: make prefixstable mode of IPv6Token= can be applied any received prefixes
2020-09-08 13:36:27 +02:00
Zbigniew Jędrzejewski-Szmek
90e74a66e6
tree-wide: define iterator inside of the macro
2020-09-08 12:14:05 +02:00
Yu Watanabe
b27caa34f6
network: make prefixstable mode of IPv6Token= can be applied to any received prefixes
...
Closes #4625 .
2020-09-08 14:32:33 +09:00
Yu Watanabe
50550722e3
network: fix NDisc handling for the case when multiple routers exist
...
69203fba70
does not consider the case that
multiple routers exist, and causes #16719 .
Fixes #16719 .
2020-09-08 02:30:04 +09:00
Yu Watanabe
501b09dbf2
network: expose route_{hash,compare}_func()
2020-09-08 02:30:04 +09:00
Yu Watanabe
99a2878457
network: expose address_{hash,compare}_func()
2020-09-08 02:30:04 +09:00
Lennart Poettering
e825610499
Merge pull request #16880 from yuwata/network-dhcp4-cleanups
...
network: DHCPv4 cleanups
2020-09-04 15:54:27 +02:00
Zbigniew Jędrzejewski-Szmek
459c41b9e2
Merge pull request #16881 from yuwata/network-routing-policy-rule-cleanups
...
network: routing policy rule cleanups
2020-09-04 12:57:20 +02:00
Yu Watanabe
2200c3cf56
network: fixes gateway assignment through DHCPv4
...
This fixes the following issue:
- If a DHCP lease does not contains router option, then routes with
`Gateway=_dhcp` setting introduce unexpected results.
This also makes several failure paths critical. And adjust warnings when
classless routes are provided.
2020-09-04 11:12:03 +02:00
Yu Watanabe
c45fdad66d
network: configure DHCP routes after DHCP address is ready
2020-09-04 09:05:45 +09:00
Yu Watanabe
687b3bc6f4
network: dhcp4: reset counter only when the lease address is new
2020-09-04 09:05:45 +09:00
Yu Watanabe
5acf54a063
network: dhcp4: stop IPv4ACD before assigning new address
2020-09-04 09:05:34 +09:00
Yu Watanabe
dce1cd4188
network: voidify return value of sd_ipv4acd_stop()
2020-09-04 09:04:43 +09:00
Yu Watanabe
5c72a6d5d3
network: logs about unknown key
2020-09-04 08:48:08 +09:00
Yu Watanabe
f405179d65
network: honor already specified family when parsing from= or to= in serialized rule
2020-09-04 08:48:08 +09:00
Yu Watanabe
9d6282d120
network: do not reallocate buffer
2020-09-04 08:48:04 +09:00
Yu Watanabe
d0ac05613b
network: serialize InvertRule= in [RoutingPolicyRule]
2020-09-04 08:47:22 +09:00
Yu Watanabe
1680b11df4
network: add whitespace after family= and priority= in serialized routing policy rule
...
This also makes priority= serialized only when its value is non-zero.
2020-09-04 08:44:19 +09:00
Yu Watanabe
3c94b20dd3
network: downgrade error level when the error is ignored
2020-09-04 08:44:14 +09:00
Yu Watanabe
7e60a37d04
network: move routing_policy_rule_read_full_file()
2020-09-04 08:42:01 +09:00
fangxiuning
6d95e7d9b2
tree-wide: drop pointless zero initialization ( #16900 )
2020-08-30 06:21:20 +09:00
Lennart Poettering
cd17bb6e71
networkd: consider any uevent other than "remove" sufficient for the network device to be ready
2020-08-28 17:45:05 +02:00
Yu Watanabe
876dc2b014
network: dhcp6: logs only new address
...
Closes #16731 .
2020-08-27 21:24:07 +02:00
Yu Watanabe
df696b1413
networkctl: label command does not take any argument
2020-08-27 16:32:13 +09:00
Zbigniew Jędrzejewski-Szmek
d521e6993d
Merge pull request #16824 from keszybz/no-such-unit-error
...
Add sd_bus_error_has_names() and use it to catch BUS_ERROR_NO_SUCH_UNIT
2020-08-25 09:16:25 +02:00
Zbigniew Jędrzejewski-Szmek
955a632971
tree-wide: use sd_bus_error_has_names() in more places
2020-08-24 19:48:26 +02:00
Clemens Gruber
f594b5feab
network: can: Fix CAN initialization
...
When introducing CAN-FD support, the .can_fd_mode was not initalized
with -1 and due to cm.mask containing the CAN_CTRLMODE_FD bit, it was
not ignored when FDMode was not configured but instead disabled.
The same thing happened when listen-only mode support was introduced.
On chips that do not support these features, this lead to an error:
can0: Failed to configure CAN link: Operation not supported
Fix it by intializing all the CAN related tristate variables
(.can_listen_only, .can_fd_mode and .can_non_iso) to -1.
2020-08-24 09:33:25 +02:00
Yu Watanabe
46b875fb80
network: do not fail if UseMTU=yes on DHCP lease lost
...
This fixes a bug introduced by 6906794dd1
.
Fixes #16768 .
2020-08-18 20:33:58 +02:00
Yu Watanabe
9b966cee43
network: wait for previous address removal before configuring static addresses
...
Fixes #16696 .
2020-08-08 12:41:03 +09:00
Yu Watanabe
b6766fb114
network: drop unnecessary bracket
2020-08-08 12:31:59 +09:00
Yu Watanabe
fb282d4e25
network: only process non-error message
2020-08-08 12:31:12 +09:00
Zbigniew Jędrzejewski-Szmek
d06bd2e785
Merge pull request #16596 from poettering/event-time-rel
...
Conflict in src/libsystemd-network/test-ndisc-rs.c fixed manually.
2020-08-04 16:07:03 +02:00
Yu Watanabe
2ac7eec3b5
network: fix use of uninitialized value
...
Follow-up for 6e537f62d7
.
2020-07-30 07:38:18 +02:00
Michael Marley
b209cff2ad
network: Fix "Unknown section 'DHCPv6PrefixDelegation'." message
...
Follow-up for 99e015e28c
2020-07-30 10:34:47 +09:00
Yu Watanabe
99e015e28c
network: rename settings about DHCPv6 Prefix Delegation
...
Closes #16602 .
2020-07-29 05:50:08 +09:00
Yu Watanabe
61c0ef4ff3
network: make RADVPrefixDelegation enum bitfield
...
This should not change any behavior.
2020-07-29 05:09:42 +09:00
Yu Watanabe
ea121d8f25
network: update address infomation even if link is in failed or linger state
...
As the link may be reconfigured later. If we do not update the address
information, then its setup state or operstate may not be updated
correctly.
2020-07-29 02:05:05 +09:00
Yu Watanabe
e55265184b
network: do not assume static addresses are configured
...
link_request_set_routes() is also called when a dynamic address is
configured. At that time, static addresses may not be configured yet.
Fixes #16546 .
2020-07-29 02:05:05 +09:00
Yu Watanabe
15797d6a2b
network: check at least one dynamic address is assigned when DHCP is enabled
2020-07-29 02:05:05 +09:00
Yu Watanabe
1633c45731
network: dhcp6: drop addresses and delegated prefixes on client stop
...
Previously, we did not drop addresses and delegated prefixes when
DHCP6 client is stopped.
Fixes #15455 .
Fixes #13564 .
2020-07-29 02:05:05 +09:00
Yu Watanabe
1c09d84e42
network: rename ipv4ll_address -> ipv4ll_address_configured
2020-07-29 02:05:05 +09:00
Yu Watanabe
b0b9776656
network: ndisc: also remove old DNSSL or RDNSS records after an SLAAC address is ready
2020-07-29 02:05:05 +09:00
Yu Watanabe
69203fba70
network: ndisc: remove old addresses and routes after at least one SLAAC address becomes ready
...
Otherwise, the old addresses will exist in deperecated state.
2020-07-29 02:05:05 +09:00
Yu Watanabe
6e537f62d7
network: dhcp4: release old lease after the new address become ready
...
Previously, on DHCPv4 address renewal, the old address may be removed
while the new address is not ready yet.
This also simplifies the logic of removing address and routes.
2020-07-29 02:05:05 +09:00
Yu Watanabe
80b0e86084
network: make address/route_configure optionally return created Address/Route object
2020-07-29 02:05:05 +09:00
Yu Watanabe
8eec0b9da5
network: set key destructor in several hash_ops
2020-07-29 02:05:05 +09:00
Yu Watanabe
5f58af25e6
network: make link_check_ready() return earlier if the link is not in 'configuring' state
2020-07-29 02:05:05 +09:00
Yu Watanabe
3336e946da
network: ndisc: do not set configured flags when addresses or routes are not assigned yet
...
Just for safety.
2020-07-29 02:05:05 +09:00
Yu Watanabe
5d8c3ec1e9
network: make link enter failed state if address_update() failed
2020-07-29 02:05:05 +09:00
Yu Watanabe
97f000744f
network: introduce callback called when an address becomes ready
2020-07-29 02:05:00 +09:00
Yu Watanabe
3606ca659e
network: add debug log for configuring address
2020-07-29 01:50:54 +09:00
Lennart Poettering
39cf0351c5
tree-wide: make use of new relative time events in sd-event.h
2020-07-28 11:24:55 +02:00
Christian Göttsche
c8f12abc73
Fix clang-11 issues
...
Tested with clang 11.0.0-++20200715043845+0e377e253c1-1~exp1 on Debian sid
../src/network/test-networkd-conf.c:104:56: warning: adding 'int' to a string does not append to the string [-Wstring-plus-int]
test_config_parse_duid_rawdata_one(BYTES_0_128 + 2, 0, &(DUID){0, 128, BYTES_1_128});
~~~~~~~~~~~~^~~
../src/network/test-networkd-conf.c:104:56: note: use array indexing to silence this warning
test_config_parse_duid_rawdata_one(BYTES_0_128 + 2, 0, &(DUID){0, 128, BYTES_1_128});
^
& [ ]
1 warning generated.
../src/test/test-clock.c:52:17: warning: ignoring return value of function declared with 'warn_unused_result' attribute [-Wunused-result]
ftruncate(fileno(f), 0);
^~~~~~~~~ ~~~~~~~~~~~~
1 warning generated.
(gdb) run
Starting program: systemd/build/test-alloc-util
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
x1: 0x7fffffffd2d0
x2: 0x7fffffffdac0
y: 0x7fffffffd2cc
z: 0x7fffffffd2c0
cleanup2(0x7fffffffd2cc)
cleanup3(0x7fffffffd2c0)
cleanup1(0x7fffffffdac0)
cleanup1(0x7fffffffd2d0)
*** buffer overflow detected ***: terminated
Program received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt full
set = {__val = {0, 18446744073709551615, 0, 0, 0, 0, 140737348658240, 140737348659520, 0, 0, 0, 0, 0, 0, 0, 0}}
pid = <optimized out>
tid = <optimized out>
ret = <optimized out>
save_stage = 1
act = {__sigaction_handler = {sa_handler = 0x22ff0, sa_sigaction = 0x22ff0}, sa_mask = {__val = {140737349888603, 4217127, 4217127, 4217127, 4217127, 4217383, 0, 0, 0, 0, 143329, 143344, 140737351162752, 8959, 18446744073709551328, 4289072}},
sa_flags = -138460788, sa_restorer = 0xffffffffffffffff}
sigs = {__val = {32, 0 <repeats 15 times>}}
ap = {{gp_offset = 24, fp_offset = 0, overflow_arg_area = 0x7fffffffd280, reg_save_area = 0x7fffffffd210}}
fd = <optimized out>
list = <optimized out>
nlist = <optimized out>
cp = <optimized out>
No locals.
No locals.
No locals.
No locals.
No locals.
l = 0
No locals.
p1 = 0x405500 "\223Nd\n\351\301mA\214\262A\247\306b\276\317\327\353\346k\035\024\273{\276&!kλ\233\217\t\207\276\327\347\351\355\307R\276\063{\235w=\237E\357\277KL\245\374\245\066M\201+\333\064\272\332g>1<@"
p2 = <optimized out>
i = <optimized out>
No locals.
2020-07-26 11:32:06 +02:00
Yu Watanabe
6f5d73aba6
network: compare with peer address if it is specified
...
Follow-ups for dfef713f3e
.
2020-07-23 16:37:56 +02:00
Yu Watanabe
2c62149509
network: ndisc: ignore duplicated IPv6Token=
2020-07-22 20:26:11 +09:00
Yu Watanabe
92ee90af47
network: ndisc: do not store duplicated data in Set
...
The Address objects in the set generated by ndisc_router_generate_addresses()
have the equivalent prefixlen, flags, prefered lifetime.
This commit makes ndisc_router_generate_addresses() return Set of
in6_addr.
2020-07-22 20:26:05 +09:00
Yu Watanabe
1b14222124
network: make bus methods sync link state file
2020-07-22 19:55:15 +09:00
Yu Watanabe
c2a6595014
network: introduce link_save_and_clean()
2020-07-22 19:55:14 +09:00
Yu Watanabe
f281fc1e95
tree-wide: use siphash24_compress_string() where it is applicable
2020-07-22 19:55:14 +09:00
Zbigniew Jędrzejewski-Szmek
2859bb932b
Merge pull request #16530 from yuwata/udev-fix-race-in-renaming-network-interface
...
udev: fix race in renaming network interface
2020-07-22 11:50:09 +02:00
Lennart Poettering
49f16281c9
tree-wide: use READ_FULL_FILE_CONNECT_SOCKET at various places
...
Let's use the new flag wherever we read key material/passphrases/hashes
off disk, so that people can plug in their own IPC service as backend if
they like, easily.
(My main goal was actually to support this for crypttab key files — i.e.
that you can specify AF_UNIX sockets as third column in crypttab — but
that's harder to implement, since the keys are read via libcryptsetup's
API, not ours.)
2020-07-21 10:32:01 +02:00
Lennart Poettering
f294470262
fileio: add explicit flag for generating world executable warning when reading file
2020-07-21 09:56:44 +02:00
Zbigniew Jędrzejewski-Szmek
2e3e2750bb
Merge pull request #16519 from yuwata/networkctl-altnames
...
networkctl: tiny cleanups about alternative names
2020-07-21 09:10:00 +02:00
Yu Watanabe
1cdea1a2f7
network: update one log message
2020-07-21 11:55:28 +09:00
Yu Watanabe
7695e2cbbe
network, resolve: use bus_message_read_ifindex() or friends
2020-07-21 04:08:22 +09:00
Yu Watanabe
10d4620467
util: introduce bus_mesage_read_dns_servers()
2020-07-21 04:08:22 +09:00
Yu Watanabe
4e11ddfdd3
network: add DBus method to set DNS server with port number and SNI
2020-07-21 04:08:22 +09:00
Yu Watanabe
87d6489776
network: save DNS servers specified by DBus interface
...
Also, filter out DNS servers which do not match link ifindex.
2020-07-21 04:08:22 +09:00
Yu Watanabe
6458176514
network: do not save DNS= entries not match link ifindex
2020-07-21 04:08:22 +09:00
Yu Watanabe
e77bd3fdff
network: support port number and SNI in [Network] DNS=
2020-07-21 04:08:22 +09:00
Yu Watanabe
807667f7ac
network: stop already running engines before updating MAC address
...
In NetworkdBridgeTests.test_bridge_configure_without_carrier of
systemd-networkd-tests.py
```
bridge99: MAC address: 2e:3a:ec:4d:d3:62
Assertion 'sd_ipv4ll_is_running(ll) == 0' failed at src/libsystemd-network/sd-ipv4ll.c:110, function int sd_ipv4ll_set_mac(sd_ipv4ll *, const struct ether_addr *)(). Ignoring.
bridge99: Could not update MAC address in IPv4LL client: Device or resource busy
```
2020-07-20 15:29:55 +09:00
Yu Watanabe
48c5398951
networkctl: do not ignore -EOPNOTSUPP when reading netlink message
...
If the kernel does not support alternative interface names, then
sd_netlink_message_read_strv() should just return -ENODATA.
2020-07-20 15:24:40 +09:00
Yu Watanabe
ae5b779252
networkctl: sort alternative names
2020-07-20 15:24:40 +09:00
Zbigniew Jędrzejewski-Szmek
d735e4f2d6
Merge pull request #16505 from yuwata/network-manage-foreign-routes-cleanups
...
network: do not enumerate foreign routes when ManageForeignRoutes=no, and tiny cleanups
2020-07-20 07:48:57 +02:00
YmrDtnJu
a9c9b18a95
networkd: Use NLM_F_ACK on the netlink message to add a neighbor.
...
sd_netlink_message_set_flags is called without NLM_F_ACK which results in
a timeout while networkd is waiting for an ACK that the kernel will never send.
2020-07-20 11:30:35 +09:00
Yu Watanabe
a8c10331b4
network: replace NDISC -> NDisc in log messages
2020-07-18 05:51:41 +09:00
Yu Watanabe
5eec0a0810
network: introduce address_exists() helper function
2020-07-18 05:51:41 +09:00
Yu Watanabe
d15818f227
network: update debug log when foreign routes are received with ManageForeignRoutes=no
2020-07-18 05:51:41 +09:00
Yu Watanabe
5ff1ef31f2
network: do not enumerate routes if ManageForeignRoutes=no
2020-07-18 05:51:32 +09:00
Yu Watanabe
13e8a49a58
network: ndisc: any failures in processing event make the link in failed state
...
Also adjust log levels.
2020-07-17 01:18:44 +09:00
Yu Watanabe
c97785168b
network: radv: clean up conf parsers
2020-07-17 01:16:38 +09:00
Yu Watanabe
d96edb2c6e
network: downgrade log level in conf parsers
2020-07-17 00:40:09 +09:00
Yu Watanabe
f766d9af38
network: dhcp4: add two warnings
2020-07-16 10:54:16 +09:00
Yu Watanabe
153cf04139
network: dhcp4: fix another race with SendDecline=yes
...
If the SD_IPV4ACD_EVENT_BIND event happens before all routes are
assigned, then the link stuck in configuring state.
2020-07-16 10:54:08 +09:00
Yu Watanabe
75be72d139
network: dhcp4: also release old lease in dhcp_lease_lost()
...
The lease lost may happen during renewing address. If it happens,
assertion hits in dhcp4_release_old_lease().
2020-07-16 10:51:46 +09:00
Christian Göttsche
aeba8dd523
network: fix typo
2020-07-16 08:45:42 +09:00
Yu Watanabe
43bf28741f
network: drop doubled white space
2020-07-15 17:15:25 +09:00
Yu Watanabe
93b0b88c3a
network: free address when it is removed
2020-07-15 17:15:25 +09:00
Yu Watanabe
6906794dd1
network: dhcp4: do not assign new address before old one is not removed
...
If DHCP4 client lost a lease, and then soon acquire new lease, then
the removal of the old address may not be completed. If that happens,
and the new and old addresses are the same, then the new address will be
considered as a foreign address. Such a situation can occur when the
DHCP4 server is restarted.
This makes networkd wait for the removal of the old address when a new
lease is acquired.
This also makes the link in configuring state when renewing address.
2020-07-15 17:15:25 +09:00
Yu Watanabe
5d976f5f64
network: do not call link_check_ready() in link_request_set_routing_policy_rule()
...
It will be called in link_request_set_nexthop() or serveral handlers().
2020-07-15 17:15:25 +09:00
Yu Watanabe
0c816fcc7b
network: make link_request_set_nexthop() called from link_request_set_routes() or route_handler()
...
Then we can drop static_routes_ready() flag.
2020-07-15 17:15:25 +09:00
Yu Watanabe
659ad3a0af
network: do not make link in configured state when no address is assigned
...
When DHCP6 and RA are enabled, and RA does not provide any addresses,
then link may become configured state even if no address is assigned,
due to the time-lag between RA completion and DHCP reply.
This makes if DHCP is explicitly enabled, then link must have at least
one valid address to be in the configured state.
2020-07-15 17:15:25 +09:00