I have the following problem. I cannot get an IP address using DHCP. I have a 10/100Mb adapter on a set-top box connected to a 1000Mb LAN.
When I boot up the set-top box it gets an IP from the DHCP server. But when I disable the ethernet interface using
ifconfig eth0 down
leave it for about 10 minutes and re-enable it with
ifconfig eth0 up
it doesn't get an IP. The OS of the set-top box is a Linux-MIPSEL with kernel 2.6.22.19 and the udhcpc application is used for getting IP from DHCP.
udhcpc application is starting correctly as I can see. I also used tcpdump in order to see the package transactions. The command I used is the following:
tcpdump -lenx -i eth0 -l -vvv port bootps or port bootpc
The log from the tcpdump showed that it is sent a Discover package but I don't receive any response from the DHCP server. The log files from the server shows that the server sending an Offer but I don't receive this package.
As I am not a network expert, can you suggest what it might be the problem? Could it be that I have a 10/100Mb adapter to a 1000Mb LAN? Or might be something else?
PS: I also used a 10/100Mb switch to connect to the LAN but I get the same problem.
Update 1: After using as dhcp client the udhcpc, I thought of trying something else. So I installed ConnMan which is a network manager and has it's own dhcp client. Unfortunately I had a similar result, instead of not getting IP at all, I was getting the APIPA address which is similar of not getting an IP. I am start thinking that maybe the endianness has something to do...
Update 2: Sorry for the delay, I have tested the set-top box to some home routers like a Cisco-Linksys E1500 and works with no problem. I also have more information regarding the LAN. There is a switch between the DHCP server and the set-box, a Netgear GS724TS with Hardware ver 00.00.01, Boot ver 1.0.0.07 and Software ver V3.1.0.1. As I can see in the Monitor section of the web interface of the switch there is not so much information even if I select the debug in the log filter.