2

I have a DSP connected to a Windows 7 laptop by Ethernet. The laptop has all firewalls disabled (I’ve even tried stopping the Windows firewall service and DHCP). The DSP is sending well-formed BOOTP broadcast packets every three seconds to port 67. Wireshark running on the laptop sees these BOOTP packets coming in.

I have a program running on the laptop with a socket successfully bound to port 67. I can see this using CurrPorts. Nothing else is shown as accessing port 67. The program never sees any packets coming in.

If I run a program in the DSP that sends ordinary UDP packets to port 67, Wireshark sees them coming in and reports that they are corrupt BOOTP packets, but now, my program gets them.

Any idea what’s going on here?

4
  • Does your program set SO_BROADCAST? (Allowing applications that didn't expect them to receive broadcast packets, and likely reply to them, would create all kinds of amplification attacks.) Nov 6, 2012 at 18:29
  • 1
    According to Microsoft: SO_BROADCAST "Configures a socket for sending broadcast data." I am not sending; I am failing to receive. There is nothing wrong with the transmission of the packets. Nov 6, 2012 at 20:51
  • This directly contradicts what others have said about SO_BROADCAST. I have tried setting the option (which Microsoft documentation says is set by default) and, as I expected, it has no effect. I still cannot receive the broadcasts to port 67. Also, I have not yet been able to try the IP_RECEIVE_BROADCAST option as I have not yet found where that is defined. Nov 7, 2012 at 8:54
  • 1
    I have looked into IP_RECEIVE_BROADCAST. The documentation I can find states that it is for IPPROTO_IP not IPPROTO_UDP. I have tried it with both and both fail to set the option with error 10022 (invalid argument). Nov 7, 2012 at 9:16

0

You must log in to answer this question.

Browse other questions tagged .