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]

Reply via email to