]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/libsystemd-network/dhcp-protocol.h
1 /* SPDX-License-Identifier: LGPL-2.1+ */
5 Copyright © 2013 Intel Corporation. All rights reserved.
8 #include <netinet/ip.h>
9 #include <netinet/udp.h>
13 #include "sparse-endian.h"
34 typedef struct DHCPMessage DHCPMessage
;
42 typedef struct DHCPPacket DHCPPacket
;
44 #define DHCP_IP_SIZE (int32_t)(sizeof(struct iphdr))
45 #define DHCP_IP_UDP_SIZE (int32_t)(sizeof(struct udphdr) + DHCP_IP_SIZE)
46 #define DHCP_MESSAGE_SIZE (int32_t)(sizeof(DHCPMessage))
47 #define DHCP_DEFAULT_MIN_SIZE 576 /* the minimum internet hosts must be able to receive */
48 #define DHCP_MIN_OPTIONS_SIZE (DHCP_DEFAULT_MIN_SIZE - DHCP_IP_UDP_SIZE - DHCP_MESSAGE_SIZE)
49 #define DHCP_MAGIC_COOKIE (uint32_t)(0x63825363)
52 DHCP_PORT_SERVER
= 67,
53 DHCP_PORT_CLIENT
= 68,
58 DHCP_STATE_SELECTING
= 1,
59 DHCP_STATE_INIT_REBOOT
= 2,
60 DHCP_STATE_REBOOTING
= 3,
61 DHCP_STATE_REQUESTING
= 4,
63 DHCP_STATE_RENEWING
= 6,
64 DHCP_STATE_REBINDING
= 7,
65 DHCP_STATE_STOPPED
= 8,
68 typedef enum DHCPState DHCPState
;
88 DHCP_OVERLOAD_FILE
= 1,
89 DHCP_OVERLOAD_SNAME
= 2,
92 #define DHCP_MAX_FQDN_LENGTH 255
95 DHCP_FQDN_FLAG_S
= (1 << 0),
96 DHCP_FQDN_FLAG_O
= (1 << 1),
97 DHCP_FQDN_FLAG_E
= (1 << 2),
98 DHCP_FQDN_FLAG_N
= (1 << 3),