Hello,
    I do "ping XXX -l 1600"   from ubuntu to VPP.
It looks like that  2 part of icmp have been reassembled .
But, 
when the VPP-intfc's MTU is 9216 by default, it would not split the response 
ICMP pkt,so the ubuntu receive nothing.
set MTU to be 1500, it don't split response ICMP pkt too, only notice 'ICMP 
destination_unreachable fragmentation_needed_and_dont_fragment_set'

Help please!

trace info:

MTU:9216
Packet 1

00:03:52:633983: dpdk-input
  GigabitEthernet2/0/0 rx queue 0
  buffer 0x2a5d: current data 14, length 1500, free-list 0, clone-count 0, 
totlen-nifb 0, trace 0x0
                 ext-hdr-valid 
                 l4-cksum-computed l4-cksum-correct l2-hdr-offset 0 
l3-hdr-offset 14 
  PKT MBUF: port 1, nb_segs 1, pkt_len 1514
    buf_len 2176, data_len 1514, ol_flags 0x0, data_off 128, phys_addr 
0x5dea97c0
    packet_type 0x0 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0
  IP4: 28:d2:44:0d:45:c1 -> 68:05:ca:47:2b:9e
  ICMP: 192.168.100.111 -> 192.168.100.100
    tos 0x00, ttl 64, length 1500, checksum 0xb43e
    fragment id 0x56be, flags MORE_FRAGMENTS
  ICMP echo_request checksum 0x3622
00:03:52:633989: ip4-input
  ICMP: 192.168.100.111 -> 192.168.100.100
    tos 0x00, ttl 64, length 1500, checksum 0xb43e
    fragment id 0x56be, flags MORE_FRAGMENTS
  ICMP echo_request checksum 0x3622
00:03:52:633992: ip4-reassembly-feature
  reass id: 1, op id: 0 first bi: 10845, data len: 1480, ip/fragment[0, 1479]
                        new range: [0, 1479], off 0, len 1480, bi 10845
  reass id: 1, op id: 2 first bi: 10845, data len: 1608, ip/fragment[0, 1479]
                        finalize reassembly
00:03:52:633998: ip4-lookup
  fib 0 dpo-idx 7 flow hash: 0x00000000
  ICMP: 192.168.100.111 -> 192.168.100.100
    tos 0x00, ttl 64, length 1628, checksum 0xd3be
    fragment id 0x56be
  ICMP echo_request checksum 0x3622
00:03:52:634000: ip4-local
    ICMP: 192.168.100.111 -> 192.168.100.100
      tos 0x00, ttl 64, length 1628, checksum 0xd3be
      fragment id 0x56be
    ICMP echo_request checksum 0x3622
00:03:52:634002: ip4-icmp-input
  ICMP: 192.168.100.111 -> 192.168.100.100
    tos 0x00, ttl 64, length 1628, checksum 0xd3be
    fragment id 0x56be
  ICMP echo_request checksum 0x3622
00:03:52:634002: ip4-icmp-echo-request
  ICMP: 192.168.100.111 -> 192.168.100.100
    tos 0x00, ttl 64, length 1628, checksum 0xd3be
    fragment id 0x56be
  ICMP echo_request checksum 0x3622
00:03:52:634003: ip4-load-balance
  fib 0 dpo-idx 13 flow hash: 0x00000000
  ICMP: 192.168.100.100 -> 192.168.100.111
    tos 0x00, ttl 64, length 1628, checksum 0x259e
    fragment id 0x04df
  ICMP echo_reply checksum 0x3e22
00:03:52:634003: ip4-rewrite
  tx_sw_if_index 2 dpo-idx 1 : ipv4 via 192.168.100.111 GigabitEthernet2/0/0: 
mtu:9202 28d2440d45c16805ca472b9e0800 flow hash: 0x00000000
  00000000: 28d2440d45c16805ca472b9e08004500065c04df00004001259ec0a86464c0a8
  00000020: 646f00003e2200010d2d6162636465666768696a6b6c6d6e6f707172
00:03:52:634004: GigabitEthernet2/0/0-output
  GigabitEthernet2/0/0
  IP4: 68:05:ca:47:2b:9e -> 28:d2:44:0d:45:c1
  ICMP: 192.168.100.100 -> 192.168.100.111
    tos 0x00, ttl 64, length 1628, checksum 0x259e
    fragment id 0x04df
  ICMP echo_reply checksum 0x3e22
