Yu Watanabe
59aa622013
network: dhcp-server: introduce Router= setting to specify router address
...
Closes #21202 .
2021-11-03 03:15:00 +09:00
Yu Watanabe
aa5a0f959c
sd-dhcp6-client: simplify code a bit
...
Also this adds a note.
2021-11-01 23:13:08 +09:00
Yu Watanabe
0936c189c9
sd-dhcp6-client: do not implicitly cast to boolean
2021-11-01 23:13:08 +09:00
Yu Watanabe
e79b4b8534
sd-dhcp6-client: introduce dhcp6_lease_{get,set}_clientid()
2021-11-01 23:13:08 +09:00
Yu Watanabe
65457c17e6
sd-dhcp6-client: shorten code a bit
2021-11-01 23:13:08 +09:00
Yu Watanabe
4f81f0d241
sd-dhcp6-client: prefix variables which store results with "ret_"
2021-11-01 23:13:08 +09:00
Yu Watanabe
d3aa9d6a80
sd-dhcp6-client: update log messages
2021-11-01 23:13:08 +09:00
Yu Watanabe
7e6abd25f4
Merge pull request #21200 from yuwata/sd-dhcp6-client-server-address
...
sd-dhcp6-client: introduce sd_dhcp6_lease_get_server_address()
2021-11-01 21:04:48 +09:00
Yu Watanabe
3b73ebc08a
Merge pull request #21199 from yuwata/sd-dhcp6-client-trivial-cleanups
...
sd-dhcp6-client: trivial cleanups
2021-11-01 21:04:05 +09:00
Yu Watanabe
ef4edc1546
sd-dhcp6-client: introduce sd_dhcp6_lease_get_server_address()
2021-11-01 18:22:49 +09:00
Yu Watanabe
2c269a4e2a
sd-lldp-tx: drop unused and useless function
...
sd-lldp-tx does not call any callback function. So, the function is
mostly useless.
2021-11-01 08:57:17 +00:00
Yu Watanabe
7f402e5b7b
sd-dhcp6: drop unused functions
2021-11-01 08:56:42 +00:00
Yu Watanabe
01b4e90f32
sd-dhcp6-client: request IA_PD by default
...
For consistency with 0f5ef9b62a
.
2021-11-01 10:02:50 +09:00
Yu Watanabe
5e82251913
sd-dhcp6-client: always set suitable ARP type
...
Also, drops unnecessary comparisons.
2021-11-01 09:51:52 +09:00
Yu Watanabe
6db9b30066
Merge pull request #21175 from tohojo/dhcp-server-expire
...
sd-dhcp-server: clear out expired leases when finding new address
2021-10-30 04:13:40 +09:00
Toke Høiland-Jørgensen
cb3c06a02e
sd-dhcp-server: fix address availability checks
...
The checks for finding a new available address in the pool were broken in two
ways: not using UINT32_TO_PTR() on hashmap lookups resulted in false negatives,
and the check wasn't skipping the server address if that was part of the pool.
Move the check for available addresses to a small helper function and fix both
issues, and also add a check to the REQUEST code for the server address.
2021-10-29 15:29:05 +02:00
Toke Høiland-Jørgensen
d635a7f9e4
sd-dhcp-server: clear out expired leases when processing requests
...
The DHCP server configuration supports setting a maximum lease time, but old
leases are never actually cleared out if the client doesn't send a RELEASE.
This causes the pool to run out of addresses on networks where clients just
disappear, which is a fairly common occurrence on wireless networks.
Fix this by cleaning up expired leases before processing client requests, so
addresses can be reused for new clients.
2021-10-29 15:29:05 +02:00
Yu Watanabe
17347053cf
libsystemd-network: drop _public_ attribute
...
No function in libsystemd-network is exposed yet.
2021-10-29 22:13:23 +09:00
Yu Watanabe
41521417ab
sd-radv: fix implicit conversion to boolean
2021-10-29 22:10:43 +09:00
Yu Watanabe
9661d2e80c
sd-ndisc: drop unused functions
...
All received information is stored in sd_ndisc_router, and we have
sd_ndisc_router_get_mtu() and sd_ndisc_router_get_hop_limit().
2021-10-29 22:05:27 +09:00
Yu Watanabe
d951507d5d
sd-radv: shorten the default lifetime for prefix/route prefix
...
See draft-ietf-6man-slaac-renum-02 section 4.1.1.
2021-10-27 23:58:35 +09:00
Yu Watanabe
95e104e049
sd-radv: make prefix/route prefix lifetime can be specified with independently with valid_until
...
Previously, valid_until (or preferred_until for preferred lifetime) was
calculated from lifetime. So, when an upstream interface acquire a
dynamic prefix (e.g. through DHCPv6-PD) with long lifetime, then sd-radv
advertise the same lifetime. It may not be desired for some situations.
2021-10-27 23:58:28 +09:00
Yu Watanabe
eef5ebec97
Merge pull request #21143 from yuwata/sd-radv-router-lifetime
...
sd-radv: several cleanups for router lifetime
2021-10-27 22:14:35 +09:00
Yu Watanabe
804775577d
sd-radv: update how to calculate interval of sending advertisements
2021-10-27 19:27:23 +09:00
Yu Watanabe
0945767012
sd-radv: router lifetime must be 0 or between 4 seconds and 9000 seconds
...
See RFC 4861 section 6.2.1.
2021-10-27 19:27:07 +09:00
Yu Watanabe
72db0a714b
sd-radv: introduce RADV_DEFAULT_ROUTER_LIFETIME_USEC
2021-10-27 19:05:55 +09:00
Yu Watanabe
e786c2e50f
sd-radv: add several notes about constants
2021-10-27 19:03:58 +09:00
Yu Watanabe
03ec10fdf4
sd-radv: make several constants not exposed
2021-10-27 19:03:35 +09:00
Yu Watanabe
d6fc0d674f
sd-radv: drop SD_ prefix for unexposed constants
2021-10-27 19:03:31 +09:00
Yu Watanabe
68cbac5bd4
sd-radv: use IPv6 specific functions
2021-10-27 16:41:04 +09:00
Yu Watanabe
acbb5500e2
sd-radv: use assert_return()
2021-10-27 16:41:04 +09:00
Yu Watanabe
7003b11487
sd-radv: make sd_radv_set_router_lifetime() take usec_t (uint64_t)
2021-10-27 16:13:09 +09:00
Yu Watanabe
a84171ce6f
libsystemd-network: do not warn when log_dhcp_client() or friends with NULL
2021-10-26 08:09:40 +09:00
Yu Watanabe
113e124f9b
icmp6: shorten code a bit
2021-10-21 22:40:03 +09:00
Yu Watanabe
ea51deb188
dhcp: shorten BPF code a bit
...
- replace `A = k` and `X = A` with `X = k`,
- replace `A ^= X` and `A == 0` with `A == X`.
- use UINT32_MAX when accept a packet
2021-10-21 22:39:53 +09:00
Yu Watanabe
155943b259
dhcp: rebreak function arguments
2021-10-21 22:39:43 +09:00
Yu Watanabe
b8319d748f
dhcp: fix assertions
2021-10-21 22:39:43 +09:00
Yu Watanabe
d70c78131d
dhcp: shorten code a bit
2021-10-21 22:39:43 +09:00
Yu Watanabe
36f1955da8
lldp: shorten code a bit
2021-10-21 22:39:43 +09:00
Yu Watanabe
e2c7c38b74
arp-util: shorten BPF code a bit
...
- replace `A = k` and `X = A` with `X = k`,
- replace `A ^= X` and `A == 0` with `A == X`.
- use UINT32_MAX when accept a packet
2021-10-21 22:39:25 +09:00
Yu Watanabe
653ddc1d18
sd-dhcp6-client: introduce sd_dhcp6_lease_get_timestamp()
2021-10-20 02:36:20 +09:00
Yu Watanabe
7502812c92
sd-dhcp6-client: max_retransmit_time must be positive
...
Found by LGTM.com analysis.
2021-10-13 02:49:49 +09:00
Yu Watanabe
fea8c18085
sd-dhcp6-client: introduce dhcp6_option_can_request()
2021-10-13 02:49:49 +09:00
Yu Watanabe
f5e3619b70
sd-dhcp6-client: add missing options
2021-10-12 20:48:19 +09:00
Yu Watanabe
ac94edc857
sd-dhcp6-client: add missing parenthesis
2021-10-12 20:48:19 +09:00
Yu Watanabe
59f1ded834
sd-dhcp6-client: add missing message types
...
This also changes the prefix: DHCP6_ -> DHCP6_MESSAGE_.
2021-10-12 20:48:19 +09:00
Yu Watanabe
b261b5f416
sd-dhcp6-client: name one more enum
2021-10-12 20:48:19 +09:00
Yu Watanabe
dd5e9378a2
sd-dhcp6-client: typedef several enums
...
Also introduces _MAX and _INVALID for several enums.
2021-10-12 20:48:19 +09:00
Zbigniew Jędrzejewski-Szmek
78ae9d3100
Merge pull request #20853 from yuwata/network-radv-set-default-timeouts
...
network: RADV: set default timeouts
2021-10-12 10:49:03 +02:00
Yu Watanabe
f21b863eeb
test: use assert_se() instead of assert()
2021-10-12 15:20:28 +09:00
Yu Watanabe
7ebb14313f
sd-radv: rename sd_radv_prefix_set_route_prefix() -> sd_radv_route_prefix_set_prefix()
2021-10-12 03:10:30 +09:00
Lennart Poettering
7fbae5b706
tree-wide: use C99 __func__ rather than obsolete __FUNCTION__
...
We use __func__ almost everywhere, but there are some holdouts. Fix
that.
2021-10-11 14:10:39 +02:00
Lennart Poettering
fe92eb795b
network: use official bswap_32() rather than inofficial __bswap_32()
...
The former is a macro for the latter, but let's use the official API
(the one that has an API).
2021-10-11 14:10:07 +02:00
Yu Watanabe
e210f027e0
sd-dhcp6-client: rename dhcp6_lease_set_dns() -> dhcp6_lease_add_dns()
...
As it is allowed that multiple DNS server options appear in the message.
2021-09-29 15:29:41 +09:00
Yu Watanabe
e693e96961
sd-dhcp6-client: do not merge NTP and SNTP options
...
Previously, SNTP option is ignored when it appears after NTP option(s),
but merged later NTP options when it appears first.
This makes split the NTP and SNTP addresses, and use SNTP addresses only
when no NTP option is provided.
2021-09-29 15:29:41 +09:00
Yu Watanabe
9c3d46bf8d
sd-dhcp6-client: support multiple NTP server options
...
Also, it is allowed that the suboption appears multiple times, and each
suboption contains one NTP server.
2021-09-29 15:29:41 +09:00
Yu Watanabe
41b14f0329
sd-dhcp6-client: support multiple domains
2021-09-29 15:29:41 +09:00
Yu Watanabe
5cf67bb407
sd-dhcp6-client: make dhcp6_lease_free() accepts NULL
2021-09-29 15:29:40 +09:00
Yu Watanabe
edeee50b3d
sd-dhcp6-client: drop domains_count and ntp_fqdn_count
2021-09-29 15:29:40 +09:00
Yu Watanabe
548c33d712
sd-dhcp6-client: use dhcp6_option_parse() in client_parse_message()
2021-09-29 15:29:40 +09:00
Yu Watanabe
3f8227bf83
sd-dhcp6-client: constify several arguments
2021-09-29 15:29:40 +09:00
Yu Watanabe
b27dcf0813
sd-dhcp6-client: slightly modernize dhcp6_option_parse_domainname()/domainname_list()
2021-09-29 15:29:40 +09:00
Yu Watanabe
ad3c84204c
sd-dhcp6-client: fix buffer size calculation in dhcp6_option_parse_ip6addrs()
...
GREEDY_REALLOC() takes number of elements, not buffer size.
This also rename dhcp6_option_parse_ip6addrs() to
dhcp6_option_parse_addresses().
2021-09-29 15:29:40 +09:00
Yu Watanabe
8a8955507a
sd-dhcp6-client: modernize dhcp6_option_parse_ia()
...
This makes
- the function not update the arguments for storing results on error,
- use dhcp6_option_parse() to parse sub options,
- ignore all errors, except for -ENOMEM, in parsing sub options,
- update log messages.
2021-09-29 15:29:40 +09:00
Yu Watanabe
4af39cb8ec
sd-dhcp6-client: make dhcp6_option_parse_status() also parse error message
...
This also introduce dhcp6_option_parse_ia_options(). Currently, it is
assumed that each IA address or PD prefix may contain a status sub-option.
But it is not prohibited that other sub-options or multiple status
options are contained.
2021-09-29 15:29:36 +09:00
Yu Watanabe
e620104956
test: add tests for reading unaligned data
2021-09-29 15:18:59 +09:00
Yu Watanabe
b89a3758e9
sd-dhcp6-client: modernize dhcp6_option_parse()
...
- merge dhcp6_option_parse() with option_parse_hdr().
- do not assign/update any values on error.
- use assert() instead of assert_return(), as the assertions cannot
be triggered by a library user.
2021-09-29 15:18:59 +09:00
Yu Watanabe
dc95e21d33
sd-dhcp6-client: constify one argument
2021-09-29 15:18:59 +09:00
Yu Watanabe
5977b71f28
libsystemd-network: make sd_dhcp_client_get_ifname() or friends return negative errno on error
2021-09-29 03:37:09 +09:00
Yu Watanabe
01afd0f7f5
tree-wide: make format_ifname() or friends return negative errno on failure
...
Also,
- drop unnecessary +1 from buffer size, as IF_NAMESIZE or IFNAMSIZ
includes the nul at the end.
- format_ifname() does not update buffer on failure,
- introduces format_ifname_alloc(), FORMAT_IFNAME(), and their friends.
2021-09-29 03:37:06 +09:00
Yu Watanabe
35777f5178
sd-lldp-rx: make lldp_rx_free() and lldp_neighbor_free() accept NULL
2021-09-28 17:55:19 +09:00
Yu Watanabe
92466b8da2
sd-lldp-rx: sd_event should be attached when lldp_rx_start_timer() is called
2021-09-28 17:55:19 +09:00
Yu Watanabe
3e4a202519
sd-lldp-rx: do not enable timer event source in sd_lldp_rx_get_neighbors()
...
It must be just a simple getter.
2021-09-28 17:55:19 +09:00
Yu Watanabe
0cd7e072b4
sd-lldp-rx: use _cleanup_ attribute at one more place
2021-09-28 17:55:19 +09:00
Yu Watanabe
71c4f7e895
sd-lldp-rx: wrap long line
2021-09-28 17:55:19 +09:00
Yu Watanabe
90496cc68c
sd-lldp-rx: add missing assertions
2021-09-28 17:55:19 +09:00
Yu Watanabe
b0a67b202d
sd-lldp-rx: delay allocating hashmap and prioq to store neighbors
2021-09-28 17:55:16 +09:00
Yu Watanabe
aa3f8d4ca1
sd-lldp-rx: ensure no event will be triggered after sd_lldp_rx_detach_event() is called
2021-09-28 15:07:37 +09:00
Yu Watanabe
e9ea43136c
sd-lldp-rx: add comments about the three multicast addresses
2021-09-28 15:07:13 +09:00
Yu Watanabe
b5dce07a5e
sd-lldp-rx: introduce sd_lldp_rx_is_running()
2021-09-28 14:51:24 +09:00
Yu Watanabe
4be699a8db
sd-lldp-rx: ignore all errors in processing datagram
2021-09-28 14:44:12 +09:00
Yu Watanabe
7df9656782
sd-lldp-tx: introduce sd-lldp-tx
2021-09-28 01:35:47 +09:00
Yu Watanabe
3be1e84fe9
sd-lldp: introduce SD_LLDP_OUI_IANA_MUD macro
2021-09-28 01:34:00 +09:00
Yu Watanabe
35778343ab
sd-lldp-rx: rename sd_lldp -> sd_lldp_rx
2021-09-27 23:55:11 +09:00
Yu Watanabe
94832e6e55
test: also rename {test,fuzz}-lldp.c
2021-09-27 23:55:11 +09:00
Yu Watanabe
3a2ee8554e
sd-lldp: rename sd-lldp.[ch] -> sd-lldp-rx.[ch]
2021-09-27 23:55:11 +09:00
Yu Watanabe
82e0689cd8
meson: sort files
2021-09-27 23:55:11 +09:00
Yu Watanabe
eb2f750242
libsystemd-network: disable event sources before unref them
...
Fixes #20825 .
2021-09-24 17:26:41 +09:00
Yu Watanabe
469fd57f18
sd-dhcp6-client: ignore IAs whose IAID do not match client's IAID
...
But do not refuse whole message.
Fixes #20803 .
2021-09-22 21:19:54 +01:00
Yu Watanabe
f782eee68a
journal,network,timesync: fix segfault on 32bit timeval/timespec systems
...
Fixes #20741 .
2021-09-16 11:47:44 +02:00
Alvin Šipraga
8e664ab6ec
network: print Ethernet Link-Layer DHCP client ID with leading 0's
...
This is a small cosmetic change.
Before:
Offered DHCP leases: 192.168.0.183 (to 0:9:a7:36:bc:89)
After:
Offered DHCP leases: 192.168.0.183 (to 00:09:a7:36:bc:89)
2021-09-01 00:04:04 +09:00
Yu Watanabe
9365e296fe
socket-util: introduce CMSG_SPACE_TIMEVAL/TIMESPEC macro to support additional 64bit timeval or timespec
...
Fixes #20482 and #20564 .
2021-08-30 19:56:41 +09:00
Yu Watanabe
6da22a2fa5
icmp6: drop unnecessary assertion
...
Follow-up for 3691bcf3c5
.
2021-08-20 08:44:31 +09:00
Yu Watanabe
b713a99b1a
sd-dhcp-server: support static lease outside of address pool
...
Closes #20341 .
2021-08-11 16:43:26 +09:00
Yu Watanabe
3dc8fb0eb8
sd-dhcp-server: fix possible double-free or use-after-free
2021-08-11 16:43:25 +09:00
Yu Watanabe
cedf6a8da5
sd-dhcp-server: use hashmap_ensure_put()
2021-08-11 16:43:25 +09:00
Yu Watanabe
0eec7f5ffa
sd-dhcp6-client: use SYNTHETIC_ERRNO()
2021-08-10 21:57:42 +09:00
Yu Watanabe
de949e911e
sd-dhcp6-client: cirtainly adjust T1 and T2
...
This fixes a bug introduced by 99f1d3fc50
.
Note that in the information requesting mode, the lease has neither
addresses nor PD prefixes.
2021-08-10 21:39:30 +09:00
Yu Watanabe
0c42b61348
sd-dhcp6-client: fix copy-and-paste mistake
...
Fix bug introduced by b47fb949b3
.
2021-08-10 21:36:07 +09:00
Yu Watanabe
d7799877a0
sd-dhcp6-client: do not ignore errors in client_receive_advertise()
...
This also adds several debug log messages.
2021-08-05 11:14:23 +01:00