Commit Graph
3645 Commits
Author SHA1 Message Date
Zbigniew Jędrzejewski-Szmek 399f74c79d sd-netlink: pahole optimization of sd_netlink_slot
By rearranging the fields, we can avoid one of the holes (on amd64).
By adding more space for .type, -EINVAL can be used as a value later on.
The structure is reduced from 96 to 88 bytes (on amd64).

Text size is also smaller:
-rwxrwxr-x 1 zbyszek zbyszek 4109832 Feb  9 19:50 build/libsystemd.so.0.30.0
-rwxrwxr-x 1 zbyszek zbyszek 4109792 Feb  9 19:51 build/libsystemd.so.0.30.0
2021-02-10 14:43:10 +01:00
Zbigniew Jędrzejewski-Szmek 755c6d5923 sd-event: drop one bitfield from sd_event_source
pahole analysis confirms that the structure size does not change (there
was/is a hole after the sequence of bitfields anyway).
2021-02-10 14:43:10 +01:00
Zbigniew Jędrzejewski-Szmek 61b315de9b Add comma in structured initialization in a few places
It just looks nicer…
2021-02-10 14:43:10 +01:00
Lennart Poettering 775ae35403 resolved: add support for answering DNSSEC questions on the stub
This substantially beefs up the local DNS stub feature set in order to
allow local clients to do DNSSEC validation through the stub.

Previously we'd return NOTIMP if we'd get a DO or DO+CD lookup. With
this change we'll instead:

