|
NX_DISABLE_ERROR_CHECKING
该选项删除基本的DHCP错误检查。它通常在应用程序调试后使用。
?
NX_DHCP_SERVER_THREAD_PRIORITY
此选项指定DHCP服务器线程的优先级。默认情况下,此值指定DHCP线程以优先级1运行。
?
NX_DHCP_TYPE_OF_SERVICE
此选项指定DHCP UDP请求所需的服务类型。默认情况下,此值定义为NX_IP_NORMAL以指示正常的IP数据包服务。
?
NX_DHCP_FRAGMENT_OPTION
启用DHCP UDP请求的片段。默认情况下,此值设置为NX_DONT_FRAGMENT以禁用UDP分片。 NX_DHCP_TIME_TO_LIVE指定数据包在丢弃前可以通过的路由器数量。默认值是0x80。
?
NX_DHCP_QUEUE_DEPTH
指定在刷新队列之前DHCP服务器套接字保留的数据包数量。默认值是5。
?
NX_DHCP_PACKET_ALLOCATE_TIMEOUT
指定NetX DHPC Server等待从其数据包池中分配数据包的计时器滴答中的超时时间。默认值是200。
NX_DHCP_SERVER_IP_ADDRESS这是客户主机子网的DHCP服务器IP地址。
?
?
NX_DHCP_SERVER_ID
这是DHCP服务器ID,客户端用它来通信它选择的DHCP服务器。默认值设置为NX_DHCP_SERVER_IP_ADDRESS。
?
?
NX_DHCP_ROUTER_IP_ADDRESS客户端主机子网的路由器IP地址。默认值设置为NX_DHCP_SERVER_IP_ADDRESS。
?
NX_DHCP_DNS_IP_ADDRESS
客户端主机子网的DNS IP地址。默认值设置为NX_DHCP_SERVER_IP_ADDRESS。
?
NX_DHCP_SUBNET_MASK
这是DHCP客户机应配置的子网掩码。默认值设置为0xFFFFFF00。
?
NX_DHCP_CLIENT_IDENTIFIER_MAX
设置默认为客户端MAC地址(6字节)的客户端标识符字符串长度的最大限制,
?
NX_DHCP_FAST_PERIODIC_TIME_INTERVAL
这是DHCP服务器快速定时器计时器滴答的超时期限,用于检查剩余会话时间并处理已超时的会话。
?
NX_DHCP_CLIENT_SESSION_TIMEOUT
这是计时器滴答的超时期限,DHCP服务器将等待接收下一个DHCP客户端消息。
?
NX_DHCP_ASSIGNED_LEASE_TIME
这是分配给DHCP客户端的IP地址租用时间(以秒为单位),以及计算续订时间和重新绑定时间的基础
分配给客户。默认值设置为0xFFFFFFFF(无穷大)。
?
NX_DHCP_IP_ADDRESS_LIST_SIZE
这是用于保存分配给客户端的可用IP地址的DHCP服务器阵列的大小。请注意,实际IP列表不是可配置选项,而是作为DHCP服务器创建调用中的参数传递的。默认值为50。
?
?
NX_DHCP_CLIENT_OPTIONS_MAX
这是DHCP客户端实例中阵列的大小,用于在当前会话的参数请求列表中保存所有请求的选项。默认值是12。
?
NX_DHCP_DEFAULT_SERVER_OPTION_LIST
这是保存DHCP服务器的默认选项列表以供参数请求列表中的当前DHCP客户端使用的缓冲区。默认值是“1 3 6”。
?
NX_DHCP_DEFAULT_SERVER_OPTION_LIST
这是保存DHCP服务器的默认选项列表的数组大小。默认值是3。
?
NX_DHCP_CLIENT_HOSTNAME_MAX
这是用于在当前DHCP服务器客户端会话中保存客户端主机名的缓冲区大小.默认值是30.
具体流程
nx_dhcp_server_create创建一个DHCP服务器实例
?
nx_dhcp_set_interface_network_parameters设置指定接口的关键网络参数的DHCP服务器选项
?
nx_dhcp_create_server_ip_address_list创建可分配给DHCP客户端接口的可用IP地址池
?
nx_dhcp_clear_client_record删除服务器数据库中的客户端记录
?
nx_dhcp_server_delete删除DHCPServer实例
?
nx_dhcp_server_start启动或恢复DHCP服务器处理
?
nx_dhcp_server_stop停止DHCP服务器处理
{
nx_dhcp_server_create
创建一个DHCP服务器实例
?
原型
?
UINT nx_dhcp_server_create(NX_DHCP_SERVER * dhcp_ptr,NX_IP * ip_ptr,VOID * stack_ptr,ULONG stack_size,CHAR * input_address_list,CHAR * name_ptr,NX_PACKET_POOL * packet_pool_ptr);
?
描述
?
该服务使用先前创建的IP实例创建DHCP服务器实例。
?
重要说明:应用程序必须确保为IP创建服务创建的数据包池至少有588字节的有效负载,不包括UDP,IP和以太网标头。
?
输入参数
?
dhcp_ptr指向DHCP服务器控制块的指针。 ip_ptr指向DHCP服务器IP实例的指针。 stack_ptr指针DHCP服务器堆栈位置。 stack_size DHCP服务器堆栈的大小input_address_list指向服务器IP地址列表的指针name_ptr指向DHCP的指针名称packet_pool_ptr指向DHCP服务器数据包池的指针
?
返回值
?
NX_SUCCESS(0x00)成功创建DHCP服务器。 NX_PTR_ERROR(0x16)指针输入无效。 NX_DHCP_INADEQUATE_PACKET_POOL_PAYLOAD(0xA9)数据包有效负载太小错误NX_DHCP_BAD_SERVER_IP_CONFIGURATION(0xA5)服务器IP地址错误NX_DHCP_NO_DEFAULT_OPTION_LIST(0xA4)缺少选项列表错误状态套接字和线程创建调用的完成状态允许来源
?
/ *创建一个DHCP服务器实例。 * / status = nx_dhcp_server_create(&dhcp_server,&server_ip,pointer,DEMO_SERVER_STACK_SIZE,SERVER_IP_ADDRESS_LIST,“DHCP server”,&server_pool);
}
?{
/ *如果状态为NX_SUCCESS,则DHCP服务器实例已成功创建。 * /
nx_dhcp_create_server_ip_address_list创建一个IP地址池
?
原型
?
UINT nx_dhcp_create_server_ip_address_list(NX_DHCP_SERVER * dhcp_ptr,UINT iface_index,ULONG start_ip_address,ULONG end_ip_address,UINT * addresses_added);
?
描述
?
此服务为指定的DHCP服务器分配可用IP地址创建一个网络接口特定池。开始和结束IP地址必须匹配指定的网络接口。如果IP地址列表不够大(在用户可配置的NX_DHCP_IP_ADDRESS_MAX_LIST_SIZE参数中设置),实际添加的IP地址数量可能会少于总地址。
?
?
输入参数
?
dhcp_ptr指向DHCP服务器控制块的指针。 iface_index网络接口对应的索引start_ip_address第一个可用IP地址end_ip_address最后一个可用IP地址addresses_added添加到列表中的IP地址数量
?
返回值
?
NX_SUCCESS(0x00)成功创建DHCP服务器。 NX_PTR_ERROR(0x16)指针输入无效。 NX_DHCP_BAD_INTERFACE_INDEX(0xA1)索引与地址不匹配NX_DHCP_INVALID_IP_ADDRESS_LIST(0x99)不合逻辑的开始/结束地址
?
允许来自
?
?应用
?
例
?
/ *创建可分配的IP地址池。 * / status = nx_dhcp_create_server_ip_list(&dhcp_server,iface_index,START_IP_ADDRESS_LIST,END_IP_ADDRESS_LIST,&addresses_added);
?
/ *如果状态为NX_SUCCESS,则IP地址列表已成功创建。 ddresses_added表示实际添加到列表中的IP地址数量
}
{
nx_dhcp_clear_client_record从服务器数据库中删除客户端记录
?
原型
?
UINT nx_dhcp_clear_client_record(NX_DHCP_SERVER * dhcp_ptr,NX_DHCP_CLIENT * dhcp_client_ptr);
?
描述
?
该服务从服务器数据库中清除客户端记录。
?
?
输入参数
?
dhcp_ptr指向DHCP服务器控制块的指针。 dhcp_client_ptr指向要删除的DHCP客户端的指针
?
返回值
?
NX_SUCCESS(0x00)成功创建DHCP服务器。 NX_PTR_ERROR(0x16)指针输入无效。
?
允许来自
?
? 应用
?
/ *从服务器数据库中删除客户端记录。 * / status = nx_dhcp_clear_client_record(&dhcp_server,&dhcp_client_ptr);
?
/ *如果状态为NX_SUCCESS,则指定的客户端已从数据库中删除。*/
nx_dhcp_set_interface_network_parameters设置DHCP选项的网络参数
?
原型
?
UINT nx_dhcp_set_interface_network_parameters(NX_DHCP_SERVER * dhcp_ptr,UINT iface_index,ULONG subnet_mask,ULONG default_gateway_address,ULONG dns_server_address);
?
?
描述
?
该服务为指定的接口设置网络关键参数的默认值。 DHCP服务器将在OFFER中包含这些选项,并向DHCP客户端回复ACK。如果主机设置运行DHCP服务器的接口参数,则默认参数如下:路由器设置为DHCP服务器本身的主接口网关,DHCP服务器本身的DNS服务器地址以及设置为DHCP服务器本身的子网掩码与DHCP服务器接口配置相同。
?
?
输入参数
?
dhcp_ptr指向DHCP服务器控制块的指针。 iface_index与网络接口相对应的索引subnet_mask客户端网络的子网掩码default_gateway_address客户端的路由器IP地址dns_server_address客户端网络的DNS服务器
?
?
返回值
?
NX_SUCCESS(0x00)成功创建DHCP服务器。 NX_PTR_ERROR(0x16)指针输入无效。 NX_DHCP_BAD_INTERFACE_INDEX(0xA1)索引与地址不匹配NX_DHCP_INVALID_NETWORK_PARAMETERS(0xA3)无效的网络参数
?
?
允许来自
?
?应用
/ *为特定接口设置网络参数。 * / status = nx_dhcp_set_interface_network_parameters(&dhcp_server,iface_index,NX_DHCP_SUBNET_MASK,NX_DHCP_DEFAULT_GATEWAY,NX_DHCP_DNS_SERVER);
?
/ *如果状态为NX_SUCCESS,网络参数设置成功。 * /
}
{
nx_dhcp_server_delete
删除一个DHCP服务器实例
?
原型
?
UINT nx_dhcp_server_delete(NX_DHCP_SERVER * dhcp_ptr);
?
描述
?
该服务删除以前创建的DHCP服务器实例。
?
输入参数
?
dhcp_ptr指向DHCP服务器实例的指针。
?
返回值
?
NX_SUCCESS(0x00)成功删除DHCP服务器。 NX_PTR_ERROR(0x16)指针输入无效。
?
允许来自
?
?主题
?
例
?
?
/ *删除一个DHCP服务器实例。 * / status = nx_dhcp_server_delete(&dhcp_server);
?
/ *如果状态为NX_SUCCESS,则DHCP服务器实例已成功删除。*/
}
{
nx_dhcp_server_start
启动DHCP服务器处理
?
原型
?
UINT nx_dhcp_server_start(NX_DHCP_SERVER * dhcp_ptr);
?
描述
?
此服务启动DHCP服务器处理,其中包括创建服务器UDP套接字,绑定DHCP端口并等待接收客户端DHCP请求。
?
输入参数
?
dhcp_ptr指向先前创建的DHCP实例的指针。
?
返回值
?
NX_SUCCESS(0x00)成功启动DHCP服务器。 NX_DHCP_ALREADY_STARTED(0x93)DHCP实例已经启动。 NX_PTR_ERROR(0x16)指针输入无效。 NX_CALLER_ERROR(0x11)无效的服务调用者。
?
允许来自
?
?主题
?
例
?
?
/ *启动此IP实例的DHCP服务器处理。 * / status = nx_dhcp_server_start(&dhcp_server);
?
/ *如果状态为NX_SUCCESS,DHCP服务器已成功启动。 * /
?
也可以看看
?
nx_dhcp_create,nx_dhcp_delete,nx_dhcp_release,nx_dhcp_state_change_notify,nx_dhcp_stop,nx_dhcp_user_option_retrieve,nx_dhcp_user_option_convert
}
{
nx_dhcp_server_stop
停止DHCP服务器处理
?
原型
?
UINT nx_dhcp_server_stop(NX_DHCP_SERVER * dhcp_ptr);
?
描述
?
此服务停止DHCP服务器处理,其中包括接收DHCP客户端请求。
?
?
输入参数
?
dhcp_ptr指向DHCP服务器实例的指针。
?
返回值
?
NX_SUCCESS(0x00)成功的DHCP停止。 NX_PTR_ERROR(0x16)指针输入无效。 NX_CALLER_ERROR(0x11)无效的服务调用者。
?
允许来自
?
?主题
?
例
?
?
/ *停止此IP实例的DHCP服务器处理。 * / status = nx_dhcp_server_stop(&dhcp_server);
?
/ *如果状态为NX_SUCCESS,则DHCP服务器已成功停止。*/
}
|
|