mikroSDK Reference Manual
dhcpv6_client_misc.h
Go to the documentation of this file.
1
31#ifndef _DHCPV6_CLIENT_MISC_H
32#define _DHCPV6_CLIENT_MISC_H
33
34//Dependencies
35#include "core/net.h"
37
38//C++ guard
39#ifdef __cplusplus
40extern "C" {
41#endif
42
43//Tick counter to handle periodic operations
44extern systime_t dhcpv6ClientTickCounter;
45
46//DHCPv6 client related functions
47void dhcpv6ClientTick(Dhcpv6ClientContext *context);
48void dhcpv6ClientLinkChangeEvent(Dhcpv6ClientContext *context);
49
50error_t dhcpv6ClientSendMessage(Dhcpv6ClientContext *context,
52
53void dhcpv6ClientProcessMessage(NetInterface *interface,
54 const IpPseudoHeader *pseudoHeader, const UdpHeader *udpHeader,
55 const NetBuffer *buffer, size_t offset, const NetRxAncillary *ancillary,
56 void *param);
57
58void dhcpv6ClientParseAdvertise(Dhcpv6ClientContext *context,
59 const Dhcpv6Message *message, size_t length);
60
61void dhcpv6ClientParseReply(Dhcpv6ClientContext *context,
62 const Dhcpv6Message *message, size_t length);
63
64error_t dhcpv6ClientParseIaNaOption(Dhcpv6ClientContext *context,
65 const Dhcpv6Option *option);
66
67error_t dhcpv6ClientParseIaAddrOption(Dhcpv6ClientContext *context,
68 const Dhcpv6Option *option);
69
70void dhcpv6ClientAddAddr(Dhcpv6ClientContext *context, const Ipv6Addr *addr,
71 uint32_t validLifetime, uint32_t preferredLifetime);
72
73void dhcpv6ClientRemoveAddr(Dhcpv6ClientContext *context, const Ipv6Addr *addr);
74
75void dhcpv6ClientFlushAddrList(Dhcpv6ClientContext *context);
76
77error_t dhcpv6ClientGenerateDuid(Dhcpv6ClientContext *context);
78error_t dhcpv6ClientGenerateLinkLocalAddr(Dhcpv6ClientContext *context);
79
80bool_t dhcpv6ClientCheckServerId(Dhcpv6ClientContext *context,
81 Dhcpv6Option *serverIdOption);
82
83void dhcpv6ClientCheckTimeout(Dhcpv6ClientContext *context);
84
85uint16_t dhcpv6ClientComputeElapsedTime(Dhcpv6ClientContext *context);
86
87void dhcpv6ClientChangeState(Dhcpv6ClientContext *context,
88 Dhcpv6State newState, systime_t delay);
89
90void dhcpv6ClientDumpConfig(Dhcpv6ClientContext *context);
91
92//C++ guard
93#ifdef __cplusplus
94}
95#endif
96
97#endif
DHCPv6 client (Dynamic Host Configuration Protocol for IPv6)
Dhcpv6State
DHCPv6 client FSM states.
Definition dhcpv6_client.h:240
Dhcpv6MessageType
DHCPv6 message types.
Definition dhcpv6_common.h:89
error_t
Error codes.
Definition error.h:43
TCP/IP stack core.
uint32_t systime_t
System time.
Definition os_port_none.h:90
IP pseudo header.
Definition ip.h:91
Structure describing a buffer that spans multiple chunks.
Definition net_mem.h:89