John Fastabend 1aa12bdf1b bpf: sockmap, add sock close() hook to remove socks
The selftests test_maps program was leaving dangling BPF sockmap
programs around because not all psock elements were removed from
the map. The elements in turn hold a reference on the BPF program
they are attached to causing BPF programs to stay open even after
test_maps has completed.

The original intent was that sk_state_change() would be called
when TCP socks went through TCP_CLOSE state. However, because
socks may be in SOCK_DEAD state or the sock may be a listening
socket the event is not always triggered.

To resolve this use the ULP infrastructure and register our own
proto close() handler. This fixes the above case.

Fixes: 174a79ff9515 ("bpf: sockmap with sk redirect support")
Reported-by: Prashant Bhole <bhole_prashant_q7@lab.ntt.co.jp>
Signed-off-by: John Fastabend <john.fastabend@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
2018-02-06 11:39:32 +01:00
..
2018-01-31 11:23:28 -08:00
2018-02-01 13:15:23 -08:00
2017-08-16 16:48:34 -07:00
2017-11-15 13:28:48 -08:00
2017-11-15 13:28:48 -08:00
2018-01-24 09:58:18 +01:00
2017-12-14 16:00:48 -08:00
2018-01-05 18:43:00 +11:00
2017-11-17 16:10:04 -08:00
2017-11-17 16:10:04 -08:00
2018-01-29 09:08:34 -08:00
2017-10-31 17:22:58 -05:00
2018-02-01 09:51:57 -08:00