On Tue, Aug 25, 2020 at 8:36 AM Mel Beckman <mel@beckman.org> wrote:
“SHOULD” is not “SHALL”, and thus this doesn’t countermand RFC 768’s instruction “ If not used, a value of zero is inserted." So the key question is, when is the source port not used? When a reply is not requested, is my thinking. Is there an application that implements this in UDP? (it’s nonsensical in TCP, which always requires a handshake, after all). I don’t recall one, but I can envision one: sending a one-way notification that requires no acknowledgement. 

There are many applications that send UDP streams that don't expect a reply.

Here's one I worked on at previous $DAYJOB:
https://github.com/yahoo/UDPing

It emits a stream of UDP packets to a measurement box, 
which collects the data and reports statistics on it.  No replies
to the UDP probes are sent.

But there's another, more common application that many 
people on this list use every day, and indeed was likely the
initial trigger for this thread:
netflow collection.

Your routers emit UDP data streams, destined for a netflow collector box;
no reply is expected (and indeed, no reply is desired; the router is busy 
enough *sending* the netflow stream, trying to process replies would just 
be another burden on the CPU).

[...] 
I think filtering zero-sourced UDP flies in the face of fundamental Internet interoperability.

 -mel 



Indeed.  There are existing applications where the source port of unidirectional UDP streams 
is not used, as no replies are expected, and may be left as zero.

Matt