Luka Kudra
a95e930685
network: register callback for dhcp server ( #18146 )
...
Setting dhcp_server_callback is needed in order to get an event when dhcp
leases change.
The callback was introduced by 38ee31a6e4
,
but never used.
2021-01-10 14:36:07 +09:00
Yu Watanabe
db9ecf0501
license: LGPL-2.1+ -> LGPL-2.1-or-later
2020-11-09 13:23:58 +09:00
Yu Watanabe
5ae0fb7fb7
network: move link_dhcp4_server_enabled()
2020-10-07 02:50:50 +09:00
Yu Watanabe
093e35334d
network: header cleanup
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
Zbigniew Jędrzejewski-Szmek
90e74a66e6
tree-wide: define iterator inside of the macro
2020-09-08 12:14:05 +02:00
Yu Watanabe
e77bd3fdff
network: support port number and SNI in [Network] DNS=
2020-07-21 04:08:22 +09:00
Yu Watanabe
d96edb2c6e
network: downgrade log level in conf parsers
2020-07-17 00:40:09 +09:00
Yu Watanabe
c4e585a36b
network: add missing break
...
Follow-up for 2a71d57f4e
.
2020-06-22 12:50:46 +02:00
Lennart Poettering
2a71d57f4e
network: clean-up DHCP lease server data configuration
...
This is an attempt to clean up the POP3/SMTP/LPR/… DHCP lease server
data logic in networkd. This reduces code duplication and fixes a number
of bugs.
This removes any support for collecting POP3/SMPT/LPR servers acquired
via local DHCP client releases since noone uses that, and given how old
these protocols are I doubt this will change. It keeps support for
configuring them for the dhcp server however.
The differences between the DNS/NTP/SIP/POP3/SMTP/LPR configuration
logics are minimized.
This removes the relevant symbols from sd-network.h (which is an
internal API only at this point after all).
This is unfortunately not well test, given the old code for this had
barely any tests. But the new code should not perform worse at least,
and allow us to release, since it corrects some interfaces visible in
the .network configuration format.
Fixes : #15943
2020-06-18 13:08:18 +09:00
Lennart Poettering
ddb82ec2a2
sd-dhcp: clean-up of DHCP lease server code
...
This is an attempt to clean-up the DHCP lease server type code a bit. We
now strictly use the same enum everywhere, and store server info in an
array. Moreover, we use the same nomenclature everywhere.
This only makes the changes in the sd-dhcp code. The networkd code is
untouched so far (but should be fixed up like this too. But it's more
complicated since this would then touch actual settings in .network
files).
Note that this also changes some field names in serialized lease files.
But given that these field names have not been part of a released
version of systemd yet, such a change should be ok.
This is pure renaming/refactoring, shouldn't actually change any
behaviour.
2020-05-30 14:18:43 +02:00
Zbigniew Jędrzejewski-Szmek
5dc31db7c1
network: reduce scope of variables, etc.
2020-05-21 08:13:11 +02:00
Zbigniew Jędrzejewski-Szmek
a27060759b
network: fix signed/unsigned confusion
...
sd_dhcp_lease_get_servers() returns int, which would never be negative when
cast to size_t, so we condition check was wrong.
CID#1425417.
2020-05-21 08:13:11 +02:00
Marc-André Lureau
dd1d306058
network: fallback on resolved resolv.conf for DHCP server settings
2020-05-08 12:48:39 +02:00
Zbigniew Jędrzejewski-Szmek
73781de41f
Merge pull request #15530 from ssahani/lpr-dhcpv4-option-9
...
network: add support to DHCPv4 server/client option 9 LPR
2020-04-23 09:10:14 +02:00
Susant Sahani
d361b3730a
network: Add support send and receive LPR servers
2020-04-22 14:49:27 +02:00
Frantisek Sumsal
86b52a3958
tree-wide: fix spelling errors
...
Based on a report from Fossies.org using Codespell.
Followup to #15436
2020-04-21 23:21:08 +02:00
Zbigniew Jędrzejewski-Szmek
24e6f45842
network: use a loop for repetitive operation
...
This should hopefully help us avoid c&p mistakes. And there are plans to
add more settings like this, which should then be rather straightforward.
There is a slight functional change: the code got uplink handling wrong
and run manager_find_uplink() repeatedly. That part is fixed.
2020-04-10 17:57:31 +02:00
Zbigniew Jędrzejewski-Szmek
c1997a5bf7
network: add helper to extract server lists
...
This code is repeable enough to define a common implementation.
2020-04-10 17:57:19 +02:00
Susant Sahani
f6269fe7bb
network: DHCP - add support to emit and receive SMTP server information
2020-03-29 22:59:11 +02:00
Susant Sahani
284e8fd0d7
DHCP: Add support to emit and retrieve POP3 server
2020-03-28 03:34:27 +01:00
David Wood
7354900ddd
network: Fix split in `SendOption=` on client and server
...
When specifying `DHCPv4.SendOption=`, it is used by systemd-networkd to
set the value of that option within the DHCP request that is sent out.
This differs to setting `DHCPServer.SendOption=`, which will place all
the options together as suboptions into the vendor-specific information
(code 43) option.
This commit adds two new config options, `DHCPv4.SendVendorOption=` and
`DHCPServer.SendVendorOption=`. These both have the behaviour of the old
`DHCPServer.SendOption=` flag, and set the value of the suboption in the
vendor-specific information option.
The behaviour of `DHCPServer.SendOption=` is then changed to reflect
that of `DHCPv4.SendOption=`. It will set the value of the corresponding
option in the DHCP request.
2020-03-19 09:08:40 +01:00
Mike Gilbert
6b2fd86fd1
network: remove unnecessary link->ifname from debug log statements
...
Since 98b0299479
, we log the interface
name automatically via log_link_debug().
Fixes: https://github.com/systemd/systemd/issues/14782
2020-02-06 00:15:50 +00:00
Yu Watanabe
98b0299479
network: append INTERFACE= attributes for logs corresponds to a netif
2020-01-07 22:20:43 +09:00
Zbigniew Jędrzejewski-Szmek
b014a6161a
Merge pull request #14064 from yuwata/network-unify-send-option-and-send-raw-option
...
network: unify SendOption= and SendRawOption=
2019-11-18 22:21:37 +01:00
Yu Watanabe
0e96961d62
network: unify config_parse_dhcp_server_option_data() and config_parse_dhcp_send_option()
2019-11-18 23:39:03 +09:00
Yu Watanabe
461dbb2fa9
dhcp: remove struct sd_dhcp_raw_option
...
sd_dhcp_raw_option and sd_dhcp_option are essentially equivalent.
2019-11-18 23:37:22 +09:00
Yu Watanabe
d8b736bd0c
network: rename SendRawOption= to SendOption=
...
As DHCPv4.SendOption= and DHCPServer.SendRawOption= take the same
format.
2019-11-18 23:35:48 +09:00
Yu Watanabe
c00c3b64be
network: add more error logs
2019-11-18 15:26:55 +01:00
Yu Watanabe
2e5580a8c1
network: rename DHCPRawOption to DHCPOptionDataType
...
And moves the definition from networkd-dhcp-server.[ch] to networkd-dhcp-common.[ch].
2019-11-17 23:00:11 +09:00
Yu Watanabe
599e10a1d2
network: fix logged error value
2019-11-17 22:51:06 +09:00
Tom Fitzhenry
a0fa3ef7ff
Error, rather than warn, if failing to start DHCP server
...
This would have made diagnosing https://github.com/systemd/systemd/issues/14050 easier.
2019-11-17 22:31:43 +09:00
Susant Sahani
564ca98484
networkd: dhcp server Support Vendor specific 43
...
Implementes https://tools.ietf.org/html/rfc2132
```
[DHCPServer]
SendRawOption=26:uint32:1400
SendRawOption=23:uint8:10
```
Frame 448: 350 bytes on wire (2800 bits), 350 bytes captured (2800 bits) on interface 0
Linux cooked capture
Internet Protocol Version 4, Src: 192.168.5.1, Dst: 192.168.5.11
User Datagram Protocol, Src Port: 67, Dst Port: 68
Dynamic Host Configuration Protocol (ACK)
Message type: Boot Reply (2)
Hardware type: Ethernet (0x01)
Hardware address length: 6
Hops: 0
Transaction ID: 0x71f8de9d
Seconds elapsed: 0
Bootp flags: 0x0000 (Unicast)
Client IP address: 0.0.0.0
Your (client) IP address: 192.168.5.11
Next server IP address: 0.0.0.0
Relay agent IP address: 0.0.0.0
Client MAC address: 1e:04:f8:b8:2f:d4 (1e:04:f8:b8:2f:d4)
Client hardware address padding: 00000000000000000000
Server host name not given
Boot file name not given
Magic cookie: DHCP
Option: (53) DHCP Message Type (ACK)
Length: 1
DHCP: ACK (5)
Option: (51) IP Address Lease Time
Length: 4
IP Address Lease Time: (3600s) 1 hour
Option: (1) Subnet Mask (255.255.255.0)
Length: 4
Subnet Mask: 255.255.255.0
Option: (3) Router
Length: 4
Router: 192.168.5.1
Option: (6) Domain Name Server
Length: 4
Domain Name Server: 192.168.5.1
Option: (42) Network Time Protocol Servers
Length: 4
Network Time Protocol Server: 192.168.5.1
Option: (101) TCode
Length: 13
TZ TCode: Europe/Berlin
Option: (43) Vendor-Specific Information
Length: 9
Value: 1701311a0431343030
Option: (54) DHCP Server Identifier (192.168.5.1)
Length: 4
DHCP Server Identifier: 192.168.5.1
Option: (255) End
Option End: 255
```
2019-10-31 09:03:43 +09:00
Susant Sahani
299d578f7f
network: DHCP server Add support to transmit SIP server
...
1. DHCP server trasmit
2. Client parses and saves in leases
Implements http://www.rfc-editor.org/rfc/rfc3361.txt
```
Frame 134: 348 bytes on wire (2784 bits), 348 bytes captured (2784 bits) on interface 0
Ethernet II, Src: 42:65:85:d6:4e:32 (42:65:85:d6:4e:32), Dst: 1e:04:f8:b8:2f:d4 (1e:04:f8:b8:2f:d4)
Internet Protocol Version 4, Src: 192.168.5.1, Dst: 192.168.5.11
User Datagram Protocol, Src Port: 67, Dst Port: 68
Dynamic Host Configuration Protocol (ACK)
Message type: Boot Reply (2)
Hardware type: Ethernet (0x01)
Hardware address length: 6
Hops: 0
Transaction ID: 0x7cc87cb4
Seconds elapsed: 0
Bootp flags: 0x0000 (Unicast)
Client IP address: 0.0.0.0
Your (client) IP address: 192.168.5.11
Next server IP address: 0.0.0.0
Relay agent IP address: 0.0.0.0
Client MAC address: 1e:04:f8:b8:2f:d4 (1e:04:f8:b8:2f:d4)
Client hardware address padding: 00000000000000000000
Server host name not given
Boot file name not given
Magic cookie: DHCP
Option: (53) DHCP Message Type (ACK)
Length: 1
DHCP: ACK (5)
Option: (51) IP Address Lease Time
Length: 4
IP Address Lease Time: (3600s) 1 hour
Option: (1) Subnet Mask (255.255.255.0)
Length: 4
Subnet Mask: 255.255.255.0
Option: (3) Router
Length: 4
Router: 192.168.5.1
Option: (6) Domain Name Server
Length: 4
Domain Name Server: 192.168.5.1
Option: (42) Network Time Protocol Servers
Length: 4
Network Time Protocol Server: 192.168.1.1
Option: (120) SIP Servers <=====here
Length: 9
SIP Server Encoding: IPv4 Address (1)
SIP Server Address: 192.168.1.1
SIP Server Address: 192.168.5.2
Option: (101) TCode
Length: 13
TZ TCode: Europe/Berlin
Option: (54) DHCP Server Identifier (192.168.5.1)
Length: 4
DHCP Server Identifier: 192.168.5.1
Option: (255) End
Option End: 255
```
```
cat /run/systemd/netif/state ✔ ⚡ 3148 16:40:51
OPER_STATE=routable
CARRIER_STATE=carrier
ADDRESS_STATE=routable
DNS=192.168.94.2 192.168.5.1
NTP=192.168.5.1
SIP=192.168.1.1 192.168.5.2
```
aa
2019-09-20 21:22:23 +09:00
Yu Watanabe
8fcf1d6180
network: move DHCP server related functions to networkd-dhcp-server.c
2019-06-30 04:46:27 +09:00