Main Page   Modules   Alphabetical List   Data Structures   File List   Data Fields   Globals   Related Pages   Examples  

DHCP
[User Protocols]

Dynamic host configuration protocol. More...

Data Structures

struct  dyn_cfg

Functions

int ParseReply (DYNCFG *cfgp, u_long ip, struct bootp *bp, int len)
 Parse a DHCP reply telegram.

 NutDhcpClient (void *arg)
 DHCP client thread.

__BEGIN_DECLS int NutDhcpIfConfig (CONST char *name, u_char *mac, u_long timeout)
 Automatically configure an Ethernet network interface.

int NutNetAutoConfig (CONST char *name)
 Automatically configure a network interface.


Detailed Description

Dynamic host configuration protocol.


Function Documentation

NutDhcpClient void *    arg
 

DHCP client thread.

This thread implements a DHCP state machine.

Bug:
We are not able to shutdown our interface, which may cause problems if out original DHCP server dies.

__BEGIN_DECLS int NutDhcpIfConfig CONST char *    name,
u_char   mac,
u_long    timeout
 

Automatically configure an Ethernet network interface.

If no MAC address is specified, this routine will try to read a previously stored configuration from the EEPROM. If this retrieves a valid IP configuration, then the network interface will be immediately configured with these values by calling NutNetIfConfig(). If no valid IP configuration has been read, then this routine will start the DHCP client thread and wait upto a given number of milliseconds for a response from a DHCP server.

If a MAC address has been specified, this routine will not read the EEPROM configuration. If the application has set the global ::CONFNET structure to a valid IP configuration before calling this function, then the network interface will be immediately configured with these values by calling NutNetIfConfig(). Otherwise the DHCP client thread will be started and this routine will wait upto a given number of milliseconds for a response from a DHCP server.

Parameters:
name Name of the registered Ethernet device.
mac MAC address of the destination. Set null to use the configuration stored in the EEPROM.
timeout Maximum number of milliseconds to wait. To disable timeout, set this parameter to NUT_WAIT_INFINITE.
Returns:
0 on success or -1, if no IP configuration could have been received within the specified timeout.

Bug:
The client doesn't send update information to the server. To avoid loosing the assignment while Ethernut is down, addresses can be fixed in the DHCP server tables.
Examples:
httpd/httpserv.c, inetq/inetq.c, portdio/portdio.c, and tcps/tcps.c.

int NutNetAutoConfig CONST char *    name
 

Automatically configure a network interface.

This function is deprecated. New applications should call NutDhcpIfConfig().

Parameters:
name Name of the device.
Returns:
0 on success, -1 otherwise.

int ParseReply DYNCFG *    cfgp,
u_long    ip,
struct bootp   bp,
int    len
 

Parse a DHCP reply telegram.

Parameters:
cfgp Pointer to config structure.
ip DHCP server IP address.
bp Pointer to the reply telegram.
len Number of valid bytes in the reply telegram.
Returns:
0 on success, -1 otherwise.


© 2000-2003 by egnite Software GmbH - visit http://www.ethernut.de/