00:03:52:634005: GigabitEthernet2/0/0-tx
  GigabitEthernet2/0/0 tx queue 0
  buffer 0x2a5d: current data 0, length 1514, free-list 0, clone-count 0, 
totlen-nifb 128, trace 0x0
                 ext-hdr-valid 
                 next-buffer 0x2a36, segment length 128, clone-count 0
                 l4-cksum-computed l4-cksum-correct l2-hdr-offset 0 
l3-hdr-offset 14 
  PKT MBUF: port 1, nb_segs 2, pkt_len 1642
    buf_len 2176, data_len 1514, ol_flags 0x0, data_off 128, phys_addr 
0x5dea97c0
    packet_type 0x0 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0
  IP4: 68:05:ca:47:2b:9e -> 28:d2:44:0d:45:c1
  ICMP: 192.168.100.100 -> 192.168.100.111
    tos 0x00, ttl 64, length 1628, checksum 0x259e
    fragment id 0x04df
  ICMP echo_reply checksum 0x3e22

Packet 2

00:03:52:633995: dpdk-input
  GigabitEthernet2/0/0 rx queue 0
  buffer 0x2a36: current data 14, length 148, free-list 0, clone-count 0, 
totlen-nifb 0, trace 0x1
                 ext-hdr-valid 
                 l4-cksum-computed l4-cksum-correct l2-hdr-offset 0 
l3-hdr-offset 14 
  PKT MBUF: port 1, nb_segs 1, pkt_len 162
    buf_len 2176, data_len 162, ol_flags 0x0, data_off 128, phys_addr 0x5dea8e00
    packet_type 0x0 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0
  IP4: 28:d2:44:0d:45:c1 -> 68:05:ca:47:2b:9e
  ICMP: 192.168.100.111 -> 192.168.100.100
    tos 0x00, ttl 64, length 148, checksum 0xd8cd
    fragment id 0x56be offset 1480, flags 
  ICMP unknown 0x61 checksum 0x6364
00:03:52:633995: ip4-input
  ICMP: 192.168.100.111 -> 192.168.100.100
    tos 0x00, ttl 64, length 148, checksum 0xd8cd
    fragment id 0x56be offset 1480, flags 
  ICMP unknown 0x61 checksum 0x6364
00:03:52:633997: ip4-reassembly-feature
  reass id: 1, op id: 1 first bi: 10845, data len: 1608, ip/fragment[1480, 1607]
                        new range: [1480, 1607], off 0, len 128, bi 10806




//////////////////////////////////////////////////////////////////////////////////////////
MTU:1500

Packet 1

00:07:19:687235: dpdk-input
  GigabitEthernet2/0/0 rx queue 0
  buffer 0xc248: current data 14, length 1500, free-list 0, clone-count 0, 
totlen-nifb 0, trace 0x0
                 ext-hdr-valid 
                 l4-cksum-computed l4-cksum-correct l2-hdr-offset 0 
l3-hdr-offset 14 
  PKT MBUF: port 1, nb_segs 1, pkt_len 1514
    buf_len 2176, data_len 1514, ol_flags 0x0, data_off 128, phys_addr 
0x5db09280
    packet_type 0x0 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0
  IP4: 28:d2:44:0d:45:c1 -> 68:05:ca:47:2b:9e
  ICMP: 192.168.100.111 -> 192.168.100.100
    tos 0x00, ttl 64, length 1500, checksum 0xb3fe
    fragment id 0x56fe, flags MORE_FRAGMENTS
  ICMP echo_request checksum 0x3616
00:07:19:687239: ip4-input
  ICMP: 192.168.100.111 -> 192.168.100.100
    tos 0x00, ttl 64, length 1500, checksum 0xb3fe
    fragment id 0x56fe, flags MORE_FRAGMENTS
  ICMP echo_request checksum 0x3616
00:07:19:687243: ip4-reassembly-feature
  reass id: 9, op id: 0 first bi: 49736, data len: 1480, ip/fragment[0, 1479]
                        new range: [0, 1479], off 0, len 1480, bi 49736
  reass id: 9, op id: 2 first bi: 49736, data len: 1608, ip/fragment[0, 1479]
                        finalize reassembly
