Yu Watanabe
4cf443e644
network/link: use hash_ops with destructor for managing Link objects
2025-04-13 10:15:02 +09:00
Yu Watanabe
a85f73fa55
network/network: use hash_ops with destructor for managing Network objects
2025-04-13 10:15:02 +09:00
Yu Watanabe
919aeb666a
network/network: use hash_ops with destructor for managing stacked netdevs
2025-04-13 10:15:02 +09:00
Yu Watanabe
1b25b88f82
network/bridge-fdb,mdb: use hash_ops with destructor
2025-04-13 10:10:29 +09:00
Yu Watanabe
5c6e6f5ad1
network/dhcp-server: use hash_ops with destructor for static lease
2025-04-13 10:10:29 +09:00
Yu Watanabe
10d786458c
network/radv: use hash_ops with destructor for managing prefixes
2025-04-13 10:10:29 +09:00
Yu Watanabe
d3af116afd
network,udev: use hash_ops with destructor to manage SR-IOV configs
2025-04-13 10:09:53 +09:00
Yu Watanabe
32b5deb1b2
network/ndisc: replace set_free_free() with set_free()
...
They uses in_addr_prefix_hash_ops_free, hence set_free() is enough.
2025-04-13 10:09:45 +09:00
Yu Watanabe
6d1a69d0f0
network: use in6_addr_hash_ops_free in Network.ipv6_proxy_ndp_addresses
...
This also one adjustment to network_adjust_ipv6_proxy_ndp().
2025-04-13 10:09:45 +09:00
Yu Watanabe
25a9bd72ef
network: use dns_name_hash_ops_free in dnssec negative trust anchors
2025-04-13 10:09:45 +09:00
Yu Watanabe
fadc825c5b
test-networkd-conf: config_parse_ether_addrs() uses ether_addr_hash_ops_free
...
Hence, set_free() is enough to free the result.
2025-04-13 10:04:08 +09:00
Yu Watanabe
1cf4c2fc42
network-generator: use hash_ops with destructor for Network, NetDev, and Link
2025-04-13 10:03:40 +09:00
Yu Watanabe
26f8a0144a
wait-online: move manager_process_link() to link.c
...
Then, rename it to rtnl_process_link().
No functional change, just refactoring.
2025-04-13 10:03:40 +09:00
Yu Watanabe
9f66d61a41
wait-online: use hash_ops with destructor for managing Link
2025-04-13 10:03:40 +09:00
Yu Watanabe
67bdb6bee0
network/netdev: remove support of netdevsim
...
netdevsim device creation by networkd was deprecated by
59a9ef1022 (v246), and it does not work
since kernel v5.2:
https://github.com/torvalds/linux/commit/e05b2d141fef22cfac1928cf0eb6890e5dae4216
Now our baseline for the kernel is v5.4. Let's completely kill the
feature.
2025-04-12 09:23:27 +09:00
Yu Watanabe
f5b09f02ac
network/netdev: fix typo
...
Follow-up for 540eb5f037 .
2025-04-07 16:44:21 +09:00
Yu Watanabe
18f7a0cad9
network: fix typo
...
Follow-up for 96dd66eddf .
2025-04-07 16:41:25 +09:00
Beniamino Galvani
f7996e2a33
network: add support for HSR netdev
...
Add support for creating HSR/PRP interfaces. HSR (High-availability Seamless
Redundancy) and PRP (Parallel Redundancy Protocol) are two protocols that
provide seamless failover against failure of any single network component. They
are both implemented by the "hsr" kernel driver.
2025-04-05 05:23:53 +09:00
Luca Boccassi
5aee5bda1a
tree-wide: introduce LOG_ITEM() macro for verifying format string ( #36780 )
...
This introduce `LOG_ITEM()` macro that checks format strings in
log_struct() and friends.
Hopefully, this silences false-positive warnings by Coverity.
2025-03-24 12:58:14 +00:00
Erik Larsson
c88adbc01d
networkd: add support for setting vlan_tunnel on bridge ports
2025-03-24 17:15:19 +09:00
Erik Larsson
6e529860ba
networkd: add support for externally managed vxlan devices
...
With this a vxlan interface can be created which is managed by
for example a EVPN control plane.
2025-03-20 20:29:47 +09:00
Yu Watanabe
3cf6a3a3d4
tree-wide: check more log message format in log_struct() and friends
...
This introduce LOG_ITEM() macro that checks arbitrary formats in
log_struct().
Then, drop _printf_ attribute from log_struct_internal(), as it does not
help so much, and compiler checked only the first format string.
Hopefully, this silences false-positive warnings by Coverity.
2025-03-19 01:56:48 +09:00
Matteo Croce
c154bb65ad
condition: introduce ConditionVersion=/AssertVersion=
...
Add a new condition wich checks against systemd version.
Change condition_test_kernel_version() into a generic condition_test_version()
so most of the code can be reused.
$ systemctl --version
systemd 258 (258~devel-g53ca5f6)
$ systemd-analyze condition 'ConditionVersion=systemd>255'
test.service: ConditionVersion=>255 succeeded.
$ systemd-analyze condition 'ConditionVersion=systemd>260'
test.service: ConditionVersion=>260 failed.
$ systemd-analyze condition 'ConditionVersion=systemd>=258'
test.service: ConditionVersion=>=258 succeeded.
$ systemd-analyze condition 'ConditionVersion=systemd>=257.1'
test.service: ConditionVersion=>=257.1 succeeded.
$ uname -r
6.12.13-200.fc41.aarch64
$ systemd-analyze condition 'ConditionVersion=kernel > 4.4'
test.service: ConditionVersion=kernel > 4.4 succeeded.
$ systemd-analyze condition 'ConditionVersion=kernel > 6.20'
test.service: ConditionVersion=kernel > 6.20 failed.
$ systemd-analyze condition 'ConditionVersion=kernel < 9.0'
test.service: ConditionVersion=kernel < 9.0 succeeded.
2025-03-18 18:36:59 +09:00
Yu Watanabe
27cc77b746
Fix bootctl status to not print strange glyphs in logs ( #36745 )
2025-03-16 05:56:55 +09:00
Zbigniew Jędrzejewski-Szmek
1ae9b0cfa8
basic/glyph-util: rename "special glyph" to just "glyph"
...
Admittedly, some of our glyphs _are_ special, e.g. "O=" for SPECIAL_GLYPH_TOUCH ;)
But we don't need this in the name. The very long names make some invocations
very wordy, e.g. special_glyph(SPECIAL_GLYPH_SLIGHTLY_UNHAPPY_SMILEY).
Also, I want to add GLYPH_SPACE, which is not special at all.
2025-03-15 14:40:39 +01:00
Yu Watanabe
cf28def391
network: do not remove static routes on other interfaces that are currently in the pending state
...
Otherwise, even if .network file has KeepConfiguration=yes, routes on
an interfaces may be removed on restart.
Fixes a bug introduced by 8d01e44c1f .
2025-03-15 10:26:20 +09:00
Yu Watanabe
278e3adf50
test: wrap assignments in ASSERT_OK() and friends with parentheses
...
Hopefully fixes many CID reports.
2025-03-13 05:15:28 +09:00
Matteo Croce
f06e6d19c0
network: add log messages when a route can't be updated
...
Sometimes networkd removes a route, based on route_can_update() verdict.
Add some debug messages to better understand whi this decision has been made.
2025-03-10 05:39:49 +09:00
Matteo Croce
bd0d22c2a5
network: remove useless loop ( #36648 )
...
In route_metric_can_update() the loop iterates over the metrics, but
skips all indices except for RTAX_MTU.
Replace it with a simple compare.
2025-03-08 17:39:09 +01:00
Yu Watanabe
5c9feb2d6e
tree-wide: drop unnecessary break in default branch
2025-03-06 11:42:20 +01:00
Daan De Meyer
5abf819a5f
basic: remove unnecessary definition in missing_xyz.h ( #36565 )
2025-03-04 08:41:14 +01:00
Daan De Meyer
9fd25fd3ce
network: Use RTNH_COMPARE_MASK in route_can_update() ( #36585 )
...
Let's only compare flags that can be set by userspace and not all flags.
Fixes a bug introduced by 7027cdbd79 (v256).
Fixes #36544
2025-03-04 05:00:33 +09:00
Yu Watanabe
e75372958d
missing_threads.h: threads.h exists since glibc-2.28
2025-03-04 02:24:49 +09:00
Yu Watanabe
4bfbf0fcdf
network: fix typo
...
Follow-up for 6698795eda .
2025-02-27 13:37:20 +09:00
Lennart Poettering
9df18e4bee
tree-wide: initialize row/column explicitly before calling sd_json_parse_file()
...
The variables are error return parameters, i.e. only initialized on some errors,
not all. Let's hence always zero initialize them.
2025-02-20 17:34:36 +01:00
Luca Boccassi
7b0403bef9
network: drop old kernel support ( #36402 )
2025-02-18 22:39:36 +00:00
Yu Watanabe
011a83e42b
network: fix KeepConfiguration=yes ( #36414 )
...
Fixes a regression in dd6d53a8dc (v257).
Fixes #36411 .
2025-02-19 02:09:09 +09:00
Steve Ramage
a4750ae156
network: doc and code typo fixes ( #36422 )
...
This fixes some typos in the documentation, both grammar as well as
incorrect field names.
It also changes the casing of CheckSum to Checksum in L2TP to match
other casings.
2025-02-19 02:08:16 +09:00
Yu Watanabe
81f637630c
network: introduce link_should_mark_config()
...
This split-out common logic from link_drop_routes() and friends.
This is mostly a refactoring, and not change behavior in most cases.
But slightly change behavior for how foreign nexthops and routing
policy rules are managed.
E.g. when KeepConfiguration=static, previously all foreign nexthops and
routing policy rules were kept, but now only foreign nexthops and rules
with RTPROT_STATIC are kept and others are dropped.
Similary, when KeepConfiguration=dynamic, previously all foreign nexthops
and rules were removed, but now foreign configs with a dynamic protocol
e.g. RTPROT_DHCP are kept, and still configs with RTPROT_STATIC are
dropped.
Currently, we do not set/get/manage protocol for neighbor entries.
Hence, the logic of managing foreign neighbor entries is unchanged.
2025-02-18 23:13:51 +09:00
Yu Watanabe
724faccf45
network/route: do not remove any foreign routes when KeepConfiguration=yes
...
Without this change, only foreign routes with RTPROT_KERNEL, RTPROT_STATIC,
RTPROT_DHCP, RTPROT_RA, and RTPROT_REDIRECT are kept, and foreign routes with
other protocol e.g. RTPROT_BOOT are removed even if KeepConfiguration=yes.
Fixes a regression in dd6d53a8dc (v257).
Fixes #36411 .
2025-02-18 23:01:53 +09:00
Yu Watanabe
f9c03297c5
network: update outdated comment
...
Now, our kernel base line supports ambient capabilities, hence the
comment is outdated.
2025-02-17 06:20:46 +09:00
Yu Watanabe
eb381e65f1
network/address: update comment
...
As commented in the code, the check is now redundant. But let's keep
that to make IPv6LL addresses on other interfaces not removed
accidentally.
2025-02-17 06:20:46 +09:00
Yu Watanabe
29c2d4e158
network/address: IFA_FLAGS is supported since kernel v3.14
...
Our kernel base line is now v5.4.
2025-02-17 06:20:46 +09:00
Yu Watanabe
7d1a8da719
network/bridge-mdb: drop workaround for MDB entry on bridge
...
Our kernel base line is now v5.4.
2025-02-17 06:20:46 +09:00
Yu Watanabe
0d73214cae
network: mention IFLA_PERM_ADDRESS is since kernel v5.6
2025-02-17 06:20:46 +09:00
Yu Watanabe
49625caaa9
network/routing-policy-rule: assume FRA_PROTOCOL attribute is always set
...
Since kernel v4.17 (1b71af6053af1bd2f849e9fda4f71c1e3f145dcf), the
attribute is always set in each netlink message for routing policy rule.
Now, our base line is v5.4. Hence, we can drop the workaround.
2025-02-17 06:20:36 +09:00
Yu Watanabe
6698795eda
network: add/update comments about required kernel configs
2025-02-17 05:13:06 +09:00
Yu Watanabe
034b69d8b8
network: assume nexthop is supported by the kernel
...
It is supported since kernel v5.3 (65ee00a9409f751188a8cdc0988167858eb4a536),
but our base line is now v5.4.
2025-02-17 04:54:59 +09:00
Luca Boccassi
382e8a03ca
network: allow to configure routing policy rule even if requesting interface is not activated yet ( #36257 )
...
Fixes a regression caused by 4f8b153d90
(v257).
Fixes #36244 .
2025-02-07 22:56:36 +00:00
Luca Boccassi
2ee81b556f
network/route: improve Gateway=_dhcp4 handling ( #36183 )
...
- Also configures route to the gateway and prefix route in the specified
table, if necessary.
- Also set preferred source address of the route.
Closes #36168 .
2025-02-05 12:19:01 +00:00