Webserver+3d print

Dependents:   Nucleo

Embed: (wiki syntax)

« Back to documentation index

dhcp_client.c File Reference

dhcp_client.c File Reference

DHCP client (Dynamic Host Configuration Protocol) More...

Go to the source code of this file.

Functions

void dhcpClientGetDefaultSettings (DhcpClientSettings *settings)
 Initialize settings with default values.
error_t dhcpClientInit (DhcpClientContext *context, const DhcpClientSettings *settings)
 DHCP client initialization.
error_t dhcpClientStart (DhcpClientContext *context)
 Start DHCP client.
error_t dhcpClientStop (DhcpClientContext *context)
 Stop DHCP client.
DhcpState dhcpClientGetState (DhcpClientContext *context)
 Retrieve current state.
void dhcpClientTick (DhcpClientContext *context)
 DHCP client timer handler.
void dhcpClientLinkChangeEvent (DhcpClientContext *context)
 Callback function for link change event.
void dhcpClientStateInit (DhcpClientContext *context)
 INIT state.
void dhcpClientStateSelecting (DhcpClientContext *context)
 SELECTING state.
void dhcpClientStateRequesting (DhcpClientContext *context)
 REQUESTING state.
void dhcpClientStateInitReboot (DhcpClientContext *context)
 INIT-REBOOT state.
void dhcpClientStateRebooting (DhcpClientContext *context)
 REBOOTING state.
void dhcpClientStateProbing (DhcpClientContext *context)
 PROBING state.
void dhcpClientStateBound (DhcpClientContext *context)
 BOUND state.
void dhcpClientStateRenewing (DhcpClientContext *context)
 RENEWING state.
void dhcpClientStateRebinding (DhcpClientContext *context)
 REBINDING state.
error_t dhcpClientSendDiscover (DhcpClientContext *context)
 Send DHCPDISCOVER message.
error_t dhcpClientSendRequest (DhcpClientContext *context)
 Send DHCPREQUEST message.
error_t dhcpClientSendDecline (DhcpClientContext *context)
 Send DHCPDECLINE message.
void dhcpClientProcessMessage (NetInterface *interface, const IpPseudoHeader *pseudoHeader, const UdpHeader *udpHeader, const NetBuffer *buffer, size_t offset, void *params)
 Process incoming DHCP message.
void dhcpClientParseOffer (DhcpClientContext *context, const DhcpMessage *message, size_t length)
 Parse DHCPOFFER message.
void dhcpClientParseAck (DhcpClientContext *context, const DhcpMessage *message, size_t length)
 Parse DHCPACK message.
void dhcpClientParseNak (DhcpClientContext *context, const DhcpMessage *message, size_t length)
 Parse DHCPNAK message.
void dhcpClientCheckTimeout (DhcpClientContext *context)
 Manage DHCP configuration timeout.
uint16_t dhcpClientComputeElapsedTime (DhcpClientContext *context)
 Compute the appropriate secs field.
void dhcpClientChangeState (DhcpClientContext *context, DhcpState newState, systime_t delay)
 Update DHCP FSM state.
void dhcpClientDumpConfig (DhcpClientContext *context)
 Dump DHCP configuration for debugging purpose.

Detailed Description

DHCP client (Dynamic Host Configuration Protocol)

License

Copyright (C) 2010-2017 Oryx Embedded SARL. All rights reserved.

This file is part of CycloneTCP Open.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Description

The Dynamic Host Configuration Protocol is used to provide configuration parameters to hosts. Refer to the following RFCs for complete details:

  • RFC 2131: Dynamic Host Configuration Protocol
  • RFC 2132: DHCP Options and BOOTP Vendor Extensions
  • RFC 4039: Rapid Commit Option for the DHCP version 4
Author:
Oryx Embedded SARL (www.oryx-embedded.com)
Version:
1.7.6

Definition in file dhcp_client.c.


Function Documentation

