Re: Change in behavior for bound vs unbound sockets
flat view
From: David Ahern <hidden>
Date: 2021-09-01 02:29:21
On 8/31/21 3:12 AM, Paul Menzel wrote:
quoted
I traced it to one commit (6da5b0f027a8 "net: ensure unbound datagram socket to be chosen when not in a VRF") that makes sure that when not in a VRF, the unbound socket is chosen over the bound socket, if both are available. If I revert this commit and two other commits that made changes on top of this, I can see that packets get sent to the bound socket instead. There's similar commits made for TCP and raw sockets as well, as part of that patch series.Commit 6da5b0f027a8 (net: ensure unbound datagram socket to be chosen when not in a VRF) was added to Linux 5.0.quoted
Is the intention of those commits also meant to affect sockets that are bound to just regular interfaces (and not only VRFs)? If so, since this change breaks a userspace application, is it possible to add a config that reverts to the old behavior, where bound sockets are preferred over unbound sockets?If it breaks user space, the old behavior needs to be restored according to Linux’ no regression policy. Let’s hope, in the future, there is better testing infrastructure and such issues are noticed earlier.
5.0 was 2-1/2 years ago. Feel free to add tests to tools/testing/selftests/net/fcnal-test.sh to cover any missing permutations, including what you believe is the problem here. Both IPv4 and IPv6 should be added for consistency across protocols. nettest.c has a lot of the networking APIs, supports udp, tcp, raw, ...