OCT 1. 修正 DHCP 测试工具发送不带VLAN数据包异常问题

2. 修正 DHCP 测试工具过滤器
This commit is contained in:
黄昕 2023-05-17 11:23:25 +08:00
parent 524c064b7c
commit 8ee1d22c8d
1 changed files with 3 additions and 3 deletions

View File

@ -30,7 +30,7 @@ static PDHCP_PROTO fill_dhcp_pkg(U8 *pRsp, PDHCP_INFO pInfo) {
if (pInfo->vni == 0) { if (pInfo->vni == 0) {
pIp = (struct iphdr *)(pRsp + IP_HDR_OFFSET); pIp = (struct iphdr *)(pRsp + IP_HDR_OFFSET);
pUdp = (struct udphdr *)(UDP_HDR_OFFSET); pUdp = (struct udphdr *)(pRsp + UDP_HDR_OFFSET);
pDhcp = (PDHCP_PROTO)((U8 *)pRsp + DHCP_OFFSET); pDhcp = (PDHCP_PROTO)((U8 *)pRsp + DHCP_OFFSET);
pEth->h_proto = htons(ETH_P_IP); pEth->h_proto = htons(ETH_P_IP);
} else if (pInfo->vni >= 1 && pInfo->vni <= 4095) { } else if (pInfo->vni >= 1 && pInfo->vni <= 4095) {
@ -100,7 +100,7 @@ static U32 dhcp_pkk_checksum(U8 *pRsp, U32 optSize) {
switch (get_package_vlan_type(pRsp)) { switch (get_package_vlan_type(pRsp)) {
default: default:
pIp = (struct iphdr *)(pRsp + IP_HDR_OFFSET); pIp = (struct iphdr *)(pRsp + IP_HDR_OFFSET);
pUdp = (struct udphdr *)(UDP_HDR_OFFSET); pUdp = (struct udphdr *)(pRsp + UDP_HDR_OFFSET);
// 计算包总长度 // 计算包总长度
tolSize = optSize + sizeof(DHCP_PROTO) + DHCP_OFFSET; tolSize = optSize + sizeof(DHCP_PROTO) + DHCP_OFFSET;
break; break;
@ -309,7 +309,7 @@ int dhcp_tools_init_network(const char *pNicName) {
return ERR_SUCCESS; return ERR_SUCCESS;
} }
init_filter("vlan or (udp and dst port 68)"); init_filter(" (udp and dst port 68) or vlan");
ret = create_udp_raw_socket(g_pNicName); ret = create_udp_raw_socket(g_pNicName);
if (ret != ERR_SUCCESS) { if (ret != ERR_SUCCESS) {