123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- #ifndef _DHCP_COMMON_H_
- #define _DHCP_COMMON_H_
-
- #include <stdint.h>
- #include <stdbool.h>
- #include <string.h>
- #include "Config/AppConfig.h"
- #include <uip.h>
-
-
- #define DHCP_SERVER_PORT 67
-
- #define DHCP_CLIENT_PORT 68
-
- #define DHCP_OP_BOOTREQUEST 0x01
-
- #define DHCP_OP_BOOTREPLY 0x02
-
- #define BOOTP_BROADCAST 0x8000
-
- #define DHCP_MAGIC_COOKIE 0x63538263
-
- #define DHCP_TRANSACTION_ID 0x13245466
-
- #define DHCP_DISCOVER 1
-
- #define DHCP_OFFER 2
-
- #define DHCP_REQUEST 3
-
- #define DHCP_DECLINE 4
-
- #define DHCP_ACK 5
-
- #define DHCP_NAK 6
-
- #define DHCP_RELEASE 7
-
- #define DHCP_HTYPE_ETHERNET 1
-
- #define DHCP_OPTION_SUBNET_MASK 1
-
- #define DHCP_OPTION_ROUTER 3
-
- #define DHCP_OPTION_DNS_SERVER 6
-
- #define DHCP_OPTION_REQ_IPADDR 50
-
- #define DHCP_OPTION_LEASE_TIME 51
-
- #define DHCP_OPTION_MSG_TYPE 53
-
- #define DHCP_OPTION_SERVER_ID 54
-
- #define DHCP_OPTION_REQ_LIST 55
-
- #define DHCP_OPTION_END 255
-
-
- typedef struct
- {
- uint8_t Operation;
- uint8_t HardwareType;
- uint8_t HardwareAddressLength;
- uint8_t Hops;
- uint32_t TransactionID;
- uint16_t ElapsedSeconds;
- uint16_t Flags;
- uip_ipaddr_t ClientIP;
- uip_ipaddr_t YourIP;
- uip_ipaddr_t NextServerIP;
- uip_ipaddr_t RelayAgentIP;
- uint8_t ClientHardwareAddress[16];
- uint8_t ServerHostnameString[64];
- uint8_t BootFileName[128];
- uint32_t Cookie;
- uint8_t Options[];
- } DHCP_Header_t;
-
- uint8_t DHCPCommon_SetOption(uint8_t* DHCPOptionList,
- const uint8_t Option,
- const uint8_t DataLen,
- void* const OptionData);
- bool DHCPCommon_GetOption(const uint8_t* DHCPOptionList,
- const uint8_t Option,
- void* const Destination);
- #endif
|