FreeRTOS_DHCP.h
注意:仅当 ipconfigUSE_DHCP_HOOK 在 FreeRTOSIPConfig.h 文件中设置为 1 时才需要定义此钩子。
eDHCPCallbackAnswer_t xApplicationDHCPHook_Multi( eDHCPCallbackPhase_t eDHCPPhase,
struct xNetworkEndPoint * pxEndPoint,
IP_Address_t * pxIPAddress );
xApplicationDHCPHook_Multi 是应用程序定义的钩子(或回调)函数,由 FreeRTOS-Plus-TCP 堆栈调用,
用于检查是否应发送 DHCPv4 的 “Discover” 和 “Request” 消息或 DHCPv6 的 “Solicitation” 和 “Request” 消息
来完成获取动态 IP 地址的过程,或者设备是否使用默认的静态 IP。
回调函数由应用程序写入程序实现,但由 TCP/IP 堆栈调用。回调函数的原型
必须与上面的原型完全匹配(包括函数名称)。应用程序钩子中的代码不应调用阻塞的 FreeRTOS-Plus-TCP
API。这样很容易导致死锁。
当应用程序钩子执行时,会借用任务优先级和 IP 任务堆栈。因此,我们建议
您保持应用程序钩子的简短性——它可能需要唤醒一些负责执行进一步处理的应用程序任务。
参数:
- eDHCPPhase
- 对于 DHCPv4,当 TCP 堆栈即将发送一条“请求”或“发现”消息时,该参数可以为 eDHCPPhasePreRequest 或 eDHCPPhasePreDiscover
。对于 DHCPv6,
当 TCP 堆栈即将发送一条“征求”信息或“请求”信息时,该参数可以为 eDHCPPhasePreRequest 或 eDHCPPhasePreDiscover。
- pxEndPoint
- 端点当前执行 DHCP(v4 或 v6)。
- pxIPAddress
- 当参数 eDHCPPhase 为 eDHCPPhasePreDiscover 时,此参数将包含默认 IP 地址,
否则(当 eDHCPPhase 为 eDHCPPhasePreRequest 时),此参数将包含由 DHCP 服务器提供的 IP 地址。
返回值:
返回值可为以下枚举值之一:
- 如果应用程序想要继续 DHCP 事务,返回
eDHCPContinue
。
- 如果应用程序想要使用默认网络参数,返回
eDHCPUseDefaults
。
- 在必须中止 DHCP 进程且所有网络参数保持不变的情况下,返回
eDHCPStopNoChanges
。
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.