X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Flibsystemd-network%2Fdhcp-protocol.h;h=abca9422c5c1281d3f4f53b1326c7c786c88a287;hp=9aa9618b44aa7a8876cf7b5163952f728edea64a;hb=1ccda9b7168e89141b60290295170e07e760efeb;hpb=ce78df79b88d02d36cbf9e39e70ecb871750e16d diff --git a/src/libsystemd-network/dhcp-protocol.h b/src/libsystemd-network/dhcp-protocol.h index 9aa9618b4..abca9422c 100644 --- a/src/libsystemd-network/dhcp-protocol.h +++ b/src/libsystemd-network/dhcp-protocol.h @@ -43,6 +43,8 @@ struct DHCPMessage { uint8_t chaddr[16]; uint8_t sname[64]; uint8_t file[128]; + be32_t magic; + uint8_t options[0]; } _packed_; typedef struct DHCPMessage DHCPMessage; @@ -58,7 +60,9 @@ 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)) -#define DHCP_MIN_OPTIONS_SIZE 312 +#define DHCP_DEFAULT_MIN_SIZE 576 /* the minimum internet hosts must be able to receive */ +#define DHCP_MIN_OPTIONS_SIZE DHCP_DEFAULT_MIN_SIZE - DHCP_IP_UDP_SIZE - DHCP_MESSAGE_SIZE +#define DHCP_MAGIC_COOKIE (uint32_t)(0x63825363) enum { DHCP_PORT_SERVER = 67, @@ -74,6 +78,7 @@ enum DHCPState { DHCP_STATE_BOUND = 5, DHCP_STATE_RENEWING = 6, DHCP_STATE_REBINDING = 7, + DHCP_STATE_STOPPED = 8, }; typedef enum DHCPState DHCPState; @@ -91,6 +96,8 @@ enum { DHCP_ACK = 5, DHCP_NAK = 6, DHCP_RELEASE = 7, + DHCP_INFORM = 8, + DHCP_FORCERENEW = 9, }; enum { @@ -101,12 +108,22 @@ enum { enum { DHCP_OPTION_PAD = 0, DHCP_OPTION_SUBNET_MASK = 1, + DHCP_OPTION_TIME_OFFSET = 2, DHCP_OPTION_ROUTER = 3, DHCP_OPTION_DOMAIN_NAME_SERVER = 6, DHCP_OPTION_HOST_NAME = 12, + DHCP_OPTION_BOOT_FILE_SIZE = 13, DHCP_OPTION_DOMAIN_NAME = 15, DHCP_OPTION_ROOT_PATH = 17, + DHCP_OPTION_ENABLE_IP_FORWARDING = 19, + DHCP_OPTION_ENABLE_IP_FORWARDING_NL = 20, + DHCP_OPTION_POLICY_FILTER = 21, + DHCP_OPTION_INTERFACE_MDR = 22, + DHCP_OPTION_INTERFACE_TTL = 23, + DHCP_OPTION_INTERFACE_MTU_AGING_TIMEOUT = 24, DHCP_OPTION_INTERFACE_MTU = 26, + DHCP_OPTION_BROADCAST = 28, + DHCP_OPTION_STATIC_ROUTE = 33, DHCP_OPTION_NTP_SERVER = 42, DHCP_OPTION_REQUESTED_IP_ADDRESS = 50, DHCP_OPTION_IP_ADDRESS_LEASE_TIME = 51, @@ -117,6 +134,8 @@ enum { DHCP_OPTION_MAXIMUM_MESSAGE_SIZE = 57, DHCP_OPTION_RENEWAL_T1_TIME = 58, DHCP_OPTION_REBINDING_T2_TIME = 59, + DHCP_OPTION_VENDOR_CLASS_IDENTIFIER = 60, DHCP_OPTION_CLIENT_IDENTIFIER = 61, + DHCP_OPTION_CLASSLESS_STATIC_ROUTE = 121, DHCP_OPTION_END = 255, };