Documentation

Documentation

Includes

lwip/opt.h

#include "lwip/opt.h"
#include "lwip/opt.h"

lwip/arch.h

#include "lwip/arch.h"
#include "lwip/arch.h"

lwip/prot/ip4.h

#include "lwip/prot/ip4.h"
#include "lwip/prot/ip4.h"

Macros

Marco LWIP_HDR_PROT_DHCP_H

#define LWIP_HDR_PROT_DHCP_H


      

Marco DHCP_CHADDR_LEN

#define DHCP_CHADDR_LEN  16U
/* DHCP message item offsets and length */

Marco DHCP_SNAME_OFS

#define DHCP_SNAME_OFS   44U


      

Marco DHCP_SNAME_LEN

#define DHCP_SNAME_LEN   64U


      

Marco DHCP_FILE_OFS

#define DHCP_FILE_OFS    108U


      

Marco DHCP_FILE_LEN

#define DHCP_FILE_LEN    128U


      

Marco DHCP_MSG_LEN

#define DHCP_MSG_LEN     236U


      

Marco DHCP_OPTIONS_OFS

#define DHCP_OPTIONS_OFS (DHCP_MSG_LEN + 4U) /* 4 byte: cookie */


      

Marco DHCP_BOOTREQUEST

#define DHCP_BOOTREQUEST           1
/* DHCP op codes */

Marco DHCP_BOOTREPLY

#define DHCP_BOOTREPLY             2


      

Marco DHCP_DISCOVER

#define DHCP_DISCOVER              1
/* DHCP message types */

Marco DHCP_OFFER

#define DHCP_OFFER                 2


      

Marco DHCP_REQUEST

#define DHCP_REQUEST               3


      

Marco DHCP_DECLINE

#define DHCP_DECLINE               4


      

Marco DHCP_ACK

#define DHCP_ACK                   5


      

Marco DHCP_NAK

#define DHCP_NAK                   6


      

Marco DHCP_RELEASE

#define DHCP_RELEASE               7


      

Marco DHCP_INFORM

#define DHCP_INFORM                8


      
      
#define DHCP_MAGIC_COOKIE          0x63825363UL


      

Marco DHCP_OPTION_PAD

#define DHCP_OPTION_PAD            0
/* BootP options */

Marco DHCP_OPTION_SUBNET_MASK

#define DHCP_OPTION_SUBNET_MASK    1 /* RFC 2132 3.3 */


      

Marco DHCP_OPTION_ROUTER

#define DHCP_OPTION_ROUTER         3


      

Marco DHCP_OPTION_DNS_SERVER

#define DHCP_OPTION_DNS_SERVER     6


      

Marco DHCP_OPTION_HOSTNAME

#define DHCP_OPTION_HOSTNAME       12


      

Marco DHCP_OPTION_IP_TTL

#define DHCP_OPTION_IP_TTL         23


      

Marco DHCP_OPTION_MTU

#define DHCP_OPTION_MTU            26


      

Marco DHCP_OPTION_BROADCAST

#define DHCP_OPTION_BROADCAST      28


      

Marco DHCP_OPTION_TCP_TTL

#define DHCP_OPTION_TCP_TTL        37


      

Marco DHCP_OPTION_NTP

#define DHCP_OPTION_NTP            42


      

Marco DHCP_OPTION_END

#define DHCP_OPTION_END            255


      

Marco DHCP_OPTION_REQUESTED_IP

#define DHCP_OPTION_REQUESTED_IP   50 /* RFC 2132 9.1, requested IP address */
/* DHCP options */

Marco DHCP_OPTION_LEASE_TIME

#define DHCP_OPTION_LEASE_TIME     51 /* RFC 2132 9.2, time in seconds, in 4 bytes */


      

Marco DHCP_OPTION_OVERLOAD

#define DHCP_OPTION_OVERLOAD       52 /* RFC2132 9.3, use file and/or sname field for options */


      

Marco DHCP_OPTION_MESSAGE_TYPE

#define DHCP_OPTION_MESSAGE_TYPE   53 /* RFC 2132 9.6, important for DHCP */


      

Marco DHCP_OPTION_MESSAGE_TYPE_LEN

#define DHCP_OPTION_MESSAGE_TYPE_LEN 1


      

Marco DHCP_OPTION_SERVER_ID

#define DHCP_OPTION_SERVER_ID      54 /* RFC 2132 9.7, server IP address */


      

Marco DHCP_OPTION_PARAMETER_REQUEST_LIST

#define DHCP_OPTION_PARAMETER_REQUEST_LIST 55 /* RFC 2132 9.8, requested option types */


      

Marco DHCP_OPTION_MAX_MSG_SIZE

#define DHCP_OPTION_MAX_MSG_SIZE   57 /* RFC 2132 9.10, message size accepted >= 576 */


      

Marco DHCP_OPTION_MAX_MSG_SIZE_LEN

#define DHCP_OPTION_MAX_MSG_SIZE_LEN 2


      

Marco DHCP_OPTION_T1

#define DHCP_OPTION_T1             58 /* T1 renewal time */


      

Marco DHCP_OPTION_T2

#define DHCP_OPTION_T2             59 /* T2 rebinding time */


      

Marco DHCP_OPTION_US

#define DHCP_OPTION_US             60


      

Marco DHCP_OPTION_CLIENT_ID

#define DHCP_OPTION_CLIENT_ID      61


      

Marco DHCP_OPTION_TFTP_SERVERNAME

#define DHCP_OPTION_TFTP_SERVERNAME 66


      

Marco DHCP_OPTION_BOOTFILE

#define DHCP_OPTION_BOOTFILE       67


      

Marco DHCP_OVERLOAD_NONE

#define DHCP_OVERLOAD_NONE         0
/* possible combinations of overloading the file and sname fields with options */

Marco DHCP_OVERLOAD_FILE

#define DHCP_OVERLOAD_FILE         1


      

Marco DHCP_OVERLOAD_SNAME

#define DHCP_OVERLOAD_SNAME        2


      

Marco DHCP_OVERLOAD_SNAME_FILE

#define DHCP_OVERLOAD_SNAME_FILE   3

      

Functions

Vars

Variable PACK_STRUCT_END

PACK_STRUCT_END
#ifdef PACK_STRUCT_USE_INCLUDES
# include "arch/epstruct.h"
#endif


/* DHCP client states */
typedef enum {
 DHCP_STATE_OFF            = 0,
 DHCP_STATE_REQUESTING     = 1,
 DHCP_STATE_INIT           = 2,
 DHCP_STATE_REBOOTING      = 3,
 DHCP_STATE_REBINDING      = 4,
 DHCP_STATE_RENEWING       = 5,
 DHCP_STATE_SELECTING      = 6,
 DHCP_STATE_INFORMING      = 7,
 DHCP_STATE_CHECKING       = 8,
 DHCP_STATE_PERMANENT      = 9, /* not yet implemented */
 DHCP_STATE_BOUND          = 10,
 DHCP_STATE_RELEASING      = 11, /* not yet implemented */
 DHCP_STATE_BACKING_OFF    = 12
} dhcp_state_enum_t;

      

Consts

Types

Typedefs