00:07:19:687249: ip4-lookup
  fib 0 dpo-idx 7 flow hash: 0x00000000
  ICMP: 192.168.100.111 -> 192.168.100.100
    tos 0x00, ttl 64, length 1628, checksum 0xd37e
    fragment id 0x56fe
  ICMP echo_request checksum 0x3616
00:07:19:687251: ip4-local
    ICMP: 192.168.100.111 -> 192.168.100.100
      tos 0x00, ttl 64, length 1628, checksum 0xd37e
      fragment id 0x56fe
    ICMP echo_request checksum 0x3616
00:07:19:687253: ip4-icmp-input
  ICMP: 192.168.100.111 -> 192.168.100.100
    tos 0x00, ttl 64, length 1628, checksum 0xd37e
    fragment id 0x56fe
  ICMP echo_request checksum 0x3616
00:07:19:687254: ip4-icmp-echo-request
  ICMP: 192.168.100.111 -> 192.168.100.100
    tos 0x00, ttl 64, length 1628, checksum 0xd37e
    fragment id 0x56fe
  ICMP echo_request checksum 0x3616
00:07:19:687255: ip4-load-balance
  fib 0 dpo-idx 13 flow hash: 0x00000000
  ICMP: 192.168.100.100 -> 192.168.100.111
    tos 0x00, ttl 64, length 1628, checksum 0xae8d
    fragment id 0x7bef
  ICMP echo_reply checksum 0x3e16
00:07:19:687255: ip4-rewrite
  tx_sw_if_index 0 dpo-idx 1 : ipv4 via 192.168.100.111 GigabitEthernet2/0/0: 
mtu:1486 28d2440d45c16805ca472b9e0800 flow hash: 0x00000403
  00000000: 4500065c7bef00004001ae8dc0a86464c0a8646f00003e1600010d3961626364
  00000020: 65666768696a6b6c6d6e6f7071727374757677616263646566676869
00:07:19:687256: ip4-icmp-error
  ICMP: 192.168.100.100 -> 192.168.100.111
    tos 0x00, ttl 64, length 1628, checksum 0xae8d
    fragment id 0x7bef
  ICMP echo_reply checksum 0x3e16
00:07:19:687257: ip4-drop
    ICMP: 0.0.40.210 -> 192.168.100.100
      tos 0x00, ttl 255, length 604, checksum 0x6bc2
      fragment id 0x0000
    ICMP destination_unreachable fragmentation_needed_and_dont_fragment_set 
checksum 0xb7b3
00:07:19:687258: error-drop
  ip4-input: ip4 MTU exceeded and DF set

Packet 2

00:07:19:687245: dpdk-input
  GigabitEthernet2/0/0 rx queue 0
  buffer 0xc221: current data 14, length 148, free-list 0, clone-count 0, 
totlen-nifb 0, trace 0x1
                 ext-hdr-valid 
                 l4-cksum-computed l4-cksum-correct l2-hdr-offset 0 
l3-hdr-offset 14 
  PKT MBUF: port 1, nb_segs 1, pkt_len 162
    buf_len 2176, data_len 162, ol_flags 0x0, data_off 128, phys_addr 0x5db088c0
    packet_type 0x0 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0
  IP4: 28:d2:44:0d:45:c1 -> 68:05:ca:47:2b:9e
  ICMP: 192.168.100.111 -> 192.168.100.100
    tos 0x00, ttl 64, length 148, checksum 0xd88d
    fragment id 0x56fe offset 1480, flags 
  ICMP unknown 0x61 checksum 0x6364
00:07:19:687247: ip4-input
  ICMP: 192.168.100.111 -> 192.168.100.100
    tos 0x00, ttl 64, length 148, checksum 0xd88d
    fragment id 0x56fe offset 1480, flags 
  ICMP unknown 0x61 checksum 0x6364
00:07:19:687248: ip4-reassembly-feature
  reass id: 9, op id: 1 first bi: 49736, data len: 1608, ip/fragment[1480, 1607]
                        new range: [1480, 1607], off 0, len 128, bi 49697




wangchuan...@163.com

Reply via email to