Hi all,
I added the ip4-frag node after ip4-rewrite node at 18.07 VPP,
main code at ip4_forward.c: ip4_rewrite_inline:
error0 = (p0->current_length > adj0[0].rewrite_header.max_l3_packet_bytes)
? IP4_ERROR_MTU_EXCEEDED : error0;
if( (IP4_ERROR_MTU_EXCEEDED == error0) && (!ip4_is_fragment(ip0)) )
{
ip_frag_set_vnet_buffer (p0, 0,
adj0[0].rewrite_header.max_l3_packet_bytes,
IP4_FRAG_NEXT_IP4_LOOKUP,
IP_FRAG_FLAG_IP4_HEADER);
next0 = IP4_REWRITE_NEXT_IP4FRAG;
}
and "set int reassembly GigarbitXXX on" & "set int mtu 1500 GigarbitXXX "
Now i can "ping size 1600" from VPP to a win10-PC(got 2 pkt-frag),
but it failed from win10-pc to VPP, althrough the 2 pkts had been created.
There was something wrong. Only the second pkt-frag could be received.
After some debugging, it turned out that the problem was that:
vlib_buffer_t->total_length_not_including_first_buffer == 128
which was 0 when the pkt was from vpp to win10-PC .
There were 128 char data after ip-data area.
Help please?
Thanks.
[email protected]