X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flibsystemd-dhcp%2Fdhcp-protocol.h;h=abdfe8d54b8965308a6261b07c79b88464741c71;hb=672682a6b9d6fb6a3722c3fea1a93b4831747b54;hp=d37546721a20e844f6bf998fc7dba7766d2705e2;hpb=011feef852de96a1adaba476037ce01b5efefc35;p=elogind.git diff --git a/src/libsystemd-dhcp/dhcp-protocol.h b/src/libsystemd-dhcp/dhcp-protocol.h index d37546721..abdfe8d54 100644 --- a/src/libsystemd-dhcp/dhcp-protocol.h +++ b/src/libsystemd-dhcp/dhcp-protocol.h @@ -36,10 +36,10 @@ struct DHCPMessage { be32_t xid; be16_t secs; be16_t flags; - uint32_t ciaddr; - uint32_t yiaddr; - uint32_t siaddr; - uint32_t giaddr; + be32_t ciaddr; + be32_t yiaddr; + be32_t siaddr; + be32_t giaddr; uint8_t chaddr[16]; uint8_t sname[64]; uint8_t file[128]; @@ -55,6 +55,15 @@ struct DHCPPacket { typedef struct DHCPPacket DHCPPacket; +#define DHCP_IP_SIZE (int32_t)(sizeof(struct iphdr)) +#define DHCP_IP_UDP_SIZE (int32_t)(sizeof(struct udphdr) + DHCP_IP_SIZE) +#define DHCP_MESSAGE_SIZE (int32_t)(sizeof(DHCPMessage)) + +enum { + DHCP_PORT_SERVER = 67, + DHCP_PORT_CLIENT = 68, +}; + enum DHCPState { DHCP_STATE_INIT = 0, DHCP_STATE_SELECTING = 1, @@ -95,10 +104,17 @@ enum { DHCP_OPTION_DOMAIN_NAME_SERVER = 6, DHCP_OPTION_HOST_NAME = 12, DHCP_OPTION_DOMAIN_NAME = 15, + DHCP_OPTION_INTERFACE_MTU = 26, DHCP_OPTION_NTP_SERVER = 42, DHCP_OPTION_REQUESTED_IP_ADDRESS = 50, + DHCP_OPTION_IP_ADDRESS_LEASE_TIME = 51, DHCP_OPTION_OVERLOAD = 52, DHCP_OPTION_MESSAGE_TYPE = 53, + DHCP_OPTION_SERVER_IDENTIFIER = 54, DHCP_OPTION_PARAMETER_REQUEST_LIST = 55, + DHCP_OPTION_MAXIMUM_MESSAGE_SIZE = 57, + DHCP_OPTION_RENEWAL_T1_TIME = 58, + DHCP_OPTION_REBINDING_T2_TIME = 59, + DHCP_OPTION_CLIENT_IDENTIFIER = 61, DHCP_OPTION_END = 255, };