It may contain garbage in debug builds resulting in wrong
gho detected flags and offsets.
Type: fix
Signed-off-by: Vladislav Grishenko <themiron@yandex-team.ru>
Change-Id: Ia79633262185016f527e7dc6c67334cda6f055f2
t = vlib_add_trace (vm, node, b0, sizeof (t[0]));
t->sw_if_index = vnet_buffer (b0)->sw_if_index[VLIB_TX];
t->buffer_index = bi;
t = vlib_add_trace (vm, node, b0, sizeof (t[0]));
t->sw_if_index = vnet_buffer (b0)->sw_if_index[VLIB_TX];
t->buffer_index = bi;
+ clib_memset (&t->gho, 0, sizeof (t->gho));
if (is_tun)
{
int is_ip4 = 0, is_ip6 = 0;
if (is_tun)
{
int is_ip4 = 0, is_ip6 = 0;
t0->flags = b[0]->flags & VNET_BUFFER_F_GSO;
t0->gso_size = vnet_buffer2 (b[0])->gso_size;
t0->gso_l4_hdr_sz = vnet_buffer2 (b[0])->gso_l4_hdr_sz;
t0->flags = b[0]->flags & VNET_BUFFER_F_GSO;
t0->gso_size = vnet_buffer2 (b[0])->gso_size;
t0->gso_l4_hdr_sz = vnet_buffer2 (b[0])->gso_l4_hdr_sz;
+ clib_memset (&t0->gho, 0, sizeof (t0->gho));
vnet_generic_header_offset_parser (b[0], &t0->gho, is_l2,
is_ip4, is_ip6);
}
vnet_generic_header_offset_parser (b[0], &t0->gho, is_l2,
is_ip4, is_ip6);
}
t1->flags = b[1]->flags & VNET_BUFFER_F_GSO;
t1->gso_size = vnet_buffer2 (b[1])->gso_size;
t1->gso_l4_hdr_sz = vnet_buffer2 (b[1])->gso_l4_hdr_sz;
t1->flags = b[1]->flags & VNET_BUFFER_F_GSO;
t1->gso_size = vnet_buffer2 (b[1])->gso_size;
t1->gso_l4_hdr_sz = vnet_buffer2 (b[1])->gso_l4_hdr_sz;
+ clib_memset (&t1->gho, 0, sizeof (t1->gho));
vnet_generic_header_offset_parser (b[1], &t1->gho, is_l2,
is_ip4, is_ip6);
}
vnet_generic_header_offset_parser (b[1], &t1->gho, is_l2,
is_ip4, is_ip6);
}
t2->flags = b[2]->flags & VNET_BUFFER_F_GSO;
t2->gso_size = vnet_buffer2 (b[2])->gso_size;
t2->gso_l4_hdr_sz = vnet_buffer2 (b[2])->gso_l4_hdr_sz;
t2->flags = b[2]->flags & VNET_BUFFER_F_GSO;
t2->gso_size = vnet_buffer2 (b[2])->gso_size;
t2->gso_l4_hdr_sz = vnet_buffer2 (b[2])->gso_l4_hdr_sz;
+ clib_memset (&t2->gho, 0, sizeof (t2->gho));
vnet_generic_header_offset_parser (b[2], &t2->gho, is_l2,
is_ip4, is_ip6);
}
vnet_generic_header_offset_parser (b[2], &t2->gho, is_l2,
is_ip4, is_ip6);
}
t3->flags = b[3]->flags & VNET_BUFFER_F_GSO;
t3->gso_size = vnet_buffer2 (b[3])->gso_size;
t3->gso_l4_hdr_sz = vnet_buffer2 (b[3])->gso_l4_hdr_sz;
t3->flags = b[3]->flags & VNET_BUFFER_F_GSO;
t3->gso_size = vnet_buffer2 (b[3])->gso_size;
t3->gso_l4_hdr_sz = vnet_buffer2 (b[3])->gso_l4_hdr_sz;
+ clib_memset (&t3->gho, 0, sizeof (t3->gho));
vnet_generic_header_offset_parser (b[3], &t3->gho, is_l2,
is_ip4, is_ip6);
}
vnet_generic_header_offset_parser (b[3], &t3->gho, is_l2,
is_ip4, is_ip6);
}
t0->flags = b[0]->flags & VNET_BUFFER_F_GSO;
t0->gso_size = vnet_buffer2 (b[0])->gso_size;
t0->gso_l4_hdr_sz = vnet_buffer2 (b[0])->gso_l4_hdr_sz;
t0->flags = b[0]->flags & VNET_BUFFER_F_GSO;
t0->gso_size = vnet_buffer2 (b[0])->gso_size;
t0->gso_l4_hdr_sz = vnet_buffer2 (b[0])->gso_l4_hdr_sz;
+ clib_memset (&t0->gho, 0, sizeof (t0->gho));
vnet_generic_header_offset_parser (b[0], &t0->gho, is_l2,
is_ip4, is_ip6);
}
vnet_generic_header_offset_parser (b[0], &t0->gho, is_l2,
is_ip4, is_ip6);
}