gso: fix the number of buffers required for segmentation 24/24124/2
authorMohsin Kazmi <sykazmi@cisco.com>
Tue, 24 Dec 2019 22:00:49 +0000 (23:00 +0100)
committerAndrew Yourtchenko <ayourtch@gmail.com>
Thu, 2 Jan 2020 12:49:59 +0000 (12:49 +0000)
Ticket: VPPSUPP-51
Type: fix

Change-Id: I34d4237eb0644705ce0f523fdd0d6b70308e8bcd
Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
src/vnet/interface_output.c

index 2aa3636..ec92c38 100644 (file)
@@ -237,7 +237,8 @@ tso_alloc_tx_bufs (vlib_main_t * vm,
                   u16 gso_size)
 {
   u16 size =
-    clib_min (gso_size, vlib_buffer_get_default_data_size (vm) - l234_sz);
+    clib_min (gso_size, vlib_buffer_get_default_data_size (vm) - l234_sz
+             - b0->current_data);
 
   /* rounded-up division */
   u16 n_bufs = (n_bytes_b0 - l234_sz + (size - 1)) / size;