Toke Høiland-Jørgensen
5ce6efdab4
UPSTREAM: xdp: Add devmap_hash map type for looking up devices by hashed index
...
A common pattern when using xdp_redirect_map() is to create a device map
where the lookup key is simply ifindex. Because device maps are arrays,
this leaves holes in the map, and the map has to be sized to fit the
largest ifindex, regardless of how many devices actually are actually
needed in the map.
This patch adds a second type of device map where the key is looked up
using a hashmap, instead of being used as an array index. This allows maps
to be densely packed, so they can be smaller.
Change-Id: Ibf2e0d0722ca22b53349df8019115ac1c263a286
Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com >
Acked-by: Yonghong Song <yhs@fb.com >
Acked-by: Jesper Dangaard Brouer <brouer@redhat.com >
Signed-off-by: Alexei Starovoitov <ast@kernel.org >
2025-10-10 05:07:40 +03:00
..
2022-06-25 11:46:26 +02:00
2023-01-18 09:26:05 +01:00
2025-10-10 05:05:41 +03:00
2019-11-25 15:40:46 +05:30
2024-06-20 20:55:22 +03:00
2020-02-14 11:49:56 +05:30
2020-04-30 12:15:11 +08:00
2020-06-30 21:32:05 +05:30
2022-10-26 14:54:42 +08:00
2022-03-16 12:57:07 +01:00
2021-05-21 11:05:45 +08:00
2022-07-25 15:26:14 +08:00
2021-08-03 16:43:52 +08:00
2022-09-05 10:25:03 +02:00
2021-06-28 11:45:24 +05:30
2025-10-10 04:55:31 +03:00
2023-05-30 12:38:38 +01:00
2020-06-30 15:38:04 -04:00
2019-12-04 20:57:26 -08:00
2022-08-09 10:47:19 +08:00
2025-09-11 10:54:02 +03:00
2020-01-08 12:13:41 +05:30
2024-03-23 00:35:20 +02:00
2025-10-10 05:04:51 +03:00
2023-08-22 03:35:26 +03:00
2021-05-22 10:57:12 +02:00
2020-01-09 10:17:55 +01:00
2019-12-03 10:10:39 +00:00
2022-04-02 12:58:22 +02:00
2022-10-26 13:17:05 +02:00
2019-12-17 20:38:59 +01:00
2025-10-10 04:55:50 +03:00
2021-02-23 14:00:30 +01:00
2025-10-10 04:48:02 +03:00
2020-08-13 13:44:51 -07:00
2020-08-21 09:48:15 +02:00
2024-10-24 10:07:36 +00:00
2020-06-25 15:41:57 +02:00
2022-11-10 15:47:24 +01:00
2020-10-07 15:22:36 +00:00
2021-03-25 08:40:27 +08:00
2023-01-25 10:17:12 -08:00
2024-11-07 11:24:02 +02:00
2020-05-20 08:17:03 +02:00
2020-07-18 16:49:19 +05:30
2020-03-20 11:47:07 +08:00
2025-10-10 04:55:50 +03:00
2025-10-10 04:47:22 +03:00
2025-10-10 05:07:40 +03:00
2025-10-10 05:05:05 +03:00
2025-10-10 05:07:36 +03:00
2025-10-10 05:07:40 +03:00
2025-10-10 04:55:56 +03:00
2025-10-10 05:01:36 +03:00
2022-09-15 12:23:51 +02:00
2019-11-01 12:30:29 +08:00
2025-09-11 10:53:51 +03:00
2022-01-04 06:14:00 +00:00
2025-09-11 10:31:07 +03:00
2025-10-10 05:05:05 +03:00
2022-08-09 10:47:06 +08:00
2025-10-10 05:04:48 +03:00
2020-03-20 11:46:28 +08:00
2019-11-25 15:40:46 +05:30
2019-11-25 15:40:46 +05:30
2020-01-13 14:39:59 +08:00
2020-05-15 23:09:55 +00:00
2024-08-08 15:52:22 +00:00
2025-10-10 05:07:38 +03:00
2025-09-11 10:31:07 +03:00
2025-10-10 05:07:38 +03:00
2025-10-10 05:07:37 +03:00
2021-05-26 11:47:01 +02:00
2022-01-04 06:14:00 +00:00
2022-11-10 15:47:24 +01:00
2020-04-14 10:44:08 +05:30
2021-05-21 11:05:45 +08:00
2023-09-19 18:31:18 +03:00
2019-11-20 18:00:23 +01:00
2020-08-25 22:36:02 +08:00
2022-07-25 15:26:14 +08:00
2023-12-20 15:32:35 +01:00
2020-12-23 11:19:22 -08:00
2020-12-03 20:59:35 +08:00
2020-04-24 08:00:36 +02:00
2025-10-10 04:46:41 +03:00
2021-05-21 11:05:45 +08:00
2024-03-23 00:35:20 +02:00
2020-07-27 10:26:06 +05:30
2021-05-21 11:05:45 +08:00
2020-05-15 17:14:55 -07:00
2022-05-25 08:41:22 +02:00
2024-03-08 08:21:36 +00:00
2022-10-26 13:17:04 +02:00
2019-11-20 18:00:45 +01:00
2021-03-11 13:51:06 +01:00
2022-11-10 15:47:23 +01:00
2021-10-27 09:51:40 +02:00
2020-06-25 15:41:57 +02:00
2025-10-10 04:46:55 +03:00
2024-06-03 12:29:50 +00:00
2023-01-18 09:26:11 +01:00
2021-05-19 21:05:47 +08:00
2021-06-24 16:04:06 +00:00
2020-02-12 04:37:31 -08:00
2024-10-24 10:07:41 +00:00
2022-01-04 06:14:00 +00:00
2025-10-10 05:07:40 +03:00
2020-10-14 09:51:10 +02:00
2020-01-21 13:45:23 -08:00
2025-10-10 05:05:40 +03:00
2020-12-23 11:19:22 -08:00
2024-10-08 21:10:21 +03:00
2021-03-03 06:57:39 -08:00
2023-04-21 13:29:20 +00:00
2020-04-02 16:34:21 +02:00
2019-12-05 15:37:52 +01:00
2020-09-06 01:12:33 +05:30
2024-06-22 22:29:18 +03:00
2019-12-11 12:19:38 -08:00
2020-02-17 06:56:49 +00:00
2020-03-17 14:37:12 +08:00
2020-02-26 15:36:38 +08:00
2023-03-23 08:17:21 +00:00
2020-11-05 11:07:05 +01:00
2025-10-10 05:05:10 +03:00
2024-04-16 10:30:30 +00:00
2020-04-18 17:49:12 +05:30
2025-09-11 10:53:57 +03:00
2025-09-11 10:53:44 +03:00
2022-06-25 11:46:35 +02:00
2024-10-10 10:27:20 +00:00
2020-08-21 09:48:00 +02:00
2020-09-23 10:46:34 +02:00
2021-03-03 18:22:57 +01:00
2020-09-09 19:03:12 +02:00
2020-08-05 11:41:56 +05:30
2023-09-23 10:47:01 +02:00
2020-01-12 12:12:04 +01:00
2021-03-30 14:40:10 +02:00
2019-10-02 08:03:31 +08:00
2023-10-10 21:43:38 +02:00
2020-12-11 13:39:03 +01:00
2023-03-11 16:26:46 +01:00
2020-03-20 10:54:13 +01:00
2021-05-21 11:05:45 +08:00
2019-11-06 16:41:53 +08:00
2021-02-03 23:22:23 +01:00
2020-02-28 16:36:15 +01:00
2020-07-29 07:42:58 +02:00
2020-05-15 17:25:06 -07:00
2020-04-24 08:00:28 +02:00
2020-05-15 17:14:55 -07:00
2022-10-26 13:17:08 +02:00
2020-03-16 11:26:57 -07:00
2019-11-19 04:02:39 -08:00
2020-06-23 10:20:41 -07:00
2020-08-23 23:53:48 -07:00
2019-11-28 22:30:36 +05:30
2020-02-18 12:14:11 +05:30
2020-08-09 18:26:12 -07:00
2021-12-08 08:46:53 +01:00
2021-04-26 16:07:42 +08:00
2020-09-09 11:45:16 +08:00
2019-12-17 20:38:50 +01:00
2025-10-10 05:00:51 +03:00
2020-04-07 15:22:27 +05:30
2020-01-13 19:40:11 +00:00
2021-01-09 13:37:39 +01:00
2023-03-11 16:26:36 +01:00
2025-10-10 05:01:29 +03:00
2019-12-17 21:13:36 +01:00
2022-07-02 16:18:11 +02:00
2020-04-24 08:01:25 +02:00
2021-04-26 16:07:42 +08:00
2022-08-25 11:11:25 +02:00
2020-06-20 10:25:11 +02:00
2020-10-14 09:51:14 +02:00
2025-10-10 04:46:55 +03:00
2022-07-06 18:53:52 -07:00
2021-02-07 14:47:41 +01:00
2025-10-10 05:05:12 +03:00
2022-08-25 11:11:29 +02:00
2020-08-28 10:12:39 +05:30
2019-10-08 17:57:09 +08:00
2024-05-06 14:36:40 +00:00
2020-01-04 13:59:54 +01:00
2025-10-10 05:04:51 +03:00
2020-02-28 16:36:03 +01:00
2025-10-10 05:07:36 +03:00
2020-10-20 16:59:48 +08:00
2025-10-10 05:00:50 +03:00
2022-07-25 15:26:14 +08:00
2023-10-25 11:13:30 +02:00
2021-10-09 14:09:45 +02:00
2020-03-25 12:43:10 +05:30
2020-03-25 12:43:10 +05:30
2020-04-07 15:22:27 +05:30
2021-04-07 12:47:03 +02:00
2021-10-27 08:44:02 +00:00
2020-07-13 22:33:07 -07:00
2019-12-31 12:37:21 +01:00
2020-10-07 15:22:36 +00:00
2025-10-10 05:05:10 +03:00
2025-10-10 05:05:07 +03:00
2021-07-11 12:48:09 +02:00
2022-05-12 23:50:10 +08:00
2022-12-14 02:47:57 +00:00
2025-10-10 05:01:20 +03:00
2024-08-16 03:11:31 +03:00
2021-08-26 08:37:04 -04:00
2019-10-14 23:37:02 +00:00
2020-03-26 18:13:35 +05:30
2019-12-02 23:28:19 -08:00
2021-05-21 11:05:45 +08:00
2020-03-25 10:37:33 -07:00
2020-03-20 11:46:28 +08:00
2020-01-08 15:44:49 +05:30
2020-06-30 05:45:55 -07:00
2021-03-30 14:40:12 +02:00
2025-10-10 05:04:51 +03:00
2020-01-29 18:00:16 +00:00
2024-04-16 10:30:28 +00:00
2022-06-17 11:33:16 +08:00
2025-10-10 05:05:00 +03:00
2023-06-21 15:38:58 +02:00
2022-04-20 09:08:28 +02:00
2020-10-01 13:12:40 +02:00
2023-09-23 10:46:53 +02:00
2023-09-19 18:31:18 +03:00
2022-06-14 16:54:01 +02:00
2023-02-25 11:50:31 +01:00
2020-04-24 08:00:36 +02:00
2024-08-08 15:52:20 +00:00
2021-02-26 11:17:11 +08:00
2023-01-18 09:26:04 +01:00
2020-12-03 20:59:35 +08:00
2024-10-24 10:07:36 +00:00
2020-05-27 16:43:05 +02:00
2025-10-10 05:05:08 +03:00
2021-08-18 20:47:29 +08:00
2020-06-24 11:10:21 -07:00
2024-11-07 11:24:02 +02:00
2020-04-24 08:00:37 +02:00
2024-08-16 03:11:31 +03:00
2020-04-24 08:01:20 +02:00
2020-08-24 01:15:30 -07:00
2025-10-10 04:48:05 +03:00
2020-08-14 02:10:05 +05:30
2020-08-05 11:41:56 +05:30
2021-02-17 02:57:26 +00:00
2023-11-08 11:21:07 +01:00
2024-05-06 14:36:37 +00:00
2019-10-11 16:48:59 -07:00
2019-10-11 14:59:23 -07:00
2020-05-20 08:17:09 +02:00
2025-10-10 04:55:27 +03:00
2020-01-04 14:00:12 +01:00
2021-05-21 11:05:45 +08:00
2022-06-25 11:46:39 +02:00
2023-05-17 11:11:51 +02:00
2025-10-10 04:46:29 +03:00
2022-06-13 16:44:58 +00:00
2022-06-13 16:44:58 +00:00
2025-10-10 05:05:39 +03:00
2022-06-14 16:53:43 +02:00
2023-12-06 18:47:32 +02:00
2020-06-29 12:06:21 -07:00
2020-04-30 12:05:38 +08:00
2021-05-21 11:05:45 +08:00
2020-01-04 13:59:43 +01:00
2019-12-17 20:39:43 +01:00
2023-08-30 16:35:16 +02:00
2023-02-25 11:50:31 +01:00
2022-07-02 16:18:08 +02:00
2025-10-10 04:56:50 +03:00
2019-12-05 15:36:51 +01:00
2024-10-30 14:08:25 +00:00
2022-10-26 14:54:42 +08:00
2023-12-06 18:47:32 +02:00
2025-09-11 10:54:04 +03:00
2025-10-10 04:46:32 +03:00
2025-09-11 10:32:07 +03:00
2019-12-13 07:14:20 -08:00
2020-06-24 05:43:58 -07:00
2025-10-10 05:00:50 +03:00
2020-04-02 16:34:36 +02:00
2020-12-29 13:47:00 +01:00
2020-01-06 18:33:56 +00:00
2020-10-01 13:12:31 +02:00
2020-03-13 15:28:37 +00:00
2023-08-11 11:33:46 +02:00
2024-06-22 22:29:18 +03:00
2025-10-10 05:01:43 +03:00
2023-03-22 13:26:16 +01:00
2021-12-08 08:46:53 +01:00
2025-09-11 10:53:54 +03:00
2020-01-27 14:46:43 +01:00
2022-06-25 11:46:39 +02:00
2025-10-10 05:01:42 +03:00
2025-10-10 05:01:06 +03:00
2019-12-16 23:33:00 +00:00
2021-06-14 17:31:38 +08:00
2025-10-10 05:04:51 +03:00
2020-02-05 16:16:37 -08:00
2025-10-10 05:05:39 +03:00
2020-08-17 06:33:23 -07:00
2021-03-17 16:34:35 +01:00
2021-03-12 15:00:50 +08:00
2020-04-24 08:00:31 +02:00
2021-02-17 02:57:41 +00:00
2020-04-24 08:01:20 +02:00
2024-08-16 03:11:31 +03:00
2025-10-10 05:05:04 +03:00
2021-03-07 11:27:45 +01:00
2025-10-10 04:47:01 +03:00
2021-04-26 16:07:42 +08:00
2025-10-10 05:05:13 +03:00
2025-10-10 05:05:13 +03:00
2025-10-10 05:05:12 +03:00
2025-10-10 05:05:39 +03:00
2025-10-10 05:05:14 +03:00
2025-10-10 05:05:39 +03:00
2020-09-06 01:12:33 +05:30
2023-01-18 09:26:09 +01:00
2022-06-25 11:46:38 +02:00
2025-10-10 05:00:46 +03:00
2025-10-10 05:01:20 +03:00
2020-12-29 13:47:00 +01:00
2025-10-10 05:01:43 +03:00
2025-10-10 05:01:42 +03:00
2021-05-22 10:57:29 +02:00
2022-07-29 17:06:53 +02:00
2023-08-22 03:35:26 +03:00
2021-03-30 14:40:09 +02:00
2020-10-20 16:59:48 +08:00
2025-10-10 04:48:02 +03:00
2020-09-11 11:23:08 -07:00
2024-03-06 11:04:02 +00:00
2020-05-01 13:44:02 -07:00
2021-03-24 11:05:02 +01:00
2023-08-22 03:35:26 +03:00
2025-09-11 10:53:55 +03:00
2020-06-20 10:25:16 +02:00
2022-03-16 12:57:09 +01:00
2023-08-30 16:35:12 +02:00
2020-01-10 14:08:54 +08:00
2021-03-25 02:06:30 +00:00
2022-03-16 12:57:09 +01:00
2025-10-10 05:02:47 +03:00
2023-05-17 11:11:43 +02:00
2020-04-02 16:34:36 +02:00
2022-01-20 21:56:10 +08:00
2020-04-09 15:28:36 +00:00
2020-07-10 22:49:09 +05:30
2023-08-11 11:33:43 +02:00
2020-08-21 11:00:26 +02:00
2021-03-07 11:46:40 +01:00