Flavio Leitner
8b5fe2dc60
userspace: Add Generic Segmentation Offloading.
...
This provides a software implementation in the case
the egress netdev doesn't support segmentation in hardware.
The challenge here is to guarantee packet ordering in the
original batch that may be full of TSO packets. Each TSO
packet can go up to ~64kB, so with segment size of 1440
that means about 44 packets for each TSO. Each batch has
32 packets, so the total batch amounts to 1408 normal
packets.
The segmentation estimates the total number of packets
and then the total number of batches. Then allocate
enough memory and finally do the work.
Finally each batch is sent in order to the netdev.
Signed-off-by: Flavio Leitner <fbl@sysclose.org>
Co-authored-by: Mike Pattrick <mkp@redhat.com>
Signed-off-by: Mike Pattrick <mkp@redhat.com>
Acked-by: Simon Horman <horms@ovn.org>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
2023-12-02 01:33:37 +01:00
..
2022-12-20 17:26:25 +01:00
2019-01-15 09:52:33 -08:00
2013-09-27 16:27:24 -07:00
2012-05-02 17:08:02 -07:00
2013-08-02 20:03:52 -07:00
2013-12-17 13:16:39 -08:00
2013-08-02 20:03:52 -07:00
2023-12-02 01:33:37 +01:00
2023-06-08 20:30:42 +02:00
2023-06-08 20:30:42 +02:00
2022-02-14 23:35:55 +01:00
2016-06-29 15:24:18 -07:00
2019-04-24 08:33:38 -07:00
2020-10-21 11:28:24 -07:00
2020-10-21 11:28:24 -07:00
2017-12-22 12:58:02 -08:00
2013-07-17 11:50:41 -07:00
2013-07-17 11:50:41 -07:00
2017-11-03 13:33:05 -07:00
2016-05-16 17:46:55 -07:00
2022-03-30 16:59:02 +02:00
2016-07-22 17:09:17 -07:00
2016-07-29 16:52:01 -07:00
2023-11-16 18:41:07 +01:00
2023-11-16 18:41:07 +01:00
2022-10-18 12:20:55 +02:00
2022-03-30 16:59:02 +02:00
2017-11-29 08:37:52 -08:00
2016-03-18 14:02:41 -07:00
2018-10-30 07:24:55 -07:00
2019-10-25 12:47:20 -07:00
2019-10-25 12:47:20 -07:00
2010-06-29 14:29:40 -07:00
2018-10-30 07:24:55 -07:00
2016-08-08 09:11:21 -07:00
2019-04-08 12:38:55 -07:00
2013-12-12 15:03:19 -08:00
2013-12-12 15:03:19 -08:00
2021-01-26 20:54:56 +01:00
2022-07-25 18:42:14 +02:00
2023-08-31 13:41:08 -04:00
2021-02-02 09:59:31 -08:00
2023-08-31 13:41:08 -04:00
2023-04-04 17:12:34 +02:00
2023-08-31 13:41:08 -04:00
2023-06-29 22:20:43 +02:00
2019-05-24 11:37:29 -07:00
2019-05-24 11:37:29 -07:00
2016-09-14 16:51:27 -07:00
2023-06-07 23:08:44 +02:00
2022-07-15 11:40:20 +01:00
2013-08-22 09:29:39 -07:00
2013-08-22 09:29:39 -07:00
2017-12-22 12:58:02 -08:00
2017-01-04 16:31:06 -08:00
2023-06-29 22:20:43 +02:00
2023-06-29 22:20:43 +02:00
2020-03-23 09:43:06 -07:00
2016-06-27 20:36:16 -07:00
2023-03-22 18:56:02 +01:00
2023-03-22 18:56:02 +01:00
2023-03-22 18:56:02 +01:00
2023-03-22 18:56:02 +01:00
2020-10-16 19:22:24 -07:00
2020-10-16 19:22:24 -07:00
2023-10-18 23:01:29 +02:00
2022-12-06 16:21:54 +01:00
2022-11-30 15:15:57 +01:00
2022-11-30 15:15:57 +01:00
2018-12-12 11:51:13 -08:00
2022-10-07 10:52:20 +02:00
2021-07-07 13:25:32 -07:00
2013-07-22 10:53:10 -07:00
2017-12-01 13:22:18 -08:00
2018-07-06 15:04:33 -07:00
2022-03-30 16:59:02 +02:00
2018-07-06 13:50:00 -07:00
2023-12-02 01:33:37 +01:00
2023-12-02 01:33:37 +01:00
2023-12-02 00:56:36 +01:00
2023-12-02 01:33:37 +01:00
2023-09-25 12:53:06 +02:00
2017-06-23 16:28:26 +08:00
2023-06-29 22:20:43 +02:00
2022-11-30 13:58:28 +01:00
2022-01-11 21:34:56 +01:00
2023-03-06 19:27:19 +01:00
2022-11-30 13:58:28 +01:00
2022-07-12 13:31:45 +01:00
2023-06-15 23:50:30 +02:00
2022-03-11 21:07:34 +01:00
2021-07-09 17:12:45 +01:00
2022-12-21 14:53:52 +00:00
2022-12-21 14:53:52 +00:00
2022-08-10 15:57:39 +01:00
2022-06-29 11:27:09 +02:00
2023-01-27 16:57:27 +01:00
2023-01-12 18:56:05 +01:00
2021-07-09 17:12:45 +01:00
2021-10-12 17:49:11 +02:00
2022-05-24 09:53:18 +01:00
2022-08-10 15:57:39 +01:00
2022-07-12 13:31:24 +01:00
2022-12-21 15:44:17 +00:00
2022-12-21 15:44:17 +00:00
2022-03-22 22:12:24 +01:00
2022-12-21 20:57:29 +01:00
2021-12-09 22:46:47 +01:00
2022-01-07 20:32:20 +01:00
2023-10-31 15:00:17 +00:00
2016-11-14 13:35:22 -08:00
2023-03-29 22:16:04 +02:00
2017-05-19 12:51:58 -07:00
2021-07-16 20:05:03 +02:00
2023-06-29 22:20:43 +02:00
2023-01-31 17:40:50 +01:00
2023-06-29 22:20:43 +02:00
2023-07-31 13:57:57 +02:00
2023-07-31 13:57:57 +02:00
2016-04-27 15:00:37 -07:00
2016-04-27 15:00:37 -07:00
2022-08-04 14:18:05 +02:00
2014-12-15 14:15:19 +01:00
2012-05-02 17:08:02 -07:00
2022-03-30 16:59:02 +02:00
2016-03-30 13:01:21 -07:00
2023-08-25 16:19:46 +02:00
2014-06-24 09:50:32 -07:00
2023-11-16 18:16:59 +01:00
2023-11-16 18:16:59 +01:00
2014-12-15 14:15:19 +01:00
2014-12-15 14:15:19 +01:00
2016-03-30 13:04:32 -07:00
2016-03-30 13:01:21 -07:00
2019-01-25 12:57:16 -08:00
2021-09-15 23:38:11 +02:00
2023-09-25 12:53:06 +02:00
2013-10-16 18:08:05 -07:00
2014-09-12 09:03:10 -07:00
2014-04-29 15:50:38 -07:00
2022-03-30 16:59:03 +02:00
2019-03-26 13:29:55 -07:00
2022-08-30 23:51:05 +02:00
2022-03-30 16:59:02 +02:00
2022-03-30 16:59:02 +02:00
2022-01-18 19:30:17 +01:00
2017-07-13 15:47:38 -07:00
2017-03-08 16:52:06 -08:00
2015-08-02 12:04:06 -07:00
2019-12-18 01:23:50 +01:00
2015-08-02 12:04:06 -07:00
2021-04-20 00:00:22 +02:00
2019-12-18 01:23:50 +01:00
2023-06-15 23:49:51 +02:00
2019-02-14 14:18:56 -08:00
2013-12-11 11:20:00 -08:00
2013-01-22 13:40:53 -08:00
2022-10-11 21:10:46 +02:00
2021-07-23 17:29:36 +02:00
2021-07-23 17:29:36 +02:00
2022-03-30 16:59:02 +02:00
2022-11-30 13:31:11 +01:00
2023-09-01 22:15:05 +02:00
2017-11-03 10:47:55 -07:00
2014-12-15 14:14:58 +01:00
2022-11-24 13:22:31 +01:00
2018-02-01 10:08:32 -08:00
2023-04-25 18:20:32 +02:00
2018-02-13 10:43:13 -08:00
2023-01-03 16:06:21 +01:00
2014-11-11 22:08:41 -08:00
2022-07-29 17:05:42 +02:00
2014-11-11 22:08:41 -08:00
2020-03-24 07:36:14 -07:00
2012-08-09 15:06:38 -07:00
2022-11-02 19:36:38 +01:00
2021-07-16 16:21:02 +02:00
2022-07-19 19:55:19 +02:00
2023-11-21 09:54:39 +00:00
2017-03-03 11:33:22 -08:00
2012-07-13 10:25:27 -07:00
2017-11-03 10:47:55 -07:00
2012-05-22 10:32:05 -07:00
2023-10-31 15:00:17 +00:00
2023-08-25 16:26:39 +02:00
2022-01-18 15:12:01 +01:00
2022-01-18 19:30:17 +01:00
2023-03-06 19:27:19 +01:00
2019-06-09 16:01:55 -07:00
2017-03-08 17:22:27 -08:00
2022-03-30 16:59:02 +02:00
2023-01-03 16:06:21 +01:00
2023-01-03 16:06:21 +01:00
2023-11-21 09:40:11 +00:00
2023-11-21 09:40:11 +00:00
2023-07-17 20:03:32 +02:00
2017-12-20 21:07:46 +00:00
2023-12-02 01:33:37 +01:00
2023-07-13 17:28:14 +02:00
2023-11-16 18:16:59 +01:00
2023-11-14 11:03:28 +00:00
2023-12-02 00:56:36 +01:00
2023-07-17 20:03:54 +02:00
2023-09-25 12:53:06 +02:00
2023-05-25 15:45:41 +02:00
2023-10-09 20:29:15 +02:00
2022-07-11 11:16:03 +02:00
2023-07-03 11:56:39 +02:00
2023-10-31 15:00:17 +00:00
2023-05-31 22:04:11 +02:00
2023-07-17 20:03:32 +02:00
2023-05-25 15:45:35 +02:00
2023-05-25 17:08:32 +02:00
2017-06-27 17:28:30 -04:00
2023-03-06 12:37:53 +01:00
2023-12-02 01:33:37 +01:00
2023-05-25 17:08:32 +02:00
2012-05-02 17:08:02 -07:00
2023-09-09 00:50:57 +02:00
2019-09-26 13:50:17 -07:00
2018-03-31 12:48:31 -07:00
2018-02-05 09:21:36 -08:00
2022-01-16 22:16:16 +01:00
2022-09-20 02:48:44 +03:00
2018-03-31 12:48:36 -07:00
2023-07-03 11:56:39 +02:00
2023-07-03 11:56:39 +02:00
2018-03-31 12:48:31 -07:00
2020-11-16 17:47:11 +01:00
2020-04-29 09:00:54 -07:00
2016-07-29 16:52:02 -07:00
2016-08-30 10:47:24 -07:00
2023-06-15 23:50:30 +02:00
2022-12-21 14:48:41 +00:00
2022-12-21 14:48:41 +00:00
2022-07-15 11:39:20 +01:00
2023-09-01 22:15:05 +02:00
2022-07-15 11:41:04 +01:00
2023-07-03 11:56:39 +02:00
2023-07-03 11:56:39 +02:00
2023-10-31 15:00:17 +00:00
2023-01-16 19:58:08 +01:00
2020-10-16 19:10:02 -07:00
2023-01-16 19:58:08 +01:00
2022-01-17 02:04:20 +01:00
2022-05-17 23:10:14 +02:00
2022-01-31 21:11:58 +01:00
2021-05-07 12:14:13 -07:00
2018-06-18 15:25:44 -07:00
2020-03-25 20:26:51 -07:00
2018-06-27 07:08:02 -07:00
2023-10-31 15:00:17 +00:00
2022-11-30 13:28:37 +01:00
2022-03-11 21:16:02 +01:00
2023-04-25 21:54:47 +02:00
2019-02-05 09:21:19 -08:00
2023-01-16 19:58:08 +01:00
2016-04-14 16:38:31 -07:00
2019-02-05 09:21:19 -08:00
2019-02-05 09:21:19 -08:00
2019-02-05 09:21:19 -08:00
2023-10-31 15:00:17 +00:00
2019-02-05 09:21:19 -08:00
2018-02-13 10:43:13 -08:00
2019-06-20 10:26:30 -07:00
2019-06-20 10:26:30 -07:00
2022-06-24 23:49:28 +02:00
2014-03-13 12:45:47 -07:00
2022-01-18 19:30:17 +01:00
2023-03-06 19:27:19 +01:00
2014-03-13 12:45:47 -07:00
2023-03-06 19:27:19 +01:00
2023-03-06 19:27:19 +01:00
2023-03-06 19:27:19 +01:00
2014-03-13 12:45:22 -07:00
2022-01-18 19:30:17 +01:00
2023-03-06 19:27:19 +01:00
2023-03-06 19:27:19 +01:00
2023-03-06 19:27:19 +01:00
2023-03-06 19:27:19 +01:00
2022-06-28 12:06:23 +02:00
2022-06-28 12:06:23 +02:00
2022-08-15 19:43:57 +02:00
2022-08-15 19:43:57 +02:00
2023-06-12 18:48:26 +02:00
2023-03-06 19:27:19 +01:00
2021-06-07 20:59:34 +02:00
2023-03-06 19:27:19 +01:00
2021-06-07 20:59:34 +02:00
2021-06-07 20:59:34 +02:00
2021-06-07 20:59:34 +02:00
2023-11-16 18:41:07 +01:00
2023-03-07 19:16:20 +01:00
2023-03-27 22:05:07 +02:00
2022-08-15 18:51:09 +02:00
2023-08-17 14:47:26 +02:00
2016-07-18 22:58:45 -07:00
2016-07-18 22:58:45 -07:00
2023-01-16 20:14:10 +01:00
2023-01-16 20:14:10 +01:00
2022-10-11 21:11:09 +02:00
2022-10-11 21:11:09 +02:00
2023-06-08 20:30:42 +02:00
2017-12-13 11:32:54 -08:00
2022-11-30 15:15:57 +01:00
2023-01-16 20:14:10 +01:00
2023-01-16 20:14:10 +01:00
2022-03-30 16:59:02 +02:00
2017-12-01 13:22:18 -08:00
2018-05-25 13:36:05 -07:00
2017-12-13 11:33:07 -08:00
2018-03-24 12:04:53 -07:00
2018-03-24 12:04:53 -07:00
2018-03-24 12:04:53 -07:00
2022-03-30 16:59:02 +02:00
2017-12-01 13:22:18 -08:00
2023-01-27 15:53:06 +01:00
2023-01-27 15:53:06 +01:00
2018-05-16 15:29:46 -07:00
2018-05-16 15:29:46 -07:00
2023-12-02 01:33:37 +01:00
2023-07-13 21:22:41 +02:00
2023-09-25 12:53:06 +02:00
2018-10-05 17:35:07 -07:00
2022-07-14 15:24:07 +02:00
2015-07-24 09:20:05 -07:00
2022-03-30 16:59:02 +02:00
2017-11-28 15:55:15 -08:00
2017-11-28 15:55:15 -08:00
2020-03-15 13:42:57 +01:00
2020-05-27 14:59:06 -07:00
2013-12-13 08:35:15 -08:00
2013-12-13 08:35:15 -08:00
2023-01-16 19:58:08 +01:00
2022-12-06 16:21:54 +01:00
2022-02-24 17:04:32 +01:00
2020-12-18 18:06:29 -08:00
2016-03-24 09:30:57 -07:00
2016-03-24 09:30:57 -07:00
2023-03-07 19:16:20 +01:00
2016-03-24 09:30:57 -07:00
2018-06-05 11:17:13 -07:00
2018-06-05 11:17:13 -07:00
2015-12-14 05:12:34 -08:00
2022-11-30 14:42:59 +01:00
2022-11-30 14:42:59 +01:00
2019-01-25 13:09:52 -08:00
2016-03-30 13:01:21 -07:00
2023-09-01 22:15:05 +02:00
2021-04-20 00:00:22 +02:00
2019-08-21 10:41:17 -07:00
2023-06-12 18:48:26 +02:00
2023-06-12 18:48:26 +02:00
2014-02-04 08:30:00 -08:00
2014-02-04 08:30:00 -08:00
2023-09-01 22:15:05 +02:00
2023-09-01 22:15:05 +02:00
2021-10-12 18:07:04 +03:00
2021-10-12 18:07:04 +03:00
2021-10-12 18:07:04 +03:00
2015-08-28 14:55:11 -07:00
2022-05-26 11:43:53 +02:00
2022-05-26 11:43:53 +02:00
2023-09-25 12:53:06 +02:00
2022-04-04 21:46:29 +02:00
2016-04-14 13:48:05 -07:00
2023-07-13 17:29:32 +02:00
2022-03-30 16:59:02 +02:00
2019-02-04 16:22:04 -08:00
2017-08-03 14:48:33 -07:00
2023-07-13 17:29:32 +02:00
2023-05-25 15:45:28 +02:00
2016-09-15 10:40:35 -07:00
2023-02-10 20:09:29 +01:00
2023-02-10 20:09:29 +01:00
2012-05-02 17:08:02 -07:00
2012-05-02 17:08:02 -07:00
2023-09-25 12:53:06 +02:00
2022-03-30 16:59:03 +02:00
2015-08-21 15:36:54 -07:00
2013-11-02 21:06:45 -07:00
2017-01-19 07:57:13 -08:00
2016-11-10 10:36:42 -08:00
2016-11-10 10:36:42 -08:00
2015-08-21 15:36:54 -07:00
2018-05-09 14:40:49 -07:00
2018-10-30 07:24:55 -07:00
2016-08-08 09:11:21 -07:00
2014-03-13 09:14:16 -07:00
2014-03-13 09:14:16 -07:00
2022-03-30 16:59:02 +02:00
2018-04-06 12:55:51 -07:00
2022-11-30 14:42:59 +01:00
2017-03-20 10:23:04 -07:00
2017-11-03 10:47:55 -07:00
2017-07-17 10:05:46 -07:00
2016-11-10 10:36:42 -08:00
2021-06-07 21:03:16 +02:00
2021-06-07 21:03:16 +02:00
2023-05-26 14:52:54 +02:00
2018-08-07 12:26:31 -07:00
2018-04-16 14:51:09 -07:00
2017-12-08 14:21:19 -08:00
2020-01-24 16:51:34 +02:00
2022-03-30 16:59:02 +02:00
2021-06-07 21:03:16 +02:00
2017-08-07 11:17:42 -07:00
2017-08-07 11:17:42 -07:00
2014-03-17 14:20:49 -07:00
2021-07-15 21:04:49 +02:00
2021-07-15 21:04:49 +02:00
2016-03-19 10:02:12 -07:00
2015-06-27 12:38:33 -07:00
2016-06-26 20:31:28 -07:00
2015-06-27 12:38:33 -07:00
2018-08-09 15:40:09 -07:00
2018-08-09 15:40:09 -07:00
2015-06-27 12:38:33 -07:00
2018-10-08 12:38:03 -07:00
2018-10-08 12:38:03 -07:00
2017-12-22 11:50:33 -08:00
2017-04-06 08:13:03 -07:00
2023-10-20 23:33:18 +02:00
2023-07-03 11:56:39 +02:00
2017-11-03 10:47:55 -07:00
2014-12-15 14:14:58 +01:00
2017-11-28 15:53:23 -08:00
2017-11-28 15:53:23 -08:00
2021-12-17 20:32:13 +01:00
2021-12-17 20:32:13 +01:00
2023-11-16 18:41:07 +01:00
2017-11-28 16:46:19 -08:00
2017-11-03 10:47:55 -07:00
2021-06-15 13:34:34 -05:00
2020-04-29 09:00:54 -07:00
2022-10-25 23:55:41 +02:00
2016-03-19 10:02:12 -07:00
2014-12-15 14:14:47 +01:00
2022-03-30 16:59:02 +02:00
2018-08-07 12:26:20 -07:00
2016-08-03 07:23:30 -07:00
2018-02-01 13:03:44 -08:00
2020-05-14 07:21:34 -07:00
2020-01-17 22:27:25 +00:00
2023-04-25 21:54:47 +02:00
2023-01-23 17:23:20 +01:00
2021-06-07 21:03:16 +02:00
2018-03-24 12:04:53 -07:00
2022-09-27 01:17:56 +02:00
2022-09-27 01:17:56 +02:00
2012-05-02 17:08:02 -07:00
2018-07-06 13:50:00 -07:00
2018-07-06 13:50:00 -07:00
2015-01-20 04:49:09 -08:00
2017-11-03 10:47:55 -07:00
2022-03-30 16:59:02 +02:00
2023-03-06 19:27:19 +01:00
2017-03-15 14:45:40 -07:00
2012-05-02 17:08:02 -07:00
2012-05-02 17:08:02 -07:00
2015-01-08 07:21:03 -08:00
2018-10-30 07:24:55 -07:00
2023-06-08 20:30:42 +02:00
2018-10-30 07:24:55 -07:00
2018-08-09 15:40:09 -07:00
2012-03-19 10:52:53 -07:00
2019-08-13 11:23:47 +03:00
2016-12-20 12:21:24 -08:00