I have some hardware connected by Ethernet to an XP system via a USB adaptor. The hardware is sending a UDP broadcast packet to the XP every 3 seconds. Wireshark running on the XP system sees these packets:
Frame 1 (342 bytes on wire, 342 bytes captured)
Ethernet II, Src: 40:5f:c2:b9:21:d1 (40:5f:c2:b9:21:d1), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Internet Protocol, Src: 0.0.0.0 (0.0.0.0), Dst: 0.0.0.0 (0.0.0.0)
User Datagram Protocol, Src Port: bootpc (68), Dst Port: bootps (67)
No activity at all is seen in the Ethernet connection status: no packets are received.
The Windows firewall is disabled.
An AVG firewall is set to pass these packets and is not showing any being blocked (if I disable the permission to pass the packets, I then see them being blocked).
Any suggestions as to what is dropping these packets and how to let them through to my program?
asked 23 Dec '12, 06:22
Other people seem to have the same problem and it looks like TI did it intentionally.
Cite TI Employee: "Regarding the BOOTP packet. The DM648 BOOTP format is TI specific and will not work with standard BOOTP server. You will have to use a custom server which accepts all 0 as IP address."
Cite TI Employee: "There is no detailed documentation on how to write the server. You can use PCAP library (http://en.wikipedia.org/wiki/Pcap) to achieve these functionalities (capture and send the packet). I have used RAW sockets to send/receive the packets."
So, they also recommend (win)pcap :-)
Cite: The Ethernet-ready announcement frame is made in the form of a BOOTP request so it can use a standard format. No response is processed for this message and it is constructed in such a way that most if not all BOOTP and DHCP servers discard it.
So, WinPcap sounds like a possible solution. However, I'm not sure if you will be able to establish a complete communication that way (delivering a firmware image to the DSP). I'm sure you will figure out.
The other option would be to use Windows 7 as BOOTP server, as you said raw sockets do work there, even with the destination ip address of 0.0.0.0. HOWEVER I would not rely too much on that 'feature' as that is probably not intentional and Microsoft may change that behavior without notification.
One last idea: You could try to enable IP Forwarding on Windows XP. Maybe the packet then gets far enough into the IP stack to intercept it with raw sockets.
answered 25 Dec '12, 14:52
Kurt Knochner ♦
edited 26 Dec '12, 06:46
I recommend to uninstall AVG. Not having any message in the log, does not mean that AVG works flawlessly ;-)
BTW: What you do see, if you connect your 'hardware' to the on board ethernet port of your WinXP instead of using a USB adapter?
answered 23 Dec '12, 07:22
Kurt Knochner ♦
edited 23 Dec '12, 07:22