void dhcpClientChangeState ( DhcpClientContext *  context,
DhcpState  newState,
systime_t  delay 
)

Update DHCP FSM state.

Parameters:
[in]contextPointer to the DHCP client context
[in]newStateNew DHCP state to switch to
[in]delayInitial delay

Definition at line 1733 of file dhcp_client.c.

void dhcpClientCheckTimeout ( DhcpClientContext *  context )

Manage DHCP configuration timeout.

Parameters:
[in]contextPointer to the DHCP client context

Definition at line 1665 of file dhcp_client.c.

uint16_t dhcpClientComputeElapsedTime ( DhcpClientContext *  context )

Compute the appropriate secs field.

Compute the number of seconds elapsed since the client began address acquisition or renewal process

Parameters:
[in]contextPointer to the DHCP client context
Returns:
The elapsed time expressed in seconds

Definition at line 1710 of file dhcp_client.c.

void dhcpClientDumpConfig ( DhcpClientContext *  context )

Dump DHCP configuration for debugging purpose.

Parameters:
[in]contextPointer to the DHCP client context

Definition at line 1797 of file dhcp_client.c.

void dhcpClientGetDefaultSettings ( DhcpClientSettings settings )

Initialize settings with default values.

Parameters:
[out]settingsStructure that contains DHCP client settings

Definition at line 73 of file dhcp_client.c.

DhcpState dhcpClientGetState ( DhcpClientContext *  context )

Retrieve current state.

Parameters:
[in]contextPointer to the DHCP client context
Returns:
Current DHCP client state

Definition at line 230 of file dhcp_client.c.

error_t dhcpClientInit ( DhcpClientContext *  context,
const DhcpClientSettings settings 
)

DHCP client initialization.

Parameters:
[in]contextPointer to the DHCP client context
[in]settingsDHCP client specific settings
Returns:
Error code

Definition at line 103 of file dhcp_client.c.

void dhcpClientLinkChangeEvent ( DhcpClientContext *  context )

Callback function for link change event.

Parameters:
[in]contextPointer to the DHCP client context

Definition at line 333 of file dhcp_client.c.

void dhcpClientParseAck ( DhcpClientContext *  context,
const DhcpMessage *  message,
size_t  length 
)

Parse DHCPACK message.

Parameters:
[in]contextPointer to the DHCP client context
[in]messagePointer to the incoming DHCP message
[in]lengthLength of the incoming message to parse
Returns:
Error code

Definition at line 1380 of file dhcp_client.c.

void dhcpClientParseNak ( DhcpClientContext *  context,
const DhcpMessage *  message,
size_t  length 
)

Parse DHCPNAK message.

Parameters:
[in]contextPointer to the DHCP client context
[in]messagePointer to the incoming DHCP message
[in]lengthLength of the incoming message to parse
Returns:
Error code

Definition at line 1601 of file dhcp_client.c.

void dhcpClientParseOffer ( DhcpClientContext *  context,
const DhcpMessage *  message,
size_t  length 
)

Parse DHCPOFFER message.

Parameters:
[in]contextPointer to the DHCP client context
[in]messagePointer to the incoming DHCP message
[in]lengthLength of the incoming message to parse

Definition at line 1331 of file dhcp_client.c.

void dhcpClientProcessMessage ( NetInterface *  interface,
const IpPseudoHeader pseudoHeader,
const UdpHeader *  udpHeader,
const NetBuffer buffer,
size_t  offset,
void *  params 
)

Process incoming DHCP message.

Parameters:
[in]interfaceUnderlying network interface
[in]pseudoHeaderUDP pseudo header
[in]udpHeaderUDP header
[in]bufferMulti-part buffer containing the incoming DHCP message
[in]offsetOffset to the first byte of the DHCP message
[in]paramsPointer to the DHCP client context

Definition at line 1248 of file dhcp_client.c.

error_t dhcpClientSendDecline ( DhcpClientContext *  context )

Send DHCPDECLINE message.

