Stanislav Fomichev
8086fbaf49
bpf: Allow any port in bpf_bind helper
...
We want to have a tighter control on what ports we bind to in
the BPF_CGROUP_INET{4,6}_CONNECT hooks even if it means
connect() becomes slightly more expensive. The expensive part
comes from the fact that we now need to call inet_csk_get_port()
that verifies that the port is not used and allocates an entry
in the hash table for it.
Since we can't rely on "snum || !bind_address_no_port" to prevent
us from calling POST_BIND hook anymore, let's add another bind flag
to indicate that the call site is BPF program.
v5:
* fix wrong AF_INET (should be AF_INET6) in the bpf program for v6
v3:
* More bpf_bind documentation refinements (Martin KaFai Lau)
* Add UDP tests as well (Martin KaFai Lau)
* Don't start the thread, just do socket+bind+listen (Martin KaFai Lau)
v2:
* Update documentation (Andrey Ignatov)
* Pass BIND_FORCE_ADDRESS_NO_PORT conditionally (Andrey Ignatov)
Signed-off-by: Stanislav Fomichev <sdf@google.com >
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net >
Acked-by: Andrey Ignatov <rdna@fb.com >
Acked-by: Martin KaFai Lau <kafai@fb.com >
Link: https://lore.kernel.org/bpf/20200508174611.228805-5-sdf@google.com
2020-05-09 00:48:20 +02:00
..
2020-03-27 09:29:57 +00:00
2020-04-15 16:51:07 +03:00
2019-05-30 11:29:22 -07:00
2020-04-27 22:20:09 +02:00
2020-04-30 13:24:01 -07:00
2020-02-27 12:06:20 -08:00
2019-06-05 17:37:07 +02:00
2020-02-29 21:52:19 -08:00
2020-05-01 16:08:19 -07:00
2020-02-28 14:51:30 +01:00
2020-03-30 11:06:49 -07:00
2020-04-23 12:29:21 -07:00
2019-05-30 11:26:41 -07:00
2020-03-13 23:04:35 +00:00
2020-02-28 12:12:53 -08:00
2019-12-11 15:01:23 -08:00
2019-11-06 16:14:48 -08:00
2019-01-23 11:18:00 -08:00
2019-06-19 17:09:55 +02:00
2020-02-24 13:31:42 -08:00
2019-05-24 17:37:53 +02:00
2019-05-21 11:28:40 +02:00
2019-07-04 12:30:48 -07:00
2020-02-28 12:08:37 -08:00
2020-02-27 18:50:19 -08:00
2019-10-30 17:34:35 -07:00
2019-05-21 11:28:45 +02:00
2019-06-19 17:09:55 +02:00
2020-04-30 12:56:37 -07:00
2020-02-29 14:39:08 +01:00
2019-05-30 11:26:32 -07:00
2019-05-21 11:28:45 +02:00
2020-03-27 19:40:38 -07:00
2020-03-10 09:12:49 -06:00
2019-05-30 11:29:52 -07:00
2019-05-30 11:29:52 -07:00
2020-03-30 17:54:58 -07:00
2020-02-29 21:52:20 -08:00
2019-05-21 11:52:39 +02:00
2019-05-21 11:52:39 +02:00
2020-03-31 17:29:33 -07:00
2020-03-30 11:44:00 -07:00
2019-12-16 16:09:44 -08:00
2019-12-24 22:28:54 -08:00
2020-03-23 21:57:44 -07:00
2020-02-19 13:52:32 +01:00
2019-12-09 09:59:07 +01:00
2019-06-19 17:09:55 +02:00
2019-12-24 22:37:30 -08:00
2020-03-03 13:28:48 -08:00
2020-02-17 21:33:28 -08:00
2020-05-01 16:08:19 -07:00
2019-02-27 12:50:17 -08:00
2019-11-08 09:11:49 +01:00
2019-10-23 20:13:22 -07:00
2019-12-09 10:36:44 -08:00
2019-11-05 18:20:55 -08:00
2019-10-06 15:44:47 +02:00
2019-03-22 12:09:31 -07:00
2018-12-10 15:53:04 -08:00
2019-07-01 10:58:23 -07:00
2019-10-25 16:24:32 -07:00
2020-02-13 14:19:00 -08:00
2019-02-22 12:56:24 -08:00
2019-05-30 11:26:41 -07:00
2019-08-28 14:43:03 -07:00
2019-04-22 21:50:53 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2020-03-30 13:45:04 -07:00
2020-05-09 00:48:20 +02:00
2020-03-09 22:34:58 +01:00
2019-08-08 15:55:10 -07:00
2020-03-30 13:45:04 -07:00
2020-03-02 11:16:28 -08:00
2019-09-27 12:05:02 +02:00
2019-02-08 21:50:15 -08:00
2020-02-19 11:20:59 -08:00
2020-03-23 21:57:44 -07:00
2020-04-28 12:50:37 -07:00
2019-06-18 20:48:45 -04:00
2020-03-29 22:30:57 -07:00
2019-12-09 10:36:44 -08:00
2019-11-02 13:54:56 -07:00
2019-12-07 11:55:11 -08:00
2019-06-19 11:37:47 -04:00
2020-05-09 00:48:20 +02:00
2020-04-24 16:58:34 -07:00
2020-02-05 14:28:09 +01:00
2019-06-19 17:09:55 +02:00
2019-05-30 11:26:32 -07:00
2019-10-08 13:23:05 -07:00
2020-03-29 22:30:57 -07:00
2020-04-24 11:30:13 +02:00
2019-05-30 11:26:41 -07:00
2020-03-26 20:17:36 -07:00
2020-03-02 11:16:27 -08:00
2020-02-29 21:52:20 -08:00
2020-02-28 12:08:37 -08:00
2019-06-05 17:36:38 +02:00
2020-04-25 20:37:52 -07:00
2019-12-09 10:36:44 -08:00
2020-04-22 12:15:07 -07:00
2020-02-29 21:52:20 -08:00
2020-03-30 01:16:50 +02:00
2019-05-21 11:28:45 +02:00
2020-04-30 17:51:42 -07:00
2019-11-12 08:18:03 -08:00
2019-04-11 13:59:49 -07:00
2020-02-29 21:52:20 -08:00
2020-02-20 10:09:25 -08:00
2020-03-04 13:25:55 -08:00
2019-05-30 11:26:32 -07:00
2020-03-30 11:06:49 -07:00
2020-03-17 21:16:34 -07:00
2019-05-30 11:26:32 -07:00
2019-09-16 09:18:03 +02:00
2019-05-30 11:26:32 -07:00
2020-03-14 21:03:46 -07:00
2019-10-09 21:34:31 -07:00
2020-03-23 21:57:44 -07:00
2020-03-29 22:30:57 -07:00
2019-04-22 21:47:25 -07:00
2020-04-24 16:57:31 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-11-15 12:28:28 -08:00
2019-10-05 16:29:00 -07:00
2020-02-29 21:52:19 -08:00
2020-04-07 18:09:30 -07:00
2019-06-19 17:09:55 +02:00
2020-04-27 11:40:25 -07:00
2019-05-30 11:26:32 -07:00
2020-05-01 15:12:14 -07:00
2019-05-30 11:26:32 -07:00
2019-10-04 14:07:07 -07:00
2019-12-19 17:46:51 -08:00
2019-03-29 10:53:45 -07:00
2020-03-09 22:34:58 +01:00
2019-11-14 18:12:17 -08:00
2019-10-24 14:53:49 -07:00
2019-06-05 17:30:29 +02:00
2019-12-09 10:28:43 -08:00
2019-11-16 12:39:10 -08:00
2020-05-04 22:56:26 +02:00
2020-04-22 20:11:29 -07:00
2019-12-09 09:59:07 +01:00