Yu Watanabe
a93538e892
dhcp: introduce sd_dhcp_lease_get_timestamp()
...
And drop sd_dhcp_client_get_lease_timestamp().
Also, this introduce sd_dhcp_lease_get_lifetime_timestamp() and friends,
which provides timestamp of the lifetime and so on, while
sd_dhcp_lease_get_lifetime() provides timestamp.
2023-09-06 02:02:21 +09:00
Yu Watanabe
5fde4d37d4
sd-dhcp-client: store lifetime and friends in usec_t
2023-09-06 02:02:21 +09:00
Yu Watanabe
a832087979
Merge pull request #29023 from pelaufer/dhcp-prefix-dbus
...
Add dhcp client prefix lease information to networkd json output
2023-09-05 00:16:19 +09:00
Yu Watanabe
8b1bd20722
Merge pull request #29052 from yuwata/icmp6-util-cleanups
...
icmp6-util: several cleanups and fixlets
2023-09-05 00:15:23 +09:00
Susant Sahani
6e8f5e4c1f
network: ndisc - Allow to parse PREF64 prefix
2023-09-04 23:41:02 +09:00
Susant Sahani
6a6d27bc5b
network: sd-radv - Allow to configure Mobile IPv6 Home Agent
2023-09-04 23:40:40 +09:00
Yu Watanabe
690afe79dd
test: extract dummy icmp6 utils for tests
...
This extracts common implementation of dummy icmp6 utils used by tests.
2023-09-04 21:54:51 +09:00
Yu Watanabe
4961f56646
icmp6-util: make icmp6_receive() accept the null source address
...
Fixes #29050 .
2023-09-04 21:54:43 +09:00
Yu Watanabe
5121163832
icmp6-util: several cleanups for icmp6_receive()
...
- Rename the argument for storing the sender address,
- allow to call it with NULL for ret_xyz,
- reduce needless copy of timestamp when the message does not have
timestamp.
2023-09-04 21:52:55 +09:00
Yu Watanabe
4674f407b2
sd-ndisc,sd-radv: fix use of uninitialized value
...
When icmp6_receive() fails, then the source address is not initialized yet.
2023-09-04 19:31:40 +09:00
pelaufer
fd9b7f5bea
Adding dhcp client and dhcp6 client state interface
2023-09-02 14:51:03 -06:00
pelaufer
8412d4c878
Adding dhcp_state_to_string and dhcp client state change logging
2023-09-02 14:46:47 -06:00
pelaufer
8fb6320e4b
Add dhcp client prefix lease information to networkd json output
2023-09-02 13:45:03 -06:00
pelaufer
4502f82beb
Adding client_set_state to sd-dhcp-client.c to support a client state change hook
2023-09-01 12:34:13 -06:00
Yu Watanabe
3b981f7428
Revert "test-dhcp-client: add temporary workaround for assertion failure"
...
This reverts commit 1686c884bf .
The issue should be fixed by the previous commit. Let's drop the
workaround.
2023-08-30 17:37:22 +09:00
Yu Watanabe
5e2a89d84b
sd-dhcp-client: ensure IAID and DUID being set on start
...
After b2851e8d62 , if IAID and DUID are not
set on start, calling sd_dhcp_client_set_iaid_duid_en() in
client_message_init() triggers assertion, as the client is already
running at the stage. Let's set IAID and DUID earlier.
Fixes #28990 .
2023-08-30 17:37:03 +09:00
Susant Sahani
1a6b1214af
sd-radv: fix memory leak
2023-08-28 14:07:16 +01:00
Luca Boccassi
1686c884bf
test-dhcp-client: add temporary workaround for assertion failure
...
Workaround for https://github.com/systemd/systemd/issues/28990
Introduced by https://github.com/systemd/systemd/pull/28932 but CI was
green there. Add a workaround to get the CI back in shape while it is
being investigated.
2023-08-28 12:29:10 +01:00
Yu Watanabe
b2851e8d62
sd-dhcp-client: make client initially in stopped state
...
Previously, DHCP_STATE_STOPPED and DHCP_STATE_INIT are both handled as
not-running. Moreover, previously after sd_dhcp_client_start() is
called, the client still in INIT state (and thus handled as not-running)
even if its internal timer event sources are initialized.
Let's make only STOPPED state handled as not-running, and make the
client initially in STOPPED state.
Prompted by #28896 .
2023-08-28 10:25:14 +01:00
Susant Sahani
1925f829ab
network: sd-radv - Introduce pref64 support (RFC8781)
...
Implements: https://datatracker.ietf.org/doc/html/rfc8781
```
[IPv6PREF64Prefix]
Prefix=2003:da8:1:0::/64
ValidLifetimeSec=30m
Frame 16: 126 bytes on wire (1008 bits), 126 bytes captured (1008 bits) on interface veth99, id 0
Ethernet II, Src: 06:c7:41:95:1d:7f (06:c7:41:95:1d:7f), Dst: IPv6mcast_01 (33:33:00:00:00:01)
Internet Protocol Version 6, Src: fe80::4c7:41ff:fe95:1d7f, Dst: ff02::1
Internet Control Message Protocol v6
Type: Router Advertisement (134)
Code: 0
Checksum: 0x0ca0 [correct]
[Checksum Status: Good]
Cur hop limit: 0
Flags: 0x00, Prf (Default Router Preference): Medium
Router lifetime (s): 1800
Reachable time (ms): 0
Retrans timer (ms): 0
ICMPv6 Option (Source link-layer address : 06:c7:41:95:1d:7f)
ICMPv6 Option (Prefix information : 2002:da8:1::/64)
ICMPv6 Option (PREF64 Option)
Type: PREF64 Option (38)
Length: 2 (16 bytes)
0000 0111 0000 1... = Scaled Lifetime: 225
.... .... .... .001 = PLC (Prefix Length Code): 64 bits prefix length (0x1)
Prefix: 64:ff9b::
```
2023-08-25 15:13:06 +02:00
Zbigniew Jędrzejewski-Szmek
12455d6e87
Merge pull request #28918 from yuwata/network-dhcp-custom-duid
...
network/dhcp: allow to specify custom duid type
2023-08-24 15:45:07 +02:00
Lennart Poettering
24ae45cb65
alloc-util: add free_many() helper
...
We often free an array of things. Let's create a common helper for this,
and port some potential users over. (Not all, too lazy for that for
now).
2023-08-24 15:04:33 +02:00
Yu Watanabe
80500bb5d4
network/dhcp: make DUIDType= take an arbitrary integer
...
Closes #26745 .
2023-08-24 19:55:27 +09:00
Yu Watanabe
2da796cabb
dhcp: DUID-EN identifier has variable length
...
Also make `array[0]` -> `array[]`.
See RFC 8415, section 11.3.
2023-08-24 19:52:35 +09:00
Yu Watanabe
9291496011
network/dhcp: fix maximal DUID data size
...
The maximum DUID size is 128, but that includes type specified.
Hence, the maximal data size is 126.
2023-08-24 19:50:37 +09:00
Yu Watanabe
53488ea352
network: introduce per DUID type setters
...
No functional change, just refactoring.
2023-08-24 19:50:36 +09:00
Yu Watanabe
6ed69be98a
Revert "network: DHCP6 client- Allow to send manual DUID"
...
This reverts commits 89e73ce86f and
543d2a4d45 .
The commit assign "custom" to fixed DUID type 5. When making DUID fully
configurable, the type number should be also configurable. Also, the
fully custom DUID should be acceptable for DHCPv4.
2023-08-24 19:50:36 +09:00
Nandakumar Raghavan
a2fc6f2d59
networkd: Add T1 and T2 DHCPv6 options to expose in dbus API
...
Include T1 and T2 DHCPv6 options to expose in dbus API.
Introduced new field DHCPv6lease where these options are
added. This will be added to the JSON output when we query
org.freedesktop.network1.Manager object.
2023-08-23 12:43:09 +09:00
Susant Sahani
fdc4c67c2a
network/radv: allow to configure the time between retransmitted Neighbor Solicitation ( #28888 )
2023-08-23 12:37:44 +09:00
Lennart Poettering
cf1ab844a9
tree-wide: drop "static inline" use in .c files
...
"static inline" makes sense in .h files. But in .c files it's useless
decoration, the compiler should just make its own decisions there, and
it can do that.
hence, replace all remaining uses of "static line" by a simple" static"
in all .c files (but keep them in .h files, where they make sense)
2023-08-21 23:15:12 +02:00
Susant Sahani
9175002864
network: ndisc - Allow to use ICMP6 rate limit from received RA
2023-08-21 11:14:42 +02:00
Susant Sahani
89e73ce86f
network: DHCP6 client- Allow to send manual DUID
...
```
[DHCPv6]
DUIDType=custom
DUIDRawData=00:00:ab:11:f9:2a:c2:77:29:f9:5c:00
```
```
Client Identifier
Option: Client Identifier (1)
Length: 12
DUID: 0000ab11f92ac27729f95c00
DUID Type: Unknown (0)
```
2023-08-17 23:52:22 +05:30
David Tardon
52e3671bf7
tree-wide: use LIST_POP()
2023-08-17 09:48:17 +02:00
David Tardon
9aad490e53
tree-wide: use LIST_CLEAR()
2023-08-17 09:48:17 +02:00
Zbigniew Jędrzejewski-Szmek
1f2db2e315
libsystemd-network: use _NEG_ macros to reduce indentation
...
No functional change intended.
2023-08-16 12:52:56 +02:00
Daan De Meyer
2af02e6165
tree-wide: Always include <net/if.h> before related linux headers
...
Otherwise, we get redefinition errors if <net/if.h> is included later
on by another header.
2023-08-14 13:16:46 +02:00
Susant Sahani
3912d49d0d
network: ndisc - Ignore route information if reserved (10) value is
...
received
RFC4191 – Section 2.3 Route Information Option's Prf field:
If the Reserved (10) value is received, the Route Information Option MUST be ignored.
2023-08-14 12:43:38 +09:00
Yu Watanabe
809da721f0
sd-dhcp-server: propagate error on parsing DHCP packet
...
Otherwise, we silently ignore the received packet and that makes hard to
debug issue.
2023-08-09 05:33:24 +09:00
Yu Watanabe
7b1fac1e52
dhcp: rename function argument
2023-08-09 05:26:18 +09:00
Yu Watanabe
cbc55c4cce
meson: also merge declarations of fuzzers with other executables
2023-08-03 20:37:16 +09:00
Yu Watanabe
130c87b16a
meson: merge declarations of normal and test executables
2023-08-03 20:37:16 +09:00
Yu Watanabe
626d653a90
sd-ipv4acd: introduce sd_ipv4acd_is_bound()
2023-07-30 23:15:53 +09:00
Luca Boccassi
fc3fe92bc8
Merge pull request #28508 from yuwata/network-next-dhcp4
...
network: several cleanups and fixes for DHCPv4 client
2023-07-29 12:15:38 +01:00
Yu Watanabe
d8f19e03c0
network,dhcp: drop support of ClientIdentifier=duid-only
...
The setting has not been never worked, not tested, and should not been
used. As the option is RFC incompliant. Let's drop it.
Closes #25562 .
2023-07-29 18:51:09 +09:00
Yu Watanabe
33acdc511c
sd-dhcp: introduce sd_dhcp_lease_get_prefix()
2023-07-28 05:15:11 +09:00
Zbigniew Jędrzejewski-Szmek
9ef648cca1
various: use RET_GATHER
...
No functional change indentended.
2023-07-13 11:12:00 +02:00
Ronan Pigott
46bc8561f0
dhcp6: relax data assert in dhcp6_option_parse_string
...
dhcp6_option_parse_string is intended to clear strings with length 0,
for consistency. The data assert is too strict for this purpose, so we
will allow data || data_len == 0, similar to other dhcp6_option_parse*
helpers.
Fixes: fde788601b ("dhcp6-client: parse RFC8910 captive portal dhcp6 option")
2023-07-03 13:07:29 -07:00
Yu Watanabe
86c2a76e09
Merge pull request #28132 from rpigott/dhcp-captive-portal
...
Implement RFC8910: captive portal dhcp options
2023-07-03 14:51:56 +09:00
Zbigniew Jędrzejewski-Szmek
da89046643
tree-wide: "<n>bit" → "<n>-bit"
...
In some places, "<n> bits" is used when more appropriate.
2023-07-02 11:10:12 +01:00
Ronan Pigott
9747955d2d
ndisc: parse RFC8910 captive portal ipv6ra option
2023-07-02 01:13:29 -07:00