Parameters:
[in]contextPointer to the DHCP client context
Returns:
Error code

Definition at line 1165 of file dhcp_client.c.

error_t dhcpClientSendDiscover ( DhcpClientContext *  context )

Send DHCPDISCOVER message.

Parameters:
[in]contextPointer to the DHCP client context
Returns:
Error code

Definition at line 944 of file dhcp_client.c.

error_t dhcpClientSendRequest ( DhcpClientContext *  context )

Send DHCPREQUEST message.

Parameters:
[in]contextPointer to the DHCP client context
Returns:
Error code

Definition at line 1037 of file dhcp_client.c.

error_t dhcpClientStart ( DhcpClientContext *  context )

Start DHCP client.

Parameters:
[in]contextPointer to the DHCP client context
Returns:
Error code

Definition at line 168 of file dhcp_client.c.

void dhcpClientStateBound ( DhcpClientContext *  context )

BOUND state.

Client has a valid lease and is in its normal operating state

Parameters:
[in]contextPointer to the DHCP client context

Definition at line 761 of file dhcp_client.c.

void dhcpClientStateInit ( DhcpClientContext *  context )

INIT state.

This is the initialization state, where a client begins the process of acquiring a lease. It also returns here when a lease ends, or when a lease negotiation fails

Parameters:
[in]contextPointer to the DHCP client context

Definition at line 395 of file dhcp_client.c.

void dhcpClientStateInitReboot ( DhcpClientContext *  context )

INIT-REBOOT state.

When a client that already has a valid lease starts up after a power-down or reboot, it starts here instead of the INIT state

Parameters:
[in]contextPointer to the DHCP client context

Definition at line 576 of file dhcp_client.c.

void dhcpClientStateProbing ( DhcpClientContext *  context )

PROBING state.

The client probes the newly received address

Parameters:
[in]contextPointer to the DHCP client context

Definition at line 694 of file dhcp_client.c.

void dhcpClientStateRebinding ( DhcpClientContext *  context )

REBINDING state.

The client has failed to renew its lease with the server that originally granted it, and now seeks a lease extension with any server that can hear it. It periodically sends DHCPREQUEST messages with no server specified until it gets a reply or the lease ends

Parameters:
[in]contextPointer to the DHCP client context

Definition at line 867 of file dhcp_client.c.

void dhcpClientStateRebooting ( DhcpClientContext *  context )

REBOOTING state.

A client that has rebooted with an assigned address is waiting for a confirming reply from a server

Parameters:
[in]contextPointer to the DHCP client context

Definition at line 616 of file dhcp_client.c.

void dhcpClientStateRenewing ( DhcpClientContext *  context )

RENEWING state.

Client is trying to renew its lease. It regularly sends DHCPREQUEST messages with the server that gave it its current lease specified, and waits for a reply

Parameters:
[in]contextPointer to the DHCP client context

Definition at line 802 of file dhcp_client.c.

void dhcpClientStateRequesting ( DhcpClientContext *  context )

REQUESTING state.

The client is waiting to hear back from the server to which it sent its request

Parameters:
[in]contextPointer to the DHCP client context

Definition at line 497 of file dhcp_client.c.

void dhcpClientStateSelecting ( DhcpClientContext *  context )

SELECTING state.

The client is waiting to receive DHCPOFFER messages from one or more DHCP servers, so it can choose one

Parameters:
[in]contextPointer to the DHCP client context

Definition at line 435 of file dhcp_client.c.

error_t dhcpClientStop ( DhcpClientContext *  context )

Stop DHCP client.

Parameters:
[in]contextPointer to the DHCP client context
Returns:
Error code

Definition at line 199 of file dhcp_client.c.

void dhcpClientTick ( DhcpClientContext *  context )

DHCP client timer handler.

This routine must be periodically called by the TCP/IP stack to manage DHCP client operation

Parameters:
[in]contextPointer to the DHCP client context

Definition at line 256 of file dhcp_client.c.