31#ifndef _DHCPV6_RELAY_H
32#define _DHCPV6_RELAY_H
39#ifndef DHCPV6_RELAY_SUPPORT
40 #define DHCPV6_RELAY_SUPPORT ENABLED
41#elif (DHCPV6_RELAY_SUPPORT != ENABLED && DHCPV6_RELAY_SUPPORT != DISABLED)
42 #error DHCPV6_RELAY_SUPPORT parameter is not valid
46#ifndef DHCPV6_RELAY_STACK_SIZE
47 #define DHCPV6_RELAY_STACK_SIZE 500
48#elif (DHCPV6_RELAY_STACK_SIZE < 1)
49 #error DHCPV6_RELAY_STACK_SIZE parameter is not valid
53#ifndef DHCPV6_RELAY_PRIORITY
54 #define DHCPV6_RELAY_PRIORITY OS_TASK_PRIORITY_NORMAL
58#ifndef DHCPV6_RELAY_MAX_CLIENT_IF
59 #define DHCPV6_RELAY_MAX_CLIENT_IF 4
60#elif (DHCPV6_RELAY_MAX_CLIENT_IF < 1)
61 #error DHCPV6_RELAY_MAX_CLIENT_IF parameter is not valid
65#define DHCPV6_RELAY_FORW_OVERHEAD (sizeof(Dhcpv6RelayMessage) + 2 * sizeof(Dhcpv6Option) + sizeof(uint32_t))
80 NetInterface *clientInterface[DHCPV6_RELAY_MAX_CLIENT_IF];
93 NetInterface *clientInterface[DHCPV6_RELAY_MAX_CLIENT_IF];
97 Socket *clientSocket[DHCPV6_RELAY_MAX_CLIENT_IF];
104#if (OS_STATIC_TASK_SUPPORT == ENABLED)
106 OsStackType taskStack[DHCPV6_RELAY_STACK_SIZE];
108 uint8_t buffer[DHCPV6_MAX_MSG_SIZE];
119void dhcpv6RelayTask(
void *param);
Definitions common to DHCPv6 client, server and relay agent.
error_t
Error codes.
Definition error.h:43
uint_t OsEvent
Event object.
Definition os_port_none.h:104
uint_t OsTaskId
Task identifier.
Definition os_port_none.h:97
DHCPv6 relay agent context.
Definition dhcpv6_relay.h:91
OsEvent event
Event object used to poll the sockets.
Definition dhcpv6_relay.h:102
uint_t clientInterfaceCount
Number of client-facing interfaces.
Definition dhcpv6_relay.h:94
bool_t running
DHCPv6 relay agent is currently running or not?
Definition dhcpv6_relay.h:99
bool_t stopRequest
Stop request.
Definition dhcpv6_relay.h:100
OsTaskTcb taskTcb
Task control block.
Definition dhcpv6_relay.h:105
NetInterface * serverInterface
Network-facing interface.
Definition dhcpv6_relay.h:92
OsTaskId taskId
Task identifier.
Definition dhcpv6_relay.h:103
Socket * serverSocket
Socket that handles the network-facing interface.
Definition dhcpv6_relay.h:96
OsEvent ackEvent
Event object use to acknowledge user requests.
Definition dhcpv6_relay.h:101
Ipv6Addr serverAddress
Address to be used when relaying messages to the server.
Definition dhcpv6_relay.h:95
DHCPv6 relay agent settings.
Definition dhcpv6_relay.h:78
Ipv6Addr serverAddress
Address to be used when relaying messages to the server.
Definition dhcpv6_relay.h:82
uint_t clientInterfaceCount
Number of client-facing interfaces.
Definition dhcpv6_relay.h:81
NetInterface * serverInterface
Network-facing interface.
Definition dhcpv6_relay.h:79
Structure describing socket events.
Definition socket.h:395