1. If we get DO+CD requests (i.e. DNSSEC with no local checking) we'll
   proxy DNS queries and response mostly unmodified to/from upstream DNS
   servers if possible (this is called "bypass" mode).  We will patch in
   new request IDs, (and patch them back out on reply), so that we can
   sanely keep track of things.  We'll also maintain a minimal local
   cache for such lookups, always keeping the whole DNS packets in it
   (if we reply from cache we'll patch the TTLs of all included RRs).

2. If we get DO requests without CD (i.e. DNSSEC with local checking)
   we'll resolve and validate locally. In this mode we will not proxy
   packets, but generate our own. We will however cache the combination
   of answer RRs (along with their packet section assignments) we got
   back in the cache, and use this information to generate reply packets
   from the DNS stub.

In both cases: if we determine a lookup is to be answered from LLMNR or
mDNS we'll always revert to non-DNSSEC, non-proxy operation as before.
Answers will lack the DO bit then, since the data cannot be validated
via DNSSEC by the clients.

To make this logic more debuggable, this also adds query flags for
turning off RR sources. i.e. cache/network/zone/trust anchor/local
synthesis may now be disabled individually for each lookup.

The cache is substantially updated to make all this work: in addition to
caching simple RRs for lookup RR keys, we'll now cache the whole packets
and the whole combination of RRs, so that we can answer DO and DO+CD
replies sensibly according to the rules described above. This sounds
wasteful, but given that the
DnsResourceRecord/DnsResourceKey/DnsAnswer/DnsPacket
objects are all ref-counted and we try to merge references the actual
additional memory used should be limited (but this might be something to
optimize further later on).

To implement classic RR key lookups and new-style packet proxy lookups
(i.e. the ones necessary for DO+CD packet proxying, as described above)
DnsTransaction and DnsQuery objects now always maintain either a
DnsResourceKey/DnsQuestion as lookup key or a DnsPacket for "bypass"
mode.

Fixes: #4621 #17218
2021-02-09 17:58:25 +01:00
Yu Watanabe 957991b7ac hostname: introduce two bus errors for updating file 2021-02-09 13:37:27 +09:00
Yu Watanabe 0ce2a086da bus-error: align error definitions 2021-02-09 13:37:27 +09:00
Zbigniew Jędrzejewski-Szmek 07ffdcf915 Merge pull request #18331 from yuwata/test-udev-event-spawn
udev: add tests for udev_event_spawn()
2021-02-08 11:10:36 +01:00
Yu Watanabe face9fcc16 network,udev: move TransmitQueues=/ReceiveQueues= from .network to .link
As the settings are mostly hardware setup, and merely see from network
layer.

See also discussions in
https://github.com/systemd/systemd/pull/18170#issuecomment-758807497
https://github.com/orgs/systemd/teams/systemd/discussions/1
2021-02-03 14:44:51 +09:00
Yu Watanabe 8b9708d1d3 sd-event: retrieve more events when epoll_wait() returns number equivalent to the buffer size
When epoll_wait() returns number equivalent to the buffer size, there
may exist remaining events which may have higher priority. To make priority
sorting correctly, let's retrieve all events.
2021-02-02 01:14:39 +09:00
Zbigniew Jędrzejewski-Szmek 1d3a473b4a man: use ellipses for ranges in range descriptions
… and in few other places ;)
2021-01-29 17:02:23 +01:00
Zbigniew Jędrzejewski-Szmek 7a6eb60bd5 license: LGPL-2.1+ -> LGPL-2.1-or-later
Follow-up for db9ecf0501 and
faa73d4e0c.
2021-01-28 09:55:35 +01:00
Zbigniew Jędrzejewski-Szmek 2bc48bbdd7 docs: expose GVARIANT-SERIALIZATION as markdown 2021-01-28 09:55:35 +01:00
Zbigniew Jędrzejewski-Szmek 9ee03516df tree-wide: add spdx header on all scripts and helpers
Even though many of those scripts are very simple, it is easier to include
the header than to try to say whether each of those files is trivial enough
not to require one.
2021-01-28 09:55:35 +01:00
Susant Sahani fe96c0f86d treewide: tighten variable scope in loops (#18372)
Also use _cleanup_free_ in one more place.
2021-01-27 08:19:39 +01:00
Lennart Poettering 0de405873c Merge pull request #18377 from yuwata/sd-device-cleanups
sd-device: several tiny cleanups
2021-01-26 17:39:54 +01:00
Yu Watanabe 49f2369377 sd-device: do not use downgrade-to-bool feature 2021-01-27 00:01:02 +09:00
Yu Watanabe d6ae82bdd9 sd-netlink: fix indentation 2021-01-26 23:58:08 +09:00
Yu Watanabe 22d33e8090 sd-netlink: do not use downgrade-to-bool feature 2021-01-26 23:57:59 +09:00
Yu Watanabe ce634c4a4d sd-device: use size_t for index in the loop 2021-01-26 20:35:53 +09:00
Yu Watanabe 61c0972dad sd-device: use string_hash_ops_free_free 2021-01-26 20:26:33 +09:00
Yu Watanabe 327379f5f2 sd-device: add a short comment why we simply return negative errno here on failure 2021-01-26 20:07:38 +09:00
Yu Watanabe 4f1ef7f9e0 sd-device: rename variables and use TAKE_PTR() 2021-01-26 19:56:13 +09:00
Yu Watanabe dd75bbee43 sd-device: use string_hash_ops_free_free 2021-01-26 19:52:56 +09:00
Zbigniew Jędrzejewski-Szmek fc9fd800e8 libsystemd: fix typo in symbol versioning 2021-01-25 11:50:28 +00:00
Daan De Meyer eb83eb63b8 sd-bus: Add sd_bus_reply()
While sd-bus already provides sd_bus_call() for calling a method
from a complete bus message object, We don't have an equivalent
function for replying from a method with a complete bus message
object.

Currently, we use sd_bus_send(call->bus, m, NULL) instead. Let's
add a shorthand for this pattern and name it sd_bus_reply().
2021-01-25 12:31:17 +09:00
Dan Streetman a853652ae9 save link activation policy to state file and display in networkctl 2021-01-21 12:05:17 -05:00
Susant Sahani c2484a7514 sd-event: Use hashmap_ensure_put 2021-01-20 15:13:21 +01:00
Susant Sahani f656fdb623 sd-event: Use hashmap_ensure_put 2021-01-20 15:13:18 +01:00
Susant Sahani 639deab187 sd-device: Use TAKE_PTR 2021-01-20 15:13:13 +01:00
Susant Sahani e8480482ca sd-device: Use hashmap_ensure_put 2021-01-20 15:13:08 +01:00
Susant Sahani 8231485bc5 journal: Use cleanup_free 2021-01-20 15:08:59 +01:00
Susant Sahani faa7e5a43b Journal: Use hashmap_ensure_put 2021-01-20 15:08:30 +01:00
Yu Watanabe 7e2757c42f Merge pull request #18038 from yuwata/meson-split
meson: various cleanups
2021-01-19 12:22:34 +09:00
Yu Watanabe 024e9084c1 meson: move several definitions related libsystemd to src/libsystemd/meson.build 2021-01-19 07:06:32 +09:00
Yu Watanabe e025c9dfe3 meson: move test or fuzzer definitions to relevant meson.build in subdirectories 2021-01-19 07:06:32 +09:00
Yu Watanabe 8d40961c3c meson: slightly disentangle code dependencies
But, still sd-id128 is used in src/basic.
2021-01-19 07:06:32 +09:00
Yu Watanabe 6969a671d9 test: drop bus-util.h from sd-bus
To drop src/shared from include directories to build libsystemd.so later.
2021-01-19 07:04:19 +09:00
Yu Watanabe c11e5f43d2 util: move several DNS related definitions to src/basic/dns-def.h
DNS_HOSTNAME_MAX is used by sd-resolve, but it was defined in
src/shared/dns-domain.h. The library libsystemd should be independent
of source files under src/shared.
2021-01-19 07:04:19 +09:00
Yu Watanabe 772e0a76f3 test: rewrite test-sd-device-thread.c to depend only on libsystemd
Similarly, this makes test-udev-device-thread.c depend only on libudev.
2021-01-19 07:04:19 +09:00
Yu Watanabe 261fc53b99 test: move tests for libudev into src/libudev 2021-01-19 07:04:19 +09:00
Yu Watanabe 99b9f8fddd sd-journal: move source files for sd-journal to src/libsystemd/sd-journal 2021-01-19 07:04:18 +09:00
Susant Sahani 1b5d349788 sd-netlink: use hashmap_ensure_put 2021-01-18 21:35:31 +01:00
Yu Watanabe f9ead1a2f4 Merge pull request #18230 from ssahani/macvlan-bcqueuelen
network: macvlan - add support to configure rx queue for broadcast / multicast
2021-01-17 20:05:22 +09:00
Susant Sahani 7e27a7458c sd-netlink: mcvlan - add new attributes 2021-01-14 14:01:58 +01:00
Susant Sahani c9b31b1750 sd-netlink: Supprt netlink types bitfield and reject 2021-01-14 14:01:56 +01:00
Ulrich Ölmann ef4a91a7e8 udev: introduce TxQueueLength= setting
Enable udev to set the transmit queue length of a device via a new directive to
be used in link files. The kernel stores this parameter as an unsigned 32 bit
integer. As typical values currently range in the order of 10 to a few 10,000
packets reduce the domain of valid values for this directive to 0..4294967294
and take the excluded 4294967295 == UINT32_MAX to indicate that the directive
is unset.
2021-01-13 06:41:06 +01:00
Yu Watanabe 048be097d2 Merge pull request #18157 from ssahani/vlan-qos
network: Allow to configure VLan egress qos maps
2021-01-13 05:42:53 +09:00
Yu Watanabe 7c5869530c Merge pull request #17628 from ssahani/network-gso
udev: Add support to configure Generic Segment Offload
2021-01-13 05:42:23 +09:00
Susant Sahani c97cad60d1 sd-netlink: add support to configure Generic Segment Offload 2021-01-12 13:35:31 +01:00
Yu Watanabe 8f13ef254b sd-bus: fix memleak
Closes CID#1437780.
2021-01-12 20:46:47 +09:00