|
Zephyr Project API 4.4.99
A Scalable Open Source RTOS
|
DHCPv4. More...
Typedefs | |
| typedef void(* | net_dhcpv4_option_callback_handler_t) (struct net_dhcpv4_option_callback *cb, size_t length, enum net_dhcpv4_msg_type msg_type, struct net_if *iface) |
| Define the application callback handler function signature. | |
Enumerations | |
| enum | net_dhcpv4_msg_type { NET_DHCPV4_MSG_TYPE_DISCOVER = 1 , NET_DHCPV4_MSG_TYPE_OFFER = 2 , NET_DHCPV4_MSG_TYPE_REQUEST = 3 , NET_DHCPV4_MSG_TYPE_DECLINE = 4 , NET_DHCPV4_MSG_TYPE_ACK = 5 , NET_DHCPV4_MSG_TYPE_NAK = 6 , NET_DHCPV4_MSG_TYPE_RELEASE = 7 , NET_DHCPV4_MSG_TYPE_INFORM = 8 } |
| DHCPv4 message types. More... | |
Functions | |
| static void | net_dhcpv4_init_option_callback (struct net_dhcpv4_option_callback *callback, net_dhcpv4_option_callback_handler_t handler, uint8_t option, void *data, size_t max_length) |
| Helper to initialize a struct net_dhcpv4_option_callback properly. | |
| int | net_dhcpv4_add_option_callback (struct net_dhcpv4_option_callback *cb) |
| Add an application callback. | |
| int | net_dhcpv4_remove_option_callback (struct net_dhcpv4_option_callback *cb) |
| Remove an application callback. | |
| static void | net_dhcpv4_init_option_vendor_callback (struct net_dhcpv4_option_callback *callback, net_dhcpv4_option_callback_handler_t handler, uint8_t option, void *data, size_t max_length) |
| Helper to initialize a struct net_dhcpv4_option_callback for encapsulated vendor-specific options properly. | |
| int | net_dhcpv4_add_option_vendor_callback (struct net_dhcpv4_option_callback *cb) |
| Add an application callback for encapsulated vendor-specific options. | |
| int | net_dhcpv4_remove_option_vendor_callback (struct net_dhcpv4_option_callback *cb) |
| Remove an application callback for encapsulated vendor-specific options. | |
| void | net_dhcpv4_start (struct net_if *iface) |
| Start DHCPv4 client on an iface. | |
| void | net_dhcpv4_stop (struct net_if *iface) |
| Stop DHCPv4 client on an iface. | |
| void | net_dhcpv4_restart (struct net_if *iface) |
| Restart DHCPv4 client on an iface. | |
| int | net_dhcpv4_set_reboot_hint (struct net_if *iface, const struct net_in_addr *requested_ip) |
| Set the address requested in INIT-REBOOT. | |
| const char * | net_dhcpv4_msg_type_name (enum net_dhcpv4_msg_type msg_type) |
| Return a text representation of the msg_type. | |
DHCPv4.
| typedef void(* net_dhcpv4_option_callback_handler_t) (struct net_dhcpv4_option_callback *cb, size_t length, enum net_dhcpv4_msg_type msg_type, struct net_if *iface) |
#include <dhcpv4.h>
Define the application callback handler function signature.
| cb | Original struct net_dhcpv4_option_callback owning this handler |
| length | The length of data returned by the server. If this is greater than cb->max_length, only cb->max_length bytes will be available in cb->data |
| msg_type | Type of DHCP message that triggered the callback |
| iface | The interface on which the DHCP message was received |
Note: cb pointer can be used to retrieve private data through CONTAINER_OF() if original struct net_dhcpv4_option_callback is stored in another private structure.
| enum net_dhcpv4_msg_type |
#include <dhcpv4.h>
DHCPv4 message types.
These enumerations represent the message type codes defined in @rfc{2132,section-9.6}, hence they should not be renumbered.
Additions, removals and reorders in this definition must be reflected within corresponding changes to net_dhcpv4_msg_type_name.
| int net_dhcpv4_add_option_callback | ( | struct net_dhcpv4_option_callback * | cb | ) |
#include <dhcpv4.h>
Add an application callback.
| cb | A valid application's callback structure pointer. |
| int net_dhcpv4_add_option_vendor_callback | ( | struct net_dhcpv4_option_callback * | cb | ) |
#include <dhcpv4.h>
Add an application callback for encapsulated vendor-specific options.
| cb | A valid application's callback structure pointer. |
|
inlinestatic |
#include <dhcpv4.h>
Helper to initialize a struct net_dhcpv4_option_callback properly.
| callback | A valid Application's callback structure pointer. |
| handler | A valid handler function pointer. |
| option | The DHCP option the callback responds to. |
| data | A pointer to a buffer for max_length bytes. |
| max_length | The maximum length of the data returned. |
|
inlinestatic |
#include <dhcpv4.h>
Helper to initialize a struct net_dhcpv4_option_callback for encapsulated vendor-specific options properly.
| callback | A valid Application's callback structure pointer. |
| handler | A valid handler function pointer. |
| option | The DHCP encapsulated vendor-specific option the callback responds to. |
| data | A pointer to a buffer for max_length bytes. |
| max_length | The maximum length of the data returned. |
| const char * net_dhcpv4_msg_type_name | ( | enum net_dhcpv4_msg_type | msg_type | ) |
#include <dhcpv4.h>
Return a text representation of the msg_type.
| msg_type | The msg_type to be converted to text |
| int net_dhcpv4_remove_option_callback | ( | struct net_dhcpv4_option_callback * | cb | ) |
#include <dhcpv4.h>
Remove an application callback.
| cb | A valid application's callback structure pointer. |
| int net_dhcpv4_remove_option_vendor_callback | ( | struct net_dhcpv4_option_callback * | cb | ) |
#include <dhcpv4.h>
Remove an application callback for encapsulated vendor-specific options.
| cb | A valid application's callback structure pointer. |
| void net_dhcpv4_restart | ( | struct net_if * | iface | ) |
#include <dhcpv4.h>
Restart DHCPv4 client on an iface.
Restart DHCPv4 client on a given interface. DHCPv4 client will restart the state machine without any of the initial delays used in start.
| iface | A valid pointer on an interface |
| int net_dhcpv4_set_reboot_hint | ( | struct net_if * | iface, |
| const struct net_in_addr * | requested_ip ) |
#include <dhcpv4.h>
Set the address requested in INIT-REBOOT.
Seed the DHCPv4 client with a previously leased address, for example one restored from non-volatile storage, so that the next net_dhcpv4_start begins in INIT-REBOOT state and requests it directly instead of performing a full discovery. Must be called while the DHCPv4 client is stopped. Requires
CONFIG_NET_DHCPV4_INIT_REBOOT
.
| iface | DHCPv4 interface. |
| requested_ip | Address to request, or an unspecified address to clear the hint. |
| 0 | On success. |
| -EINVAL | Invalid argument. |
| -EBUSY | DHCPv4 client is active. |
| -ENOTSUP | INIT-REBOOT support is disabled. |
| void net_dhcpv4_start | ( | struct net_if * | iface | ) |
#include <dhcpv4.h>
Start DHCPv4 client on an iface.
Start DHCPv4 client on a given interface. DHCPv4 client will start negotiation for IPv4 address. Once the negotiation is success IPv4 address details will be added to interface.
| iface | A valid pointer on an interface |
| void net_dhcpv4_stop | ( | struct net_if * | iface | ) |
#include <dhcpv4.h>
Stop DHCPv4 client on an iface.
Stop DHCPv4 client on a given interface. DHCPv4 client will remove all configuration obtained from a DHCP server from the interface and stop any further negotiation with the server.
| iface | A valid pointer on an interface |