BusyBox Bug and Patch Tracking
BusyBox
  

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0001605 [udhcp] minor always 11-23-07 17:05 11-28-07 11:26
Reporter macpaul View Status public  
Assigned To
Priority normal Resolution fixed  
Status closed  
Summary 0001605: Interoperating problem between udhcpc 0.9.9-pre and Seednet VDSL DHCP Server
Description I've found udhcpc-0.9.9pre has a problem with Seednet (ISP) VDSL DHCP Server.
The attachments are sniffied logs by using wireshark.

The workable dhcp client is dhclient and I've logged it for comparation (File: dhclient-seednet.cap).
The other 2 were the same situation when I replace udhcpc as a dhcp client.
udhcpc will pending when DHCP Server replies DHCP Offer.
I'm not sure which brand of DHCP Server that Seednet has been used.

After downloading SVN from udhcpc source repository and hacked up a while.
I've found that the UDP packet length of DHCP Offer from Seednet is 558 bytes.
(The total lenght of IP packet is 598 bytes).
While according to the function "get_raw_packet()" in clientpacket.c ,
your udhcpc will receive a fix UDP packet in only 556 bytes.
(The total lenght of IP packet is 596 bytes)
Where the C code is :
bytes = read (fd, &packet, sizeof(struct udp_dhcp_packet));
Since the sizeof( struct udp_dhcp_packet) is fixed as 596 bytes.
udhcpc will think DHCP offer from Seednet might be a malform packet then will drop it and resend discover again.

However, I have no idea about how the RFC has described the packet length of dhcp packet.
I'm not sure if Seednet's implementation has violate the RFC or it just a implementation problem.
Could you fix this implementation problem in your udhcpc?
Thank you.
Additional Information
Attached Files  udhcpc-seednet-1.cap [^] (3,058 bytes) 11-23-07 17:05
 maxmtu_option_for_dhcp_r20554.diff [^] (1,302 bytes) 11-27-07 18:04

- Relationships

- Notes
(0002981)
macpaul
11-27-07 18:04

Hope this patch "maxmtu_option_for_dhcp_r20554.diff" could help solve Other dhcp server send oversized packet to udhcpc. This patch will force udhcpc send DHCP_MAX_SIZE option to force dhcp server send udhcp packet as 576 bytes (+IP hdr==596bytes) . Based on the read buffer setted in function get_raw_paceket() .
 
(0002986)
vda
11-28-07 11:26

Applied to svn, thanks.
 

- Issue History
Date Modified Username Field Change
11-23-07 17:05 macpaul New Issue
11-23-07 17:05 macpaul File Added: udhcpc-seednet-1.cap
11-27-07 18:04 macpaul File Added: maxmtu_option_for_dhcp_r20554.diff
11-27-07 18:04 macpaul Note Added: 0002981
11-28-07 11:26 vda Status new => closed
11-28-07 11:26 vda Note Added: 0002986
11-28-07 11:26 vda Resolution open => fixed


Copyright © 2000 - 2006 Mantis Group
Powered by Mantis Bugtracker