LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

UDP Broadcast not Received by UDP Read on NI Linux RT Target

Solved!
Go to solution

I have an NI Linux RT PXI, with a UDP reference opened on IP 192.168.1.2 and port 6789.

 

The PXI sends a UDP broadcast to 255.255.255.255 which is received by the remote target.  I know this because that target then responds with its own UDP broadcast to 255.255.255.255.  Wireshark sees both these broadcast messages when connected to a hub which is connected to the two targets.  The source addresses of those broadcasts correctly match each of the targets.

 

I never get the response broadcast at the UDP read on my PXI.  What could cause this?



I saw my father do some work on a car once as a kid and I asked him "How did you know how to do that?" He responded "I didn't, I had to figure it out."
0 Kudos
Message 1 of 4
(1,230 Views)

How did you connect the Linux RT PXI to the host PC? It is connected via a network hub? Did you connect only one or both of the ethernet ports on the PXI?

-------------------------------------------------------
Control Lead | Intelline Inc
0 Kudos
Message 2 of 4
(1,214 Views)

ZYOng,

 

I am working jointly on this project with blackburnite. The RT PXI is connected to the host PC directly through a separate ethernet cable. The hub only has three connections: an ethernet cable to a single port on a PXI Ethernet Interface card, ethernet cable to the remote target, and an ethernet cable to a standalone machine with the sole purpose of using Wireshark. We only use one of the ethernet ports on the controller of the PXI.

0 Kudos
Message 3 of 4
(1,188 Views)
Solution
Accepted by topic author blackburnite

It appears to be a problem with how the Linux kernel handles binding ports and in-fact the "UDP Open" documentation specifically says if you assign an IP to the net address input, the UDP connection will be unable to receive broadcasts.

 

Why that works on Windows but not Linux again, seems to be with how the kernel routes packets to the interfaces and when you do a UDP open with a specific IP, it must bind the port you choose to only receive traffic send explicitly to that IP, even if it is in the correct subnet to theoretically receive a broadcast.

0 Kudos
Message 4 of 4
(1,146 Views)