networkd: dhcp server Support Vendor specific 43

System Internals / systemd - Susant Sahani [vmware.com] - 31 October 2019 00:03 EDT

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


564ca98484 networkd: dhcp server Support Vendor specific 43
man/systemd.network.xml | 13 ++
src/libsystemd-network/dhcp-option.c | 27 ++++
src/libsystemd-network/dhcp-server-internal.h | 21 +++
src/libsystemd-network/sd-dhcp-server.c | 72 ++++++++-
src/network/networkd-dhcp-server.c | 194 ++++++++++++++++++++++-
src/network/networkd-dhcp-server.h | 16 ++
src/network/networkd-network-gperf.gperf | 1 +
src/network/networkd-network.c | 12 +-
src/network/networkd-network.h | 2 +
src/systemd/sd-dhcp-server.h | 10 ++
test/fuzz/fuzz-network-parser/directives.network | 1 +
11 files changed, 361 insertions(+), 8 deletions(-)

Upstream: github.com


  • Share