From: Paolo Abeni <pab...@redhat.com> Date: Thu, 30 Nov 2017 15:39:34 +0100
> Since commit e32ea7e74727 ("soreuseport: fast reuseport UDP socket > selection") and commit c125e80b8868 ("soreuseport: fast reuseport > TCP socket selection") the relevant reuseport socket matching the current > packet is selected by the reuseport_select_sock() call. The only > exceptions are invalid BPF filters/filters returning out-of-range > indices. > In the latter case the code implicitly falls back to using the hash > demultiplexing, but instead of selecting the socket inside the > reuseport_select_sock() function, it relies on the hash selection > logic introduced with the early soreuseport implementation. > > With this patch, in case of a BPF filter returning a bad socket > index value, we fall back to hash-based selection inside the > reuseport_select_sock() body, so that we can drop some duplicate > code in the ipv4 and ipv6 stack. > > This also allows faster lookup in the above scenario and will allow > us to avoid computing the hash value for successful, BPF based > demultiplexing - in a later patch. > > Signed-off-by: Paolo Abeni <pab...@redhat.com> Applied, thank you.